/* ==========================================================================
   Renato Oliveira Advocacia — Design System
   Direção: azul-marinho profundo + dourado + marfim quente
   Tipografia: Fraunces (display) · IBM Plex Sans (texto) · IBM Plex Mono (utilitária)
   ========================================================================== */

:root{
  color-scheme: only light;

  /* ---- cor: âncora institucional (azul-marinho quase preto) ---- */
  --navy-950:#0B1626;
  --navy-900:#101F35;
  --navy-800:#172B47;
  --navy-700:#223A5E;
  --navy-600:#2E4A73;

  /* ---- cor: dourado — assinatura ---- */
  --gold-700:#685023;
  --gold-600:#B08D42;
  --gold-500:#C9A961;
  --gold-300:#E0C182;
  --gold-200:#F0DFB3;

  /* ---- neutro de fundo: marfim/osso quente ---- */
  --bone-50:#F5EFE1;
  --bone-100:#ECE1C8;
  --bone-200:#E0D0AC;

  /* ---- texto ---- */
  --ink-900:#1D1B14;
  --ink-700:#4A4433;
  --ink-500:#726A52;
  --cream:#F2EBDA;
  --cream-dim:#CFC6AC;

  --line-on-light: rgba(29,27,20,.14);
  --line-on-dark: rgba(242,235,218,.16);

  --radius-s:6px;
  --radius-m:12px;
  --radius-l:22px;

  --space-section: clamp(3.25rem, 3.4vw + 2rem, 6.5rem);
  --container-w: 1180px;

  --shadow-card: 0 1px 2px rgba(11,22,38,.06), 0 12px 28px -14px rgba(11,22,38,.28);
  --shadow-lift: 0 18px 45px -18px rgba(11,22,38,.45);

  --ease: cubic-bezier(.22,.7,.2,1);
}

@media (prefers-color-scheme: dark){
  :root{
    color-scheme: only light;
    --olive-950:#0B1626; --olive-900:#101F35; --olive-800:#172B47;
    --bone-50:#F5EFE1; --bone-100:#ECE1C8; --ink-900:#1D1B14; --cream:#F2EBDA;
  }
  html, body{ background:#F5EFE1 !important; color:#1D1B14 !important; }
}

/* ---------------------------------- reset -------------------------------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}
body{
  margin:0;
  background-color:#F5EFE1; color:#1D1B14; -webkit-text-fill-color:#1D1B14;
  font-family:"IBM Plex Sans", "Segoe UI", Arial, sans-serif;
  font-size:16px; line-height:1.65;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font:inherit; }
h1,h2,h3,h4{
  font-family:"Fraunces","Georgia",serif;
  font-variation-settings:"opsz" 96,"SOFT" 0,"WONK" 0;
  font-weight:600; line-height:1.08; letter-spacing:-.01em; margin:0;
  color:#1D1B14; -webkit-text-fill-color:#1D1B14;
}
p{ margin:0 0 1em; }
p:last-child{ margin-bottom:0; }
:focus-visible{ outline:3px solid #B08D42; outline-offset:3px; border-radius:3px; }

.container{ max-width:var(--container-w); margin-inline:auto; padding-inline:1.5rem; }
@media (min-width:640px){ .container{ padding-inline:2.25rem; } }

/* ---------------------------------- eyebrow / mono utility ---------------- */
.eyebrow{
  font-family:"IBM Plex Mono",monospace; font-size:.72rem; font-weight:500;
  letter-spacing:.16em; text-transform:uppercase; color:#D4B571; -webkit-text-fill-color:#D4B571;
  display:inline-flex; align-items:center; gap:.6em;
}
.eyebrow::before{ content:""; width:1.4em; height:1px; background:#D4B571; display:inline-block; }
.eyebrow--onlight{ color:#685023; }
.eyebrow--onlight::before{ background:#685023; }

/* ---------------------------------- section shell -------------------------
   Regra crítica: a classe base "section" cuida do padding e NUNCA pode ser
   substituída por variantes de cor — variantes somam classes, nunca trocam. */
.section{
  padding-block: var(--space-section);
  background-color:#F5EFE1; color:#1D1B14; -webkit-text-fill-color:#1D1B14;
}
.section--olive{
  position:relative; isolation:isolate; overflow:hidden;
  background-color:#0B1626; color:#F2EBDA; -webkit-text-fill-color:#F2EBDA;
  background-image: radial-gradient(ellipse 120% 60% at 15% -10%, rgba(201,169,97,.16), transparent 60%),
                     radial-gradient(ellipse 90% 70% at 100% 110%, rgba(201,169,97,.10), transparent 55%);
}
.section--olive::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; opacity:.5;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0 0.05 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
.section--olive h1,.section--olive h2,.section--olive h3,.section--olive h4{
  color:#F2EBDA; -webkit-text-fill-color:#F2EBDA;
}
.section--muted{ background-color:#ECE1C8; color:#1D1B14; -webkit-text-fill-color:#1D1B14; }
.section--tight{ padding-block: calc(var(--space-section) * .55); }
.section--top-flush{ padding-top:0; }
.section + .section{ border-top:1px solid rgba(29,27,20,.08); }
.section--olive + .section--olive{ border-top:1px solid rgba(242,235,218,.1); }
.section--olive + .section, .section + .section--olive{ border-top:none; }

/* ---------------------------------- header --------------------------------*/
.site-header{
  position:sticky; top:0; z-index:40;
  background-color:#0B1626; color:#F2EBDA; -webkit-text-fill-color:#F2EBDA;
  background-image:radial-gradient(ellipse 100% 140% at 0% 0%, rgba(201,169,97,.14), transparent 60%);
  border-bottom:1px solid rgba(242,235,218,.1);
  transition:box-shadow .25s var(--ease), background-color .25s var(--ease);
}
.site-header.is-scrolled{ box-shadow:0 12px 30px -18px rgba(0,0,0,.55); }
.site-header__bar{
  max-width:var(--container-w); margin-inline:auto; padding:.85rem 1.5rem;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
}
@media (min-width:640px){ .site-header__bar{ padding-inline:2.25rem; } }
.brand{ display:flex; align-items:center; gap:.75rem; }
.brand__mark{ height:34px; width:auto; flex:none; }
.brand__divider{ width:1px; height:30px; background:linear-gradient(180deg, transparent, rgba(224,193,130,.7), transparent); flex:none; }
.brand__text{ display:flex; flex-direction:column; line-height:1.08; }
.brand__name{
  font-family:"Fraunces",serif; font-weight:600; font-size:1.02rem;
  color:#F2EBDA; -webkit-text-fill-color:#F2EBDA; white-space:nowrap;
}
.brand__tag{
  font-family:"IBM Plex Mono",monospace; font-size:.6rem; letter-spacing:.22em;
  color:#E0C182; -webkit-text-fill-color:#E0C182; text-transform:uppercase;
}
.nav-desktop{ display:none; }
@media (min-width:960px){
  .nav-desktop{ display:flex; align-items:center; gap:1.9rem; }
  .nav-desktop a{
    font-size:.88rem; color:#EDE4CE; -webkit-text-fill-color:#EDE4CE;
    padding-block:.3rem; border-bottom:1px solid transparent; white-space:nowrap;
  }
  .nav-desktop a:hover{ border-color:#B08D42; }
}
.header-actions{ display:flex; align-items:center; gap:.75rem; }
.header-actions .btn--brass{ display:none; }
@media (min-width:560px){ .header-actions .btn--brass{ display:inline-flex; } }
.brand{ min-width:0; }
.brand__text{ min-width:0; }
.brand__name{ overflow:hidden; text-overflow:ellipsis; }
.menu-btn{
  display:inline-flex; width:44px; height:44px; align-items:center; justify-content:center;
  background:transparent; border:1px solid rgba(242,235,218,.35); border-radius:8px;
  color:#F2EBDA; cursor:pointer;
}
@media (min-width:960px){ .menu-btn{ display:none; } }
.menu-btn svg{ width:20px; height:20px; }

/* ---------------------------------- mobile overlay menu --------------------*/
.mobile-menu{
  position:fixed; inset:0; z-index:60; background-color:#0B1626; color:#F2EBDA;
  display:none; flex-direction:column;
}
.mobile-menu.is-open{ display:flex; }
.mobile-menu__bar{
  display:flex; align-items:center; justify-content:space-between;
  padding:.85rem 1.5rem; border-bottom:1px solid rgba(242,235,218,.12);
}
.mobile-menu__close{
  width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center;
  background:transparent; border:1px solid rgba(242,235,218,.35); border-radius:8px; color:#F2EBDA;
}
.mobile-menu__links{ padding:1.25rem 1.5rem; display:flex; flex-direction:column; gap:.15rem; overflow-y:auto; }
.mobile-menu__links a{
  font-family:"Fraunces",serif; font-size:1.4rem; padding:.72rem 0; color:#F2EBDA;
  -webkit-text-fill-color:#F2EBDA; border-bottom:1px solid rgba(242,235,218,.1);
}
.mobile-menu__cta{ margin:1rem 1.5rem 1.75rem; }

/* ---------------------------------- buttons --------------------------------*/
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55em;
  padding:.95rem 1.7rem; border-radius:999px; font-weight:500; font-size:.95rem;
  min-height:46px; border:1px solid transparent; cursor:pointer; white-space:nowrap;
  position:relative; overflow:hidden;
  transition:transform .15s var(--ease), box-shadow .15s var(--ease), background-color .15s var(--ease);
}
.btn:active{ transform:scale(.98); }
.btn--brass{
  background:linear-gradient(155deg, #D8B876 0%, #C9A961 38%, #AB8A48 100%);
  color:#171208; -webkit-text-fill-color:#171208;
  box-shadow:0 1px 0 rgba(255,255,255,.35) inset, 0 10px 22px -12px rgba(23,18,8,.55);
}
.btn--brass::before{
  content:""; position:absolute; inset:0; opacity:0; transition:opacity .25s var(--ease);
  background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.35) 48%, transparent 62%);
}
.btn--brass:hover{ background:linear-gradient(155deg, #E0C182 0%, #CFA968 38%, #B4923F 100%); box-shadow:0 1px 0 rgba(255,255,255,.4) inset, 0 14px 26px -12px rgba(23,18,8,.6); }
.btn--brass:hover::before{ opacity:1; }
.btn--outline-dark{
  background-color:transparent; border-color:rgba(242,235,218,.4);
  color:#F2EBDA; -webkit-text-fill-color:#F2EBDA;
}
.btn--outline-dark:hover{ background-color:rgba(242,235,218,.08); }
.btn--outline-light{
  background-color:transparent; border-color:rgba(29,27,20,.3);
  color:#1D1B14; -webkit-text-fill-color:#1D1B14;
}
.btn--outline-light:hover{ background-color:rgba(29,27,20,.06); }
.btn--block{ width:100%; }
.btn--sm{ padding:.6rem 1.1rem; font-size:.85rem; min-height:40px; }

/* ---------------------------------- hero -----------------------------------*/
.hero{
  background-color:#0B1626; color:#F2EBDA; position:relative;
  background-image:radial-gradient(ellipse 90% 70% at 85% 0%, rgba(201,169,97,.14), transparent 55%);
}
.hero__photo{
  position:relative; aspect-ratio:4/5; overflow:hidden; background-color:#070D18;
}
@media (min-width:760px){ .hero__photo{ aspect-ratio:16/10; } }
.hero__photo img{
  width:100%; height:100%; object-fit:cover; object-position:97% 22%;
  transform:scale(1.05); animation:heroPhotoIn 1.4s var(--ease) forwards;
}
@keyframes heroPhotoIn{ from{ transform:scale(1.09); opacity:.001; } to{ transform:scale(1.05); opacity:1; } }
@media (prefers-reduced-motion: reduce){ .hero__photo img{ animation:none; transform:none; opacity:1; } }
.hero__photo::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(11,22,38,0) 50%, rgba(11,22,38,.96) 97%),
    linear-gradient(0deg, rgba(11,22,38,.25), transparent 30%),
    radial-gradient(ellipse 140% 90% at 50% 0%, transparent 55%, rgba(7,13,24,.35) 100%);
}
@media (min-width:760px){
  .hero__photo::after{
    background:
      linear-gradient(90deg, rgba(11,22,38,.08) 42%, rgba(11,22,38,.88) 100%),
      radial-gradient(ellipse 120% 120% at 100% 0%, transparent 55%, rgba(7,13,24,.3) 100%);
  }
}
.hero__grid{ display:block; }
@media (min-width:760px){
  .hero__grid{ display:grid; grid-template-columns: 1.05fr .95fr; align-items:stretch; min-height:640px; }
  .hero__grid .hero__photo{ order:2; height:100%; }
  .hero__grid .hero__body{ order:1; }
}
.hero__body{ padding:2.25rem 1.5rem 3rem; position:relative; }
@media (min-width:640px){ .hero__body{ padding-inline:2.25rem; } }
@media (min-width:760px){ .hero__body{ padding:4.5rem 3.2rem; display:flex; flex-direction:column; justify-content:center; } }
.hero__eyebrow{ margin-bottom:1rem; }
.hero h1{
  color:#F2EBDA; -webkit-text-fill-color:#F2EBDA;
  font-size:clamp(2.15rem, 4.4vw + 1rem, 3.55rem); margin-bottom:1rem;
}
.hero__lede{ color:#D9CFB4; -webkit-text-fill-color:#D9CFB4; font-size:1.08rem; max-width:46ch; margin-bottom:1.75rem; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:.85rem; margin-bottom:1.75rem; }
.hero__cities{ display:flex; flex-wrap:wrap; gap:.5rem; }
.pill{
  font-family:"IBM Plex Mono",monospace; font-size:.72rem; letter-spacing:.03em;
  padding:.4rem .75rem; border-radius:999px; border:1px solid rgba(242,235,218,.22);
  color:#D9CFB4; -webkit-text-fill-color:#D9CFB4;
}
.pill--onlight{ border-color:rgba(29,27,20,.2); color:#4A4433; -webkit-text-fill-color:#4A4433; }

/* ---------------------------------- seal / carimbo (elemento-assinatura) ---*/
.seal{
  width:112px; height:112px; border-radius:50%; flex:none;
  border:1.5px solid #D4B571; position:relative; display:flex; align-items:center;
  justify-content:center; text-align:center; transform:rotate(-6deg);
  color:#D4B571; -webkit-text-fill-color:#D4B571;
  box-shadow:0 8px 20px -10px rgba(23,18,8,.35);
}
.seal::before{
  content:""; position:absolute; inset:6px; border:1px dashed rgba(212,181,113,.55); border-radius:50%;
  animation:sealSpin 26s linear infinite;
}
@keyframes sealSpin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce){ .seal::before{ animation:none; } }
.seal__text{
  font-family:"IBM Plex Mono",monospace; font-size:.56rem; letter-spacing:.1em;
  text-transform:uppercase; line-height:1.35; padding:0 .5rem;
}
.seal--onlight{ border-color:#685023; color:#685023; -webkit-text-fill-color:#685023; }
.seal--onlight::before{ border-color:rgba(138,106,46,.5); }

/* ---------------------------------- cards / dossiê --------------------------
   Metáfora: cada item é uma pasta de processo — aba recortada no canto. */
.grid{ display:grid; gap:1.4rem; }
@media (min-width:640px){ .grid--2{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:760px){ .grid--3{ grid-template-columns:repeat(3,1fr); } .grid--2{ grid-template-columns:repeat(2,1fr); } }

.folder{
  position:relative; background-color:#F5EFE1; border:1px solid rgba(29,27,20,.14);
  border-radius:0 var(--radius-m) var(--radius-m) var(--radius-m);
  padding:1.9rem 1.6rem 1.7rem; display:flex; flex-direction:column; gap:.85rem;
  box-shadow:var(--shadow-card), inset 0 1px 0 rgba(255,255,255,.5);
  transition:transform .22s var(--ease), box-shadow .22s var(--ease);
}
.folder:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lift), inset 0 1px 0 rgba(255,255,255,.6); }
.folder::before{
  content:attr(data-tab); position:absolute; top:-15px; left:0;
  background-color:#0B1626; color:#EDE4CE; -webkit-text-fill-color:#EDE4CE;
  font-family:"IBM Plex Mono",monospace; font-size:.62rem; letter-spacing:.12em;
  text-transform:uppercase; padding:.35rem .7rem; border-radius:6px 6px 0 0;
}
.folder h3{ font-size:1.18rem; }
.folder p{ color:#4A4433; font-size:.94rem; }
.folder__link{
  margin-top:auto; display:inline-flex; align-items:center; gap:.4em;
  font-family:"IBM Plex Mono",monospace; font-size:.78rem; color:#685023;
  -webkit-text-fill-color:#685023; letter-spacing:.02em;
}
.folder__link svg{ width:14px; height:14px; transition:transform .15s var(--ease); }
.folder:hover .folder__link svg{ transform:translateX(3px); }

.folder--dark{ background-color:#101F35; border-color:rgba(242,235,218,.14); box-shadow:var(--shadow-card), inset 0 1px 0 rgba(242,235,218,.06); }
.folder--dark::before{ background-color:#C9A961; color:#171208; -webkit-text-fill-color:#171208; }
.folder--dark h3{ color:#F2EBDA; -webkit-text-fill-color:#F2EBDA; }
.folder--dark p{ color:#CFC6AC; -webkit-text-fill-color:#CFC6AC; }
.folder--dark .folder__link{ color:#E0C182; -webkit-text-fill-color:#E0C182; }

/* ---------------------------------- listras/blocos de conteúdo -------------*/
.lede{ font-size:1.12rem; color:#4A4433; max-width:62ch; }
.section--olive .lede{ color:#D9CFB4; -webkit-text-fill-color:#D9CFB4; }
.prose{ max-width:68ch; }
.prose h2{ font-size:clamp(1.4rem,2vw + 1rem,1.85rem); margin-top:2.2rem; margin-bottom:.85rem; }
.prose h2:first-child{ margin-top:0; }
.prose h3{ font-size:1.15rem; margin-top:1.6rem; margin-bottom:.6rem; }
.prose p{ color:#3B3728; }
.prose ul, .prose ol{ margin:0 0 1.1rem; padding-left:1.3rem; color:#3B3728; }
.prose li{ margin-bottom:.45rem; }
.prose li::marker{ color:#B08D42; }
.prose a{ color:#685023; text-decoration:underline; text-underline-offset:.2em; text-decoration-color:rgba(138,106,46,.4); }

.direct-answer{
  background-color:#ECE1C8; border-left:3px solid #B08D42; border-radius:0 var(--radius-m) var(--radius-m) 0;
  padding:1.3rem 1.5rem; margin-bottom:2rem;
}
.direct-answer .eyebrow{ margin-bottom:.6rem; }
.direct-answer p{ font-size:1.05rem; color:#1D1B14; margin:0; }

.doc-list{
  background-color:#F5EFE1; border:1px dashed rgba(29,27,20,.25); border-radius:var(--radius-m);
  padding:1.4rem 1.5rem; margin:1.6rem 0;
}
.doc-list .eyebrow{ margin-bottom:.7rem; }
.doc-list ul{ padding-left:1.2rem; }

/* ---------------------------------- author box -----------------------------*/
.author-box{
  display:flex; gap:1.1rem; align-items:flex-start; background-color:#101F35;
  color:#F2EBDA; border-radius:var(--radius-m); padding:1.5rem; margin-top:2.5rem;
}
.author-box img{ width:64px; height:64px; border-radius:50%; object-fit:cover; flex:none; }
.author-box .author-box__name{ color:#F2EBDA; -webkit-text-fill-color:#F2EBDA; font-size:1.02rem; font-weight:600; margin:0 0 .15rem; }
.author-box p{ color:#CFC6AC; -webkit-text-fill-color:#CFC6AC; font-size:.88rem; margin-bottom:.5rem; }
.author-box a{ font-family:"IBM Plex Mono",monospace; font-size:.76rem; color:#E0C182; -webkit-text-fill-color:#E0C182; }

/* ---------------------------------- faq / details ---------------------------*/
.faq-item{ border-bottom:1px solid rgba(29,27,20,.14); padding:1.1rem 0; }
.faq-item summary{
  cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:space-between;
  gap:1rem; font-family:"Fraunces",serif; font-weight:600; font-size:1.05rem; color:#1D1B14;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{
  content:"+"; font-family:"IBM Plex Mono",monospace; font-size:1.3rem; color:#B08D42; flex:none;
  transition:transform .18s var(--ease);
}
.faq-item[open] summary::after{ transform:rotate(45deg); }
.faq-item p{ margin-top:.85rem; color:#4A4433; max-width:68ch; }
.section--olive .faq-item{ border-color:rgba(242,235,218,.14); }
.section--olive .faq-item summary{ color:#F2EBDA; }
.section--olive .faq-item p{ color:#D9CFB4; }

/* ---------------------------------- breadcrumb ------------------------------*/
/* Usado sempre dentro do cabeçalho escuro (page_header_html) — cores claras-sobre-escuro */
.breadcrumb{
  font-family:"IBM Plex Mono",monospace; font-size:.72rem; color:#CFC6AC;
  -webkit-text-fill-color:#CFC6AC;
  display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; padding-top:1.1rem;
}
.breadcrumb a{ color:#E8CE94; -webkit-text-fill-color:#E8CE94; }
.breadcrumb span[aria-hidden]{ color:#CDC6B2; -webkit-text-fill-color:#CDC6B2; }
.breadcrumb span[aria-current]{ color:#CFC6AC; -webkit-text-fill-color:#CFC6AC; }

/* ---------------------------------- mapa (imagem estática real, sem iframe) -*/
.map-card{
  position:relative; display:block; border-radius:var(--radius-l); overflow:hidden;
  aspect-ratio:16/10; background-color:#0B1626;
  border:1px solid rgba(201,169,97,.25);
  box-shadow:var(--shadow-lift);
}
.map-card img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .5s var(--ease), filter .5s var(--ease);
  filter:saturate(1.02);
}
.map-card::after{
  content:""; position:absolute; inset:0; pointer-events:none; border-radius:inherit;
  box-shadow:inset 0 0 0 1px rgba(238,229,205,.08), inset 0 -70px 90px -40px rgba(6,12,22,.75);
}
.map-card__scrim{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(6,12,22,0) 55%, rgba(6,12,22,.55) 100%);
}
.map-card__label{
  position:absolute; left:1.2rem; bottom:1.2rem; background-color:#0B1626; color:#F2EBDA;
  font-family:"IBM Plex Mono",monospace; font-size:.74rem; padding:.6rem .9rem; border-radius:999px;
  display:flex; align-items:center; gap:.5rem; border:1px solid rgba(201,169,97,.35);
}
.map-card__label svg{ width:14px; height:14px; color:#C9A961; }
.map-card__cta{
  position:absolute; right:1.2rem; bottom:1.2rem; background-color:#C9A961; color:#171208;
  font-family:"IBM Plex Mono",monospace; font-size:.7rem; font-weight:500; padding:.6rem .95rem;
  border-radius:999px; display:flex; align-items:center; gap:.45rem;
  opacity:0; transform:translateY(6px); transition:opacity .25s var(--ease), transform .25s var(--ease);
}
.map-card__cta svg{ width:13px; height:13px; }
@media (hover:hover){
  .map-card:hover img{ transform:scale(1.06); }
  .map-card:hover .map-card__cta{ opacity:1; transform:translateY(0); }
}
@media (hover:none){
  .map-card__cta{ opacity:1; transform:none; position:static; margin:1.2rem; display:inline-flex; }
}

/* ---------------------------------- footer ----------------------------------*/
.site-footer{ background-color:#0B1626; color:#CFC6AC; -webkit-text-fill-color:#CFC6AC; }
.site-footer a{ color:#EDE4CE; -webkit-text-fill-color:#EDE4CE; }
.footer-grid{ display:grid; gap:2.2rem; padding-block:3.5rem 2rem; }
@media (min-width:760px){ .footer-grid{ grid-template-columns:1.3fr 1fr 1fr 1fr; } }
.footer-grid .footer-h{
  font-family:"IBM Plex Mono",monospace; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  color:#E0C182; -webkit-text-fill-color:#E0C182; margin:0 0 1rem; font-weight:500;
}
.footer-grid ul li{ margin-bottom:.6rem; font-size:.9rem; }
.footer-brand p{ font-size:.88rem; max-width:32ch; margin-top:.9rem; color:#B7AE93; }
.footer-bottom{
  border-top:1px solid rgba(242,235,218,.1); padding-block:1.5rem;
  display:flex; flex-direction:column; gap:.8rem; font-size:.78rem; color:#9C9478;
}
@media (min-width:760px){ .footer-bottom{ flex-direction:row; justify-content:space-between; align-items:center; } }
.footer-disclaimer{
  font-size:.76rem; color:#9C9478; line-height:1.6; padding-block:1.5rem;
  border-top:1px solid rgba(242,235,218,.08);
}

/* ---------------------------------- floating actions -------------------------*/
.floating-actions{
  position:fixed; right:1rem; bottom:1rem; z-index:50; display:flex; flex-direction:column; gap:.7rem;
}
.floating-actions a{
  width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 24px -8px rgba(11,22,38,.55); color:#fff;
}
.floating-actions a svg{ width:24px; height:24px; }
.fab--whatsapp{ background-color:#2E7D5B; }
.fab--instagram{ background-color:#7A4F2B; }

/* ---------------------------------- misc --------------------------------------*/
.stat-row{ display:flex; flex-wrap:wrap; gap:2.2rem; }
.stat-row__item .stat-row__n{ font-family:"Fraunces",serif; font-size:2rem; font-weight:600; color:#685023; -webkit-text-fill-color:#685023; display:block; }
.stat-row__item .stat-row__l{ font-family:"IBM Plex Mono",monospace; font-size:.72rem; letter-spacing:.06em; color:#4A4433; }
.section--olive .stat-row__l{ color:#CFC6AC; }

.case-card{
  border:1px solid rgba(29,27,20,.14); border-radius:var(--radius-m); padding:1.5rem;
  background-color:#F5EFE1; display:flex; flex-direction:column; gap:.6rem;
}
.case-card .eyebrow{ margin-bottom:.2rem; }

.divider-rule{ height:1px; background:linear-gradient(90deg, rgba(201,169,97,.6), transparent); margin-block:2rem; max-width:220px; }

.two-col{ display:grid; gap:2.5rem; }
@media (min-width:840px){ .two-col{ grid-template-columns:1.1fr .9fr; align-items:start; } .two-col--rev{ grid-template-columns:.9fr 1.1fr; } }

.portrait-frame{ border-radius:var(--radius-l); overflow:hidden; aspect-ratio:4/5; background-color:#070D18; }
.portrait-frame img{ width:100%; height:100%; object-fit:cover; object-position:97% 22%; }

.list-check{ padding-left:0; }
.list-check li{ list-style:none; padding-left:1.7rem; position:relative; margin-bottom:.7rem; color:#3B3728; }
.list-check li::before{
  content:""; position:absolute; left:0; top:.35em; width:.9em; height:.9em; border-radius:2px;
  border:1.5px solid #B08D42;
}
.section--olive .list-check li{ color:#D9CFB4; }

.blog-hub-card__meta{ display:flex; gap:.9rem; font-family:"IBM Plex Mono",monospace; font-size:.68rem; color:#B08D42; letter-spacing:.04em; }

.skip-link{
  position:absolute; left:-9999px; top:auto; background:#C9A961; color:#171208; padding:.8rem 1.2rem;
  border-radius:0 0 8px 0; z-index:100;
}
.skip-link:focus{ left:0; top:0; }

.cities-band{ display:flex; flex-wrap:wrap; gap:.6rem; }

/* ---------------------------------- scroll reveal -----------------------------*/
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-visible{ opacity:1; transform:translateY(0); }
.reveal-group .reveal:nth-child(2){ transition-delay:.08s; }
.reveal-group .reveal:nth-child(3){ transition-delay:.16s; }
.reveal-group .reveal:nth-child(4){ transition-delay:.24s; }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
}

@media (max-width:479px){
  .hero__actions .btn{ width:100%; }
}
