/* ==========================================================================
   PORTOBELLA — Imperial Roman luxury (marble · gold · wine · columns)
   ========================================================================== */

:root {
  --marble:    #FAF6EE;
  --marble-2:  #F1EADC;
  --sand:      #E9DFC9;
  --ink:       #221D17;
  --ink-soft:  #5A5045;
  --line:      #E5DAC5;

  --wine:      #6E5A2E;   /* warm bronze accent */
  --wine-deep: #4A3E22;
  --rose:      #8A6D2E;
  --gold:      #C6A15A;
  --gold-deep: #9E7C34;
  --gold-soft: #E6D3A2;

  --dark:      #16120D;   /* warm charcoal-black */
  --dark-2:    #221B13;

  --white:     #ffffff;

  --display: "Cinzel", "Trajan Pro", Georgia, serif;
  --serif:   "Cormorant Garamond", Georgia, serif;
  --sans:    "Jost", "Outfit", -apple-system, "Segoe UI", sans-serif;

  --container: 1220px;
  --shadow-sm: 0 10px 30px rgba(43,22,32,.12);
  --shadow-md: 0 26px 60px rgba(43,22,32,.24);
  --ease: cubic-bezier(.22,.61,.36,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; font-family: var(--sans); color: var(--ink); background: var(--marble); font-size: 17px; line-height: 1.75; font-weight: 300; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width:100%; display:block; }
a { color: inherit; text-decoration:none; }
ul { margin:0; padding:0; list-style:none; }
h1,h2,h3,h4 { margin:0; font-weight:500; line-height:1.12; }

.display { font-family: var(--display); font-weight:500; letter-spacing:.02em; }
.serif { font-family: var(--serif); }
.eyebrow { font-family: var(--display); font-size:.74rem; letter-spacing:.34em; text-transform:uppercase; font-weight:600; color: var(--gold-deep); display:inline-flex; align-items:center; gap:.9em; }
.eyebrow::before { content:""; width:26px; height:2px; background: var(--gold); display:inline-block; }
.eyebrow.center { justify-content:center; }
.eyebrow.center::after { content:""; width:26px; height:2px; background: var(--gold); display:inline-block; }
.lead { font-family: var(--serif); font-size:1.4rem; line-height:1.5; color: var(--ink-soft); font-weight:500; }

.container { width:100%; max-width: var(--container); margin:0 auto; padding:0 30px; }
.section { padding: 120px 0; }
.section.tight { padding: 84px 0; }
.center { text-align:center; }
.dark { background: var(--dark); color:#EFE3D3; }
.dark .lead { color:#D8C4B4; }
.dark h2, .dark h3 { color:#fff; }
.marble2 { background: var(--marble-2); }
.wine-bg { background: var(--wine-deep); color:#F3E7DB; }

/* ---------- Temple / pediment ornament ---------- */
.temple { display:flex; justify-content:center; margin-bottom: 6px; color: var(--gold); }
.temple svg { width: 96px; height: auto; }
.divider { display:flex; align-items:center; justify-content:center; gap:16px; margin: 20px 0; }
.divider::before, .divider::after { content:""; height:1px; width:60px; background: linear-gradient(90deg, transparent, var(--gold)); }
.divider::after { background: linear-gradient(90deg, var(--gold), transparent); }
.divider span { color: var(--gold); font-size:.9rem; }

/* Section heading */
.head { max-width:700px; }
.head.center { margin-inline:auto; text-align:center; }
.head h2 { font-family: var(--display); font-size: clamp(2rem,4.2vw,3.3rem); margin: 14px 0 14px; letter-spacing:.01em; }
.head p { color: var(--ink-soft); font-size:1.12rem; font-family: var(--serif); font-weight:500; }

/* Buttons */
.btn { display:inline-flex; align-items:center; gap:.6em; font-family: var(--display); font-weight:600; font-size:.76rem; letter-spacing:.2em; text-transform:uppercase; padding:17px 34px; border-radius:2px; border:1px solid transparent; cursor:pointer; transition: all .38s var(--ease); white-space:nowrap; }
.btn-gold { background: var(--gold); color:#2b1e08; }
.btn-gold:hover { background: var(--gold-deep); color:#fff; transform: translateY(-2px); box-shadow: 0 14px 30px rgba(160,126,54,.35); }
.btn-wine { background: var(--wine); color:#fff; }
.btn-wine:hover { background: var(--wine-deep); transform: translateY(-2px); }
.btn-ghost { background: transparent; border-color: rgba(255,255,255,.55); color:#fff; }
.btn-ghost:hover { background: rgba(255,255,255,.1); border-color:#fff; }
.btn-outline { background: transparent; border-color: var(--gold); color: var(--gold-deep); }
.btn-outline:hover { background: var(--gold); color:#2b1e08; }
.btn-lg { padding:20px 42px; }

/* Header */
.site-header { position:fixed; inset:0 0 auto 0; z-index:100; padding:24px 0; transition: all .4s var(--ease); }
.site-header.scrolled { background: rgba(247,241,231,.95); backdrop-filter: blur(12px); padding:12px 0; box-shadow: 0 1px 0 var(--line), var(--shadow-sm); }
.nav { display:flex; align-items:center; justify-content:space-between; gap:22px; }
.nav-links { display:flex; align-items:center; gap:22px; }
.nav-links a { font-family: var(--display); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; font-weight:600; color:#fff; position:relative; padding:4px 0; transition:color .3s; white-space:nowrap; }
.nav-links a::after { content:""; position:absolute; left:0; bottom:-3px; width:0; height:1.5px; background: var(--gold); transition: width .3s var(--ease); }
.nav-links a:hover::after, .nav-links a.active::after { width:100%; }
.nav-links a.active { color: var(--gold-soft); }
.scrolled .nav-links a { color: var(--ink); }
.scrolled .nav-links a.active { color: var(--gold-deep); }
.scrolled .brand-name, .scrolled .brand-sub { color: var(--ink) !important; }
.scrolled .brand-mark [data-c] { stroke: var(--gold-deep); }
.scrolled .brand-mark [data-f] { fill: var(--gold-deep); }
.nav-cta { display:flex; align-items:center; gap:16px; }

.brand { display:flex; align-items:center; gap:14px; }
.brand-mark { height:30px; width:auto; flex:none; }
.brand-mark [data-c] { stroke: var(--gold-soft); }
.brand-mark [data-f] { fill: var(--gold-soft); }
.brand-text { display:flex; flex-direction:column; line-height:1; }
.brand-name { font-family: var(--display); font-size:1.3rem; font-weight:600; letter-spacing:.16em; color:#fff; }
.brand-sub { font-family: var(--sans); font-size:.54rem; letter-spacing:.4em; text-transform:uppercase; color: var(--gold-soft); margin-top:5px; font-weight:500; }

.nav-toggle { display:none; background:none; border:0; cursor:pointer; width:40px; height:40px; position:relative; }
.nav-toggle span { position:absolute; left:8px; right:8px; height:2px; background:#fff; transition:.3s; }
.scrolled .nav-toggle span { background: var(--ink); }
.nav-toggle span:nth-child(1){top:14px;} .nav-toggle span:nth-child(2){top:20px;} .nav-toggle span:nth-child(3){top:26px;}
body.menu-open .nav-toggle span:nth-child(1){top:20px;transform:rotate(45deg);background:#fff;}
body.menu-open .nav-toggle span:nth-child(2){opacity:0;}
body.menu-open .nav-toggle span:nth-child(3){top:20px;transform:rotate(-45deg);background:#fff;}
.mobile-menu { display:none; }

/* Hero */
.hero { position:relative; min-height:100vh; display:flex; align-items:center; color:#fff; overflow:hidden; isolation:isolate; }
.hero-bg { position:absolute; inset:0; z-index:-2; }
.hero-bg img { width:100%; height:100%; object-fit:cover; filter: saturate(1.04) contrast(1.03) brightness(.82); }
.hero-overlay { position:absolute; inset:0; z-index:-1; background: linear-gradient(180deg, rgba(20,15,10,.55) 0%, rgba(20,15,10,.3) 42%, rgba(20,15,10,.75) 100%), radial-gradient(120% 90% at 50% 12%, rgba(196,160,90,.22), transparent 55%); }
.hero-inner { padding:150px 0 90px; max-width:860px; margin-inline:auto; text-align:center; }
.hero .eyebrow { color: var(--gold-soft); }
.hero .eyebrow::before, .hero .eyebrow::after { background: var(--gold-soft); }
.hero .temple { color: var(--gold-soft); margin-bottom:18px; }
.hero h1 { font-family: var(--display); font-size: clamp(2.8rem,7vw,5.6rem); font-weight:600; letter-spacing:.02em; margin: 12px 0 20px; text-shadow: 0 6px 40px rgba(0,0,0,.45); }
.hero h1 em { font-style:italic; font-family: var(--serif); color: var(--gold-soft); font-weight:500; }
.hero .lead { color: rgba(255,255,255,.92); max-width:600px; margin-inline:auto; }
.hero-actions { display:flex; gap:16px; margin-top:40px; flex-wrap:wrap; justify-content:center; }
.hero-scroll { position:absolute; bottom:34px; left:50%; transform:translateX(-50%); font-family:var(--display); font-size:.64rem; letter-spacing:.3em; text-transform:uppercase; color:rgba(255,255,255,.75); display:flex; flex-direction:column; align-items:center; gap:10px; }
.hero-scroll .line { width:1px; height:46px; background: linear-gradient(var(--gold-soft), transparent); animation: pulse 2.4s var(--ease) infinite; }
@keyframes pulse { 0%,100%{opacity:.4;transform:scaleY(.7);} 50%{opacity:1;transform:scaleY(1);} }

/* Flanking columns (decorative) */
.col-flank { position:absolute; top:0; bottom:0; width:96px; z-index:-1; opacity:.5; pointer-events:none; display:flex; align-items:stretch; }
.col-flank.left { left:4%; } .col-flank.right { right:4%; }
.col-flank svg { height:100%; width:100%; }
@media (max-width:1100px){ .col-flank{ display:none; } }

/* Arched media */
.arch { border-radius: 50% 50% 6px 6px / 34% 34% 6px 6px; overflow:hidden; }

/* Stats */
.stats-grid { display:grid; grid-template-columns: repeat(4,1fr); gap:24px; }
.stat { text-align:center; }
.stat .num { font-family: var(--display); font-size:2.7rem; color: var(--gold); line-height:1; }
.stat .lbl { font-family: var(--sans); font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:#D8C4B4; margin-top:10px; }

/* Split */
.split { display:grid; grid-template-columns:1fr 1fr; gap:74px; align-items:center; }
.split.reverse .split-media { order:2; }
.split-media { position:relative; }
.split-media img { width:100%; aspect-ratio:4/5; object-fit:cover; box-shadow: var(--shadow-md); }
.split-media.archframe img { border-radius: 50% 50% 6px 6px / 30% 30% 6px 6px; }
.split-media .badge { position:absolute; bottom:-26px; right:-22px; background: var(--dark); color: var(--gold-soft); padding:22px 26px; box-shadow: var(--shadow-md); text-align:center; border-bottom:3px solid var(--gold); }
.split-media .badge .b-num { font-family: var(--display); font-size:2rem; color: var(--gold); line-height:1; }
.split-media .badge .b-txt { font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; margin-top:6px; }
.feature-list { margin-top:26px; display:grid; gap:16px; }
.feature-list li { display:flex; gap:14px; align-items:flex-start; }
.feature-list .fi { flex:none; width:34px; height:34px; border:1px solid var(--gold); color:var(--gold-deep); display:grid; place-items:center; border-radius:50%; font-size:.9rem; }
.feature-list b { font-weight:600; }

/* Experience cards */
.exp-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:30px; }
.exp-card { background: var(--white); box-shadow: var(--shadow-sm); overflow:hidden; transition: transform .5s var(--ease), box-shadow .5s var(--ease); border-bottom:3px solid transparent; }
.exp-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-md); border-bottom-color: var(--gold); }
.exp-media { position:relative; height:260px; overflow:hidden; }
.exp-media img { width:100%; height:100%; object-fit:cover; transition: transform .8s var(--ease); }
.exp-card:hover .exp-media img { transform: scale(1.08); }
.exp-media::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, transparent 55%, rgba(20,15,10,.4)); }
.exp-body { padding:30px 30px 34px; text-align:center; }
.exp-body .exp-ico { font-size:1.5rem; margin-bottom:8px; }
.exp-body h3 { font-family: var(--display); font-size:1.32rem; margin-bottom:10px; letter-spacing:.02em; }
.exp-body p { font-size:.96rem; color: var(--ink-soft); margin:0; }
.exp-body .exp-link { margin-top:16px; display:inline-block; font-family:var(--display); font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color: var(--gold-deep); }
.exp-body .exp-link::after { content:" →"; }

/* Amenity tiles */
.tiles { display:grid; grid-template-columns: repeat(4,1fr); gap:26px; }
.tile { text-align:center; padding:34px 22px; background: var(--white); border:1px solid var(--line); transition:.4s var(--ease); }
.tile:hover { transform: translateY(-5px); box-shadow: var(--shadow-sm); border-color: var(--gold-soft); }
.tile .t-ico { font-size:1.8rem; margin-bottom:14px; }
.tile h4 { font-family: var(--display); font-size:1.06rem; letter-spacing:.02em; margin-bottom:6px; }
.tile p { font-size:.9rem; color: var(--ink-soft); margin:0; }

/* Gallery */
.gallery { display:grid; grid-template-columns: repeat(4,1fr); grid-auto-rows:210px; gap:16px; }
.gallery a { position:relative; overflow:hidden; }
.gallery a img { width:100%; height:100%; object-fit:cover; transition: transform .7s var(--ease); }
.gallery a:hover img { transform: scale(1.08); }
.gallery a::after { content:""; position:absolute; inset:0; background: rgba(20,15,10,0); transition:.4s; }
.gallery a:hover::after { background: rgba(20,15,10,.2); }
.g-tall { grid-row: span 2; } .g-wide { grid-column: span 2; }

/* Rooms / detail rows */
.room-row { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.room-row + .room-row { margin-top:110px; }
.room-row.reverse .room-media { order:2; }
.room-media img { width:100%; aspect-ratio:3/2; object-fit:cover; box-shadow: var(--shadow-md); }
.room-media.arch img { border-radius: 50% 50% 6px 6px / 22% 22% 6px 6px; }
.room-row .num-tag { font-family: var(--display); font-size:.8rem; letter-spacing:.24em; color: var(--gold-deep); }
.room-row h3 { font-family: var(--display); font-size: clamp(1.7rem,3vw,2.4rem); margin:10px 0 14px; }
.chip-row { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.chip { font-size:.76rem; letter-spacing:.05em; padding:8px 16px; border:1px solid var(--line); background: var(--marble-2); color: var(--wine-deep); }
.room-price { margin-top:24px; font-family: var(--serif); font-size:1.4rem; color: var(--ink); }
.room-price b { font-family: var(--display); font-size:2rem; color: var(--gold-deep); }

/* Pricing */
.price-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:30px; align-items:stretch; }
.price-card { background: var(--white); border:1px solid var(--line); padding:44px 36px; display:flex; flex-direction:column; transition:.4s var(--ease); position:relative; }
.price-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); }
.price-card.featured { background: var(--dark); color:#EFE3D3; border-color: var(--dark); }
.price-card.featured h3 { color:#fff; }
.price-tag { position:absolute; top:-13px; left:50%; transform:translateX(-50%); background: var(--gold); color:#2b1e08; font-family:var(--display); font-size:.64rem; letter-spacing:.18em; text-transform:uppercase; font-weight:600; padding:6px 16px; }
.price-card h3 { font-family: var(--display); font-size:1.5rem; letter-spacing:.02em; }
.price-card .p-sub { font-size:.9rem; color: var(--ink-soft); margin-top:4px; }
.price-card.featured .p-sub { color:#D8C4B4; }
.price-card .amount { font-family: var(--display); font-size:2.9rem; margin:22px 0 4px; color: var(--gold-deep); line-height:1; }
.price-card.featured .amount { color: var(--gold); }
.price-card .amount span { font-family: var(--sans); font-size:.95rem; color: var(--ink-soft); font-weight:300; }
.price-card.featured .amount span { color:#D8C4B4; }
.price-card ul { margin:24px 0 30px; display:grid; gap:12px; border-top:1px solid var(--line); padding-top:24px; }
.price-card.featured ul { border-color: rgba(255,255,255,.16); }
.price-card li { display:flex; gap:12px; font-size:.96rem; align-items:flex-start; }
.price-card li svg { flex:none; color: var(--gold-deep); margin-top:4px; }
.price-card.featured li svg { color: var(--gold); }
.price-card .btn { margin-top:auto; justify-content:center; }

/* Containerul tabelelor din tarife.html. Era un style="" inline in HTML, care nu
   putea fi suprascris de niciun @media — de aceea pagina rămânea pe 2 coloane pe
   telefon și ieșea din ecran. minmax(0,1fr) în loc de 1fr: `1fr` înseamnă
   minmax(auto,1fr), iar `auto` lasă coloana să crească până la min-content-ul
   tabelului (~320px), deci ar depăși ecranul chiar și pe o singură coloană. */
.price-tables { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:32px; margin-top:48px; }
.price-table { width:100%; border-collapse:collapse; background: var(--white); box-shadow: var(--shadow-sm); }
.price-table caption { font-family: var(--display); font-size:1.15rem; text-align:left; padding:22px 26px 6px; color: var(--gold-deep); letter-spacing:.04em; }
.price-table th, .price-table td { padding:15px 26px; text-align:left; border-bottom:1px solid var(--line); }
.price-table thead th { font-family:var(--display); font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color: var(--ink-soft); background: var(--marble-2); }
.price-table td:last-child, .price-table th:last-child { text-align:right; font-family:var(--serif); font-size:1.2rem; white-space:nowrap; }
.price-table tbody tr:hover { background: var(--marble-2); }
.price-table tbody tr:last-child td { border-bottom:0; }

/* CTA band */
.cta-band { position:relative; overflow:hidden; color:#fff; text-align:center; isolation:isolate; }
.cta-band .cta-bg { position:absolute; inset:0; z-index:-2; }
.cta-band .cta-bg img { width:100%; height:100%; object-fit:cover; }
.cta-band::after { content:""; position:absolute; inset:0; z-index:-1; background: linear-gradient(rgba(20,15,10,.74), rgba(20,15,10,.84)); }
.cta-band h2 { font-family: var(--display); font-size: clamp(2rem,5vw,3.6rem); margin:18px 0 16px; }
.cta-band p { font-family: var(--serif); font-size:1.24rem; color: rgba(255,255,255,.9); max-width:580px; margin:0 auto 34px; }
.cta-actions { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

/* Testimonials */
.quotes { display:grid; grid-template-columns: repeat(3,1fr); gap:30px; }
.quote { background: var(--white); border:1px solid var(--line); padding:36px; border-top:3px solid var(--gold); }
.quote .stars { color: var(--gold); letter-spacing:3px; margin-bottom:14px; }
.quote p { font-family: var(--serif); font-size:1.32rem; line-height:1.5; font-style:italic; color: var(--ink); }
.quote .who { margin-top:20px; display:flex; align-items:center; gap:12px; }
.quote .who .av { width:46px; height:46px; border-radius:50%; background: linear-gradient(135deg, var(--wine), var(--gold)); color:#fff; display:grid; place-items:center; font-family: var(--display); }
.quote .who b { display:block; font-weight:600; font-size:.98rem; }
.quote .who span { font-size:.82rem; color: var(--ink-soft); }

/* Page hero */
.page-hero { position:relative; padding:210px 0 100px; color:#fff; overflow:hidden; text-align:center; isolation:isolate; }
.page-hero .ph-bg { position:absolute; inset:0; z-index:-2; }
.page-hero .ph-bg img { width:100%; height:100%; object-fit:cover; filter: brightness(.8) saturate(1.05); }
.page-hero::after { content:""; position:absolute; inset:0; z-index:-1; background: linear-gradient(rgba(20,15,10,.55), rgba(20,15,10,.7)); }
.page-hero .temple { color: var(--gold-soft); margin-bottom:12px; }
.page-hero .eyebrow { color: var(--gold-soft); }
.page-hero .eyebrow::before, .page-hero .eyebrow::after { background: var(--gold-soft); }
.page-hero h1 { font-family: var(--display); font-size: clamp(2.4rem,6vw,4.4rem); margin:16px 0 12px; letter-spacing:.02em; }
.page-hero p { font-family: var(--serif); font-size:1.2rem; color: rgba(255,255,255,.9); max-width:600px; margin:0 auto; }
.crumbs { margin-top:24px; font-family:var(--display); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color: rgba(255,255,255,.72); }
.crumbs a:hover { color: var(--gold-soft); }

/* Contact / forms */
.contact-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:64px; align-items:start; }
.info-list { display:grid; gap:26px; margin-top:30px; }
.info-item { display:flex; gap:18px; align-items:flex-start; }
.info-item .ii-ico { flex:none; width:50px; height:50px; border:1px solid var(--gold); color: var(--gold-deep); display:grid; place-items:center; border-radius:50%; }
.info-item h4 { font-family:var(--display); font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color: var(--ink-soft); margin-bottom:4px; }
.info-item p, .info-item a { font-size:1.08rem; }
.info-item a:hover { color: var(--gold-deep); }
.form { background: var(--white); border:1px solid var(--line); padding:42px; box-shadow: var(--shadow-sm); }
.form.dark-form { background: var(--dark-2); border-color: rgba(255,255,255,.1); }
.field { margin-bottom:20px; }
.field.row { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:0; }
.field label { display:block; font-family:var(--display); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; margin-bottom:8px; color: var(--ink-soft); }
.dark-form .field label { color: var(--gold-soft); }
.field input, .field select, .field textarea { width:100%; padding:14px 16px; font-family: var(--sans); font-size:1rem; border:1px solid var(--line); background: var(--marble); color: var(--ink); transition:.3s; border-radius:2px; }
.dark-form .field input, .dark-form .field select, .dark-form .field textarea { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.15); color:#F3E7DB; }
.field input:focus, .field select:focus, .field textarea:focus { outline:none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(196,160,90,.22); }
.field textarea { resize:vertical; min-height:120px; }
.field select option { color: var(--ink); background:#fff; }
.form .btn { width:100%; justify-content:center; margin-top:6px; }
.form-note { font-size:.82rem; color: var(--ink-soft); margin-top:14px; text-align:center; }
.dark-form .form-note { color:#C6B29E; }
.form-success { display:none; background: rgba(124,48,73,.14); border:1px solid var(--wine); padding:16px 18px; margin-bottom:20px; font-size:.95rem; }
.dark-form .form-success { color:#F3E7DB; }
.form-success.show { display:block; }
.map-embed { overflow:hidden; box-shadow: var(--shadow-sm); border:1px solid var(--line); }
.map-embed iframe { width:100%; min-height:420px; border:0; display:block; filter: sepia(.1); }

.hours-card { background: var(--dark); color:#EFE3D3; padding:42px; box-shadow: var(--shadow-md); border-bottom:3px solid var(--gold); }
.hours-card h3 { font-family: var(--display); font-size:1.7rem; color:#fff; }
.hours-card .h-list { margin-top:22px; }
.hours-card .h-list li { display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.1); font-size:.98rem; }
.hours-card .h-list li:last-child { border-bottom:0; }
.hours-card .h-list .day { color:#D8C4B4; }
.hours-card .h-list .open { color: var(--gold-soft); }

/* Footer */
.site-footer { background: var(--dark); color:#C6B29E; padding:84px 0 30px; border-top:3px solid var(--gold); }
.footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:40px; }
.footer-grid h5 { font-family:var(--display); font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color: var(--gold-soft); margin-bottom:22px; }
.footer-grid a:hover { color: var(--gold-soft); }
.footer-links li { margin-bottom:12px; }
.footer-about p { margin:20px 0; font-size:.96rem; }
.footer-about .brand-name { color:#fff; }
.social { display:flex; gap:12px; }
.social a { width:40px; height:40px; border:1px solid rgba(255,255,255,.18); display:grid; place-items:center; color:#C6B29E; transition:.3s; }
.social a:hover { background: var(--gold); color:#2b1e08; border-color: var(--gold); transform: translateY(-3px); }
.footer-contact li { display:flex; gap:12px; margin-bottom:14px; font-size:.96rem; align-items:flex-start; }
.footer-contact svg { flex:none; color: var(--gold); margin-top:3px; }
.footer-bottom { margin-top:60px; padding-top:26px; border-top:1px solid rgba(255,255,255,.1); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:.84rem; }

/* WhatsApp float */
.wa-float { position:fixed; right:24px; bottom:24px; z-index:90; width:58px; height:58px; border-radius:50%; background:#25D366; display:grid; place-items:center; box-shadow:0 12px 30px rgba(37,211,102,.4); transition: transform .3s var(--ease); }
.wa-float:hover { transform: scale(1.08) translateY(-2px); }
.wa-float svg { width:30px; height:30px; fill:#fff; }

/* Lightbox */
.lightbox { position: fixed; inset:0; z-index:200; background: rgba(16,12,9,.93); display:none; align-items:center; justify-content:center; }
.lightbox.open { display:flex; }
.lightbox img { max-width: 88vw; max-height: 86vh; object-fit: contain; box-shadow: var(--shadow-md); border: 1px solid rgba(230,211,162,.28); }
.lb-close { position:absolute; top:22px; right:26px; width:48px; height:48px; background:transparent; border:1px solid var(--gold-soft); color: var(--gold-soft); font-size:1.8rem; line-height:1; cursor:pointer; border-radius:50%; transition:.3s; display:grid; place-items:center; }
.lb-close:hover { background: var(--gold); color:#2b1e08; border-color: var(--gold); }
.lb-nav { position:absolute; top:50%; transform:translateY(-50%); width:54px; height:54px; background:transparent; border:1px solid rgba(230,211,162,.5); color: var(--gold-soft); font-size:2rem; line-height:1; cursor:pointer; border-radius:50%; transition:.3s; display:grid; place-items:center; }
.lb-nav:hover { background: var(--gold); color:#2b1e08; border-color: var(--gold); }
.lb-prev { left: 3%; } .lb-next { right: 3%; }
@media (max-width:560px){ .lb-nav{ width:42px;height:42px;font-size:1.5rem; } .lb-prev{left:2%} .lb-next{right:2%} .lb-close{top:14px;right:16px;} }

/* Reveal */
.reveal { opacity:0; transform: translateY(32px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in { opacity:1; transform:none; }
.reveal.d1{transition-delay:.08s;} .reveal.d2{transition-delay:.16s;} .reveal.d3{transition-delay:.24s;} .reveal.d4{transition-delay:.32s;}

/* Responsive */
@media (max-width:1024px){
  .exp-grid, .price-grid, .quotes { grid-template-columns: repeat(2,1fr); }
  .tiles { grid-template-columns: repeat(2,1fr); }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .split { gap:48px; }
}
@media (max-width:860px){
  .section { padding:84px 0; }
  .nav-links, .nav-cta .btn { display:none; }
  .nav-toggle { display:block; }
  .mobile-menu { position:fixed; inset:0; z-index:99; background: var(--dark); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; transform: translateY(-100%); transition: transform .5s var(--ease); pointer-events:none; }
  body.menu-open .mobile-menu { transform:none; pointer-events:auto; }
  .mobile-menu a { color:#EFE3D3; font-family: var(--display); font-size:1.4rem; padding:8px; letter-spacing:.06em; }
  .mobile-menu a.active { color: var(--gold-soft); }
  .mobile-menu .btn { margin-top:18px; }
  .split, .room-row, .room-row.reverse { grid-template-columns:1fr; }
  /* minmax(0,1fr), nu 1fr: formularul de pe rezervari.html are min-content 432px,
     iar cu `1fr` coloana creștea până la el și împingea pagina în lateral. */
  .contact-grid { grid-template-columns: minmax(0,1fr); }
  .price-tables { grid-template-columns: minmax(0,1fr); gap:24px; }
  /* aceeași plasă, pentru copiii care au conținut greu de micșorat */
  .split > *, .contact-grid > *, .room-row > *, .price-tables > * { min-width:0; }
  .split.reverse .split-media, .room-row.reverse .room-media { order:0; }
  .stats-grid { grid-template-columns: repeat(2,1fr); gap:30px 20px; }
  .gallery { grid-template-columns: repeat(2,1fr); grid-auto-rows:170px; }
  .split-media .badge { right:14px; bottom:-20px; }
}
@media (max-width:560px){
  body { font-size:16px; }
  .container { padding:0 20px; }
  .exp-grid, .price-grid, .quotes, .tiles { grid-template-columns:1fr; }
  .field.row { grid-template-columns:1fr; gap:0; }
  .footer-grid { grid-template-columns:1fr; }
  .hero-actions { flex-direction:column; } .hero-actions .btn { width:100%; justify-content:center; }
  .gallery { grid-template-columns:1fr 1fr; }
  .footer-bottom { flex-direction:column; }
  /* `.btn` e `white-space:nowrap` global. Etichetele lungi în română
     („Rezervă Apartament Premium", „Verifică disponibilitatea") ajungeau la
     340px lățime minimă și împingeau pagina în lateral pe ecrane de 320–360px.
     Pe telefon le lăsăm să treacă pe două rânduri. */
  .btn { white-space:normal; text-align:center; max-width:100%; }
  .btn-lg { padding:18px 26px; }
  /* 42px de padding pe un ecran de 360px lasă prea puțin loc conținutului */
  .form { padding:26px 20px; }
  /* .btn e `white-space:nowrap` global. Pe eticheta lungă a butonului de trimitere
     asta însemna o lățime minimă de ~346px, care umfla formularul și cu el pagina. */
  .form .btn { white-space:normal; padding:16px 18px; letter-spacing:.1em; line-height:1.4; }
  /* tabelele de tarife: padding mai mic și prețul lăsat să treacă pe rândul următor
     dacă nu încape — altfel `nowrap` forța o lățime minimă peste ecranul telefonului */
  .price-table caption { padding:18px 14px 6px; }
  .price-table th, .price-table td { padding:13px 14px; }
  /* Prețul rămâne pe un rând (altfel „de la 350 lei" se rupe la „lei"), dar cu
     un corp de literă mai mic, ca tabelul să încapă și pe un ecran de 320px. */
  .price-table td:last-child, .price-table th:last-child { font-size:1rem; }
}
