/* ==========================================================================
   Estética Andreza Oliveira · Centro, Rio de Janeiro
   Padrão PROMPT-NOVO v2 · paleta medida do retrato do hero
   ========================================================================== */

/* ---------- Design tokens ---------- */
:root{
  --paper:#F7F1E7;
  --paper-2:#EFE3D2;
  --areia:#DCB58D;
  --amber:#A28060;
  --amber-hi:#BE9F7B;
  --carvao:#1A1F1B;
  --carvao-2:#2E332D;
  --tinta:#14201C;
  --creme:#F3EADA;
  --marfim:#FBF7EF;
  --linha:rgba(162,128,96,.28);

  /* gradientes: ESTILO fixo do padrão, CORES da paleta do hero */
  --grad-hero:linear-gradient(165deg,#141814 0%,#1A1F1B 46%,#232921 100%);
  --grad-dark:linear-gradient(165deg,#1A1F1B 0%,#22271F 52%,#2E332D 100%);
  --grad-soft:linear-gradient(130deg,oklch(0.965 0.016 78) 0%,oklch(0.945 0.022 74) 52%,oklch(0.918 0.030 70) 100%);
  --grad-paper:linear-gradient(130deg,oklch(0.972 0.012 80) 0%,oklch(0.955 0.018 76) 60%,oklch(0.938 0.022 72) 100%);
  --grad-accent:linear-gradient(115deg,#8E6B4C 0%,#A28060 44%,#BE9F7B 100%);
  --grad-btn:linear-gradient(115deg,#63492F 0%,#7A5A40 46%,#8A6849 100%);
  --grad-metal:linear-gradient(115deg,#A28060 0%,#D4B08A 38%,#8E6B4C 72%,#BE9F7B 100%);
  --grad-line:linear-gradient(90deg,rgba(162,128,96,0) 0%,rgba(162,128,96,.55) 50%,rgba(162,128,96,0) 100%);
  --grad-cta:linear-gradient(115deg,#1F271F 0%,#2A3128 100%);

  --shadow-1:0 1px 2px rgba(20,32,28,.06),0 6px 18px rgba(20,32,28,.06);
  --shadow-2:0 18px 44px rgba(20,32,28,.16);
  --shadow-photo:0 30px 70px rgba(15,22,18,.38);

  --r-sm:10px;
  --r-md:16px;
  --r-lg:26px;

  --wrap:1180px;
  --header-h:78px;
  --cookie-h:0px;

  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--sans);
  font-size:clamp(1rem,.96rem + .2vw,1.075rem);
  line-height:1.68;
  color:var(--tinta);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.12;letter-spacing:-.01em;margin:0}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0;list-style:none}
button{font:inherit;color:inherit;cursor:pointer}
[hidden]{display:none !important}
:focus-visible{outline:2px solid var(--amber);outline-offset:3px;border-radius:4px}

.skip-link{
  position:absolute;left:-999px;top:0;z-index:200;
  background:var(--carvao);color:var(--marfim);padding:.7rem 1.1rem;border-radius:0 0 var(--r-sm) 0;
}
.skip-link:focus{left:0}

.wrap{width:min(var(--wrap),92vw);margin-inline:auto}

/* ---------- Botões ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  min-height:52px;padding:.85rem 1.5rem;
  font-family:var(--sans);font-size:.94rem;font-weight:500;letter-spacing:.02em;
  border:1px solid transparent;border-radius:999px;
  text-decoration:none;transition:transform .25s ease,box-shadow .25s ease,background-color .25s ease,color .25s ease;
}
.btn--lg{min-height:58px;padding:1rem 2rem;font-size:1rem}
.btn--primary{background:var(--grad-btn);color:#FFF9F0;box-shadow:var(--shadow-1)}
.btn--primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}
.btn--ghost{background:transparent;border-color:var(--linha);color:var(--amber)}
.btn--ghost:hover{background:rgba(162,128,96,.1)}
/* sobre fundo ESCURO o ghost precisa clarear (o amber sobre carvão fica apagado) */
.bg-grad-main .btn--ghost,.bg-dark .btn--ghost{color:var(--areia);border-color:rgba(220,181,141,.5)}
.bg-grad-main .btn--ghost:hover,.bg-dark .btn--ghost:hover{background:rgba(220,181,141,.16);color:var(--marfim);border-color:rgba(220,181,141,.7)}
.btn--outline{background:transparent;border-color:var(--amber);color:var(--amber)}
.btn--outline:hover{background:var(--amber);color:#FFF9F0}

.ico-wa{width:1.05em;height:1.05em;flex:0 0 auto;background-color:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.04 2C6.58 2 2.13 6.45 2.13 11.91c0 1.75.46 3.46 1.32 4.96L2 22l5.25-1.38c1.45.79 3.08 1.21 4.79 1.21 5.46 0 9.91-4.45 9.91-9.91C21.95 6.45 17.5 2 12.04 2zm5.79 14.02c-.24.68-1.4 1.3-1.94 1.35-.54.05-1.04.24-3.5-.73-2.96-1.17-4.8-4.23-4.95-4.43-.15-.2-1.17-1.55-1.17-2.96 0-1.41.73-2.1 1-2.39.26-.29.57-.36.76-.36.19 0 .39 0 .55.01.18.01.42-.07.65.5.24.58.81 1.99.88 2.13.07.15.12.32.02.51-.1.2-.15.32-.29.49-.15.17-.31.39-.44.52-.15.15-.3.31-.13.6.17.29.76 1.25 1.63 2.03 1.12 1 2.06 1.31 2.35 1.46.29.15.46.12.63-.07.17-.2.73-.85.92-1.14.19-.29.39-.24.65-.15.26.1 1.67.79 1.96.93.29.15.48.22.55.34.07.12.07.7-.17 1.38z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.04 2C6.58 2 2.13 6.45 2.13 11.91c0 1.75.46 3.46 1.32 4.96L2 22l5.25-1.38c1.45.79 3.08 1.21 4.79 1.21 5.46 0 9.91-4.45 9.91-9.91C21.95 6.45 17.5 2 12.04 2zm5.79 14.02c-.24.68-1.4 1.3-1.94 1.35-.54.05-1.04.24-3.5-.73-2.96-1.17-4.8-4.23-4.95-4.43-.15-.2-1.17-1.55-1.17-2.96 0-1.41.73-2.1 1-2.39.26-.29.57-.36.76-.36.19 0 .39 0 .55.01.18.01.42-.07.65.5.24.58.81 1.99.88 2.13.07.15.12.32.02.51-.1.2-.15.32-.29.49-.15.17-.31.39-.44.52-.15.15-.3.31-.13.6.17.29.76 1.25 1.63 2.03 1.12 1 2.06 1.31 2.35 1.46.29.15.46.12.63-.07.17-.2.73-.85.92-1.14.19-.29.39-.24.65-.15.26.1 1.67.79 1.96.93.29.15.48.22.55.34.07.12.07.7-.17 1.38z'/%3E%3C/svg%3E") center/contain no-repeat}

/* ---------- Header ---------- */
.site-header-wrap{position:sticky;top:0;z-index:90}
.site-header{
  background:rgba(20,24,20,.82);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(162,128,96,.22);
  transition:transform .4s ease,background-color .4s ease;
}
.site-header.is-hidden,.site-header.is-scrolled.is-hidden{transform:translateY(-102%)}
.site-header.is-scrolled{background:rgba(20,24,20,.94);box-shadow:0 10px 30px rgba(15,22,18,.24)}
.header-inner{
  width:min(var(--wrap),94vw);margin-inline:auto;
  min-height:var(--header-h);display:flex;align-items:center;gap:1.2rem;
}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--marfim);flex:0 0 auto}
.brand-mark{color:var(--areia);display:grid;place-items:center}
.brand-text{display:flex;flex-direction:column;line-height:1.12}
.brand-text strong{font-family:var(--serif);font-size:1.22rem;font-weight:500;letter-spacing:.01em}
.brand-text small{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--areia);opacity:.9}

.main-nav{margin-left:auto}
.main-nav ul{display:flex;align-items:center;gap:1.15rem}
.main-nav a{
  text-decoration:none;color:rgba(247,241,231,.84);font-size:.9rem;
  white-space:nowrap;padding:.4rem .1rem;position:relative;transition:color .2s ease;
}
.main-nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:var(--grad-metal);transform:scaleX(0);transform-origin:left;transition:transform .3s ease;
}
.main-nav a:hover{color:var(--marfim)}
.main-nav a:hover::after{transform:scaleX(1)}

.header-cta{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:.45rem;
  min-height:44px;padding:.6rem 1.25rem;border-radius:999px;
  background:var(--grad-btn);color:#FFF9F0;font-size:.88rem;font-weight:500;
  text-decoration:none;white-space:nowrap;box-shadow:var(--shadow-1);
}
.nav-toggle{
  display:none;flex:0 0 auto;width:46px;height:46px;background:transparent;
  border:1px solid rgba(162,128,96,.35);border-radius:12px;
  flex-direction:column;align-items:center;justify-content:center;gap:5px;
}
.nav-toggle-bar{display:block;width:20px;height:2px;background:var(--marfim);transition:transform .3s ease,opacity .25s ease}
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] .nav-toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.mobile-menu{background:var(--grad-dark);border-top:1px solid rgba(162,128,96,.2);padding:1rem 0 1.4rem}
.mobile-menu ul{width:min(var(--wrap),92vw);margin-inline:auto;display:grid;gap:.2rem}
.mobile-menu a{
  display:block;padding:.85rem .2rem;min-height:48px;
  color:rgba(247,241,231,.9);text-decoration:none;font-size:1.02rem;
  border-bottom:1px solid rgba(162,128,96,.14);
}
.mobile-cta{
  margin-top:.9rem;background:var(--grad-btn);color:#FFF9F0 !important;
  border-radius:999px;text-align:center;border-bottom:0 !important;font-weight:500;
}

/* ---------- Sistema de seção ---------- */
.section{position:relative;padding:clamp(4.2rem,8.5svh,7.4rem) 0}
.bg-paper{background:var(--grad-paper)}
.bg-grad-soft{background:var(--grad-soft)}
.bg-dark{background:var(--grad-dark)}
.bg-grad-main{background:var(--grad-hero)}
.section::after{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--grad-line);
}
.section-head{position:relative;max-width:52rem;margin-bottom:clamp(2rem,4.5svh,3.2rem)}
.section-num{
  position:absolute;top:-.55em;left:-.06em;z-index:-1;
  font-family:var(--serif);font-size:clamp(4.6rem,11vw,8.4rem);line-height:1;
  color:var(--amber);opacity:.13;pointer-events:none;user-select:none;
}
.section-kicker{
  font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;
  color:#7A5C40;font-weight:600;margin:0 0 .75rem;
}
.bg-dark .section-kicker,.bg-grad-main .section-kicker,.section--cta .section-kicker{color:var(--areia)}
.section-title{font-size:clamp(1.85rem,1.3rem + 2.4vw,3.05rem);color:var(--tinta)}
/* em fundo ESCURO o título tem de ser marfim (o tinta some no carvão) */
.bg-dark .section-title,.bg-grad-main .section-title,.section--cta .section-title{color:var(--marfim)}
.bg-dark .section-kicker,.bg-grad-main .section-kicker,.section--cta .section-kicker{color:var(--areia)}
.bg-dark .section-num,.bg-grad-main .section-num{color:var(--areia);opacity:.16}
.section-lead{margin-top:1rem;color:#4A4A40;max-width:44rem}
.bg-dark .section-lead,.bg-grad-main .section-lead{color:rgba(243,234,218,.8)}

/* reveal */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}
.reveal.is-in{opacity:1;transform:none}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;padding:clamp(3.4rem,7svh,5.6rem) 0 0;color:var(--creme)}
.ghost-mark{
  position:absolute;bottom:4%;left:-3%;z-index:0;
  font-family:var(--serif);font-style:italic;font-size:clamp(5.5rem,14vw,13rem);
  line-height:1;color:rgba(220,181,141,.05);pointer-events:none;user-select:none;
}
.ghost-mark--center{top:auto;bottom:-12%;right:auto;left:50%;transform:translateX(-50%);font-size:clamp(8rem,22vw,18rem)}
.grain{
  position:absolute;inset:0;z-index:1;opacity:.35;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
  animation:grainShift 9s steps(6) infinite;
}
.glow{position:absolute;z-index:0;pointer-events:none;border-radius:50%;filter:blur(60px)}
.glow--text{top:6%;left:-8%;width:44vw;height:44vw;background:radial-gradient(circle,rgba(162,128,96,.34) 0%,rgba(162,128,96,0) 68%)}
.glow--photo{bottom:-8%;right:2%;width:38vw;height:38vw;background:radial-gradient(circle,rgba(212,176,138,.22) 0%,rgba(212,176,138,0) 70%)}

.hero-inner{
  position:relative;z-index:2;width:min(var(--wrap),92vw);margin-inline:auto;
  display:grid;grid-template-columns:1.06fr .94fr;gap:clamp(2rem,5vw,4.4rem);align-items:center;
  padding-bottom:clamp(2.6rem,6svh,4rem);
}
.hero-kicker{font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--areia);margin:0 0 1.1rem}
.hero-title{font-size:clamp(2.35rem,1.4rem + 4.2vw,4.3rem);color:var(--marfim)}
.hero-title em{font-style:italic;color:var(--areia)}
.hero-sub{margin-top:1.25rem;max-width:34rem;color:rgba(243,234,218,.86);font-weight:300}
.hero-chips{display:flex;flex-wrap:wrap;gap:.55rem;margin:1.6rem 0 0}
.hero-chips li{
  padding:.42rem 1rem;border:1px solid rgba(162,128,96,.4);border-radius:999px;
  font-size:.82rem;color:var(--areia);background:rgba(162,128,96,.07);
}
.hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.9rem}
.hero-tel{margin-top:1.3rem;font-size:.94rem;color:rgba(243,234,218,.72)}
.hero-tel a{color:var(--areia);text-decoration:none;border-bottom:1px solid rgba(162,128,96,.5)}

.hero-photo{position:relative;display:flex;flex-direction:column;align-items:center}
.portrait-frame{
  position:relative;width:min(100%,420px);aspect-ratio:2/3;
  border-radius:52% 52% 22px 22px / 34% 34% 22px 22px;
  overflow:hidden;border:1px solid rgba(162,128,96,.4);
  box-shadow:var(--shadow-photo);
  background:var(--grad-dark);
}
.portrait-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 24%}
.portrait-frame::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(26,31,27,0) 52%,rgba(26,31,27,.55) 100%);
}
.hero-proof{
  position:relative;margin-top:1.15rem;text-align:center;
  font-size:.86rem;color:rgba(243,234,218,.82);
}
.hero-proof strong{color:var(--marfim)}
.proof-stars{color:var(--areia);letter-spacing:.14em;margin-right:.35rem}
.proof-sep{margin:0 .45rem;opacity:.5}

.marquee{position:relative;z-index:2;overflow:hidden;border-top:1px solid rgba(162,128,96,.22);padding:.85rem 0;background:rgba(0,0,0,.16)}
.marquee-track{display:flex;gap:1.5rem;white-space:nowrap;width:max-content;animation:marquee 38s linear infinite}
.marquee-track span{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(220,181,141,.86)}

/* ---------- A especialista ---------- */
.about-grid{display:grid;grid-template-columns:1.45fr .85fr;gap:clamp(2rem,4.5vw,3.6rem);align-items:start}
.about-body .lead{font-size:1.14rem;color:var(--tinta)}
.about-body p{color:#43433A}
.creds{display:grid;gap:.6rem;margin:1.6rem 0}
.creds li{position:relative;padding-left:1.6rem;font-size:.96rem;color:#3D3D34}
.creds li::before{
  content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;border-radius:50%;
  background:var(--grad-accent);
}
.about-quote{margin:1.8rem 0;padding:1.4rem 1.6rem;border-left:2px solid var(--amber);background:rgba(162,128,96,.07);border-radius:0 var(--r-md) var(--r-md) 0}
.about-quote p{font-family:var(--serif);font-style:italic;font-size:1.4rem;color:var(--tinta);margin:0}
.about-quote cite{display:block;margin-top:.5rem;font-style:normal;font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;color:var(--amber)}
.about-actions{display:flex;flex-wrap:wrap;gap:.75rem}
.side-card{background:var(--grad-dark);color:var(--creme);padding:1.9rem 1.7rem;border-radius:var(--r-lg);box-shadow:var(--shadow-2)}
.side-title{font-family:var(--serif);font-size:1.4rem;color:var(--marfim);margin-bottom:1rem}
.side-list{display:grid;gap:.75rem}
.side-list li{padding-left:1.5rem;position:relative;font-size:.95rem;color:rgba(243,234,218,.86)}
.side-list li::before{content:"";position:absolute;left:0;top:.68em;width:7px;height:7px;border-radius:50%;background:var(--areia)}
.side-note{margin:1.3rem 0 0;font-size:.84rem;color:rgba(220,181,141,.82)}

/* ---------- Estante (padrão Zanetti) ---------- */
.shelf-stage{position:relative;margin-top:.5rem}
.shelf-row{
  display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(.7rem,1.5vw,1.15rem);
  align-items:end;perspective:1600px;
}
.book-card{
  position:relative;aspect-ratio:3/4;cursor:pointer;border:0;background:none;padding:0;
  transition:transform .5s cubic-bezier(.2,.7,.3,1),opacity .45s ease,filter .45s ease;
  transform-origin:bottom center;
}
.book-card:focus-visible{outline:2px solid var(--amber);outline-offset:4px;border-radius:8px}
.book-3d{position:relative;width:100%;height:100%;transform-style:preserve-3d;transform:rotateY(-29deg);transition:transform .6s cubic-bezier(.2,.7,.3,1)}
.book-card:hover .book-3d{transform:rotateY(-16deg) translateY(-8px)}
.book-spine{
  position:absolute;left:0;top:0;bottom:0;width:12px;transform:translateX(-11px) rotateY(90deg);
  transform-origin:right center;background:var(--grad-accent);
}
.front-cover{
  position:absolute;inset:0;width:100%;height:100%;
  border-radius:4px 8px 8px 4px;overflow:hidden;
  background-color:var(--cover-color,#1A1F1B);
  background-image:var(--cover-img);background-size:cover;background-position:center;
  box-shadow:0 14px 30px rgba(18,24,20,.34),inset 0 0 0 1px rgba(247,241,231,.12);
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:1rem .85rem .9rem;
}
.front-cover::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,24,20,.18) 0%,rgba(20,24,20,.62) 58%,rgba(20,24,20,.88) 100%);
}
.front-cover>*{position:relative;z-index:1}
.cover-kicker{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--areia);margin-bottom:.3rem}
.cover-title{font-family:var(--serif);font-size:clamp(.92rem,.6rem + .75vw,1.24rem);line-height:1.16;color:var(--marfim)}
.cover-sub{display:block;margin-top:.35rem;font-size:.66rem;letter-spacing:.05em;color:rgba(243,234,218,.72)}
.cover-foot{margin-top:.6rem;font-size:.55rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(220,181,141,.78)}

/* seleção: os OUTROS somem e o escolhido cresce, centralizado */
.shelf-row.has-selection{grid-template-columns:1fr;justify-items:center}
.shelf-row.has-selection .book-card{grid-column:1;grid-row:1}
.shelf-row.has-selection .book-card.is-selected{width:min(320px,58%);z-index:2}
.shelf-row.has-selection .book-card:not(.is-selected){opacity:0;transform:translateY(26px) scale(.9);pointer-events:none}
.shelf-row .book-card.is-selected .book-3d{transform:rotateY(-6deg) translateY(-12px)}
.shelf-row .book-card.is-selected{opacity:1}

/* painel do livro */
.book-panel{
  position:relative;margin-top:2rem;padding:clamp(1.6rem,3.5vw,2.6rem);
  background:var(--grad-dark);color:var(--creme);border-radius:var(--r-lg);
  box-shadow:var(--shadow-2);border:1px solid rgba(162,128,96,.24);
  animation:fadeUp .45s ease both;
}
.book-panel-close{
  position:absolute;top:.85rem;right:.85rem;width:44px;height:44px;
  background:transparent;border:1px solid rgba(162,128,96,.4);border-radius:50%;
  color:var(--creme);font-size:1.4rem;line-height:1;display:grid;place-items:center;
}
.bp-kicker{font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--areia);margin:0 0 .55rem}
.bp-title{font-family:var(--serif);font-size:clamp(1.5rem,1.1rem + 1.3vw,2.15rem);color:var(--marfim)}
.bp-desc{margin:1rem 0 1.2rem;color:rgba(243,234,218,.86);max-width:46rem}
.bp-list{display:grid;gap:.6rem;margin-bottom:1.2rem}
.bp-list li{padding-left:1.5rem;position:relative;font-size:.95rem;color:rgba(243,234,218,.84)}
.bp-list li::before{content:"";position:absolute;left:0;top:.68em;width:7px;height:7px;border-radius:50%;background:var(--areia)}
.bp-note{margin:0 0 1.5rem;font-size:.85rem;color:rgba(220,181,141,.8);max-width:46rem;padding-left:1rem;border-left:2px solid rgba(162,128,96,.34)}

/* ---------- Caderno 3D / etapas ---------- */
.caderno-host{height:clamp(210px,32svh,330px);margin-bottom:2.4rem;border-radius:var(--r-lg);
  background:var(--grad-soft);border:1px solid var(--linha);display:grid;place-items:center;overflow:hidden;position:relative}
.caderno-host canvas,.caderno-host img{max-height:100%}
.etapas{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.9rem,2vw,1.4rem);counter-reset:et}
.etapa{
  position:relative;background:var(--grad-paper);border:1px solid var(--linha);
  border-radius:var(--r-md);padding:1.7rem 1.35rem 1.5rem;box-shadow:var(--shadow-1);
}
.etapa-num{
  display:grid;place-items:center;width:38px;height:38px;border-radius:50%;
  background:var(--grad-btn);color:#FFF9F0;font-family:var(--serif);font-size:1.15rem;
  margin-bottom:.95rem;
}
.etapa h3{font-size:1.16rem;color:var(--tinta);margin-bottom:.5rem}
.etapa p{font-size:.92rem;color:#4A4A40;margin:0}

/* ---------- Intervencionista ---------- */
.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(.9rem,2vw,1.5rem)}
.feature{
  background:var(--grad-paper);border:1px solid var(--linha);border-radius:var(--r-md);
  padding:1.7rem 1.5rem;box-shadow:var(--shadow-1);position:relative;overflow:hidden;
}
.feature::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--grad-metal)}
.feature h3{font-size:1.22rem;color:var(--tinta);margin-bottom:.55rem}
.feature p{font-size:.94rem;color:#4A4A40;margin:0}
.disclaimer{
  margin:1.7rem 0 0;font-size:.86rem;color:#5A5A50;max-width:52rem;
  padding-left:1.1rem;border-left:2px solid var(--linha);
}

/* ---------- Depoimentos ---------- */
/* setas FORA dos cards (com padding no track) para nao cobrir o texto */
.testi{position:relative;--testi-gap:28px;padding:0 56px}
.testi-nav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:48px;height:48px;border-radius:50%;border:1px solid rgba(162,128,96,.4);
  background:rgba(26,31,27,.72);color:var(--creme);font-size:1.5rem;line-height:1;
  display:grid;place-items:center;backdrop-filter:blur(6px);
}
.testi-nav--prev{left:0}
.testi-nav--next{right:0}
.testi-track{
  display:flex;gap:var(--testi-gap);overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none;padding-bottom:.5rem;
}
.testi-track::-webkit-scrollbar{display:none}
.testi-slide{
  flex:0 0 100%;scroll-snap-align:start;
  background:linear-gradient(165deg,rgba(243,234,218,.09) 0%,rgba(243,234,218,.045) 100%);
  border:1px solid rgba(162,128,96,.28);border-radius:var(--r-md);
  padding:1.7rem 1.5rem;display:flex;flex-direction:column;gap:.85rem;
  min-height:230px;
}
.testi-stars{color:var(--areia);letter-spacing:.16em;font-size:.95rem}
.testi-text{margin:0;flex:1}
.testi-text p{margin:0;font-family:var(--serif);font-size:1.14rem;line-height:1.5;color:var(--creme)}
.testi-foot cite{font-style:normal;font-size:.84rem;letter-spacing:.1em;text-transform:uppercase;color:var(--areia)}
.testi-bottom{margin-top:1.5rem;display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.6rem;justify-content:space-between}
.testi-dots{display:flex;gap:.4rem;flex-wrap:wrap}
.testi-dots button{
  width:44px;height:44px;border:0;background:transparent;display:grid;place-items:center;padding:0;
}
.testi-dots button::before{
  content:"";width:9px;height:9px;border-radius:50%;background:rgba(220,181,141,.32);
  transition:background-color .25s ease,transform .25s ease;
}
.testi-dots button.is-on::before{background:var(--areia);transform:scale(1.35)}
.testi-seal{font-size:.86rem;color:rgba(243,234,218,.78);margin:0}
.testi-seal span{color:var(--areia);letter-spacing:.12em;margin-right:.3rem}
.testi-seal a{color:var(--areia);text-decoration:none;border-bottom:1px solid rgba(162,128,96,.5);margin-left:.4rem}

/* ---------- FAQ ---------- */
.faq-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.85rem;align-items:start}
.faq-item{
  background:var(--grad-paper);border:1px solid var(--linha);border-radius:var(--r-md);
  overflow:hidden;box-shadow:var(--shadow-1);
}
.faq-item summary{
  cursor:pointer;list-style:none;padding:1.15rem 3rem 1.15rem 1.35rem;
  font-family:var(--serif);font-size:1.1rem;color:var(--tinta);position:relative;min-height:56px;
}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{
  content:"+";position:absolute;right:1.15rem;top:50%;transform:translateY(-50%);
  font-size:1.4rem;color:var(--amber);transition:transform .3s ease;
}
.faq-item[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq-body{padding:0 1.35rem 1.25rem}
.faq-body p{margin:0;font-size:.94rem;color:#4A4A40}

/* ---------- Onde atendo ---------- */
.where-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.6rem,3.5vw,3rem);align-items:start}
.where-addr{font-size:1.02rem;color:#3D3D34;line-height:1.7}
.where-addr strong{font-family:var(--serif);font-size:1.24rem;color:var(--tinta)}
.where-ref{color:#4A4A40;font-size:.95rem;max-width:32rem}
.hours{display:grid;gap:.25rem;margin:1.4rem 0 1.6rem;max-width:26rem}
.hours li{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--linha);font-size:.94rem}
.hours li span:last-child{color:var(--amber);font-weight:500}
.hours li.closed span:last-child{color:#8A8A7E;font-weight:400}
.where-actions{display:flex;flex-wrap:wrap;gap:.7rem}
.copy-ok{margin-top:.9rem;font-size:.9rem;color:var(--amber)}
.map-frame{
  position:relative;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--linha);
  min-height:clamp(300px,44svh,420px);display:grid;place-items:center;
  background:var(--grad-soft);box-shadow:var(--shadow-1);
}
.map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map-consent{padding:2rem 1.6rem;text-align:center;max-width:26rem}
.map-consent p{font-size:.92rem;color:#4A4A40;margin-bottom:1.2rem}

/* ---------- Contato ---------- */
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.4rem;max-width:52rem}
.field{display:flex;flex-direction:column;gap:.45rem}
.field--full{grid-column:1 / -1}
.field label{font-size:.85rem;letter-spacing:.06em;text-transform:uppercase;color:#5A5A50;font-weight:500}
.field input,.field select,.field textarea{
  font:inherit;font-size:1rem;color:var(--tinta);background:#FFFDF8;
  border:1px solid var(--linha);border-radius:var(--r-sm);padding:.85rem 1rem;min-height:52px;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--amber);box-shadow:0 0 0 3px rgba(162,128,96,.18);
}
.field--check{flex-direction:row;align-items:flex-start;gap:.7rem}
.field--check input{width:22px;height:22px;min-height:22px;margin-top:.3rem;accent-color:var(--amber);flex:0 0 auto}
.field--check label{text-transform:none;letter-spacing:0;font-size:.9rem;color:#4A4A40;line-height:1.6}
.field--check a{color:var(--amber)}
.form-actions{align-items:flex-start}
.form-hint{font-size:.84rem;color:#6A6A60;margin:.6rem 0 0}
.form-erro{margin:.4rem 0 0;font-size:.92rem;color:#9A3B2C}

/* ---------- CTA final ---------- */
.section--cta{text-align:center;color:var(--creme);overflow:hidden}
.section--cta .wrap{position:relative;z-index:2}
.cta-kicker{font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--areia);margin:0 0 1rem}
.cta-title{font-size:clamp(2rem,1.3rem + 3vw,3.4rem);color:var(--marfim)}
.cta-sub{margin:1.2rem auto 0;max-width:40rem;color:rgba(243,234,218,.84)}
.cta-actions{display:flex;flex-wrap:wrap;gap:.9rem;justify-content:center;margin-top:2rem}
.cta-info{display:flex;flex-wrap:wrap;gap:.7rem 1.8rem;justify-content:center;margin-top:2rem;font-size:.9rem;color:rgba(220,181,141,.86)}
.cta-info li{position:relative;padding-left:1.1rem}
.cta-info li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--areia)}
.cta-help{margin-top:1.8rem;font-size:.84rem;color:rgba(243,234,218,.6)}
.cta-help strong{color:var(--areia)}

/* ---------- Rodapé ---------- */
.site-footer{background:var(--grad-dark);color:rgba(243,234,218,.82);padding-top:clamp(3rem,6svh,4.4rem)}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:clamp(1.6rem,3.5vw,2.8rem)}
.footer-brand{font-family:var(--serif);font-size:1.35rem;color:var(--marfim);margin:0 0 .8rem}
.footer-about{font-size:.92rem;color:rgba(243,234,218,.72)}
.footer-cnpj{font-size:.8rem;letter-spacing:.08em;color:rgba(220,181,141,.78);margin:1rem 0 0}
.footer-title{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--areia);margin:0 0 1rem}
.footer-col ul{display:grid;gap:.55rem}
.footer-col li,.footer-col a{font-size:.92rem;color:rgba(243,234,218,.78);text-decoration:none}
.footer-col a:hover{color:var(--marfim)}
.footer-base{margin-top:clamp(2.4rem,5svh,3.4rem);border-top:1px solid rgba(162,128,96,.2);padding:1.4rem 0 calc(1.4rem + var(--cookie-h))}
.footer-base-inner{display:flex;flex-wrap:wrap;gap:.7rem 1.4rem;align-items:center;justify-content:space-between}
.footer-base p{margin:0;font-size:.82rem;color:rgba(243,234,218,.6)}
.footer-links{display:flex;gap:1.1rem}
.footer-links a{color:rgba(243,234,218,.7);text-decoration:none}
.footer-links a:hover{color:var(--marfim)}
.footer-credit{letter-spacing:.06em}

/* ---------- FAB / to-top ---------- */
.fab-wa{
  position:fixed;right:18px;bottom:calc(18px + var(--cookie-h));z-index:70;
  display:inline-flex;align-items:center;gap:.5rem;
  min-height:54px;padding:.8rem 1.15rem;border-radius:999px;
  background:var(--grad-btn);color:#FFF9F0;text-decoration:none;font-size:.9rem;font-weight:500;
  box-shadow:0 12px 30px rgba(20,32,28,.3);transition:transform .25s ease;
}
.fab-wa:hover{transform:translateY(-3px)}
.fab-wa .ico-wa{width:1.3em;height:1.3em}
.fab-label{display:inline}
.to-top{
  position:fixed;left:18px;bottom:calc(18px + var(--cookie-h));z-index:70;
  width:48px;height:48px;border-radius:50%;border:1px solid var(--linha);
  background:rgba(26,31,27,.82);color:var(--creme);font-size:1.2rem;
  display:grid;place-items:center;backdrop-filter:blur(6px);
}

/* ---------- Cookie bar ---------- */
.cookie-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:95;
  background:var(--grad-dark);color:var(--creme);
  border-top:1px solid rgba(162,128,96,.3);
  padding:.85rem clamp(1rem,4vw,1.5rem);
  display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.4rem;justify-content:center;
  box-shadow:0 -10px 30px rgba(20,32,28,.28);
}
.cookie-bar[hidden]{display:none !important}
.cookie-bar p{margin:0;font-size:.88rem;color:rgba(243,234,218,.86)}
.cookie-btns{display:flex;gap:.55rem;align-items:center}
.cookie-btns button{
  min-height:44px;padding:.55rem 1.15rem;border-radius:999px;font-size:.88rem;font-weight:500;
  border:1px solid rgba(162,128,96,.5);background:transparent;color:var(--creme);
}
.cookie-btns button[data-cookie="aceitar"]{background:var(--grad-btn);border-color:transparent;color:#FFF9F0}
.cookie-btns button[data-cookie="fechar"]{width:44px;padding:0;font-size:1.2rem}

/* ---------- CV modal ---------- */
.cv-modal{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:1rem;
  background:rgba(14,18,15,.72);backdrop-filter:blur(4px)}
.cv-card{
  position:relative;width:min(720px,94vw);max-height:88svh;overflow-y:auto;
  background:var(--grad-paper);border-radius:var(--r-lg);padding:clamp(1.6rem,3.5vw,2.6rem);
  box-shadow:var(--shadow-2);animation:fadeUp .35s ease both;
}
.cv-close{position:absolute;top:.9rem;right:.9rem;width:44px;height:44px;border-radius:50%;
  border:1px solid var(--linha);background:transparent;color:var(--tinta);font-size:1.4rem;display:grid;place-items:center}
.cv-head h2{font-size:1.9rem;color:var(--tinta)}
.cv-head p{font-size:.86rem;letter-spacing:.12em;text-transform:uppercase;color:var(--amber);margin:.4rem 0 0}
.cv-sec{margin-top:1.6rem}
.cv-sec h3{font-size:1.06rem;color:var(--tinta);margin-bottom:.4rem}
.cv-sec p,.cv-sec li{font-size:.95rem;color:#4A4A40}
.cv-sec ul{display:grid;gap:.4rem}
.cv-sec li{padding-left:1.3rem;position:relative}
.cv-sec li::before{content:"";position:absolute;left:0;top:.66em;width:6px;height:6px;border-radius:50%;background:var(--amber)}
.cv-foot{margin-top:1.8rem;display:flex;flex-wrap:wrap;gap:.9rem;align-items:center;justify-content:space-between}
.cv-foot-note{margin:0;font-size:.88rem;color:#5A5A50;max-width:22rem}

/* ---------- Animações ---------- */
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes grainShift{
  0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-2%)}
  75%{transform:translate(-2%,-1%)}100%{transform:translate(0,0)}
}
@keyframes floatSoft{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes glowPulse{0%,100%{opacity:.72}50%{opacity:1}}
.glow--text{animation:glowPulse 9s ease-in-out infinite}
.glow--photo{animation:glowPulse 11s ease-in-out infinite;animation-delay:1.5s}
.portrait-frame{animation:floatSoft 8s ease-in-out infinite}

/* =========================== Responsivo =========================== */
@media (max-width:1100px){
  .main-nav ul{gap:.85rem}
  .main-nav a{font-size:.85rem}
  .shelf-row{grid-template-columns:repeat(3,1fr);gap:1.1rem}
}

@media (max-width:900px){
  :root{--header-h:68px}
  .main-nav,.header-cta{display:none}
  .nav-toggle{display:flex}
  .hero-inner{grid-template-columns:1fr;gap:2.4rem}
  .hero-photo{order:-1}
  .portrait-frame{width:min(100%,340px)}
  .portrait-frame img{object-position:50% 22%}
  .about-grid,.where-grid,.feature-grid{grid-template-columns:1fr}
  .etapas{grid-template-columns:repeat(2,1fr)}
  .faq-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .contact-form{grid-template-columns:1fr}
  .testi{padding:0}
  .testi-nav{width:42px;height:42px;opacity:.92}
  .testi-nav--prev{left:2px}
  .testi-nav--next{right:2px}
  .footer-col a,.footer-col li,.footer-links a,.mobile-menu a,.creds li,.side-list li,.bp-list li,.cta-info li,.hours li{min-height:44px;display:flex;align-items:center}
  .footer-col ul{gap:.1rem}
  .footer-links{gap:.4rem;flex-wrap:wrap}
  .hours li{justify-content:space-between}
  .cta-info li{padding-left:1.1rem}
}

@media (min-width:901px){
  .testi-slide{flex:0 0 calc((100% - 56px) / 3)}
}

@media (max-width:640px){
  .shelf-row{grid-template-columns:repeat(2,1fr);gap:.85rem}
  .book-3d{transform:rotateY(-14deg)}
  .book-card:hover .book-3d{transform:rotateY(-8deg) translateY(-5px)}
  .etapas{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .fab-label{display:none}
  .fab-wa{padding:.9rem;min-width:54px;justify-content:center}
  .cookie-bar{padding:.75rem 1rem;gap:.55rem}
  .cookie-bar p{font-size:.8rem;text-align:center;width:100%}
  .cookie-btns{width:100%;justify-content:center}
  .hero-actions .btn{width:100%}
}

@media (max-width:420px){
  .brand-text small{display:none}
  .cover-title{font-size:.86rem}
  .cover-sub{display:none}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
  .ghost-mark,.grain{display:none}
}

@media print{
  .site-header-wrap,.fab-wa,.to-top,.cookie-bar,.marquee,.cv-modal{display:none !important}
  body{background:#fff;color:#000}
}
