/* Regras compartilhadas de composição — manter todas as páginas na mesma grade. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap;border:0!important}
.patient-field{margin-top:20px}
.patient-field label{display:block;font-size:16px;margin-bottom:8px;color:#252426}
.patient-field input{display:block;width:100%;min-width:0;min-height:56px;border:1px solid #cfc6c8;border-radius:7px;background:#fff;padding:12px 16px;font:inherit;font-size:18px;color:#252426;transition:border-color .2s,box-shadow .2s}
#booking-form .patient-field input:not(:placeholder-shown){border-color:#581821;background:#faf5f6}
#booking-form .patient-field input:focus,#booking-form .patient-field input:focus-visible{border-color:#581821;background:#faf5f6;box-shadow:none;outline:none}
@media(forced-colors:active){#booking-form .patient-field input:focus{outline:2px solid Highlight;outline-offset:2px}}
.patient-field input[aria-invalid=true]{border-color:#581821}
.patient-field input::placeholder{color:#81787b}
#previous-step,#previous-step:hover,#previous-step:focus-visible{text-decoration:none}
.founder-portrait{margin:0;align-self:start}
.founder-portrait img{display:block;width:100%;height:auto}
.header{min-height:88px}
.hero-video{position:relative;isolation:isolate;min-height:560px;min-height:max(560px,calc(100svh - var(--hero-chrome,158px)));display:flex;align-items:center;background:#252426;color:white;overflow:hidden;padding:64px 0}
.hero-video video,.hero-poster,.hero-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-3}
.hero-video video{z-index:-2}
.hero-shade{z-index:-1;background:linear-gradient(90deg,rgba(16,12,13,.78),rgba(16,12,13,.55) 65%,rgba(16,12,13,.3))}
.hero-video-content{position:relative;z-index:1}
.hero-video-content h1{font-size:clamp(34px,3.25vw,48px);line-height:1.18;letter-spacing:-.03em;max-width:1000px;margin:0 0 12px -.035em;font-weight:400;color:#fff}
.hero-video-content .lead{color:#fff;max-width:650px;font-size:18px;margin:0;line-height:1.6}
.hero-video :focus-visible{outline-color:white}
@media(max-width:700px){.hero-video{min-height:max(540px,calc(100svh - var(--hero-chrome,156px)));padding:48px 0;align-items:flex-end}.hero-video-content h1{font-size:clamp(32px,8.3vw,40px);max-width:500px}.hero-video-content .lead{font-size:18px;max-width:360px}.hero-shade{background:linear-gradient(0deg,#100c0deb,#100c0d85 65%,#100c0d30)}.hero-video .hero-actions{gap:16px}.hero-video video,.hero-video .hero-poster{object-position:53% center}}
:root{--page-top:64px;--section-space:64px;--content-gap:64px}
.wrap{width:min(1200px,calc(100% - 80px))}
.page-intro.wrap{max-width:1200px;padding-top:var(--page-top);padding-bottom:48px}
.page-intro h1{font-size:clamp(48px,5.5vw,80px);line-height:1.12;letter-spacing:-.045em;font-weight:400;margin-bottom:32px;max-width:1050px}
.page-intro .eyebrow,.hero-editorial .eyebrow{margin-bottom:24px}
.page-intro .lead{margin-bottom:0}
.signature .lattes-link{margin-top:16px}
.signature .lattes-link span{display:inline;font-size:inherit;color:inherit}
.signature small{display:block;color:#625c5e;font-size:14px}
.footer.footer-minimal{display:flex;align-items:center;gap:24px;padding-block:32px;justify-content:space-between}
.footer-minimal .logo{width:145px;height:auto}
.footer-minimal small{margin-left:auto}
.pending-link{cursor:default}
.care,.story,.contact,.practical{display:grid;grid-template-columns:1fr 1fr;gap:var(--content-gap);align-items:start;padding-block:var(--section-space);border-top:1px solid #ded9db;border-bottom:0}
.care .eyebrow,.story .eyebrow,.contact .eyebrow,.practical .eyebrow{margin:0 0 24px}
.care h2,.story h2,.contact h2,.practical h2{font-size:clamp(30px,3vw,44px);line-height:1.18;margin:0;letter-spacing:-.035em}
.care .section-content p,.story-copy>p,.contact>div>p:not(.eyebrow),.practical .section-content>p{font-size:18px;line-height:1.6;margin:0 0 24px;max-width:520px;color:#625c5e}
.story-copy{padding:0;max-width:none}
.care>.section-content,.story>.story-copy,.contact>div:nth-child(2),.practical>.section-content{padding-top:0}
.step-progress{font-size:14px;color:#625c5e;margin-bottom:24px}
.step-actions{display:flex;align-items:center;justify-content:space-between;gap:16px}
.step-actions .button{margin-left:auto}
.step-actions .back{margin:0}
.text-link{gap:16px;min-height:48px}
button.text-link{border:0;background:transparent;padding:0;cursor:pointer;font-family:inherit;text-decoration:underline;text-decoration-color:#c7b5b8;text-underline-offset:7px}
.contact .eyebrow{font-size:14px;color:#581821;line-height:1.65;font-weight:500}
body.modal-open{overflow:hidden}
#preparation-dialog{margin:auto;width:min(680px,calc(100% - 48px));max-height:calc(100dvh - 48px);padding:32px;border:1px solid #ded9db;border-radius:16px;background:#fff;color:#252426;overflow:auto;box-shadow:0 24px 80px #25242626}
#preparation-dialog[open]{animation:modal-in .24s ease-out}
#preparation-dialog::backdrop{background:#25242666;animation:veil-in .24s ease-out}
#preparation-dialog.closing{animation:modal-out .2s ease-in forwards}
#preparation-dialog.closing::backdrop{animation:veil-out .2s ease-in forwards}
.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}
.dialog-top .eyebrow{margin:0}
.dialog-close{background:none;border:0;min-height:48px;min-width:80px;color:#581821;font-size:16px;cursor:pointer}
#preparation-dialog h2{font-size:32px;margin-bottom:24px}
#preparation-dialog ul{padding-left:24px;margin-bottom:24px}
#preparation-dialog li{margin-bottom:16px;line-height:1.6}
#preparation-dialog strong{font-weight:500}
@keyframes modal-in{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
@keyframes modal-out{to{opacity:0;transform:translateY(8px) scale(.98)}}
@keyframes veil-in{from{background:#25242600}to{background:#25242666}}
@keyframes veil-out{to{background:#25242600}}
@media(prefers-reduced-motion:reduce){#preparation-dialog[open],#preparation-dialog::backdrop{animation:none!important}}
@media(max-width:700px){#preparation-dialog{padding:24px}#preparation-dialog h2{font-size:28px}}
.letter,.booking{padding-top:0;padding-bottom:64px;gap:64px}
.letter-copy{padding-top:0}
.letter-copy .eyebrow{font-size:14px;line-height:1.6;margin-bottom:24px}
.letter-copy p{font-size:20px;line-height:1.6;margin-bottom:24px}
.booking-panel{padding:32px}
.booking-panel .choice{padding:16px;min-height:64px}
@media(max-width:700px){.hero.hero-editorial{min-height:0;padding-top:44px;padding-bottom:60px}.hero-editorial h1{font-size:clamp(40px,9.2vw,64px);margin-bottom:28px}.hero-details{display:block}.hero-actions{margin-top:28px}.hero-editorial .hero-link{margin:0}.hero-editorial .lead{max-width:350px}.footer.footer-minimal{flex-direction:column;align-items:flex-start;gap:16px}.footer-minimal small{margin-left:0}}
@media(max-width:700px){:root{--page-top:32px;--section-space:48px;--content-gap:24px}.wrap{width:calc(100% - 48px)}.hero.hero-editorial,.page-intro.wrap{padding-top:var(--page-top);padding-bottom:48px}.page-intro h1,.hero-editorial h1{font-size:clamp(40px,9.2vw,64px);margin-bottom:24px}.hero-actions{gap:16px;margin-top:24px;align-items:flex-start;flex-direction:column}.care,.story,.contact,.practical{grid-template-columns:1fr;gap:24px}.care .section-content p{margin-bottom:24px}.letter,.booking{padding-top:0;padding-bottom:48px;gap:32px}.preparation-card,.booking-panel{padding:24px}.preview{font-size:14px}}
@media(max-width:700px){.care>.section-content,.story>.story-copy,.contact>div:nth-child(2),.practical>.section-content{padding-top:0}.booking{grid-template-columns:1fr}}

/* Hero editorial: base alinhada à grade, vídeo livre no centro. */
.hero-video{align-items:flex-end;padding-block:72px 112px}
.hero-shade{background:linear-gradient(0deg,#100c0dcc 0%,#100c0d70 32%,#100c0d10 72%)}
.hero-scroll{position:absolute;bottom:24px;left:calc(50% - 24px);width:48px;height:48px;display:grid;place-items:center;color:#fff;border-radius:50%;transition:background .2s}
.hero-scroll:hover{background:#ffffff1f}
.hero-scroll svg{animation:scroll-cue 2.6s ease-in-out infinite}
@keyframes scroll-cue{0%,100%{transform:translateY(-3px)}50%{transform:translateY(3px)}}
.booking-aside .eyebrow{color:#581821}
.booking-aside h2{font-size:clamp(30px,3vw,44px);line-height:1.18;margin-bottom:24px}
#preparation-dialog{padding:32px;scrollbar-width:thin}
#preparation-dialog[open]{animation:modal-in .38s cubic-bezier(.22,1,.36,1)}
#preparation-dialog::backdrop{backdrop-filter:blur(4px);animation:veil-in .38s ease}
#preparation-dialog.closing{animation:modal-out .26s cubic-bezier(.4,0,1,1) forwards}
#preparation-dialog.closing::backdrop{animation:veil-out .26s ease forwards}
.dialog-top{margin-bottom:20px}
.dialog-close{display:grid;place-items:center;min-width:48px;width:48px;height:48px;padding:0;border-radius:50%;background:#faf8f8;transition:background .2s}
.dialog-close:hover{background:#f0e7e9}
.booking-aside .phone-placeholder{font-size:24px;line-height:1.4;color:#581821;margin-bottom:4px}
#preparation-dialog h2{font-size:30px;line-height:1.2;letter-spacing:-.025em;margin-bottom:24px}
#preparation-dialog .preparation-list{list-style:none;padding:0;margin:0}
#preparation-dialog .preparation-list li{margin:0;padding:16px 0;border-top:1px solid #eee9eb}
.preparation-list strong,.online-tip strong{display:block;color:#581821;font-size:18px}
.preparation-list p,.online-tip p{font-size:17px;line-height:1.55;margin:6px 0 0;color:#625c5e}
.online-tip{padding:20px;background:#faf8f8;border-radius:8px;margin-top:8px}
#preparation-dialog .preparation-note{font-size:16px;line-height:1.55;color:#625c5e;margin:20px 0 12px}
#preparation-dialog .notice{font-size:14px;margin:0}
@media(max-width:700px){.header{min-height:80px}.hero-video{padding-bottom:104px}.hero-video-content h1{font-size:32px}.hero-scroll{bottom:20px}#preparation-dialog{padding:20px;width:calc(100% - 32px);max-height:calc(100dvh - 32px)}#preparation-dialog h2{font-size:27px}}
@media(prefers-reduced-motion:reduce){.hero-scroll svg{animation:none}.dialog-close{transition:none}}

/* Orientações: hierarquia neutra, vinho restrito aos pequenos detalhes. */
#preparation-dialog{width:min(620px,calc(100% - 40px))}
#preparation-dialog .dialog-top{margin-bottom:16px}
#preparation-dialog .dialog-top .eyebrow{font-size:12px}
#preparation-dialog h2{font-size:28px;margin-bottom:20px}
#preparation-dialog .preparation-list li{border:0;padding:0 0 18px}
#preparation-dialog .preparation-list strong{color:#252426;font-size:18px;font-weight:500}
#preparation-dialog .preparation-list p{margin-top:3px;font-size:17px}
#preparation-dialog .online-tip{background:none;padding:18px 0 0;border-top:1px solid #eee9eb;border-radius:0;margin:0;color:#625c5e;font-size:17px;line-height:1.55}
#preparation-dialog .online-tip strong{display:inline;color:#252426;font-size:17px}
#preparation-dialog .preparation-note{margin:16px 0 12px;font-size:15px}
.text-link,button.text-link{position:relative;text-decoration:none!important;background-image:linear-gradient(#581821,#581821),linear-gradient(#c7b5b8,#c7b5b8);background-size:0% 1px,100% 1px;background-position:left calc(100% - 7px);background-repeat:no-repeat;transition:background-size .28s ease}
.text-link:hover,.text-link:focus-visible{background-size:100% 1px,100% 1px}
.text-link span{transition:transform .28s ease}
.text-link:hover span{transform:translate(2px,-2px)}
@media(prefers-reduced-motion:reduce){.text-link,.text-link span{transition:none}}
.button span,.button.small span{display:inline-block;flex-shrink:0;transition:transform .25s ease}
.button:hover span,.button:focus-visible span{transform:translate(2px,-2px)}
@media(max-width:400px){.header .button.small{padding-inline:12px;gap:8px;font-size:14px}.header .logo{width:110px}.header{gap:10px}}
@media(prefers-reduced-motion:reduce){.button span{transition:none}}

/* Sobre: um eixo de leitura, retrato secundário e proporções contidas. */
.story-scroll.is-pinned{height:calc(var(--stage-height) + 140vh);position:relative}
.is-pinned .story-stage{position:sticky;top:24px;height:var(--stage-height)}
.about-page .is-pinned .our-story,.about-page .is-pinned .letter{position:absolute;inset:0; margin:auto; height:max-content;padding-top:0;padding-bottom:0;animation:none;will-change:opacity,transform}
.about-page .is-pinned .letter{opacity:0}
.about-page .story-scroll.is-pinned .story-stage>.reveal.visible{animation:none}
.about-page .our-story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start;padding-bottom:96px}
.about-page .our-story .story-copy p{text-wrap:pretty}
.about-brand-static{display:none}
@media(min-width:1001px){.about-brand-static{display:block;margin:0;align-self:center;justify-self:center;width:220px;max-width:65%}.about-brand-static svg{display:block;width:100%;height:auto}}
.story-copy{min-width:0}
.story-copy p{font-size:19px;line-height:1.7;margin:0 0 24px;text-wrap:balance}
.story-copy p:last-child{margin-bottom:0}
.about-page .story-copy>p{max-width:none}
.story-copy .eyebrow{font-size:14px;line-height:1.65;margin:0 0 24px;font-weight:500}
.brand-emblem{margin:0;min-width:0;width:100%;max-width:460px;justify-self:center}
.brand-emblem img{display:block;width:100%;height:auto;border-radius:2px}
@keyframes emblem-arrive{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}
.logo-lockup{display:block;position:relative;line-height:0;flex-shrink:0}
.logo-heart{position:absolute;left:4%;top:20%;width:18.2543%;height:70.7701%;background:#fff;pointer-events:none}
@media(max-width:700px){.brand-emblem{max-width:300px}}
@media(prefers-reduced-motion:reduce){.brand-emblem.is-visible .brand-plaque{animation:none}}
.about-page .reveal.visible{animation:arrive .7s cubic-bezier(.2,.65,.3,1) both}
@media(max-width:1000px){.about-page .our-story{gap:32px}}
@media(max-width:700px){.about-page .our-story{grid-template-columns:1fr;gap:48px;padding-bottom:48px}.story-copy p{font-size:18px}}
@media(prefers-reduced-motion:reduce){.about-page .reveal.visible{animation:none}}
:is(.about-page,.booking-page) .page-intro{padding-top:32px;padding-bottom:32px}
:is(.about-page,.booking-page) .page-intro .eyebrow{margin-bottom:16px}
:is(.about-page,.booking-page) .page-intro h1{font-size:clamp(40px,4.4vw,64px);max-width:1050px;margin:0;text-wrap:balance}
.booking-page .page-intro .lead{margin-top:24px;text-wrap:pretty}
@media(min-width:1001px) and (max-height:760px){:is(.about-page,.booking-page) .page-intro{padding-top:16px;padding-bottom:24px}:is(.about-page,.booking-page) .page-intro h1{font-size:52px}}
@media(max-width:700px){:is(.about-page,.booking-page) .page-intro{padding-top:24px}:is(.about-page,.booking-page) .page-intro h1{font-size:clamp(36px,9.2vw,48px)}}
.about-page .letter{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center;padding-top:0;border-top:0}
.about-page .letter-copy{grid-column:2;grid-row:1;max-width:660px}
.about-page .founder-portrait{grid-column:1;grid-row:1;width:100%;max-width:260px;align-self:center;justify-self:center}
.about-page .letter-copy p{font-size:19px;line-height:1.7;margin-bottom:24px}
.about-page .story-copy>p:not(.eyebrow),.about-page .letter-copy>p:not(.eyebrow){color:#625c5e}
.about-page .letter-copy .eyebrow{font-size:14px;line-height:1.65;margin-bottom:24px}
.about-page .signature{margin-top:32px}
#next-step:hover span,#next-step:focus-visible span{transform:translateX(3px)}
@media(max-width:700px){.about-page .letter{display:flex;flex-direction:column;gap:48px;padding-top:0;padding-bottom:24px}.about-page .founder-portrait{order:2;align-self:center;max-width:180px}.about-page .letter-copy{order:1}.about-page .page-intro{padding-bottom:32px}.about-page .letter-copy p,.about-page .about-intro{font-size:18px}.about-page~.footer.footer-quiet{padding-top:24px}}
.dialog-close,.dialog-close:hover{background:#fff}
#open-preparation.pointer-restored:focus{outline:none}
.booking{align-items:center}
.booking-aside{padding-top:0}
.booking-panel .step-actions{margin-bottom:0}
.booking-aside .phone-placeholder{margin-bottom:24px}
.booking-aside .phone-placeholder:has(+.email-contact){margin-bottom:4px}
.email-contact .whatsapp-link{overflow-wrap:anywhere;max-width:100%}
.whatsapp-link{display:inline-flex;align-items:center;min-height:48px;color:inherit;text-decoration:none;transition:transform .2s ease,color .2s ease}
.whatsapp-link:hover,.whatsapp-link:focus-visible{transform:translateY(-2px);color:#42121a;text-decoration:none}
@media(prefers-reduced-motion:reduce){.whatsapp-link{transition:none}.whatsapp-link:hover,.whatsapp-link:focus-visible{transform:none}}
@media(max-width:700px){.about-page .founder-portrait{align-self:center}.booking{align-items:stretch}}

/* Acabamento: ritmo da assinatura e espaço útil em tablets. */
.booking-panel .choice input[type=radio]{appearance:none;-webkit-appearance:none;flex:0 0 20px;width:20px;height:20px;margin:0;border:1.5px solid #b9afb2;border-radius:50%;background:#fff;display:grid;place-items:center;overflow:visible;box-shadow:none;transition:border-color .2s ease}
.booking-panel .choice input[type=radio]::before{content:'';width:10px;height:10px;border-radius:50%;background:#581821;transform:scale(0);opacity:0;transition:transform .22s cubic-bezier(.2,.8,.2,1),opacity .18s ease}
.booking-panel .choice input[type=radio]:checked{border-color:#581821}
.booking-panel .choice input[type=radio]:checked::before{transform:scale(1);opacity:1}
.booking-panel .choice{transition:background-color .22s ease,border-color .22s ease}
#preparation-dialog .dialog-top{margin-bottom:24px}
#preparation-dialog .preparation-list strong{font-size:20px;line-height:1.35}
#preparation-dialog .preparation-list{gap:24px}
@media(prefers-reduced-motion:reduce){.booking-panel .choice,.booking-panel .choice input[type=radio],.booking-panel .choice input[type=radio]::before{transition:none}}
@media(forced-colors:active){.booking-panel .choice input[type=radio]{appearance:auto}.booking-panel .choice input[type=radio]::before{display:none}}
.hero-video-content .lead{font-size:clamp(20px,1.55vw,22px);line-height:1.5;text-wrap:pretty}
@media(min-width:701px){.hero-video{padding-bottom:136px}.hero-video-content h1{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.hero-video-content .lead{font-size:clamp(31px,2.75vw,42px);font-weight:400;line-height:1.25;letter-spacing:-.03em;max-width:none;text-wrap:balance}}
.letter-copy>p:not(.eyebrow),#preparation-dialog .preparation-list p{text-wrap:pretty}
#preparation-dialog .dialog-top{margin-bottom:24px}
#preparation-dialog h2{margin:0 0 24px;line-height:1.25}
#preparation-dialog .preparation-list{display:grid;gap:24px}
#preparation-dialog .preparation-list li{padding:0;margin:0}
#preparation-dialog .preparation-list p{margin:4px 0 0;line-height:1.55}
#preparation-dialog .preparation-list p{text-wrap:balance}
.booking{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.booking-aside{align-self:center;min-width:0}
.booking-aside>p:not(.eyebrow):not(.phone-placeholder){max-width:420px;line-height:1.6;margin-bottom:24px}
.booking-aside .eyebrow{margin-bottom:24px}
.booking-aside .email-contact{margin-bottom:0}
@media(max-width:700px){.booking{grid-template-columns:1fr}.booking-aside{align-self:stretch}}
.signature>strong{display:block;line-height:1.4;margin-bottom:8px}
#preparation-dialog .dialog-top{justify-content:flex-end;margin-bottom:8px}
#preparation-dialog .preparation-list{gap:24px}
.signature>span{font-size:15px;line-height:1.6}
.signature>span+span{margin-top:4px}
#booking-form{display:block}
.booking-page .booking{gap:64px;align-items:center;padding-bottom:64px}
.booking-page .booking-aside{padding-inline:32px}
@media(max-width:1000px){.booking-page .booking{grid-template-columns:1fr;gap:40px}.booking-page .booking-aside{padding-inline:24px}}
@media(max-width:700px){.booking-page .booking{padding-bottom:48px}.booking-page .booking-aside{padding-inline:0}}
.booking-panel{overflow-anchor:none;min-width:0}
#booking-form[hidden]{display:none}
#booking-form .step-actions{margin-top:0;padding-top:12px}
#booking-form .patient-field{margin:0 0 12px}
#booking-form .patient-field input{min-height:64px}
#booking-form .booking-step{min-height:225px;min-width:0}
#booking-form .step-heading{font-size:22px;font-weight:400;line-height:1.4;letter-spacing:normal;margin:0 0 24px}
@media(max-width:1000px){#booking-form .booking-step{min-height:265px}}
@media(max-width:350px){#booking-form .booking-step{min-height:305px}}
@media(min-width:701px) and (max-width:1000px){#booking-form .step-heading{font-size:20px}}
@media(max-width:350px){.step-actions{gap:12px}.step-actions .button{padding-inline:16px;gap:16px}}
#preparation-dialog{padding:32px}
#preparation-dialog .dialog-top{position:absolute;top:16px;right:16px;margin:0;height:48px}
#preparation-dialog .preparation-list li:first-child strong{padding-right:40px}
#preparation-dialog .preparation-list{margin:0;gap:22px}
@media(max-width:700px){#preparation-dialog{padding:24px}#preparation-dialog .dialog-top{top:12px;right:12px}}
.signature .lattes-link{margin-top:16px}
@media(min-width:701px) and (max-width:1000px){.booking{grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:32px}.booking-panel{padding:24px}.about-page .letter{gap:32px}.booking-panel legend{font-size:20px}.step-actions{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.button:hover span,.button:focus-visible span,#next-step:hover span,#next-step:focus-visible span,.text-link:hover span{transform:none}}

.footer.footer-quiet{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:32px;border:0;background:#fff}
.footer-quiet .logo{display:block;width:130px;height:auto}
.footer-quiet small{font-size:12px;color:#625c5e;white-space:nowrap;position:relative;top:1px}
.footer-quiet>a{display:flex;align-items:center}
@media(max-width:400px){.footer-quiet .logo{width:110px}.footer.footer-quiet{gap:16px;padding-block:24px}}

/* One editorial grid: eyebrow row, then heading and description centered independently of the action. */
@media(min-width:701px){:is(.care,.story,.contact,.practical)>div:first-child{display:contents}:is(.care,.story,.contact,.practical){column-gap:var(--content-gap);row-gap:24px}:is(.care,.story,.contact,.practical) .eyebrow{grid-column:1;grid-row:1;margin:0}:is(.care,.story,.contact,.practical) h2{grid-column:1;grid-row:2;align-self:center}:is(.care,.story,.contact,.practical)>div:nth-child(2){display:contents}}
:is(.care,.story,.contact,.practical) h2{text-wrap:balance}
:is(.care,.story,.contact,.practical)>div:nth-child(2)>p{font-size:18px;line-height:1.6;margin:0 0 24px;text-wrap:pretty}
.booking-page .booking-aside{align-self:center}
.booking-aside h2{margin-top:0}
.care>.section-content>p,.contact>div:nth-child(2)>p,.booking-aside>h2+p{text-wrap:balance}

/* Original Instrument Sans 500 arrow outlines; independent of font fallback. */
/* Keep native buttons and link-buttons on the same approved typeface. */
@font-face{font-family:Instrument;src:url('assets/instrument-sans-medium-v2.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
.button,.text-link,button,input{font-family:Instrument,Arial,sans-serif;font-style:normal;font-stretch:normal;font-synthesis:none}
.button,.text-link{font-weight:500;letter-spacing:normal}
.header .button{font-weight:400}
#booking-form #next-step{font-size:16px;font-weight:400;line-height:1.3}
@media(max-width:700px){#booking-form #next-step{font-size:14px}}
#preparation-dialog.pointer-opened .dialog-close:focus{outline:none}
#preparation-dialog:not(.pointer-opened) .dialog-close:focus-visible{outline:2px solid #581821;outline-offset:3px}
@media(max-width:700px){.booking-page .booking{row-gap:96px}}
@media(min-width:701px){.header .button.small{font-size:16px;line-height:1.3;min-height:52px;padding:13px 21px;gap:24px}}
.arrow-icon{display:inline-block;width:.692em;height:1em;flex:none;line-height:1}
.arrow-icon.arrow-right{width:.857em}
.arrow-icon svg{display:block;width:100%;height:100%;fill:currentColor}

/* Compact mobile masthead and single-line hero copy, without changing desktop. */
@media(max-width:700px){.story h2,.care h2{font-size:clamp(26px,8vw,30px)}}
@media(max-width:700px){
 .header.wrap{width:calc(100% - 48px);gap:8px;min-height:80px}
 .header>a{flex-shrink:0}
 .header .logo{width:clamp(104px,calc(100vw - 220px),160px);height:auto}
 .header nav{gap:0;flex-shrink:0}
 .header .button.small{font-size:14px;padding:11px 12px;gap:8px;white-space:nowrap;min-height:48px}
 .hero-video-content h1{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .hero-video-content .lead{font-size:clamp(20px,6.65vw,42px);font-weight:400;line-height:1.25;letter-spacing:-.03em;max-width:30ch;margin:0;text-wrap:balance}
}

/* Reserve the action's 48px hit area plus its 24px gap below the text row. */
@media(min-width:701px){
 :is(.care,.story,.contact,.practical){padding-bottom:calc(var(--section-space) + 72px)}
 :is(.care,.story,.contact,.practical)>div:nth-child(2){display:block;position:relative;top:3px;grid-column:2;grid-row:2;align-self:center;padding:0}
 :is(.care,.story,.contact,.practical)>div:nth-child(2)>p{margin:0}
 :is(.care,.story,.contact,.practical)>div:nth-child(2)>.text-link{position:absolute;top:calc(100% + 24px);left:0;margin:0;white-space:nowrap}
}

@media(max-width:700px){#booking-form[data-step="3"] .step-actions{flex-direction:row;flex-wrap:nowrap;gap:12px}#booking-form[data-step="3"] #next-step{min-width:0;padding-inline:12px;gap:8px}#booking-form[data-step="3"] #previous-step{flex-shrink:0;padding-inline:4px}}
@media(max-width:350px){#booking-form[data-step="3"] #next-step{font-size:14px;white-space:nowrap;min-height:56px}}

/* Quiet brand presentation; native scrolling and a complete post-hero viewport. */
.brand-plaque{padding:0;background:#f5f1e9}
.brand-emblem.is-visible .brand-plaque{animation:emblem-arrive 600ms cubic-bezier(.23,1,.32,1) both}
.home-sections,.booking-details{min-height:calc(100svh - var(--page-footer,100px));display:flex;flex-direction:column;justify-content:center}
.home-page #nossa-historia,.booking-details>.practical{border-top:0}
.home-page .reveal.visible{animation:home-arrive 600ms cubic-bezier(.23,1,.32,1) both}
@keyframes home-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.home-page .reveal.visible,.brand-emblem.is-visible .brand-plaque{animation:none}html{scroll-behavior:auto}}
