/* =============================================================
   style.css — Front público premium (Página de links v3)
   Sistema de design orientado a tokens. Todas as cores e fontes
   vêm de variáveis injetadas por index.php a partir do painel.
   Mobile-first. Rule of 8. Respeita prefers-reduced-motion.
   ============================================================= */

/* ---------- Tokens base (fallbacks; sobrescritos inline) ---------- */
:root{
  --bg:#F7F2EC; --surface:#FFFFFF; --text:#2A2320; --text-2:#7A6E64;
  --accent:#9C5B4E; --accent-hover:#834A3F; --border:#E7DED4; --btn-text:#FFFFFF;
  --font-title:'Fraunces',Georgia,serif; --font-body:'Instrument Sans',system-ui,sans-serif;
  --radius:16px; --radius-lg:26px; --maxw:480px;

  /* espaçamento — rule of 8 */
  --s-1:4px; --s1:8px; --s2:16px; --s3:24px; --s4:32px; --s5:40px;
  --s6:48px; --s7:64px; --s8:80px; --s9:104px;

  --dur:.6s; --ease:cubic-bezier(.22,.61,.36,1);
  --shadow-s:0 1px 2px rgba(0,0,0,.04),0 2px 8px rgba(0,0,0,.04);
  --shadow-m:0 4px 12px rgba(0,0,0,.06),0 12px 32px rgba(0,0,0,.07);
}

/* ---------- Reset enxuto ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  font-family:var(--font-body);
  background:var(--bg); color:var(--text);
  line-height:1.55; font-size:16px;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}

/* ---------- Container ---------- */
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--s3)}
.page{padding-block:var(--s4) var(--s9)}

/* ---------- Tipografia ---------- */
.eyebrow{
  font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--text-2);font-weight:600;
}
h1,h2,h3{font-family:var(--font-title);font-weight:400;line-height:1.12;letter-spacing:-.01em}
.section-title{font-size:clamp(24px,7vw,30px);margin-bottom:var(--s1)}
.section-sub{color:var(--text-2);font-size:15px;margin-bottom:var(--s4)}
.section{padding-block:var(--s7)}
.section + .section{padding-top:0}

/* divisor sutil entre blocos */
.rule{height:1px;background:var(--border);border:0;margin-block:var(--s6)}

/* =============================================================
   HERO — assinatura "retrato em arco"
   ============================================================= */
.hero{position:relative;text-align:center;padding-top:var(--s5)}
.hero__glow{
  position:absolute;inset:-10% -20% auto;height:340px;z-index:0;
  background:radial-gradient(60% 60% at 50% 0%,
    color-mix(in srgb,var(--accent) 22%,transparent),transparent 70%);
  filter:blur(4px);pointer-events:none;
}
.hero__portrait{
  position:relative;z-index:1;width:min(72%,300px);margin-inline:auto;
  aspect-ratio:3/3.4;overflow:hidden;
  border-radius:999px 999px var(--radius-lg) var(--radius-lg);
  background:var(--surface);border:1px solid var(--border);
  box-shadow:var(--shadow-m);
}
.hero__portrait img{width:100%;height:100%;object-fit:cover}
.hero__portrait--empty{display:grid;place-items:center;color:var(--text-2)}
.hero__portrait--empty span{font-family:var(--font-title);font-size:64px;opacity:.5}
.hero__body{position:relative;z-index:1;margin-top:var(--s3)}
.hero__name{font-size:clamp(30px,9vw,40px);margin-block:var(--s1)}
.hero__spec{color:var(--text-2);font-size:15px}
.hero__cred{
  display:inline-flex;gap:var(--s2);margin-top:var(--s2);
  font-size:12px;letter-spacing:.08em;color:var(--text-2);
}
.hero__cred span{padding:4px 10px;border:1px solid var(--border);border-radius:100px;background:var(--surface)}
.hero__pos{margin-top:var(--s3);font-size:16px;color:var(--text);max-width:34ch;margin-inline:auto}

/* =============================================================
   BOTÕES / CTA
   ============================================================= */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--s1);
  padding:14px 22px;border-radius:100px;font-weight:600;font-size:15px;
  transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .18s;
  will-change:transform;
}
.btn--primary{background:var(--accent);color:var(--btn-text);box-shadow:var(--shadow-s)}
.btn--primary:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:var(--shadow-m)}
.btn--ghost{background:var(--surface);color:var(--text);border:1px solid var(--border)}
.btn--ghost:hover{border-color:var(--accent);transform:translateY(-2px)}
.btn--block{display:flex;width:100%}
.hero__cta{margin-top:var(--s4);display:flex;flex-direction:column;gap:var(--s2)}

.btn svg{width:18px;height:18px;flex:none}

/* =============================================================
   LINKS prioritários (núcleo do link-in-bio)
   ============================================================= */
.links{display:flex;flex-direction:column;gap:var(--s2)}
.linkcard{
  display:flex;align-items:center;gap:var(--s2);width:100%;
  padding:16px 18px;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);box-shadow:var(--shadow-s);
  transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s;
  text-align:left;
}
.linkcard:hover{transform:translateY(-2px);box-shadow:var(--shadow-m);border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}
.linkcard__ic{
  width:44px;height:44px;flex:none;border-radius:12px;display:grid;place-items:center;
  background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent);
}
.linkcard__ic svg{width:22px;height:22px}
.linkcard__thumb{width:44px;height:44px;flex:none;border-radius:12px;object-fit:cover}
.linkcard__body{flex:1;min-width:0}
.linkcard__title{font-weight:600;font-size:15px;display:flex;align-items:center;gap:8px}
.linkcard__sub{color:var(--text-2);font-size:13px;margin-top:2px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.linkcard__arrow{color:var(--text-2);flex:none;transition:transform .2s var(--ease)}
.linkcard:hover .linkcard__arrow{transform:translateX(3px);color:var(--accent)}
.badge{
  font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;
  padding:3px 8px;border-radius:100px;background:var(--accent);color:var(--btn-text);
}
/* link em destaque */
.linkcard--destaque{
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 10%,var(--surface)),var(--surface));
  border-color:color-mix(in srgb,var(--accent) 35%,var(--border));
}

/* =============================================================
   SOBRE (editorial)
   ============================================================= */
.about{display:grid;gap:var(--s3)}
.about__photo{
  width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-lg);
  border:1px solid var(--border);box-shadow:var(--shadow-s);
}
.about__text{font-size:16px;color:var(--text);white-space:pre-line}

/* =============================================================
   SERVIÇOS / ÁREAS DE ATUAÇÃO (grid)
   ============================================================= */
.grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2)}
.svc{
  padding:var(--s3);background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);box-shadow:var(--shadow-s);
  transition:transform .2s var(--ease),box-shadow .2s var(--ease);
}
.svc:hover{transform:translateY(-3px);box-shadow:var(--shadow-m)}
.svc__ic{width:38px;height:38px;color:var(--accent);margin-bottom:var(--s2)}
.svc__ic svg{width:100%;height:100%}
.svc__title{font-family:var(--font-title);font-size:18px;margin-bottom:var(--s-1)}
.svc__desc{font-size:13px;color:var(--text-2);line-height:1.5}
.svc--full{grid-column:1/-1}

/* =============================================================
   JORNADA (steps)
   ============================================================= */
.steps{display:flex;flex-direction:column;gap:0}
.step{display:grid;grid-template-columns:auto 1fr;gap:var(--s3);position:relative;padding-bottom:var(--s5)}
.step:last-child{padding-bottom:0}
.step__n{
  width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
  font-family:var(--font-title);font-size:18px;color:var(--accent);
  background:color-mix(in srgb,var(--accent) 10%,var(--surface));
  border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));z-index:1;
}
.step:not(:last-child)::before{
  content:"";position:absolute;left:20px;top:44px;bottom:8px;width:1px;
  background:var(--border);
}
.step__title{font-weight:600;font-size:16px;margin-top:8px}
.step__desc{font-size:14px;color:var(--text-2);margin-top:4px}

/* =============================================================
   CONTEÚDOS (carousel horizontal)
   ============================================================= */
.carousel{
  display:flex;gap:var(--s2);overflow-x:auto;scroll-snap-type:x mandatory;
  padding-bottom:var(--s2);margin-inline:calc(var(--s3) * -1);padding-inline:var(--s3);
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.carousel::-webkit-scrollbar{display:none}
.content-card{
  flex:0 0 72%;scroll-snap-align:start;background:var(--surface);
  border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow-s);
}
.content-card__thumb{width:100%;aspect-ratio:9/12;object-fit:cover;background:color-mix(in srgb,var(--accent) 8%,var(--surface))}
.content-card__b{padding:var(--s2)}
.content-card__type{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-weight:700}
.content-card__title{font-size:14px;margin-top:4px;line-height:1.35}

/* =============================================================
   DEPOIMENTOS (quote) — com salvaguardas de privacidade
   ============================================================= */
.quotes{display:flex;flex-direction:column;gap:var(--s2)}
.quote{
  padding:var(--s4) var(--s3);background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);box-shadow:var(--shadow-s);position:relative;
}
.quote__mark{font-family:var(--font-title);font-size:56px;line-height:.5;color:color-mix(in srgb,var(--accent) 45%,var(--border));height:24px}
.quote__text{font-size:15px;color:var(--text);font-style:normal}
.quote__who{display:flex;align-items:center;gap:var(--s2);margin-top:var(--s3)}
.quote__avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;background:color-mix(in srgb,var(--accent) 14%,var(--surface));
  display:grid;place-items:center;color:var(--accent);font-family:var(--font-title);font-size:18px}
.quote__name{font-weight:600;font-size:14px}
.quote__ctx{font-size:12px;color:var(--text-2)}
.quotes__note{font-size:11px;color:var(--text-2);text-align:center;margin-top:var(--s2)}

/* =============================================================
   LOCAIS
   ============================================================= */
.places{display:flex;flex-direction:column;gap:var(--s2)}
.place{
  padding:var(--s3);background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);box-shadow:var(--shadow-s);
}
.place__name{font-family:var(--font-title);font-size:19px;margin-bottom:var(--s1)}
.place__row{display:flex;gap:8px;align-items:flex-start;font-size:14px;color:var(--text-2);margin-top:6px}
.place__row svg{width:16px;height:16px;flex:none;margin-top:2px;color:var(--accent)}
.place__actions{display:flex;gap:var(--s1);margin-top:var(--s3)}
.place__actions .btn{flex:1;padding:10px 14px;font-size:14px}

/* =============================================================
   FAQ (accordion)
   ============================================================= */
.faq{display:flex;flex-direction:column;gap:var(--s1)}
.faq__item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.faq__q{
  width:100%;display:flex;justify-content:space-between;align-items:center;gap:var(--s2);
  padding:16px 18px;font-weight:600;font-size:15px;text-align:left;
}
.faq__q:hover{color:var(--accent)}
.faq__ic{flex:none;transition:transform .25s var(--ease);color:var(--accent)}
.faq__item[aria-expanded="true"] .faq__ic{transform:rotate(45deg)}
.faq__a{max-height:0;overflow:hidden;transition:max-height .3s var(--ease)}
.faq__a-inner{padding:0 18px 18px;font-size:14px;color:var(--text-2);line-height:1.6}
@media (prefers-reduced-motion:reduce){.faq__a{transition:none}}

/* =============================================================
   CONTATO / rodapé social
   ============================================================= */
.social{display:flex;justify-content:center;gap:var(--s2);flex-wrap:wrap}
.social a{
  width:48px;height:48px;border-radius:50%;display:grid;place-items:center;
  background:var(--surface);border:1px solid var(--border);color:var(--text);
  transition:transform .18s var(--ease),color .18s,border-color .18s;
}
.social a:hover{transform:translateY(-3px);color:var(--accent);border-color:var(--accent)}
.social svg{width:22px;height:22px}
.foot{text-align:center;margin-top:var(--s7);color:var(--text-2);font-size:12px;line-height:1.6}
.foot a{color:var(--text-2);text-decoration:underline;text-underline-offset:2px}

/* =============================================================
   CTA flutuante (WhatsApp)
   ============================================================= */
.fab{
  position:fixed;right:16px;bottom:16px;z-index:40;
  display:inline-flex;align-items:center;gap:8px;
  padding:12px 18px;border-radius:100px;background:var(--accent);color:var(--btn-text);
  font-weight:600;font-size:14px;box-shadow:var(--shadow-m);
  transform:translateY(120%);transition:transform .4s var(--ease),background .2s;
}
.fab.is-visible{transform:translateY(0)}
.fab:hover{background:var(--accent-hover)}
.fab svg{width:20px;height:20px}
@media (prefers-reduced-motion:reduce){.fab{transition:none}}

/* barra de progresso de rolagem */
.progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:50;
  background:var(--accent);transition:width .1s linear}

/* =============================================================
   ANIMAÇÕES DE ENTRADA (scroll reveal)
   ============================================================= */
[data-reveal]{opacity:0;transform:translateY(18px);
  transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}
[data-reveal].is-in{opacity:1;transform:none}
[data-reveal][data-reveal="scale"]{transform:scale(.96)}
[data-reveal][data-reveal="scale"].is-in{transform:none}
@media (prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1!important;transform:none!important;transition:none!important}
}

/* =============================================================
   CONSENTIMENTO (LGPD) — exibido só se consent_ativo=1
   ============================================================= */
.consent{
  position:fixed;left:16px;right:16px;bottom:16px;z-index:60;max-width:var(--maxw);
  margin-inline:auto;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius);box-shadow:var(--shadow-m);padding:var(--s3);
  transform:translateY(160%);transition:transform .4s var(--ease)}
.consent.is-visible{transform:none}
.consent p{font-size:13px;color:var(--text-2);margin-bottom:var(--s2)}
.consent__row{display:flex;gap:var(--s1)}
.consent .btn{flex:1;padding:10px 14px;font-size:14px}

/* =============================================================
   RESPONSIVO
   ============================================================= */
@media (min-width:520px){
  .content-card{flex-basis:52%}
}
@media (min-width:600px){
  :root{--maxw:560px}
  .hero__cta{flex-direction:row;justify-content:center}
  .hero__cta .btn{flex:0 1 auto}
}

/* utilitário */
.center{text-align:center}
.mt-3{margin-top:var(--s3)}
.hidden{display:none!important}

/* ---------- Acessibilidade (M4) ---------- */
.skip{position:absolute;left:-9999px;top:0;z-index:1000;background:var(--accent,#0B5DBC);color:#fff;
  padding:10px 16px;border-radius:0 0 8px 0;font-weight:600;text-decoration:none}
.skip:focus{left:0}
:focus-visible{outline:3px solid var(--accent,#0B5DBC);outline-offset:2px;border-radius:4px}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
