/* =========================================================
   BRISA BISTRÔ BEACH MOITAS — premium design tokens
   Palette exactly as specified by the brand brief.
   ========================================================= */
:root{
  --coffee: #3C2C27;
  --sand: #E8DDCF;
  --offwhite: #F7F4EF;
  --wood: #D7C3A8;
  --sage: #7A8A73;
  --ocean: #59707A;
  --gold: #B79A63;
  --gold-ink: #7d6132;
  --terracotta: #B06F54;
  --terracotta-ink: #8a4f3a;

  --sidebar-top: #D4C2B4;
  --sidebar-bottom: #BFA48F;
  --header-brand-h: 296px; /* keep in sync with .header-brand rendered height */

  --ink: #3C2C27;
  --ink-soft: #6b5c53;
  --paper: #F7F4EF;
  --paper-alt: #E8DDCF;
  --line: rgba(60,44,39,.14);
  --shadow-sm: 0 6px 18px -10px rgba(60,44,39,.28);
  --shadow: 0 24px 48px -24px rgba(60,44,39,.35);
  --shadow-lg: 0 36px 70px -28px rgba(60,44,39,.4);

  --font-display: "Cormorant Garamond", "Iowan Old Style", Georgia, serif;
  --font-body: "Manrope", "Segoe UI", Arial, sans-serif;
  --font-script: "Allura", cursive;
  --font-mono: "Manrope", sans-serif;

  --sidebar-w: 280px;
  --topbar-h: 68px;
  --radius: 12px;
  --radius-lg: 22px;
  --radius-pill: 999px;
  --ease: cubic-bezier(.4,0,.2,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:88px;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--paper);
  font-size:16.5px;
  line-height:1.68;
  -webkit-font-smoothing:antialiased;
  font-weight:400;
}
img{max-width:100%; display:block; height:auto;}
svg{width:1em; height:1em;}
a{color:inherit; text-decoration:none;}
ul{margin:0; padding:0; list-style:none;}
h1,h2,h3,h4{font-family:var(--font-display); margin:0 0 .5em; font-weight:700; letter-spacing:.002em; color:var(--coffee); line-height:1.12;}
p{margin:0 0 1em; color:var(--ink-soft);}
button{font-family:inherit; cursor:pointer;}
:focus-visible{outline:2px solid var(--terracotta); outline-offset:3px; border-radius:4px;}

.script{font-family:var(--font-script); font-size:2.1rem; color:var(--gold-ink); font-weight:400; line-height:1; display:inline-block;}

.eyebrow{
  display:inline-flex; align-items:center; gap:.6em;
  font-family:var(--font-body); font-size:.72rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--terracotta-ink); margin-bottom:1em; font-weight:600;
}
.eyebrow::before{content:""; width:26px; height:1px; background:var(--gold); display:inline-block;}

.container{max-width:1220px; margin:0 auto; padding:0 clamp(22px,4vw,56px);}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  padding:.95em 1.7em; border-radius:var(--radius); font-weight:600; font-size:.92rem;
  border:1.5px solid transparent; transition:transform .25s var(--ease), background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease);
  white-space:nowrap; letter-spacing:.01em;
}
.btn:hover{transform:translateY(-2px); box-shadow:var(--shadow-sm);}
.btn-primary{background:var(--terracotta-ink); color:var(--offwhite);}
.btn-primary:hover{background:#6f3d2c;}
.btn-outline{border-color:var(--coffee); color:var(--coffee); background:transparent;}
.btn-outline:hover{background:var(--coffee); color:var(--sand);}
.btn-ghost{border-color:rgba(247,244,239,.3); color:var(--sand);}
.btn-ghost:hover{background:rgba(247,244,239,.12); border-color:rgba(247,244,239,.5);}
.btn-sm{padding:.6em 1.2em; font-size:.8rem;}
.btn svg{width:1.05em; height:1.05em; flex:none;}

/* =========================================================
   SIDEBAR (desktop) / TOPBAR (mobile)
   Background matches the logo's own tan tone, with a soft
   vertical gradient for depth — logo blends seamlessly in.
   ========================================================= */
.site-header{position:fixed; inset:0 auto 0 0; width:var(--sidebar-w); height:100vh; background:linear-gradient(180deg, var(--sidebar-top) 0%, var(--sidebar-bottom) 100%); color:var(--coffee); z-index:100; display:flex; flex-direction:column; border-right:1px solid rgba(60,44,39,.1);}
.header-brand{display:flex; flex-direction:column; align-items:center; gap:.55rem; padding:1.3rem 1.4rem 1rem; border-bottom:1px solid rgba(60,44,39,.12);}
.header-brand img{width:100%; height:auto; aspect-ratio:1/1; object-fit:cover; border-radius:16px; display:block;}
.header-brand .brand-tag{font-family:var(--font-body); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--coffee); opacity:.72; text-align:center; font-weight:600;}

.main-nav{flex:1; overflow-y:auto; padding:.9rem .9rem;}
.main-nav a{
  display:flex; align-items:center; gap:.6em; padding:.42em .85em; border-radius:var(--radius);
  font-size:.91rem; letter-spacing:.01em; color:var(--coffee); margin-bottom:.1rem;
  transition:background .2s var(--ease), opacity .2s var(--ease);
}
.main-nav a:hover, .main-nav a:focus-visible{background:rgba(60,44,39,.08);}
.main-nav a.active{background:rgba(138,79,58,.16); color:var(--coffee); font-weight:700;}
.main-nav a .num{font-family:var(--font-body); font-size:.66rem; opacity:.6;}
.nav-divider{height:1px; background:rgba(60,44,39,.14); margin:.55rem .3rem;}

.lang-switch{display:flex; justify-content:center; gap:.3rem; padding:0 .3rem;}
.lang-switch a{flex:1; display:flex; align-items:center; justify-content:center; text-align:center; padding:.3em 0; border:1px solid rgba(60,44,39,.16); border-radius:8px; font-size:1.1rem; line-height:1; opacity:.65; filter:grayscale(.15);}
.lang-switch a.active{background:rgba(138,79,58,.18); border-color:var(--coffee); opacity:1; filter:none;}
.lang-switch a:hover{opacity:1; filter:none;}

.header-social{display:flex; gap:.5rem; padding:.75rem 1.1rem 0; justify-content:center;}
.header-social a{width:34px; height:34px; border-radius:50%; border:1px solid rgba(60,44,39,.18); display:flex; align-items:center; justify-content:center; color:var(--coffee); opacity:.85; transition:all .2s var(--ease);}
.header-social a:hover{background:var(--terracotta-ink); color:var(--offwhite); border-color:var(--terracotta-ink); opacity:1;}
.header-social svg{width:15px; height:15px;}

.header-cta{padding:.75rem 1.1rem 1.1rem;}
.header-cta .btn{width:100%;}

.topbar{display:none;}
.nav-toggle{display:none; align-items:center; justify-content:center; width:42px; height:42px; margin-right:.6rem; background:none; border:none; color:var(--coffee); flex-direction:column; gap:5px;}

main{margin-left:var(--sidebar-w);}
.site-footer{margin-left:var(--sidebar-w);}

@media (max-width: 1023px){
  .site-header{
    position:fixed; inset:0 0 auto 0; width:100%; height:var(--topbar-h); flex-direction:row;
    align-items:center; justify-content:space-between; border-right:none; border-bottom:1px solid rgba(60,44,39,.12);
    background:var(--sidebar-top);
  }
  .header-brand{flex-direction:row; padding:.5rem .9rem; border-bottom:none;}
  .header-brand img{width:40px; height:40px; border-radius:10px;}
  .header-brand .brand-tag{display:none;}
  .main-nav, .header-social, .header-cta{
    position:fixed; top:var(--topbar-h); left:0; width:100%; height:calc(100vh - var(--topbar-h));
    background:linear-gradient(180deg, var(--sidebar-top) 0%, var(--sidebar-bottom) 100%); transform:translateX(-100%); transition:transform .35s var(--ease);
    overflow-y:auto;
  }
  .nav-open .main-nav, .nav-open .header-social, .nav-open .header-cta{transform:none;}
  .main-nav{padding:1.5rem 1.3rem;}
  .main-nav a{font-size:1.08rem; padding:.9em 1em;}
  .header-social{gap:.7rem; padding:0 1.3rem;}
  .header-cta{padding:1.3rem;}
  .nav-toggle{display:flex;}
  main, .site-footer{margin-left:0;}
  body{padding-top:var(--topbar-h);}
}

.nav-toggle span{display:block; width:22px; height:1.5px; background:var(--coffee); transition:transform .25s var(--ease), opacity .25s var(--ease);}
.nav-open .nav-toggle span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.nav-open .nav-toggle span:nth-child(2){opacity:0;}
.nav-open .nav-toggle span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

/* =========================================================
   HERO — editorial split layout (framed photography, not full-bleed)
   ========================================================= */
.hero-v2{padding:clamp(120px,14vw,168px) 0 clamp(64px,8vw,96px); background:var(--paper); overflow:hidden;}
.hero-grid{display:grid; grid-template-columns:1fr .92fr; gap:clamp(2.5rem,6vw,5rem); align-items:center;}
.hero-text .script{margin-bottom:.3rem;}
.hero-text h1{font-size:clamp(2.5rem,4.4vw,3.6rem); margin-bottom:.45em;}
.hero-text h1 em{font-style:italic; color:var(--terracotta);}
.hero-sub{font-size:1.08rem; max-width:46ch; margin-bottom:1.8em;}
.hero-cta{display:flex; flex-wrap:wrap; gap:.9rem; margin-bottom:2.1rem;}
.hero-badges{display:flex; flex-wrap:wrap; gap:.5rem 1.4rem; font-size:.78rem; letter-spacing:.04em; color:var(--ink-soft); font-weight:600;}
.hero-badges span::before{content:"◆"; color:var(--gold); font-size:.55rem; margin-right:.55em; vertical-align:middle;}

.hero-media{position:relative; min-height:420px;}
.hero-media-main{border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lg); aspect-ratio:4/5;}
.hero-media-main img{width:100%; height:100%; object-fit:cover;}
.hero-media-accent{position:absolute; width:52%; aspect-ratio:1/1; left:-9%; bottom:-10%; border-radius:var(--radius-lg); overflow:hidden; border:6px solid var(--paper); box-shadow:var(--shadow);}
.hero-media-accent img{width:100%; height:100%; object-fit:cover;}
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-media{order:-1; min-height:280px; margin-bottom:2.6rem;}
  .hero-media-accent{width:44%; left:-6%; bottom:-8%;}
}
@media (max-width:560px){
  .hero-media-accent{display:none;}
}

.wave{display:block; width:100%; height:26px;}
.wave path{stroke:var(--gold); stroke-width:1.5; fill:none; stroke-dasharray:5 9; animation:drift 4s linear infinite;}
@keyframes drift{to{stroke-dashoffset:-56;}}

/* =========================================================
   SECTIONS
   ========================================================= */
section{padding:clamp(60px,8vw,112px) 0;}
.section-head{max-width:640px; margin-bottom:3rem;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head h2{font-size:clamp(1.9rem,3.2vw,2.7rem);}
.section-head p{font-size:1.05rem;}
.section-alt{background:var(--paper-alt);}
/* ---------- hero slider (nova.html variant: 3 alternating photos, minimal copy) ---------- */
.hero-slider{position:relative; min-height:88vh; display:flex; align-items:flex-end; overflow:hidden; background:var(--coffee);}
.hero-slider .hero-slides{position:absolute; inset:0;}
.hero-slider .hero-slide{position:absolute; inset:0; opacity:0; transition:opacity 1.6s ease;}
.hero-slider .hero-slide.is-active{opacity:1;}
.hero-slider .hero-slide img{width:100%; height:100%; object-fit:cover; transform:scale(1.06); transition:transform 9s ease;}
.hero-slider .hero-slide.is-active img{transform:scale(1);}
.hero-slider::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(60,44,39,.22) 0%, rgba(45,32,27,.5) 55%, rgba(28,20,17,.88) 100%);}
.hero-slider .hero-content{position:relative; z-index:2; padding:0 clamp(24px,5vw,64px) clamp(52px,7vw,84px); max-width:760px;}
.hero-slider .hero-content .eyebrow{color:var(--gold);}
.hero-slider .hero-content .eyebrow::before{background:var(--gold);}
.hero-slider .hero-content h1{color:var(--offwhite); font-size:clamp(2.3rem,5vw,3.8rem); line-height:1.06; margin-bottom:.9em;}
.hero-slider .hero-content h1 em{font-style:italic; color:var(--gold);}
.hero-slider .hero-dots{position:relative; z-index:2; display:flex; gap:.5rem; padding:0 clamp(24px,5vw,64px) 26px;}
.hero-slider .hero-dots button{width:26px; height:3px; background:rgba(247,244,239,.35); border:none; padding:0; border-radius:2px;}
.hero-slider .hero-dots button.is-active{background:var(--gold);}
@media (max-width:640px){.hero-slider{min-height:78vh;}}

.section-dark{background:var(--wood); color:var(--coffee);}
.section-dark h2, .section-dark h3, .section-dark h4{color:var(--coffee);}
.section-dark p{color:#4a3b32;}
.section-dark .eyebrow{color:#66341f;}
.section-dark .eyebrow::before{background:#66341f;}

.strengths{display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem;}
.strength{padding:2rem 1.7rem; background:var(--offwhite); border:1px solid var(--line); border-radius:var(--radius-lg); transition:box-shadow .3s var(--ease), transform .3s var(--ease);}
.strength:hover{box-shadow:var(--shadow-sm); transform:translateY(-4px);}
.strength .icon{width:46px; height:46px; color:var(--terracotta); margin-bottom:1.1rem; display:flex; align-items:center; justify-content:center; border:1px solid var(--wood); border-radius:50%; padding:10px;}
.strength .icon svg{width:100%; height:100%;}
.strength h3{font-size:1.12rem; margin-bottom:.4em;}
.strength p{font-size:.92rem; margin:0;}
@media (max-width:860px){.strengths{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.strengths{grid-template-columns:1fr;}}

.strengths-4{grid-template-columns:repeat(4,1fr);}
@media (max-width:960px){.strengths-4{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.strengths-4{grid-template-columns:1fr;}}

.highlights-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem;}
.highlight-card{position:relative; border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:3/4; box-shadow:var(--shadow-sm); transition:transform .35s var(--ease), box-shadow .35s var(--ease);}
.highlight-card:hover{transform:translateY(-6px); box-shadow:var(--shadow);}
.highlight-card img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease);}
.highlight-card:hover img{transform:scale(1.07);}
.highlight-card::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(30,20,17,.86) 0%, rgba(30,20,17,.15) 55%, rgba(30,20,17,0) 75%);}
.highlight-cap{position:absolute; left:0; right:0; bottom:0; z-index:2; padding:1.5rem 1.4rem;}
.highlight-cap h3{color:var(--offwhite); font-size:1.35rem; margin-bottom:.25em;}
.highlight-cap p{color:rgba(247,244,239,.85); font-size:.84rem; margin:0 0 .6em;}
.highlight-cap .tag{font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); font-weight:700;}
@media (max-width:860px){.highlights-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.highlights-grid{grid-template-columns:1fr;}}

.split{display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4.5rem); align-items:center;}
.split.rev{direction:rtl;} .split.rev>*{direction:ltr;}
.split-lg-first{grid-template-columns:2.1fr 1fr;}
.split-lg-last{grid-template-columns:1fr 2.1fr;}
.split figure{margin:0; position:relative;}
.split figure img{border-radius:var(--radius-lg); box-shadow:var(--shadow); width:100%;}
.split .frame-tag{position:absolute; bottom:-16px; left:24px; background:var(--terracotta-ink); color:var(--offwhite); padding:.7em 1.2em; font-family:var(--font-body); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700; border-radius:var(--radius);}
@media (max-width:760px){.split, .split-lg-first, .split-lg-last{grid-template-columns:1fr;} .split .frame-tag{left:12px;}}

.gallery{display:grid; grid-template-columns:repeat(6,1fr); grid-auto-rows:140px; gap:.85rem;}
.gallery a{grid-column:span 3; grid-row:span 2; position:relative; overflow:hidden; border-radius:var(--radius-lg); display:block; box-shadow:var(--shadow-sm);}
.gallery a:nth-child(6n+1){grid-column:span 4; grid-row:span 3;}
.gallery a:nth-child(6n+2){grid-column:span 2; grid-row:span 2;}
.gallery a:nth-child(6n+3){grid-column:span 2; grid-row:span 3;}
.gallery a:nth-child(6n+4){grid-column:span 2; grid-row:span 2;}
.gallery a:nth-child(6n+5){grid-column:span 3; grid-row:span 2;}
.gallery a:nth-child(6n+6){grid-column:span 3; grid-row:span 2;}
.gallery img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease);}
.gallery a:hover img{transform:scale(1.08);}
.gallery a::after{content:"";position:absolute; inset:0; background:linear-gradient(0deg, rgba(30,20,17,.55), transparent 45%); opacity:0; transition:opacity .3s var(--ease);}
.gallery a:hover::after{opacity:1;}
.gallery a .cap{position:absolute; left:14px; bottom:12px; z-index:2; color:#fff; font-family:var(--font-body); font-size:.72rem; letter-spacing:.03em; opacity:0; transition:opacity .3s var(--ease); font-weight:600;}
.gallery a:hover .cap{opacity:1;}
@media (max-width:760px){
  .gallery{grid-template-columns:repeat(2,1fr); grid-auto-rows:130px;}
  .gallery a, .gallery a:nth-child(n){grid-column:span 1; grid-row:span 2;}
}

.lightbox{position:fixed; inset:0; background:rgba(30,20,17,.92); z-index:1000; display:none; align-items:center; justify-content:center; padding:5vh 5vw;}
.lightbox.is-open{display:flex;}
.lightbox img{max-width:100%; max-height:88vh; border-radius:var(--radius);}
.lightbox-close{position:absolute; top:22px; right:26px; width:44px; height:44px; border-radius:50%; background:rgba(247,244,239,.12); border:1px solid rgba(247,244,239,.25); color:var(--offwhite); font-size:1.4rem; display:flex; align-items:center; justify-content:center;}

.menu-tabs{display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:2.8rem; position:sticky; top:12px; z-index:5; background:var(--paper); padding:.7rem 0;}
.menu-tabs button{padding:.6em 1.2em; border-radius:var(--radius-pill); border:1.4px solid var(--line); background:var(--offwhite); font-size:.83rem; font-weight:600; color:var(--ink-soft); transition:all .2s var(--ease);}
.menu-tabs button.is-active{background:var(--coffee); border-color:var(--coffee); color:var(--sand);}
.menu-category{margin-bottom:3.4rem; scroll-margin-top:100px;}
.menu-category > .cat-head{display:flex; align-items:baseline; gap:1rem; margin-bottom:.4rem;}
.menu-category > .cat-head h2{margin-bottom:0; font-size:1.8rem;}
.menu-category .cat-desc{color:var(--ink-soft); margin-bottom:1.7rem; max-width:60ch; font-size:.92rem;}
.menu-list{display:grid; gap:0;}
.menu-item{display:grid; grid-template-columns:auto 1fr auto; gap:1rem; align-items:baseline; padding:1.1rem 0; border-bottom:1px solid var(--line);}
.menu-item .code{font-family:var(--font-body); font-size:.68rem; color:var(--gold-ink); align-self:start; padding-top:.3em; font-weight:700;}
.menu-item .name-wrap h4{margin:0 0 .25em; font-size:1.08rem; color:var(--ink); font-family:var(--font-display); font-weight:700;}
.menu-item .name-wrap p{margin:0; font-size:.88rem; color:var(--ink-soft);}
.menu-item .price{font-family:var(--font-body); font-weight:700; font-size:1rem; color:var(--terracotta-ink); white-space:nowrap;}
.menu-note{background:var(--paper-alt); border-left:3px solid var(--terracotta); padding:1.1rem 1.4rem; font-size:.9rem; margin:1.2rem 0; border-radius:0 var(--radius) var(--radius) 0; color:var(--ink-soft); display:flex; align-items:flex-start; gap:.7em;}
.menu-note svg{width:18px; height:18px; flex:none; margin-top:.15em; color:var(--terracotta-ink);}
.menu-foot-note{font-size:.82rem; color:var(--ink-soft); font-style:italic;}

.faq-item{border-bottom:1px solid var(--line);}
.faq-q{width:100%; text-align:left; background:none; border:none; padding:1.35rem 0; display:flex; justify-content:space-between; align-items:center; gap:1rem; font-family:var(--font-display); font-weight:700; font-size:1.12rem; color:var(--ink);}
.faq-q .plus{flex:none; width:22px; height:22px; position:relative;}
.faq-q .plus::before, .faq-q .plus::after{content:""; position:absolute; background:var(--terracotta); transition:transform .25s var(--ease);}
.faq-q .plus::before{width:100%; height:1.5px; top:50%; left:0; transform:translateY(-50%);}
.faq-q .plus::after{width:1.5px; height:100%; left:50%; top:0; transform:translateX(-50%);}
.faq-item.is-open .plus::after{transform:translateX(-50%) rotate(90deg); opacity:0;}
.faq-a{max-height:0; overflow:hidden; transition:max-height .35s var(--ease);}
.faq-a p{padding-bottom:1.3rem; color:var(--ink-soft); max-width:65ch;}

.testi-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(270px,1fr)); gap:1.5rem;}
.testi-card{background:var(--offwhite); border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.9rem; display:flex; flex-direction:column; gap:1rem; box-shadow:var(--shadow-sm);}
.testi-stars{color:var(--gold-ink); letter-spacing:.15em; font-size:.9rem;}
.testi-card blockquote{margin:0; font-family:var(--font-script); font-size:1.55rem; color:var(--coffee); line-height:1.3; font-weight:400;}
.testi-name{font-family:var(--font-body); font-size:.76rem; letter-spacing:.04em; color:var(--ink-soft); text-transform:uppercase; font-weight:600;}
.testi-source{display:inline-flex; align-items:center; gap:.4em;}
.testi-source svg{width:14px; height:14px;}

.info-map{display:grid; grid-template-columns:1.1fr 1fr; gap:2.4rem; align-items:stretch;}
.map-frame{border-radius:var(--radius-lg); overflow:hidden; border:1px solid var(--line); min-height:340px; box-shadow:var(--shadow);}
.map-frame iframe{width:100%; height:100%; min-height:340px; border:0; display:block;}
.info-card{background:var(--wood); color:var(--coffee); border-radius:var(--radius-lg); padding:2.2rem; display:flex; flex-direction:column; gap:1.4rem;}
.info-row{display:flex; gap:.9rem; align-items:flex-start;}
.info-row svg{width:19px; height:19px; flex:none; margin-top:.2em; color:var(--terracotta-ink);}
.info-row h4{margin:0 0 .2em; font-size:.95rem; color:var(--coffee); font-family:var(--font-body); font-weight:700;}
.info-row p{margin:0; font-size:.88rem; color:#4a3b32;}
@media (max-width:860px){.info-map{grid-template-columns:1fr;}}

.fact-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:1.3rem; margin:2.2rem 0;}
.fact{border-left:2px solid var(--terracotta); padding:.2rem 0 .2rem 1.1rem;}
.fact .num{font-family:var(--font-display); font-weight:700; font-size:1.7rem; color:var(--coffee); display:block;}
.fact .lbl{font-size:.82rem; color:var(--ink-soft);}

.cta-banner{background:var(--wood); color:var(--coffee); border-radius:var(--radius-lg); padding:clamp(2.2rem,5vw,3.6rem); display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.6rem;}
.cta-banner h3{color:var(--coffee); margin-bottom:.3em; font-size:1.7rem;}
.cta-banner p{color:#4a3b32; margin:0;}

.site-footer{background:var(--coffee); color:rgba(247,244,239,.75); padding:3.4rem 0 1.8rem;}
.footer-signature{font-family:var(--font-script); font-size:2.4rem; color:var(--gold); margin-bottom:.3rem; display:block;}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:2rem; margin-bottom:2.6rem;}
.footer-grid h5{color:var(--offwhite); font-family:var(--font-body); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; margin-bottom:1.1rem; font-weight:700;}
.footer-grid a{display:block; padding:.32rem 0; font-size:.9rem; opacity:.85;}
.footer-grid a:hover{opacity:1; color:var(--gold);}
.footer-social{display:flex; gap:.6rem; margin-top:.5rem;}
.footer-social a{width:36px; height:36px; border-radius:50%; border:1px solid rgba(247,244,239,.2); display:flex; align-items:center; justify-content:center;}
.footer-social svg{width:16px; height:16px;}
.footer-bottom{border-top:1px solid rgba(247,244,239,.14); padding-top:1.5rem; display:flex; flex-wrap:wrap; justify-content:space-between; gap:.8rem; font-size:.78rem;}
@media (max-width:760px){.footer-grid{grid-template-columns:1fr 1fr;}}

.skip-link{position:absolute; left:-999px; top:0; background:var(--gold); color:var(--coffee); padding:.8em 1.2em; z-index:2000; font-weight:700; border-radius:0 0 8px 0;}
.skip-link:focus{left:0; top:0;}

.fab-whatsapp{position:fixed; right:20px; bottom:20px; width:56px; height:56px; border-radius:50%; background:#25D366; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow); z-index:90;}
.fab-whatsapp svg{width:28px; height:28px; color:#fff;}
@media (min-width:1024px){.fab-whatsapp{display:none;}}

[data-reveal]{opacity:0; transform:translateY(20px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
[data-reveal].is-visible{opacity:1; transform:none;}

.visually-hidden{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}

.page-hero{background:var(--sand); color:var(--coffee); padding:36px 0;}
.page-hero h1{color:var(--coffee); font-size:clamp(2.2rem,4.4vw,3.4rem);}
.page-hero p{color:var(--ink-soft); max-width:60ch; font-size:1.06rem;}
@media (max-width:1023px){.page-hero{padding-top:calc(var(--topbar-h) + 40px); padding-bottom:40px;}}
@media (min-width:1024px){.page-hero{min-height:var(--header-brand-h); display:flex; align-items:center; padding:0;}}
