/* ============================================================
   ALTHA ADVOCACIA MILITAR E CÍVEL
   Design system: "Classic Institutional"
   Navy + Ivory · Cormorant Garamond + Source Sans 3 · gold accents
   Plain CSS, no framework. pt-BR.
   ============================================================ */

/* ---------- Self-hosted fonts (variable woff2, latin) ---------- */
@font-face{
  font-family:'Cormorant Garamond';
  font-style:normal;
  font-weight:300 700;
  font-display:swap;
  src:url('../fonts/cormorant.woff2') format('woff2');
}
@font-face{
  font-family:'Source Sans 3';
  font-style:normal;
  font-weight:200 900;
  font-display:swap;
  src:url('../fonts/sourcesans.woff2') format('woff2');
}

/* ---------- Tokens ---------- */
:root{
  --navy:        #14315E;
  --navy-deep:   #0E2444;
  --navy-700:    #1C3E72;
  --ivory:       #F5F1E8;
  --paper:       #FBF9F3;
  --white:       #FFFFFF;
  --gold:        #B8924A;
  --gold-soft:   #C8AC6E;
  --ink:         #1A1F2B;
  --muted:       #5A6470;
  --silver:      #9AA3AD;
  --line:        rgba(20,49,94,.14);
  --line-soft:   rgba(20,49,94,.08);
  --wa:          #25D366;
  --wa-dark:     #1da851;

  --shadow-sm:   0 6px 18px -10px rgba(14,36,68,.35);
  --shadow:      0 18px 40px -20px rgba(14,36,68,.35);
  --shadow-lg:   0 40px 80px -32px rgba(14,36,68,.45);

  --font-display: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --font-body:    "Source Sans 3", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;

  --container: 1180px;
  --pad: clamp(1.25rem, 5vw, 3rem);
  --section: clamp(4rem, 9vw, 7rem);
  --radius: 6px;

  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{ box-sizing:border-box; }
*{ margin:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--ivory);
  font-size:1.0625rem;
  line-height:1.7;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

img,picture,svg{ display:block; max-width:100%; }
img{ height:auto; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; padding:0; }
button{ font:inherit; color:inherit; cursor:pointer; border:none; background:none; }
input,textarea,select{ font:inherit; color:inherit; }

/* ---------- Typography ---------- */
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:600;
  line-height:1.12;
  letter-spacing:.005em;
  color:var(--navy);
}
h1{ font-size:clamp(2.4rem, 5.2vw, 4.1rem); }
h2{ font-size:clamp(1.9rem, 3.6vw, 2.9rem); }
h3{ font-size:clamp(1.35rem, 2vw, 1.7rem); }
p{ color:var(--ink); }
.lead{ font-size:clamp(1.1rem,1.6vw,1.3rem); color:var(--muted); line-height:1.65; }
strong{ font-weight:600; }

/* ---------- Layout helpers ---------- */
.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--pad); }
.section{ padding-block:var(--section); }
.section--tight{ padding-block:clamp(2.5rem,6vw,4rem); }
.bg-paper{ background:var(--paper); }
.bg-ivory{ background:var(--ivory); }

.center{ text-align:center; }
.measure{ max-width:62ch; }
.mx-auto{ margin-inline:auto; }

/* ---------- Eyebrow + section head ---------- */
.eyebrow{
  font-family:var(--font-body);
  font-weight:600;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.2em;
  color:var(--gold);
  display:inline-flex;
  align-items:center;
  gap:.7rem;
}
.eyebrow::before{ content:""; width:30px; height:1px; background:var(--gold); display:inline-block; }
.eyebrow--center{ justify-content:center; }
.eyebrow--center::after{ content:""; width:30px; height:1px; background:var(--gold); display:inline-block; }

.section-head{ max-width:64ch; margin-bottom:clamp(2rem,4vw,3.2rem); }
.section-head.center{ margin-inline:auto; }
.section-head h2{ margin-top:.7rem; }
.section-head p{ margin-top:1rem; color:var(--muted); }

.rule-gold{ width:64px; height:2px; background:linear-gradient(90deg,var(--gold),transparent); border:0; margin:1.4rem 0; }
.center .rule-gold{ margin-inline:auto; background:linear-gradient(90deg,transparent,var(--gold),transparent); }

/* ---------- Buttons ---------- */
.btn{
  --bg:var(--navy); --fg:#fff; --bd:var(--navy);
  display:inline-flex; align-items:center; gap:.55rem;
  background:var(--bg); color:var(--fg);
  border:1.5px solid var(--bd);
  padding:.85rem 1.6rem;
  border-radius:4px;
  font-weight:600; font-size:.98rem; letter-spacing:.01em;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease), color .25s var(--ease);
  position:relative;
}
.btn svg{ width:1.1em; height:1.1em; }
.btn:hover{ transform:translateY(-2px); box-shadow:var(--shadow); }
.btn:focus-visible{ outline:3px solid var(--gold-soft); outline-offset:3px; }
.btn--outline{ --bg:transparent; --fg:var(--navy); --bd:var(--navy); }
.btn--outline:hover{ --bg:var(--navy); --fg:#fff; }
.btn--ghost-light{ --bg:transparent; --fg:#fff; --bd:rgba(255,255,255,.55); }
.btn--ghost-light:hover{ --bg:#fff; --fg:var(--navy); --bd:#fff; }
.btn--wa{ --bg:var(--wa); --fg:#fff; --bd:var(--wa); }
.btn--wa:hover{ --bg:var(--wa-dark); --bd:var(--wa-dark); }
.btn--lg{ padding:1.05rem 2rem; font-size:1.05rem; }
.btn--block{ width:100%; justify-content:center; }

.link-arrow{ font-weight:600; color:var(--navy); display:inline-flex; align-items:center; gap:.4rem; border-bottom:1.5px solid transparent; padding-bottom:2px; transition:border-color .25s, gap .25s; }
.link-arrow:hover{ border-color:var(--gold); gap:.7rem; }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(251,249,243,.92);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--line-soft);
  transition:box-shadow .3s, background .3s;
}
.site-header.scrolled{ box-shadow:var(--shadow-sm); background:rgba(251,249,243,.98); }
.nav{ display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:74px; }
.nav__logo img{ height:42px; width:auto; }
.nav__menu{ display:flex; align-items:center; gap:2rem; }
.nav__link{
  font-weight:600; font-size:.96rem; color:var(--ink);
  position:relative; padding:.4rem 0; letter-spacing:.01em;
}
.nav__link::after{
  content:""; position:absolute; left:0; bottom:-2px; height:2px; width:0; background:var(--gold);
  transition:width .28s var(--ease);
}
.nav__link:hover::after, .nav__link[aria-current="page"]::after{ width:100%; }
.nav__link[aria-current="page"]{ color:var(--navy); }
.nav__cta{ display:flex; align-items:center; gap:1.4rem; }
.nav__check{ position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.nav__toggle{ display:none; width:44px; height:44px; align-items:center; justify-content:center; cursor:pointer; }
.nav__toggle span, .nav__toggle span::before, .nav__toggle span::after{
  content:""; display:block; width:24px; height:2px; background:var(--navy); position:relative; transition:.3s;
}
.nav__toggle span::before{ position:absolute; top:-7px; }
.nav__toggle span::after{ position:absolute; top:7px; }
.nav__check:checked ~ .nav__cta .nav__toggle span{ background:transparent; }
.nav__check:checked ~ .nav__cta .nav__toggle span::before{ top:0; transform:rotate(45deg); }
.nav__check:checked ~ .nav__cta .nav__toggle span::after{ top:0; transform:rotate(-45deg); }
.nav__check:focus-visible ~ .nav__cta .nav__toggle{ outline:3px solid var(--gold-soft); outline-offset:3px; }

@media (max-width:860px){
  .nav__toggle{ display:inline-flex; }
  .nav__menu{
    position:fixed; inset:74px 0 auto 0;
    flex-direction:column; align-items:flex-start; gap:0;
    background:var(--paper); border-bottom:1px solid var(--line);
    padding:.5rem var(--pad) 1.5rem;
    transform:translateY(-12px); opacity:0; pointer-events:none;
    transition:opacity .25s, transform .25s; box-shadow:var(--shadow);
  }
  .nav__check:checked ~ .nav__menu{ transform:translateY(0); opacity:1; pointer-events:auto; }
  .nav__menu li{ width:100%; border-bottom:1px solid var(--line-soft); }
  .nav__link{ display:block; padding:1rem 0; width:100%; font-size:1.05rem; }
  .nav__link::after{ display:none; }
  .nav__cta .btn{ display:none; } /* whatsapp CTA hidden in bar; floating btn covers it */
}

/* ---------- Hero ---------- */
.hero{
  position:relative; overflow:hidden;
  background:
    radial-gradient(120% 120% at 80% -10%, var(--navy-700) 0%, var(--navy) 45%, var(--navy-deep) 100%);
  color:#eaf0f8;
  padding-block:clamp(4.5rem,11vw,8.5rem);
}
.hero::after{ /* subtle grain/vignette */
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(80% 80% at 50% 40%, transparent 55%, rgba(8,22,44,.45) 100%);
}
.hero__scales{
  position:absolute; right:-4%; top:50%; transform:translateY(-50%);
  width:min(560px,52vw); opacity:.10; color:var(--gold-soft); z-index:0;
  pointer-events:none;
}
.hero .container{ position:relative; z-index:2; }
.hero__inner{ max-width:46rem; }
.hero h1{ color:#fff; margin-top:1.1rem; }
.hero__sub{ color:#c9d6e8; font-size:clamp(1.08rem,1.7vw,1.32rem); margin-top:1.4rem; max-width:40rem; line-height:1.6; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:2.2rem; }
.hero .eyebrow{ color:var(--gold-soft); }
.hero .eyebrow::before{ background:var(--gold-soft); }

/* ---------- Trust bar ---------- */
.trust{ background:var(--navy-deep); color:#dfe7f2; }
.trust__grid{
  display:grid; grid-template-columns:repeat(5,1fr); gap:1rem;
  text-align:center; padding-block:clamp(1.6rem,3vw,2.2rem);
}
.trust__item{ padding:.6rem .4rem; position:relative; }
.trust__item+.trust__item::before{
  content:""; position:absolute; left:0; top:18%; height:64%; width:1px; background:rgba(255,255,255,.14);
}
.trust__num{ font-family:var(--font-display); font-size:clamp(1.5rem,2.4vw,2.1rem); color:#fff; font-weight:600; line-height:1; }
.trust__num .star{ color:var(--gold-soft); }
.trust__label{ font-size:.82rem; color:#aebcd2; margin-top:.45rem; letter-spacing:.02em; }
@media (max-width:860px){
  .trust__grid{ grid-template-columns:repeat(2,1fr); gap:.4rem 1rem; }
  .trust__item+.trust__item::before{ display:none; }
  .trust__item{ border-top:1px solid rgba(255,255,255,.1); padding-top:1.1rem; }
  .trust__item:nth-child(-n+2){ border-top:0; }
}

/* ---------- Intro / split ---------- */
.split{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.split--reverse .split__media{ order:-1; }
.split--media-lg{ grid-template-columns:.8fr 1.2fr; }
@media (max-width:860px){ .split{ grid-template-columns:1fr; } .split--reverse .split__media{ order:0; } .split--media-lg{ grid-template-columns:1fr; } }

.figure{ position:relative; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); }
.figure img{ width:100%; height:100%; object-fit:cover; }
.figure--framed{ outline:1px solid var(--line); outline-offset:-1px; }
.figure__badge{
  display:block; background:var(--navy); color:#fff;
  padding:.7rem 1.1rem; font-family:var(--font-display); font-size:1.15rem;
}

/* ---------- Areas ---------- */
.areas{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; }
@media (max-width:980px){ .areas{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .areas{ grid-template-columns:1fr; } }
.card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.8rem 1.6rem; transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s;
  position:relative; height:100%;
}
.card:hover{ transform:translateY(-5px); box-shadow:var(--shadow); border-color:rgba(184,146,74,.5); }
.card__icon{
  width:52px; height:52px; border-radius:8px; display:grid; place-items:center;
  background:rgba(20,49,94,.06); color:var(--navy); margin-bottom:1.1rem;
}
.card__icon svg{ width:28px; height:28px; }
.card h3{ font-size:1.3rem; }
.card__list{ margin-top:.9rem; display:flex; flex-direction:column; gap:.5rem; }
.card__list li{ font-size:.95rem; color:var(--muted); padding-left:1.1rem; position:relative; line-height:1.5; }
.card__list li::before{ content:""; position:absolute; left:0; top:.62em; width:6px; height:6px; background:var(--gold); border-radius:50%; }

/* ---------- Diferenciais ---------- */
.feats{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem 2rem; }
@media (max-width:860px){ .feats{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .feats{ grid-template-columns:1fr; } }
.feat{ display:flex; gap:1rem; align-items:flex-start; }
.feat__ic{ flex:0 0 auto; width:46px; height:46px; border-radius:50%; display:grid; place-items:center;
  border:1.5px solid var(--gold); color:var(--gold); }
.feat__ic svg{ width:22px; height:22px; }
.feat h3{ font-size:1.2rem; color:var(--navy); }
.feat p{ font-size:.94rem; color:var(--muted); margin-top:.25rem; }

/* values list on dark */
.values{ display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
@media (max-width:760px){ .values{ grid-template-columns:1fr 1fr; } }
@media (max-width:480px){ .values{ grid-template-columns:1fr; } }
.value{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:1.3rem 1.4rem; }
.value h3{ font-size:1.15rem; }
.value p{ font-size:.92rem; color:var(--muted); margin-top:.3rem; }

/* ---------- Cities ---------- */
.cities{ display:flex; flex-wrap:wrap; gap:.8rem; }
.city{
  display:inline-flex; align-items:center; gap:.6rem;
  background:var(--paper); border:1px solid var(--line); border-radius:50px;
  padding:.6rem 1.2rem; font-weight:600; font-size:.96rem; color:var(--navy);
}
.city svg{ width:1.05em; height:1.05em; color:var(--gold); }
.city--main{ background:var(--navy); color:#fff; border-color:var(--navy); }
.city--main svg{ color:var(--gold-soft); }

/* ---------- Reviews ---------- */
.reviews-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.gscore{ display:flex; align-items:center; gap:.9rem; }
.gscore__big{ font-family:var(--font-display); font-size:3rem; line-height:1; color:var(--navy); font-weight:700; }
.gscore__meta .stars{ color:var(--gold); letter-spacing:.1em; font-size:1.05rem; }
.gscore__meta small{ display:block; color:var(--muted); font-size:.85rem; margin-top:.15rem; }

.slider{ position:relative; margin-top:2rem; }
.slider__track{
  display:flex; gap:1.2rem; overflow-x:auto; scroll-snap-type:x mandatory;
  padding:.2rem .1rem 1.3rem; scroll-padding:.1rem;
  scrollbar-width:thin; scrollbar-color:var(--gold) rgba(20,49,94,.08);
}
.slider__track::-webkit-scrollbar{ height:8px; }
.slider__track::-webkit-scrollbar-thumb{ background:var(--gold); border-radius:10px; }
.slider__track::-webkit-scrollbar-track{ background:rgba(20,49,94,.08); border-radius:10px; }
.review{
  scroll-snap-align:start; flex:0 0 clamp(280px, 85%, 360px);
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.6rem 1.5rem; display:flex; flex-direction:column; box-shadow:var(--shadow-sm);
}
.review__top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:.9rem; }
.review .stars{ color:var(--gold); letter-spacing:.08em; }
.review__g{ width:22px; height:22px; }
.review__text{ font-size:.98rem; color:#33404f; line-height:1.6; flex:1; }
.review__person{ display:flex; align-items:center; gap:.7rem; margin-top:1.2rem; padding-top:1rem; border-top:1px solid var(--line-soft); }
.avatar{
  width:40px; height:40px; border-radius:50%; display:grid; place-items:center;
  color:#fff; font-weight:700; font-size:.95rem; flex:0 0 auto;
}
.review__name{ display:block; font-weight:600; font-size:.95rem; color:var(--navy); }
.review__src{ display:block; font-size:.78rem; color:var(--muted); margin-top:.1rem; }
.slider__nav{ display:none; } /* arrows removed (no JS); reviews shown as full grid */
.slider__btn{
  width:46px; height:46px; border-radius:50%; border:1.5px solid var(--navy); color:var(--navy);
  display:grid; place-items:center; transition:.25s; background:var(--paper);
}
.slider__btn:hover{ background:var(--navy); color:#fff; }
.slider__btn:disabled{ opacity:.35; cursor:default; }
.slider__btn:disabled:hover{ background:var(--paper); color:var(--navy); }
.slider__btn svg{ width:20px; height:20px; }

/* ---------- CTA band ---------- */
.cta{
  position:relative; overflow:hidden; color:#fff; text-align:center;
  background:radial-gradient(130% 150% at 20% 0%, var(--navy-700), var(--navy-deep));
}
.cta__scales{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:420px; opacity:.07; color:var(--gold-soft); }
.cta .container{ position:relative; z-index:2; }
.cta h2{ color:#fff; }
.cta p{ color:#c9d6e8; margin-top:.9rem; }
.cta__actions{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; margin-top:1.8rem; }

/* ---------- Page hero (slim) ---------- */
.pagehero{
  background:radial-gradient(130% 150% at 80% -20%, var(--navy-700), var(--navy-deep));
  color:#fff; padding-block:clamp(3.2rem,8vw,5.5rem); position:relative; overflow:hidden;
}
.pagehero__scales{ position:absolute; right:-3%; bottom:-30%; width:min(420px,46vw); opacity:.09; color:var(--gold-soft); }
.pagehero .container{ position:relative; z-index:2; }
.pagehero h1{ color:#fff; margin-top:.8rem; }
.pagehero p{ color:#c9d6e8; margin-top:1rem; max-width:46rem; }
.breadcrumb{ font-size:.85rem; color:#9fb1cb; margin-top:1.2rem; }
.breadcrumb a:hover{ color:#fff; }

/* ---------- Team ---------- */
.team{ display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
@media (max-width:760px){ .team{ grid-template-columns:1fr; } }
.lawyer{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow-sm); }
.lawyer__img{ aspect-ratio:4/5; background:var(--navy-deep); }
.lawyer__img img{ width:100%; height:100%; object-fit:cover; object-position:center top; }
.lawyer__body{ padding:1.6rem 1.6rem 1.9rem; }
.lawyer__name{ font-size:1.55rem; }
.lawyer__role{ color:var(--gold); font-weight:600; font-size:.85rem; letter-spacing:.12em; text-transform:uppercase; margin-top:.2rem; }
.lawyer__oab{ font-size:.85rem; color:var(--muted); margin-top:.1rem; }
.lawyer__bio{ margin-top:1rem; font-size:.96rem; color:#33404f; }
.lawyer__bio li{ position:relative; padding-left:1.2rem; margin-top:.5rem; }
.lawyer__bio li::before{ content:""; position:absolute; left:0; top:.62em; width:6px; height:6px; background:var(--gold); border-radius:50%; }

/* feature band (military experience) */
.band{ position:relative; color:#fff; overflow:hidden;
  background:radial-gradient(130% 150% at 10% 0%, var(--navy-700), var(--navy-deep)); }
.band .split{ align-items:center; }
.band h2{ color:#fff; }
.band p{ color:#c9d6e8; margin-top:1rem; }
.band .eyebrow{ color:var(--gold-soft); }
.band .eyebrow::before{ background:var(--gold-soft); }
.band__list{ margin-top:1.2rem; display:grid; gap:.6rem; }
.band__list li{ padding-left:1.5rem; position:relative; color:#dbe4f1; }
.band__list li::before{ content:""; position:absolute; left:0; top:.55em; width:9px; height:9px; border:2px solid var(--gold-soft); border-radius:50%; }

/* ---------- Contact ---------- */
.contact{ display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(2rem,5vw,4rem); align-items:start; }
@media (max-width:860px){ .contact{ grid-template-columns:1fr; } }
.cinfo{ display:grid; gap:1.1rem; }
.cinfo__item{ display:flex; gap:1rem; align-items:flex-start; background:var(--paper); border:1px solid var(--line);
  border-radius:var(--radius); padding:1.1rem 1.3rem; transition:border-color .25s, transform .25s; }
.cinfo__item:hover{ border-color:rgba(184,146,74,.5); transform:translateY(-2px); }
.cinfo__ic{ flex:0 0 auto; width:44px; height:44px; border-radius:8px; background:rgba(20,49,94,.06);
  color:var(--navy); display:grid; place-items:center; }
.cinfo__ic svg{ width:22px; height:22px; }
.cinfo__k{ display:block; font-size:.78rem; text-transform:uppercase; letter-spacing:.12em; color:var(--gold); font-weight:600; }
.cinfo__v{ display:block; font-weight:600; color:var(--navy); margin-top:.15rem; }
.cinfo__v a{ border-bottom:1px solid transparent; transition:border-color .2s; }
.cinfo__v a:hover{ border-color:var(--gold); }
.cinfo__v small{ display:block; font-weight:400; color:var(--muted); font-size:.85rem; }

.form{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:clamp(1.5rem,3vw,2.2rem); box-shadow:var(--shadow-sm); }
.field{ margin-bottom:1.1rem; }
.field label{ display:block; font-weight:600; font-size:.9rem; color:var(--navy); margin-bottom:.4rem; }
.field input, .field textarea{
  width:100%; background:#fff; border:1.5px solid var(--line); border-radius:5px;
  padding:.8rem .9rem; transition:border-color .2s, box-shadow .2s;
}
.field input:focus, .field textarea:focus{ outline:none; border-color:var(--navy); box-shadow:0 0 0 3px rgba(20,49,94,.12); }
.field textarea{ resize:vertical; min-height:130px; }
.form__note{ font-size:.82rem; color:var(--muted); margin-top:.8rem; text-align:center; }
.req{ color:#b23b3b; }
.contact-actions{ display:grid; gap:.85rem; }
.contact-actions .btn{ justify-content:center; }
.contact-actions__hint{ font-size:.95rem; color:var(--muted); margin-bottom:.4rem; }

.mapcard{
  margin-top:1.4rem; display:flex; align-items:center; gap:1.2rem;
  background:radial-gradient(130% 180% at 0% 0%, var(--navy-700), var(--navy-deep));
  color:#fff; border-radius:var(--radius); padding:1.5rem 1.6rem;
  border:1px solid var(--line); box-shadow:var(--shadow-sm);
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.mapcard:hover{ transform:translateY(-3px); box-shadow:var(--shadow); }
.mapcard:focus-visible{ outline:3px solid var(--gold-soft); outline-offset:3px; }
.mapcard__pin{ flex:0 0 auto; width:54px; height:54px; border-radius:50%; display:grid; place-items:center;
  background:rgba(255,255,255,.08); border:1.5px solid var(--gold); color:var(--gold-soft); }
.mapcard__pin svg{ width:26px; height:26px; }
.mapcard__body{ display:flex; flex-direction:column; gap:.2rem; }
.mapcard__title{ font-family:var(--font-display); font-size:1.5rem; color:#fff; line-height:1.1; }
.mapcard__addr{ font-size:.92rem; color:#c9d6e8; }
.mapcard__cta{ display:inline-flex; align-items:center; gap:.4rem; margin-top:.5rem;
  font-weight:600; font-size:.9rem; color:var(--gold-soft); }
.mapcard:hover .mapcard__cta{ gap:.6rem; }

/* ---------- FAQ ---------- */
.faq{ display:grid; gap:.8rem; max-width:820px; margin-inline:auto; }
.faq details{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:0 1.3rem; transition:border-color .25s; }
.faq details[open]{ border-color:rgba(184,146,74,.5); }
.faq summary{ list-style:none; cursor:pointer; padding:1.15rem 0; font-weight:600; color:var(--navy);
  display:flex; justify-content:space-between; align-items:center; gap:1rem; font-size:1.05rem; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; font-family:var(--font-display); font-size:1.6rem; color:var(--gold); transition:transform .25s; line-height:1; }
.faq details[open] summary::after{ transform:rotate(45deg); }
.faq__a{ padding:0 0 1.2rem; color:var(--muted); font-size:.98rem; }

/* ---------- Footer ---------- */
.footer{ background:var(--navy-deep); color:#c4d1e4; padding-block:clamp(3rem,6vw,4.2rem) 1.5rem; }
.footer__grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:2.2rem; }
@media (max-width:860px){ .footer__grid{ grid-template-columns:1fr 1fr; gap:2rem; } }
@media (max-width:520px){ .footer__grid{ grid-template-columns:1fr; } }
.footer__brand .wordmark{ display:flex; align-items:center; gap:.7rem; }
.footer__brand .wordmark svg{ width:40px; height:40px; }
.wm-text strong{ font-family:var(--font-display); font-size:1.7rem; color:#fff; letter-spacing:.06em; font-weight:700; display:block; line-height:1; }
.wm-text span{ font-size:.66rem; letter-spacing:.28em; text-transform:uppercase; color:var(--gold-soft); }
.footer__brand p{ color:#9fb1cb; font-size:.92rem; margin-top:1.1rem; max-width:30ch; }
.footer h4{ font-family:var(--font-body); color:#fff; font-size:.82rem; text-transform:uppercase; letter-spacing:.16em; margin-bottom:1rem; }
.footer__list li{ margin-bottom:.6rem; }
.footer__list a, .footer__list span{ color:#bccadf; font-size:.93rem; }
.footer__list a:hover{ color:#fff; }
.footer__contact li{ display:flex; gap:.6rem; align-items:flex-start; margin-bottom:.7rem; font-size:.92rem; color:#bccadf; }
.footer__contact svg{ width:18px; height:18px; color:var(--gold-soft); flex:0 0 auto; margin-top:.18rem; }
.footer__social{ display:flex; gap:.7rem; margin-top:1rem; }
.footer__social a{ width:40px; height:40px; border-radius:50%; border:1px solid rgba(255,255,255,.2); display:grid; place-items:center; transition:.25s; }
.footer__social a:hover{ background:var(--gold); border-color:var(--gold); color:var(--navy-deep); }
.footer__social svg{ width:20px; height:20px; }
.footer__bottom{ border-top:1px solid rgba(255,255,255,.12); margin-top:2.6rem; padding-top:1.4rem;
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.82rem; color:#8ea1bc; }
.footer__legal{ max-width:60ch; }

/* ---------- Floating WhatsApp ---------- */
.wa-float{
  position:fixed; z-index:200; right:clamp(1rem,3vw,1.6rem);
  bottom:calc(clamp(1rem,3vw,1.6rem) + env(safe-area-inset-bottom,0px));
  width:60px; height:60px; border-radius:50%; background:var(--wa); color:#fff;
  display:grid; place-items:center; box-shadow:0 12px 28px -8px rgba(37,211,102,.6);
  transition:transform .25s var(--ease), box-shadow .25s;
}
.wa-float svg{ width:32px; height:32px; }
.wa-float:hover{ transform:scale(1.08); }
.wa-float:focus-visible{ outline:3px solid #fff; outline-offset:3px; }
.wa-float::before{ /* pulse */
  content:""; position:absolute; inset:0; border-radius:50%; background:var(--wa); z-index:-1;
  animation:wapulse 2.4s ease-out infinite;
}
.wa-float__tip{
  position:absolute; right:72px; top:50%; transform:translateY(-50%);
  background:var(--navy); color:#fff; padding:.5rem .9rem; border-radius:6px; font-size:.85rem; font-weight:600;
  white-space:nowrap; opacity:0; pointer-events:none; transition:opacity .25s; box-shadow:var(--shadow);
}
.wa-float:hover .wa-float__tip{ opacity:1; }
@media (max-width:560px){ .wa-float__tip{ display:none; } .wa-float{ width:56px; height:56px; } .wa-float svg{ width:30px; height:30px; } }
@keyframes wapulse{ 0%{ transform:scale(1); opacity:.55; } 70%{ transform:scale(1.5); opacity:0; } 100%{ opacity:0; } }

/* ---------- Skip link ---------- */
.skip{ position:absolute; left:-999px; top:0; background:var(--navy); color:#fff; padding:.7rem 1.1rem; z-index:300; border-radius:0 0 6px 0; }
.skip:focus{ left:0; }

/* ---------- Reveal animations (CSS-only, scroll-driven; fully visible without it) ---------- */
.reveal{ opacity:1; transform:none; }
@supports (animation-timeline: view()){
  @media (prefers-reduced-motion: no-preference){
    .reveal{ animation:reveal-in linear both; animation-timeline:view(); animation-range:entry 4% cover 22%; }
    .reveal.d1{ animation-range:entry 8% cover 26%; }
    .reveal.d2{ animation-range:entry 12% cover 30%; }
    .reveal.d3{ animation-range:entry 16% cover 34%; }
  }
}
@keyframes reveal-in{ from{ opacity:0; transform:translateY(22px); } to{ opacity:1; transform:none; } }

/* hero load stagger */
.hero .anim{ opacity:0; transform:translateY(18px); animation:rise .8s var(--ease) forwards; }
.hero .anim.a1{ animation-delay:.1s; } .hero .anim.a2{ animation-delay:.26s; }
.hero .anim.a3{ animation-delay:.42s; } .hero .anim.a4{ animation-delay:.58s; }
@keyframes rise{ to{ opacity:1; transform:none; } }

@media (prefers-reduced-motion: reduce){
  .reveal, .hero .anim{ opacity:1 !important; transform:none !important; animation:none !important; transition:none !important; }
  .wa-float::before{ animation:none; }
  .slider__track{ scroll-behavior:auto; }
}

/* ---------- Utilities ---------- */
.mt-1{ margin-top:1rem; } .mt-2{ margin-top:2rem; }
.flex-actions{ display:flex; flex-wrap:wrap; gap:1rem; }
.hr{ border:0; border-top:1px solid var(--line); }
