/* Job 03: local type, warm analogous gradients, CSS state contract for job 04. */
@font-face{font-family:Inter;src:url('../assets/fonts/Inter-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Inter;src:url('../assets/fonts/Inter-500.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Inter;src:url('../assets/fonts/Inter-600.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Fraunces;src:url('../assets/fonts/Fraunces-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Fraunces;src:url('../assets/fonts/Fraunces-600.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Fraunces;src:url('../assets/fonts/Fraunces-Italic400.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap}
:root{
  color-scheme:dark;
  --noite:#211b1a;--noite-2:#2a2221;--noite-3:#171211;--noite-lift:#2e2523;
  --marfim:#f4ece7;--areia:#c9b3ac;--hero-body:#d9c8c0;
  --rose:#e4a9b3;--rose-claro:#efc3cb;--champagne:#d6a87f;--bronze:#9a6b52;--tinta:#2a1d1b;
  --linha:rgba(214,168,127,.22);--linha-forte:rgba(214,168,127,.42);
  --grad-hero:linear-gradient(102deg,#2e2523 0%,#241d1c 38%,#1f1a19 100%);
  --grad-dark:linear-gradient(165deg,#2a2221 0%,#211b1a 46%,#171211 100%);
  --grad-soft:linear-gradient(130deg,#29201f 0%,#2e2224 55%,#241b1c 100%);
  --grad-metal:linear-gradient(115deg,#9a6b52 0%,#d6a87f 38%,#efc3cb 68%,#d6a87f 100%);
  --grad-accent:linear-gradient(115deg,#d4b3a0 0%,#e4c9b5 45%,#efddd0 100%);
  --grad-line:linear-gradient(90deg,transparent,rgba(214,168,127,.4) 18%,rgba(228,169,179,.5) 55%,transparent);
  --sans:Inter,Arial,sans-serif;--serif:Fraunces,Georgia,serif;
  --gutter:clamp(22px,4.2vw,72px);--header-h:100px;--dock-space:88px;--cookie-h:0px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--header-h);background:var(--grad-dark)}
body{margin:0;background:var(--grad-dark);color:var(--areia);font-family:var(--sans);font-size:clamp(1rem,.95rem + .18vw,1.125rem);line-height:1.75;-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}
.cookie-bar[hidden],.cookie-card[hidden]{display:none!important}
img,svg{display:block;max-width:100%}
img{height:auto}
button,input,textarea,select{font-family:inherit;font-size:clamp(.875rem,.84rem + .12vw,1rem);color:inherit}
button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button{cursor:pointer}
a{color:var(--rose-claro);text-underline-offset:5px;text-decoration-thickness:1px;overflow-wrap:anywhere}
a:hover{color:var(--marfim)}
:focus-visible{outline:2px solid var(--rose-claro);outline-offset:5px}
::selection{background:var(--rose-claro);color:var(--tinta)}
h1,h2,h3,p,figure,blockquote,ul,ol,dl{margin:0}
h1,h2,h3{font-family:var(--serif);font-weight:400;color:var(--marfim);line-height:1.13;text-wrap:balance;overflow-wrap:anywhere}
h1{font-size:clamp(2.6rem,4.4vw,4.8rem);letter-spacing:-.045em}
h2{font-size:clamp(2rem,3.1vw,3.5rem);letter-spacing:-.035em}
h3{font-size:clamp(1.35rem,1.65vw,1.9rem);letter-spacing:-.02em}
p+p{margin-top:1.1em}
em{color:var(--rose-claro);font-weight:400}
address,cite{font-style:normal}
cite,figcaption,small{font-size:clamp(.75rem,.72rem + .16vw,.875rem)}
strong{font-weight:600;color:var(--marfim)}
.container{width:min(100% - var(--gutter)*2,1280px);margin-inline:auto;min-width:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.skip-link{position:fixed;left:16px;top:12px;z-index:100;transform:translateY(-160%);padding:12px 20px;background:var(--grad-accent);color:var(--tinta);border-radius:6px}
.skip-link:focus{transform:none}
/* This existing scroll wrapper reserves a real dock, not an overlay over content.
   JS should observe #page-scroll for scroll/header/reveal events. */
.page-scroll{height:calc(100vh - var(--dock-space));height:calc(100svh - var(--dock-space));overflow-y:auto;overflow-x:clip;scroll-behavior:smooth;scroll-padding-block:calc(var(--header-h) + 16px) 24px;scrollbar-color:var(--bronze) var(--noite);scrollbar-width:thin}
body:has(:is(.cookie-card,.cookie-bar):not([hidden])){--dock-space:128px;--cookie-h:110px}
#conteudo{outline:none}
.section{position:relative;padding-block:clamp(64px,10svh,130px);background:var(--grad-dark);scroll-margin-top:16px}
.section::after{content:"";position:absolute;inset:auto 0 0;height:1px;background:var(--grad-line);pointer-events:none}
.section-soft{background:var(--grad-soft)}
.section-dark{background:var(--grad-dark)}
.section-heading{max-width:850px;margin-bottom:clamp(28px,4svh,50px)}
.section-num{display:block;color:var(--champagne);font-size:clamp(.6875rem,.66rem + .1vw,.8125rem);letter-spacing:.22em;margin-bottom:14px;font-variant-numeric:tabular-nums}
.eyebrow{font-family:var(--sans);font-size:clamp(.6875rem,.63rem + .22vw,.875rem);font-weight:500;line-height:1.6;letter-spacing:.12em;text-transform:uppercase;color:var(--rose);margin-bottom:18px;text-wrap:pretty}
.section-lead,.section-lead+p,.service-copy>p,.editorial-copy>p,.booking-copy>p{max-width:760px}
.btn,.header-whatsapp{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:15px 24px;gap:10px;border:1px solid var(--linha-forte);border-radius:6px;text-decoration:none;text-align:center;font-size:clamp(.8125rem,.77rem + .16vw,.9375rem);font-weight:600;line-height:1.5;transition:transform .25s var(--ease),box-shadow .25s,filter .25s;background:var(--grad-dark)}
.btn-primary,.header-whatsapp{background:var(--grad-accent);color:var(--tinta);border-color:transparent;box-shadow:0 8px 24px rgba(23,18,17,.22),inset 0 1px rgba(244,236,231,.3)}
.btn-primary:hover,.header-whatsapp:hover{color:var(--tinta);filter:brightness(1.08);transform:translateY(-3px);box-shadow:0 12px 32px rgba(214,168,127,.17)}
.btn-secondary,.btn-ghost{color:var(--rose-claro)}
.btn-secondary:hover,.btn-ghost:hover{background:var(--grad-soft);border-color:var(--rose-claro);transform:translateY(-2px)}
.btn-lg{padding:19px 32px;font-size:clamp(.9375rem,.85rem + .2vw,1.125rem)}
/* Header states remain subordinate to an open navigation. */
.site-header{position:fixed;inset:0 0 auto;z-index:40;min-height:var(--header-h);padding-block:20px;border-bottom:1px solid transparent;background:linear-gradient(180deg,rgba(33,27,26,.96),rgba(33,27,26,.75));backdrop-filter:blur(16px);transition:transform .3s var(--ease),padding .3s,background .3s}
.header-inner{display:flex;align-items:center;gap:24px;justify-content:space-between}
.brand{flex-shrink:0;font-family:var(--serif);font-size:clamp(1.1rem,1.4vw,1.4rem);text-decoration:none;color:var(--marfim);line-height:1.3}
.brand-name,.brand-specialty{display:block}
.brand-specialty{font-family:var(--sans);font-size:clamp(.5625rem,.5rem + .12vw,.6875rem);color:var(--areia);letter-spacing:.04em;margin-top:7px}
.main-nav ul{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 17px;list-style:none;padding:0}
.main-nav a{display:inline-flex;align-items:center;min-height:44px;font-size:clamp(.6875rem,.62rem + .15vw,.8125rem);text-decoration:none;color:var(--areia)}
.main-nav a:hover,.main-nav a[aria-current]{color:var(--rose-claro)}
.header-whatsapp{flex-shrink:0;padding:12px 16px;font-size:clamp(.6875rem,.62rem + .14vw,.8125rem)}
.menu-toggle{display:none;width:44px;height:44px;flex-shrink:0;border:1px solid var(--linha);border-radius:6px;background:var(--grad-dark);padding:10px}
.menu-toggle span{display:block;height:1px;background:var(--marfim);margin:5px 0;transition:transform .2s,opacity .2s}
.site-header.is-scrolled{padding-block:12px;min-height:72px;background:var(--grad-dark);border-color:var(--linha)}
.site-header.is-hidden{transform:translateY(-105%)}
.site-header:has(.menu-toggle[aria-expanded="true"]),.site-header:has(.main-nav.is-open),body.menu-open .site-header,.site-header.is-menu-open{transform:none!important}
/* The supplied portrait is 1290 x 2292, not the example's 1440 x 1778.
   Contain and its intrinsic ratio preserve the actual head and hands. */
.hero{isolation:isolate;padding-top:calc(var(--header-h) + 32px);padding-bottom:clamp(40px,6svh,70px);min-height:calc(100svh - var(--dock-space));background:var(--grad-hero)}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 20% 26%,rgba(214,168,127,.15),transparent 48%),radial-gradient(ellipse at 78% 48%,rgba(228,169,179,.16),transparent 52%)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.14fr) minmax(0,1fr);gap:clamp(36px,5vw,88px);align-items:center}
.hero-copy{position:relative;z-index:2;max-width:620px}
.hero-copy .eyebrow{max-width:470px}
.hero-lead{color:var(--hero-body);font-size:clamp(1rem,.92rem + .28vw,1.1875rem);line-height:1.75;margin-top:26px;max-width:530px}
.hero-copy>.btn{margin-top:30px}
.hero-note,.rating-date,.booking-meta,.bp-note{font-size:clamp(.75rem,.71rem + .16vw,.875rem);line-height:1.65}
.hero-note{margin-top:18px}
.hero-portrait{position:relative;min-width:0;display:grid;place-items:center;align-self:center}
.hero-figure{position:relative;width:min(100%,370px);isolation:isolate;border-radius:48% 48% 8px 8px / 27% 27% 8px 8px;overflow:hidden}
.hero-figure img{width:100%;height:auto;aspect-ratio:1290/2292;object-fit:contain;object-position:center}
.portrait-fade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(31,26,25,.72),transparent 16%,transparent 90%,rgba(31,26,25,.38)),linear-gradient(0deg,#1f1a19,transparent 14%)}
.hero-glow{position:absolute;width:min(520px,42vw);aspect-ratio:1;border-radius:50%;background:rgba(228,169,179,.12);filter:blur(70px);animation:breathe 8s ease-in-out infinite alternate;pointer-events:none}
@keyframes breathe{from{opacity:.6;transform:scale(.95)}to{opacity:1;transform:scale(1.05)}}
.rating-badge{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;width:fit-content;max-width:100%;margin-top:24px;padding:12px 16px;border:1px solid var(--linha-forte);border-radius:8px;background:linear-gradient(120deg,rgba(62,47,42,.62),rgba(42,34,33,.55));backdrop-filter:blur(8px);font-size:clamp(.75rem,.69rem + .2vw,.9375rem)}
.rating-badge span{color:var(--champagne);font-weight:500}
.rating-badge a{font-size:clamp(.6875rem,.66rem + .13vw,.8125rem);min-height:24px;display:inline-flex;align-items:center}
/* Editorial service sections. */
.editorial-copy>.btn,.service-copy>.btn,.faq-list+.btn{margin-top:32px}
.quote-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;list-style:none;padding:36px 0;margin-top:24px;border-block:1px solid var(--linha)}
.quote-strip blockquote{font-family:var(--serif);font-size:clamp(1.125rem,1.45vw,1.5rem);color:var(--marfim);line-height:1.5}
.quote-strip cite{display:block;margin-top:18px;color:var(--champagne)}
.method-grid,.location-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(32px,6vw,90px);align-items:start}
.section-photo{min-width:0}
.section-photo:not(.hero-figure) img{width:100%;border:1px solid var(--linha);border-radius:12px}
.section-photo figcaption{margin-top:12px;color:var(--areia)}
.method-photo{max-width:380px}
.method-photo img{max-height:72svh;object-fit:contain;background:var(--grad-dark)}
.method-steps{list-style:none;padding:0;display:grid;gap:24px}
.method-steps li{position:relative;padding:0 0 24px 52px;border-bottom:1px solid var(--linha)}
.step-num{position:absolute;left:0;top:4px;color:var(--champagne);font-size:clamp(.8125rem,.75rem + .2vw,1rem);font-variant-numeric:tabular-nums}
.method-steps h3{margin-bottom:10px}
.inline-quote{max-width:760px;margin-block:32px;padding:8px 0 8px 24px;border-left:2px solid var(--champagne)}
.inline-quote p{font-family:var(--serif);color:var(--marfim);font-size:clamp(1.125rem,1.5vw,1.5rem);line-height:1.5}
.inline-quote cite{display:block;margin-top:12px;color:var(--champagne)}
.service-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:40px}
.service-points>div,.first-time-grid>div{border-top:1px solid var(--linha-forte);padding-top:22px}
dt{font-family:var(--serif);font-size:clamp(1.2rem,1.6vw,1.6rem);color:var(--marfim);line-height:1.35;margin-bottom:14px}
dd{margin:0}
.first-time-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 48px}
/* Zanetti shelf: sibling panel is placed alongside stage by the parent grid. */
.shelf{perspective:1600px;margin-top:32px;min-width:0}
.shelf-stage{min-width:0;overflow:visible}
.shelf-row{position:relative;display:flex;align-items:flex-end;justify-content:center;gap:clamp(14px,2vw,26px);padding:30px 16px 40px;min-width:0}
.shelf-row::after{content:"";position:absolute;inset:auto 0 12px;height:2px;background:var(--grad-line)}
.book-card{position:relative;flex:0 0 auto;width:clamp(124px,11.1vw,158px);aspect-ratio:2/3;min-width:0;border:0;padding:0;background:transparent;text-align:left;transform:rotate(var(--r)) translateY(var(--hover-y));transition:transform .45s var(--ease);perspective:1200px;scroll-snap-align:center;isolation:isolate}
.book{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d}
.book-shadow{position:absolute;inset:12px -4px -10px 6px;background:rgba(23,18,17,.55);filter:blur(12px);transform:translateZ(-8px)}
.book-back,.page-block,.page-fan,.page-fan i,.front-cover{position:absolute;inset:0;border-radius:2px 7px 7px 2px;transform-origin:left center}
.book-back{background:linear-gradient(100deg,var(--cover-color),#483a30);transform:translateZ(-7px)}
.page-block{inset:4px -6px 4px 7px;background:repeating-linear-gradient(90deg,#cfbeb0 0px,#cfbeb0 1px,#ebddd0 1px,#ebddd0 3px);transform:translateZ(-2px);transition:transform .6s var(--ease)}
.page-fan{transform-style:preserve-3d;pointer-events:none}
.page-fan i{inset:4px -2px 4px 3px;background:linear-gradient(90deg,#b5a393,#efe0cd 22%,#d6c6b1);border:1px solid #b3a28f;opacity:0;transition:transform .65s var(--ease),opacity .3s}
.front-cover{display:flex;flex-direction:column;align-items:flex-start;padding:17px 13px 15px 18px;color:var(--marfim);border:1px solid rgba(214,168,127,.4);background-image:linear-gradient(180deg,rgba(23,18,17,.7),rgba(23,18,17,.6) 45%,rgba(23,18,17,.94)),linear-gradient(90deg,rgba(23,18,17,.8),transparent 12%,rgba(214,168,127,.08) 18%,transparent 22%),var(--cover-img);background-color:var(--cover-color);background-size:cover;background-position:center;box-shadow:inset 4px 0 5px rgba(23,18,17,.45),4px 5px 15px rgba(23,18,17,.3);transform:translateZ(4px);transition:transform .65s var(--ease);backface-visibility:hidden}
.cover-kicker{font-size:clamp(.5625rem,.54rem + .07vw,.6875rem);letter-spacing:.14em;text-transform:uppercase;color:var(--rose-claro)}
.cover-title{font-family:var(--serif);font-size:clamp(1rem,1.35vw,1.35rem);line-height:1.14;margin-top:16px;overflow-wrap:anywhere}
.cover-sub{font-size:clamp(.625rem,.57rem + .13vw,.75rem);line-height:1.4;margin-top:10px;color:var(--marfim)}
.cover-foot{font-size:clamp(.5rem,.47rem + .09vw,.625rem);line-height:1.4;margin-top:auto;padding-top:10px;color:var(--areia)}
.cover-badge{font-size:clamp(.5625rem,.52rem + .1vw,.6875rem);border-top:1px solid var(--linha-forte);padding-top:6px;margin-top:10px;color:var(--rose-claro)}
.book-panel{display:none;min-width:0;position:relative;padding:32px;border:1px solid var(--linha-forte);border-radius:12px;background:var(--grad-soft);overflow:visible}
.bp-close{position:absolute;right:12px;top:12px;width:44px;height:44px;border-radius:50%;border:1px solid var(--linha);background:var(--grad-dark);color:var(--rose-claro);font-size:clamp(1.5rem,2vw,2rem);line-height:1}
#bp-kicker,#bp-title{padding-right:40px}
#bp-title{font-size:clamp(1.7rem,2.4vw,2.5rem);margin-bottom:18px}
.bp-list{padding-left:20px;margin-block:22px}
.bp-list li+li{margin-top:8px}
.bp-list li::marker{color:var(--champagne)}
.bp-note{margin-top:18px}
#estante[data-mode="detail"] .shelf{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:clamp(34px,5vw,80px);align-items:center}
#estante[data-mode="detail"] .shelf-stage{display:grid;grid-template-columns:minmax(0,1fr);overflow:visible}
#estante[data-mode="detail"] .shelf-row{overflow:visible;justify-content:center;padding:20px 18px 30px}
#estante[data-mode="detail"] .book-card:not(.is-selected):not([aria-expanded="true"]){display:none}
#estante[data-mode="detail"] .book-card:is(.is-selected,[aria-expanded="true"]){width:100%;max-width:264px;transform:none;aspect-ratio:2/3}
#estante[data-mode="detail"] .front-cover{transform:translate3d(0,0,18px) rotateY(-29deg)}
#estante[data-mode="detail"] .page-block{transform:translate3d(7px,0,-2px)}
#estante[data-mode="detail"] .page-fan i{opacity:1}
#estante[data-mode="detail"] .page-fan i:nth-child(1){transform:rotateY(-4deg)}
#estante[data-mode="detail"] .page-fan i:nth-child(2){transform:rotateY(-8deg)}
#estante[data-mode="detail"] .page-fan i:nth-child(3){transform:rotateY(-12deg)}
#estante[data-mode="detail"] .page-fan i:nth-child(4){transform:rotateY(-16deg)}
#estante[data-mode="detail"] .book-panel{display:block;animation:panel-in .45s var(--ease) both}
#estante[data-mode="detail"] .cover-title{font-size:clamp(1.4rem,2vw,2rem)}
#estante[data-mode="detail"] .cover-sub{font-size:clamp(.75rem,.7rem + .2vw,.9375rem)}
@keyframes panel-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
/* Scroll-snap: exactly three cards on desktop and one on small screens. */
.testi{margin-top:32px;min-width:0}
.testi-viewport{overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-x:contain;border-radius:12px}
.testi-viewport::-webkit-scrollbar{display:none}
.testi-track{display:flex;gap:20px;align-items:stretch}
.testi-slide{flex:0 0 calc((100% - 40px)/3);min-width:0;scroll-snap-align:start;display:flex;flex-direction:column;justify-content:space-between;gap:32px;padding:30px;border:1px solid var(--linha);border-radius:12px;background:linear-gradient(145deg,rgba(66,47,43,.7),rgba(33,27,26,.85));min-height:clamp(290px,38svh,400px)}
.testi-slide blockquote{font-family:var(--serif);font-size:clamp(1.0625rem,1.35vw,1.375rem);line-height:1.6;color:var(--marfim)}
.testi-slide figcaption{padding-top:20px;border-top:1px solid var(--linha)}
.testi-name,.testi-source{display:block}
.testi-name{color:var(--champagne);font-weight:500}
.testi-source{margin-top:4px}
.testi-controls{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:22px}
.testi-prev,.testi-next{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--linha-forte);border-radius:50%;background:var(--grad-dark);color:var(--rose-claro);font-size:clamp(1.75rem,2.5vw,2.25rem);line-height:1}
.testi-prev:hover,.testi-next:hover,.bp-close:hover{border-color:var(--rose-claro);background:var(--grad-soft)}
button:disabled{opacity:.4;cursor:default}
.testi-dots{display:flex;justify-content:center;flex-wrap:wrap}
.testi-dots button{width:44px;height:44px;padding:0;display:grid;place-items:center;border:0;border-radius:50%;background:transparent}
.testi-dots button::before{content:"";width:8px;height:8px;border:1px solid var(--champagne);border-radius:50%;transition:background .2s,transform .2s}
.testi-dots button:is(.is-active,[aria-current="true"],[aria-selected="true"])::before{background:var(--champagne);transform:scale(1.35)}
.testi-status{margin:0;font-size:clamp(.75rem,.71rem + .14vw,.875rem)}
.tnum{font-variant-numeric:tabular-nums}
.rating-date{margin-top:20px;text-align:center}
.about-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,.52fr) minmax(0,1.3fr);gap:32px;align-items:center}
.about-photo-secondary{align-self:end}
.about-actions,.location-actions{display:flex;align-items:flex-start;flex-direction:column;gap:18px;margin-top:28px}
.text-link{font-size:clamp(.8125rem,.76rem + .2vw,.9375rem)}
.location-photo{max-width:450px}
.location-address{margin-top:24px}
.location-details{padding:0;list-style:none;margin-top:20px}
.location-details li+li{margin-top:12px}
.location-details strong{display:block}
.map-wrap{margin-top:32px;border:1px solid var(--linha);border-radius:10px;background:var(--grad-soft);overflow:hidden}
.map-consent{padding:26px;min-height:24svh;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:14px}
.map-consent p{margin:0;font-size:clamp(.8125rem,.76rem + .2vw,.9375rem)}
.map-frame iframe{display:block;width:100%;height:clamp(260px,38svh,440px);border:0}
.faq-list{max-width:960px}
.faq-item{background:linear-gradient(115deg,rgba(57,42,39,.4),rgba(33,27,26,.2));border-bottom:1px solid var(--linha-forte)}
.faq-item summary{cursor:pointer;position:relative;padding:24px 48px 24px 0;color:var(--marfim);font-family:var(--serif);font-size:clamp(1.125rem,1.55vw,1.625rem);line-height:1.4;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";position:absolute;right:12px;top:24px;color:var(--champagne)}
.faq-item[open] summary::after{content:"−"}
.faq-item>div{padding:0 32px 24px 0;max-width:850px}
.section-cta{min-height:55svh;text-align:center;background:radial-gradient(ellipse at 50% 30%,rgba(214,168,127,.12),transparent 65%),var(--grad-dark)}
.section-cta .section-heading,.booking-copy,.booking-copy>p{margin-inline:auto}
.booking-copy{max-width:740px}
.booking-copy>.btn{margin-block:28px 22px}
.site-footer{background:var(--grad-dark)}
.footer-section{padding-block:56px}
.footer-section h2{font-size:clamp(1.4rem,2vw,2.1rem)}
.footer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px}
.footer-grid>div{max-width:510px}
.footer-grid,.responsibility,.footer-year,.footer-legal{font-size:clamp(.8125rem,.76rem + .18vw,.9375rem)}
.responsibility{border-top:1px solid var(--linha);padding-top:26px;margin-top:36px;max-width:900px}
.footer-year{margin-top:24px}
.footer-legal{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px;margin-top:18px}
.footer-legal a,.cookie-reopen{min-height:44px;display:inline-flex;align-items:center}
.cookie-reopen{border:0;padding:0;color:var(--rose-claro);text-decoration:underline;background:transparent;font-size:clamp(.8125rem,.76rem + .18vw,.9375rem)}
/* Fixed dock: the HTML calls its consent component cookie-card. */
.cookie-card,.cookie-bar{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:18px;width:min(680px,calc(100% - 32px));padding:16px 18px;border:1px solid var(--linha-forte);border-radius:12px;background:linear-gradient(125deg,#322724 0%,#2a2221 48%,#211b1a 100%);box-shadow:0 8px 32px rgba(23,18,17,.4);color:var(--areia)}
.cookie-card p,.cookie-bar p{font-size:clamp(.6875rem,.65rem + .15vw,.8125rem);line-height:1.55;margin:0;flex:1;min-width:0}
.cookie-actions{display:flex;gap:6px;flex-shrink:0;align-items:center}
.cookie-actions button{min-height:44px;min-width:44px;padding:8px 10px;border:1px solid var(--linha-forte);border-radius:6px;font-size:clamp(.6875rem,.65rem + .15vw,.8125rem);background:var(--grad-dark);color:var(--rose-claro)}
.cookie-actions [data-cookie-action="accept"]{background:var(--grad-accent);color:var(--tinta);border-color:transparent}
.cookie-actions button:hover{filter:brightness(1.18);border-color:var(--rose-claro)}
.whatsapp-fab{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:55;width:56px;height:56px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid var(--linha-forte);border-radius:50%;background:var(--grad-accent);color:var(--tinta);box-shadow:0 6px 24px rgba(23,18,17,.35);transition:transform .2s,filter .2s;text-decoration:none}
.whatsapp-fab:hover{transform:translateY(-3px);filter:brightness(1.08);color:var(--tinta)}
.wa-icone{width:28px;height:28px;flex-shrink:0}
.wa-fab-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);font-size:clamp(.8125rem,.76rem + .18vw,.9375rem)}
.legal-content{max-width:900px;padding-block:calc(var(--header-h) + 60px) 80px;min-height:80svh}
.legal-content h1{font-size:clamp(2.2rem,4vw,4rem);margin-bottom:40px}
.legal-content h2{font-size:clamp(1.5rem,2.2vw,2.25rem);margin-block:36px 18px}
.legal-page .site-footer{padding-block:36px}
.reveal{opacity:1;transform:none}
.js .reveal:not(.is-visible){opacity:0;transform:translateY(18px)}
.js .reveal{transition:opacity .6s var(--ease),transform .6s var(--ease)}
@media(hover:hover) and (pointer:fine){
  #estante[data-mode="shelf"] .book-card:hover{transform:rotate(var(--r)) translateY(-16px)}
}
/* Seven layout breakpoints, plus accessibility and input media. */
@media(min-width:1600px){
  .hero-figure{width:min(100%,430px)}
  .hero-grid{gap:100px}
}
@media(max-width:1280px){
  .header-inner{gap:18px}
  .header-whatsapp{display:none}
  .hero-figure{width:min(100%,345px)}
  .shelf-row{gap:18px}
}
@media(max-width:1100px){
  :root{--header-h:84px}
  .header-inner{flex-wrap:wrap}
  .menu-toggle{display:block;margin-left:auto}
  .main-nav{display:none;flex-basis:100%;max-height:calc(100svh - 180px);overflow:auto;padding:16px 0}
  .main-nav ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:start;gap:8px 24px}
  .main-nav a{font-size:clamp(.875rem,.8rem + .2vw,1rem)}
  .site-header:has(.menu-toggle[aria-expanded="true"]) .main-nav,.main-nav.is-open,body.menu-open .main-nav{display:block}
  .menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  body:has(.menu-toggle[aria-expanded="true"]) .page-scroll{overflow-y:hidden}
  .hero-grid{gap:32px}
  .about-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .about-photo-main{grid-row:1 / 3}
  .about-photo-secondary{width:50%;grid-column:2;grid-row:2}
  .about-copy{grid-column:2;grid-row:1}
}
@media(max-width:900px){
  .hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,.8fr)}
  h1{font-size:clamp(2.4rem,4.8vw,3.6rem)}
  .shelf-row{justify-content:flex-start;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;padding:32px 20px 40px}
  .book-card{width:158px}
  .cover-title{font-size:clamp(1.125rem,2vw,1.35rem)}
  #estante[data-mode="detail"] .shelf{grid-template-columns:minmax(0,1fr);gap:22px}
  #estante[data-mode="detail"] .book-card:is(.is-selected,[aria-expanded="true"]){width:min(180px,48vw)}
  #estante[data-mode="detail"] .cover-title{font-size:clamp(1.25rem,2.5vw,1.5rem)}
  .testi-slide{flex-basis:calc((100% - 20px)/2)}
  .service-points{gap:22px}
  .method-grid,.location-grid{gap:32px}
}
@media(max-width:767px){
  :root{--gutter:24px;--header-h:84px}
  body:has(:is(.cookie-card,.cookie-bar):not([hidden])){--dock-space:230px;--cookie-h:150px}
  body:has(:is(.cookie-card,.cookie-bar):not([hidden])) .whatsapp-fab{bottom:172px}
  .hero{padding-top:calc(var(--header-h) + 24px);background:linear-gradient(180deg,#1f1a19 0%,#241d1c 58%,#2e2523 100%)}
  .hero-grid{grid-template-columns:minmax(0,1fr);gap:32px}
  .hero-portrait{grid-row:1}
  .hero-figure{width:min(64vw,280px)}
  .hero-glow{width:72vw;filter:blur(55px)}
  .hero-copy{max-width:580px}
  .hero-copy h1{font-size:clamp(2.4rem,7.5vw,3.6rem)}
  .hero-lead{margin-top:22px}
  .quote-strip,.service-points,.method-grid,.location-grid,.first-time-grid{grid-template-columns:minmax(0,1fr)}
  .quote-strip{gap:28px}
  .quote-strip li+li{border-top:1px solid var(--linha);padding-top:24px}
  .method-photo{width:min(100%,320px);margin-inline:auto}
  .method-photo img{max-height:60svh}
  .service-points{gap:28px}
  .testi-slide{flex-basis:100%;padding:26px;min-height:300px}
  .testi-slide blockquote{font-size:clamp(1.125rem,3.3vw,1.4rem)}
  .testi-controls{gap:4px}
  .testi-status{flex-basis:100%;text-align:center}
  .about-grid{grid-template-columns:minmax(0,1fr) minmax(0,.65fr);gap:20px}
  .about-photo-main{grid-column:1;grid-row:1}
  .about-photo-secondary{grid-column:2;grid-row:1;width:100%}
  .about-copy{grid-column:1 / -1;grid-row:2;margin-top:12px}
  .location-photo{width:min(100%,400px);margin-inline:auto}
  .footer-grid{grid-template-columns:minmax(0,1fr);gap:28px}
  .cookie-card,.cookie-bar{flex-direction:column;align-items:stretch;gap:8px;padding:12px 14px}
  .cookie-actions{justify-content:flex-end}
  .cookie-card p,.cookie-bar p{font-size:clamp(.6875rem,2.8vw,.8125rem);line-height:1.5}
  .book-panel{padding:26px 22px}
}
@media(max-width:480px){
  :root{--gutter:22px}
  .brand{font-size:clamp(1.0625rem,4.6vw,1.3rem)}
  .brand-specialty{max-width:250px;font-size:clamp(.5rem,2.25vw,.625rem)}
  .main-nav ul{grid-template-columns:minmax(0,1fr)}
  .section{padding-block:60px}
  .hero{padding-top:calc(var(--header-h) + 16px);padding-bottom:48px}
  .section-heading{margin-bottom:28px}
  .hero-copy .btn,.about-actions .btn,.location-actions .btn,.book-panel .btn{width:100%}
  .rating-badge{padding:10px 12px;gap:4px 12px}
  .testi-dots button{width:44px}
  .testi-prev,.testi-next{flex-shrink:0}
  .testi-controls{column-gap:0}
  .book-panel{padding:24px 20px}
  #bp-title{padding-right:30px}
  .footer-legal{align-items:flex-start;flex-direction:column;gap:4px}
}
@media(max-width:360px){
  :root{--gutter:16px}
  .brand-specialty{max-width:215px}
  .header-inner{gap:8px}
  .btn{padding:14px 16px}
  .testi-dots{order:3;flex-basis:100%}
  .testi-status{flex-basis:auto;margin-inline:12px}
  .cookie-card,.cookie-bar{padding:10px 12px;gap:6px}
  .cookie-card p,.cookie-bar p{font-size:clamp(.625rem,3vw,.6875rem)}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .reveal:not(.is-visible),.reveal{opacity:1;transform:none}
}
@media(forced-colors:active){
  .btn,.book-card,.front-cover,.rating-badge,.cookie-card,.cookie-bar,.testi-slide,.whatsapp-fab{border:1px solid ButtonText}
  .hero-glow,.portrait-fade{display:none}
  .testi-dots button::before{background:ButtonText}
  :focus-visible{outline:3px solid Highlight}
}


/* HERO CUTOUT: retrato sem fundo sobre o proprio fundo do site (fundo unico) */
.hero-figure{border-radius:0;overflow:visible;display:flex;align-items:flex-end;justify-content:center;
  width:min(100%,430px)}
.hero-figure img.hero-cutout{width:100%;height:auto;max-height:min(74vh,680px);aspect-ratio:auto;
  object-fit:contain;object-position:center bottom;
  filter:drop-shadow(0 34px 50px rgba(0,0,0,.62)) drop-shadow(0 0 40px rgba(214,178,124,.12))}
.hero-figure::before{content:"";position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);
  width:124%;height:90%;border-radius:50%;pointer-events:none;z-index:-1;
  background:radial-gradient(ellipse at center,rgba(214,178,124,.15),rgba(214,178,124,.045) 46%,transparent 72%)}
@media (max-width:640px){
  .hero-figure img.hero-cutout{max-height:min(56vh,420px)}
}
