/* ==========================================================================
   Alex Guimarães · Advocacia Tributária
   Paleta: off-white quente + azul-marinho profundo + dourado discreto.
   Público 50+: corpo >= 18px, contraste alto, toques grandes.
   ========================================================================== */

:root{
  --bg:      #FAF7F1;   /* off-white quente */
  --bg-2:    #F3EDE2;   /* bloco alternado */
  --card:    #FFFFFF;
  --navy:    #1B2A4A;   /* azul-marinho profundo */
  --navy-2:  #14213B;
  --ink:     #23293A;
  --muted:   #565E73;
  --line:    rgba(27,42,74,.16);
  --gold:    #A8842C;   /* dourado discreto */
  --gold-bg: rgba(168,132,44,.10);

  --serif:'Cormorant Garamond', Georgia, serif;
  --sans:'Atkinson Hyperlegible', -apple-system, 'Segoe UI', sans-serif;
  --mono:'JetBrains Mono', ui-monospace, monospace;

  --shadow: 0 18px 44px -22px rgba(27,42,74,.28);
  --r-lg: 16px;
  --r-md: 10px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--sans); font-size:19px; line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
body.modal-open{ overflow:hidden; }
img{ max-width:100%; display:block; }
::selection{ background:var(--gold-bg); }

.skip{ position:absolute; left:-9999px; top:0; z-index:200; background:var(--navy); color:#fff; padding:12px 20px; }
.skip:focus{ left:0; }

.container{ width:min(1120px, 92vw); margin:0 auto; }

/* ---------- tipografia ---------- */
h1,h2,h3{ font-family:var(--serif); font-weight:600; color:var(--navy); line-height:1.15; margin:0; }
h1{ font-size:clamp(34px,4.6vw,54px); letter-spacing:-.01em; }
h2{ font-size:clamp(28px,3.4vw,42px); }
h3{ font-size:24px; }
h1 em, h2 em{ font-style:italic; color:var(--gold); }
.eyebrow{
  font-family:var(--mono); font-size:12.5px; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin:0 0 16px;
}
.lead{ font-size:19.5px; color:var(--ink); margin:18px 0 0; }
.fecha{ font-size:19px; color:var(--ink); margin:34px 0 0; max-width:62ch; }
.nota{ font-family:var(--mono); font-size:13px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-top:18px; }

/* ---------- botões ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--sans); font-weight:700; font-size:18px;
  padding:16px 30px; border-radius:8px; border:0; cursor:pointer;
  text-decoration:none; line-height:1.25; min-height:56px;
  transition:background .18s ease, transform .18s ease, box-shadow .18s ease;
}
.btn-primary{ background:var(--navy); color:#fff; box-shadow:0 12px 28px -14px rgba(27,42,74,.55); }
.btn-primary:hover{ background:var(--navy-2); transform:translateY(-1px); }
.btn-nav{ background:transparent; color:var(--navy); box-shadow:inset 0 0 0 2px var(--navy); padding:10px 20px; min-height:44px; font-size:15px; }
.btn-nav:hover{ background:var(--navy); color:#fff; }
.btn-block{ width:100%; }
.btn:disabled{ opacity:.5; cursor:not-allowed; }
.actions{ margin-top:28px; }
.btn:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible{ outline:3px solid var(--gold); outline-offset:2px; }

/* ---------- topo ---------- */
.topo{
  position:sticky; top:0; z-index:80;
  background:rgba(250,247,241,.92);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.topo-in{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 0; }
.marca{ font-family:var(--serif); font-size:22px; font-weight:700; color:var(--navy); }
.marca b{ font-weight:500; color:var(--gold); }

/* ---------- seções ---------- */
section{ padding:clamp(56px,8vw,96px) 0; }
.tinta{ background:var(--bg-2); }
.split{ display:grid; grid-template-columns:1.08fr .92fr; gap:clamp(32px,5vw,64px); align-items:center; }
.split.rev > .split-txt{ order:2; }
.split-img{ margin:0; }
.split-img img{ width:100%; height:auto; border-radius:var(--r-lg); box-shadow:var(--shadow); }
@media (max-width:900px){
  .split, .split.rev{ grid-template-columns:1fr; }
  .split.rev > .split-txt{ order:0; }
}

/* hero */
#hero{ padding-top:clamp(40px,6vw,72px); }
.hero-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(32px,5vw,64px); align-items:center; }
@media (max-width:900px){ .hero-grid{ grid-template-columns:1fr; } }
.hero-img img{ width:100%; max-width:420px; margin:0 auto; height:auto; border-radius:var(--r-lg); box-shadow:var(--shadow); }

/* lista de doenças */
.doencas{
  list-style:none; margin:36px 0 0; padding:0;
  display:grid; grid-template-columns:repeat(2,1fr); gap:12px 22px;
}
@media (max-width:700px){ .doencas{ grid-template-columns:1fr; } }
.doencas li{
  background:var(--card); border:1px solid var(--line); border-radius:var(--r-md);
  padding:16px 18px; font-size:17.5px; line-height:1.55;
}
.doencas li b{ color:var(--navy); }

/* beneficio */
.blocos{ display:grid; gap:16px; margin-top:26px; }
.bloco{
  background:var(--card); border:1px solid var(--line); border-left:5px solid var(--gold);
  border-radius:var(--r-md); padding:22px 24px;
}
.bloco h3{ margin-bottom:8px; }
.bloco p{ margin:0; font-size:18px; }

/* processo */
.passos{ list-style:none; margin:40px 0 0; padding:0; display:grid; grid-template-columns:repeat(2,1fr); gap:18px; counter-reset:passo; }
@media (max-width:760px){ .passos{ grid-template-columns:1fr; } }
.passo{
  background:var(--card); border:1px solid var(--line); border-radius:var(--r-md);
  padding:24px 24px 22px; position:relative;
}
.pn{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:50%;
  background:var(--navy); color:#fff;
  font-family:var(--serif); font-size:22px; font-weight:700; margin-bottom:14px;
}
.passo h3{ margin-bottom:8px; }
.passo p{ margin:0; font-size:17.5px; color:var(--ink); }

/* escritorio */
.cred{ list-style:none; margin:24px 0 0; padding:0; display:grid; gap:10px; }
.cred li{ padding-left:30px; position:relative; font-size:18px; }
.cred li::before{
  content:""; position:absolute; left:0; top:.5em;
  width:14px; height:14px; border-radius:3px; background:var(--gold);
}

/* faq */
.faq-list{ margin-top:34px; display:grid; gap:12px; }
.faq-list details{
  background:var(--card); border:1px solid var(--line); border-radius:var(--r-md);
  padding:0; overflow:hidden;
}
.faq-list summary{
  cursor:pointer; list-style:none; position:relative;
  padding:20px 56px 20px 22px;
  font-family:var(--serif); font-size:22px; font-weight:600; color:var(--navy);
}
.faq-list summary::-webkit-details-marker{ display:none; }
.faq-list summary::after{
  content:"+"; position:absolute; right:20px; top:50%; transform:translateY(-50%);
  font-family:var(--mono); font-size:24px; color:var(--gold);
}
.faq-list details[open] summary::after{ content:"–"; }
.faq-list details p{ margin:0; padding:0 22px 20px; font-size:18px; }

/* formulário */
.form-col{ display:grid; gap:22px; }
.form-img img{ max-height:260px; object-fit:cover; }
.form-card{
  background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:clamp(22px,3vw,34px); box-shadow:var(--shadow);
}
.fld{ display:grid; gap:7px; margin-bottom:16px; }
.fld label{ font-family:var(--mono); font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.fld input, .fld select{
  font-family:var(--sans); font-size:18px; color:var(--ink);
  background:#fff; border:2px solid rgba(27,42,74,.2); border-radius:8px;
  padding:14px 16px; width:100%; min-height:52px;
}
.fld input:focus, .fld select:focus{ outline:none; border-color:var(--gold); box-shadow:0 0 0 4px var(--gold-bg); }
.fld select:invalid{ color:var(--muted); }
.form-note{ font-family:var(--mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); text-align:center; margin:16px 0 0; }
.sigilo{ font-size:16.5px; color:var(--muted); margin-top:22px; padding-left:16px; border-left:4px solid var(--gold); }
.form-ok{ text-align:center; padding:20px 4px; }
.form-ok .glyph{
  width:60px; height:60px; margin:0 auto 14px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--navy); color:#fff; font-size:26px;
}
.form-ok h3{ margin-bottom:8px; }
.form-ok p{ margin:0; font-size:17.5px; }

/* modal de agendamento */
.modal-ov{
  position:fixed; inset:0; z-index:120;
  background:rgba(20,33,59,.55);
  display:none; align-items:center; justify-content:center; padding:16px;
}
.modal-ov.open{ display:flex; }
.modal{
  width:min(560px, 100%); max-height:calc(100vh - 40px); overflow-y:auto;
  background:var(--bg); border-radius:var(--r-lg); box-shadow:var(--shadow);
  padding:30px 28px 26px; position:relative;
}
.modal .x{
  position:absolute; top:12px; right:16px;
  background:none; border:0; font-size:30px; color:var(--muted); cursor:pointer; line-height:1;
}
.modal h3{ margin:6px 0 8px; }
.msub{ color:var(--muted); font-size:16.5px; margin:0 0 18px; }
.sched-state{ color:var(--muted); text-align:center; padding:18px 0; font-size:17px; }
.sched-days{ display:grid; grid-template-columns:repeat(auto-fill,minmax(86px,1fr)); gap:10px; margin:6px 0 16px; }
.sched-day{
  display:grid; gap:2px; justify-items:center;
  background:#fff; border:2px solid var(--line); border-radius:var(--r-md);
  padding:12px 6px; cursor:pointer; font-family:var(--sans); font-size:15px;
}
.sched-day .sd-wd{ font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.sched-day .sd-n{ font-size:24px; font-weight:700; color:var(--navy); }
.sched-day .sd-mo{ font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); }
.sched-day[aria-pressed="true"]{ border-color:var(--gold); box-shadow:0 0 0 4px var(--gold-bg); }
.sched-slotlabel{ font-family:var(--mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin:0 0 10px; }
.sched-slots{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:18px; }
.sched-slot{
  background:#fff; border:2px solid var(--line); border-radius:999px;
  padding:11px 20px; font-family:var(--mono); font-size:16px; cursor:pointer;
}
.sched-slot[aria-pressed="true"]{ border-color:var(--gold); background:var(--gold-bg); }
.sched-err{ color:#8C2F2F; font-size:16px; margin:0 0 12px; }

/* rodapé */
.rodape{ background:var(--navy); color:rgba(250,247,241,.85); padding:44px 0 34px; }
.rodape .marca-f{ font-family:var(--serif); font-size:24px; font-weight:700; color:#fff; margin:0 0 8px; }
.rodape p{ margin:0 0 8px; font-size:15.5px; }
.rodape .legal{ color:rgba(250,247,241,.6); font-size:13.5px; max-width:70ch; margin-top:16px; }

@media (max-width:420px){
  body{ font-size:18px; }
  .marca{ font-size:19px; }
  .btn{ font-size:17px; padding:15px 22px; }
}
