@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600&family=Montserrat:wght@300;400;500;600&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap');

/* ============ TOKENS ============ */
:root{
  --coffee:#856150;--deep:#5d4338;--taupe:#b49578;--sand:#e7d7c7;--cream:#fbf6ef;--gold:#c79a56;--ink:#382b25;--white:#fffaf4;
  --gold-soft:#e9c98a;--glow:#c79a5640;--ease:cubic-bezier(.16,.84,.44,1);--ease-soft:cubic-bezier(.22,.61,.36,1);
  --shadow-lg:0 30px 80px #6b4b3e2b;--shadow-md:0 20px 50px #6b4b3e24;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html.no-scroll,html.no-scroll body{overflow:hidden}
body{margin:0;background:var(--cream);color:var(--ink);font-family:Montserrat,Arial,sans-serif;font-weight:300;overflow-x:clip;position:relative}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
img{max-width:100%}
h1,h2,h3,p{overflow-wrap:break-word}
::selection{background:var(--gold);color:#fff}

/* Fine grain texture overlay for editorial depth */
body:after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:998;opacity:.035;mix-blend-mode:multiply;
  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='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ============ CUSTOM CURSOR ============ */
.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:999;border-radius:50%;transform:translate(-50%,-50%);will-change:transform}
.cursor-dot{width:6px;height:6px;background:var(--coffee);transition:opacity .3s}
.cursor-ring{width:38px;height:38px;border:1px solid #85615085;transition:width .35s var(--ease),height .35s var(--ease),opacity .3s,border-color .3s,background .3s}
.cursor-ring.big{width:84px;height:84px;background:#85615014;border-color:var(--coffee)}
.cursor-ring.label:before{content:attr(data-label);position:absolute;inset:0;display:grid;place-items:center;font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--deep);white-space:nowrap}
@media(hover:none),(pointer:coarse){.cursor-dot,.cursor-ring{display:none}}

/* ============ PRELOADER ============ */
.preloader{position:fixed;inset:0;z-index:1000;background:var(--cream);display:grid;place-items:center;transition:opacity .8s var(--ease),visibility .8s}
.preloader:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--cream),#e6d5c4)}
.preloader-mark{position:relative;display:flex;flex-direction:column;align-items:center;gap:18px}
.preloader-mark img{width:150px;opacity:0;animation:fadeUp 1s var(--ease) .15s forwards}
.preloader-bar{width:190px;height:1px;background:#85615033;position:relative;overflow:hidden}
.preloader-bar span{position:absolute;inset:0;background:linear-gradient(90deg,var(--coffee),var(--gold));transform-origin:left;transform:scaleX(0);animation:loadBar 1.6s var(--ease) forwards}
.preloader-word{font:9px/1 Montserrat;letter-spacing:.28em;text-transform:uppercase;color:var(--coffee);opacity:0;animation:fadeUp 1s var(--ease) .3s forwards}
.preloader.done{opacity:0;visibility:hidden}
@keyframes loadBar{to{transform:scaleX(1)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ============ SCROLL PROGRESS ============ */
.scroll-progress{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--gold),var(--coffee));z-index:60;width:0%;transition:width .1s linear}

/* ============ NAV ============ */
.nav{height:88px;padding:0 5vw;position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;justify-content:space-between;background:rgba(239,225,211,.72);backdrop-filter:blur(14px);border-bottom:1px solid #8561502b;transition:background .5s var(--ease),height .5s var(--ease),box-shadow .5s var(--ease)}
.nav.scrolled{background:rgba(251,246,239,.92);box-shadow:0 12px 40px #6b4b3e17;height:74px}
.logo{width:190px;height:72px;object-fit:contain;mix-blend-mode:multiply;transition:width .5s var(--ease),height .5s var(--ease)}
.nav.scrolled .logo{width:160px;height:60px}
.links{display:flex;align-items:center;gap:25px;font-size:13.5px;font-weight:500}
.links a{position:relative;padding:4px 0}
.links a:after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--coffee);transition:right .4s var(--ease)}
.links a:hover{color:var(--coffee)}
.links a:hover:after{right:0}
.cta,.links button{position:relative;overflow:hidden;border:0;color:#fff;background:linear-gradient(135deg,var(--coffee),var(--deep));padding:15px 20px;font-weight:600;font-size:11px;box-shadow:0 13px 32px #6b4b3e3b;transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.cta:hover,.links button:hover{transform:translateY(-3px);box-shadow:0 18px 42px #6b4b3e52}
.cta:before,.links button:before{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(115deg,transparent,#ffffff55,transparent);transform:skewX(-20deg);transition:left .75s var(--ease)}
.cta:hover:before,.links button:hover:before{left:130%}
.menu{display:none;border:0;background:none;font-size:20px;width:44px;height:44px;position:relative;z-index:60}
.menu span{position:absolute;left:11px;right:11px;height:1px;background:var(--deep);transition:transform .4s var(--ease),opacity .3s}
.menu span:nth-child(1){top:17px}.menu span:nth-child(2){top:23px}.menu span:nth-child(3){top:29px}
.menu.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu.open span:nth-child(2){opacity:0}
.menu.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* ============ HERO ============ */
.hero{min-height:820px;position:relative;display:grid;align-items:center;overflow:hidden;background:linear-gradient(140deg,#eadbcc,#cdb39a 55%,var(--taupe))}
.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#f3e9dfff 0%,#e2d0bef2 42%,#c4a68b70 64%,transparent 100%);z-index:1}
.hero-photo{position:absolute;inset:0 0 0 38%;background:url('media/banner.png') center/cover;animation:zoom 16s ease-in-out infinite alternate;will-change:transform}
.hero-photo:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 20%,#fff3,transparent 55%)}
.hero-particles{position:absolute;inset:0;z-index:2;pointer-events:none}
.hero-particles span{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--gold-soft);opacity:.55;animation:float 9s ease-in-out infinite}
.hero-copy{position:relative;z-index:3;padding:150px 8vw 85px;max-width:850px}
.kicker{font-size:9px;font-weight:600;letter-spacing:.22em;color:var(--coffee);display:flex;align-items:center;gap:12px}
.kicker:before{content:"";width:34px;height:1px;background:var(--coffee)}
.hero h1,.section h2,.final h2{font-family:'Playfair Display',serif;font-size:clamp(52px,5.4vw,86px);font-weight:500;line-height:1;letter-spacing:-.035em;color:var(--deep);margin:24px 0}
.hero h1 em,h2 em{color:var(--coffee);font-weight:500;font-style:italic;position:relative}
.hero h1{overflow:hidden}
.hero h1 span{display:block;overflow:hidden;padding-bottom:.18em;margin-bottom:-.18em}
.hero h1 span b{display:block;font-weight:inherit;font-style:inherit;color:inherit;transform:translateY(115%);animation:lineUp .9s var(--ease) forwards}
.hero h1 span:nth-child(1) b{animation-delay:.55s}
.hero h1 span:nth-child(2) b{animation-delay:.72s}
.hero h1 span:nth-child(3) b{animation-delay:.89s}
.lead{font-family:'Playfair Display',serif;font-size:17px;line-height:1.75;color:#695247;max-width:610px}
.actions{display:flex;gap:28px;align-items:center;margin-top:34px}
.text-link{display:inline-block;border:0;border-bottom:1px solid var(--coffee);background:none;color:inherit;padding:0 0 7px;margin:0;font-size:10px;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:letter-spacing .4s var(--ease),padding-left .4s var(--ease)}
.text-link:hover{letter-spacing:.16em;padding-left:4px}
.proof{position:absolute;z-index:4;bottom:0;left:0;right:0;background:linear-gradient(90deg,#967057,#785344);color:#fff;padding:21px 8vw;display:flex;flex-wrap:wrap;gap:12px 35px;align-items:center}
.proof-item{display:flex;align-items:center;gap:16px;flex-shrink:0}
.proof strong{font:500 28px 'Playfair Display';color:#f7e2bb;display:inline-block;min-width:1ch;flex-shrink:0}
.proof span{font-size:8px;text-transform:uppercase;letter-spacing:.13em;flex-shrink:0}

/* Decorative botanical / linework illustrations (pure SVG, brand-toned) */
.deco-line{position:absolute;pointer-events:none;opacity:.5;z-index:0}
.deco-line svg{width:100%;height:100%;display:block}
.deco-monogram{position:absolute;pointer-events:none;opacity:.06;mix-blend-mode:multiply;filter:grayscale(1)}
.divider{position:relative;height:96px;margin-top:-1px}
.divider svg{width:100%;height:100%;display:block}
.deco-monogram-bg{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:560px;max-width:72vw;opacity:.05;pointer-events:none;mix-blend-mode:multiply;z-index:0}
.intro>div,.split>div,.heading{position:relative;z-index:1}
.ornament-divider{display:flex;align-items:center;gap:16px;justify-content:center;padding:34px 9vw;color:var(--gold);background:var(--cream)}
.ornament-divider span{flex:1;max-width:170px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.ornament-divider i{font-style:normal;font-size:13px;opacity:.85}

/* ============ SECTIONS BASE ============ */
.section{padding:110px 9vw;position:relative}
.eyebrow{font-size:11px;letter-spacing:.2em;color:var(--coffee);display:inline-flex;align-items:center;gap:10px}
.eyebrow:before{content:"";width:22px;height:1px;background:var(--gold)}
.section h2{font-size:clamp(40px,4vw,64px);line-height:1.08}
.intro{display:grid;grid-template-columns:1fr 1fr;gap:9vw;background:linear-gradient(135deg,var(--cream),#e6d5c4)}
.intro>*,.split>*,.heading>*{min-width:0}
.intro p{font:16px/1.85 'Playfair Display';color:#695247;position:relative}
.intro p:first-of-type:first-letter{font-family:'Playfair Display',serif;font-size:52px;color:var(--coffee);float:left;line-height:.8;padding:6px 10px 0 0}
.seals{display:grid;gap:9px;margin-top:25px}
.seals span{border-left:3px solid var(--gold);background:#ffffff8c;padding:14px 16px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;display:flex;align-items:center;gap:9px;transition:transform .4s var(--ease),background .4s var(--ease)}
.seals span:hover{transform:translateX(6px);background:#fff}
.seals span:before{content:"✦";color:var(--gold);font-size:13px}

/* ============ DARK / CARDS ============ */
.dark-section{background:linear-gradient(135deg,#dfcbb8,#bd9c7d 54%,#987158);position:relative;overflow:hidden}
.dark-section:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 85% 15%,#fff5,transparent 45%)}
.heading{display:grid;grid-template-columns:1fr 360px;gap:55px;align-items:end;position:relative}
.heading p{font:15px/1.8 'Playfair Display';color:#604b41}
.tech-group{margin-top:55px}
.tech-group:first-child{margin-top:0}
.tech-group-title{font:600 12px/1.4 Montserrat,Arial,sans-serif;text-transform:uppercase;letter-spacing:.16em;color:#604b41;margin:0 0 22px;display:flex;align-items:center;gap:10px}
.tech-group-title:before{content:"";width:22px;height:1px;background:var(--gold)}
.tech-group-note{margin:22px 0 0;padding:18px 22px;background:#fffaf4c4;border-left:3px solid var(--gold);font:14px/1.75 'Playfair Display',serif;color:#604b41}
.tech-group .cards{margin-top:0;grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#6b4b3e26;margin-top:55px;position:relative}
.card{background:#fbf6efdc;padding:32px;min-height:295px;min-width:0;display:flex;flex-direction:column;transition:transform .55s var(--ease),box-shadow .55s var(--ease),background .55s var(--ease);will-change:transform;position:relative;transform-style:preserve-3d}
.card:hover{background:#fffaf4;box-shadow:0 26px 60px #6b4b3e30}
.card small{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--coffee)}
.card h3{font:500 31px 'Playfair Display';color:var(--deep);margin:20px 0 10px;transition:transform .5s var(--ease);overflow-wrap:break-word}
.card:hover h3{transform:translateX(4px)}
.card p{font-size:15px;line-height:1.8;color:#675249}
.card button,.card .text-link{margin-top:auto;align-self:flex-start;border:0;border-bottom:1px solid var(--gold);background:none;color:var(--deep);padding:8px 0;font-size:13px;text-transform:uppercase;letter-spacing:.1em}
.card:after{content:"";position:absolute;right:20px;top:22px;font:300 30px 'Playfair Display';color:var(--gold);opacity:.35}

/* ============ SPLIT / CAPILAR ============ */
.split{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}
.image-panel{min-height:600px;background:url('media/consultorio.jpg') center/cover;box-shadow:var(--shadow-lg);position:relative;overflow:hidden}
.image-panel:before{content:"";position:absolute;inset:14px;border:1px solid #fff8;pointer-events:none}
.steps{list-style:none;padding:0;margin:0}
.steps li{display:grid;grid-template-columns:50px 1fr;gap:18px;padding:22px 0;border-top:1px solid #bda28c;position:relative;transition:padding-left .45s var(--ease)}
.steps li:hover{padding-left:8px}
.steps span{font:20px 'Playfair Display';color:var(--coffee)}
.steps strong{font:500 19px 'Playfair Display';color:var(--deep)}
.steps p{font-size:10px;line-height:1.7}

/* ============ VIDEO ============ */
.video{background:linear-gradient(135deg,var(--cream),#c7aa8f)}
.video-box{display:grid;place-items:center;position:relative;min-height:650px;overflow:hidden}
.video-box:before,.video-box:after{content:"";position:absolute;border:1px solid #8561504f;border-radius:50%;animation:spin 22s linear infinite;pointer-events:none}
.video-box:before{width:540px;height:540px}
.video-box:after{width:610px;height:610px;border-style:dashed;animation-duration:38s;animation-direction:reverse;opacity:.6}
.video video{position:relative;width:min(355px,80%);max-height:620px;object-fit:cover;border:9px solid #fffaf4dc;box-shadow:0 35px 90px #6b4b3e42}
.video-play{position:absolute;z-index:3;width:70px;height:70px;border-radius:50%;background:#fffaf4e6;display:grid;place-items:center;box-shadow:0 15px 40px #6b4b3e40;transition:transform .4s var(--ease),opacity .4s var(--ease);pointer-events:none}
.video-play svg{width:18px;height:18px;margin-left:3px;fill:var(--deep)}
.video-box.playing .video-play{opacity:0;transform:scale(.6)}

/* ============ GALLERY ============ */
.gallery{background:url('media/banner.png') center/cover fixed;position:relative}
.gallery:before{content:"";position:absolute;inset:0;background:#f3e9dfdb}
.gallery>*:not(.deco-monogram-bg){position:relative}
#estrutura{padding-top:30px}
.gallery-carousel{position:relative;margin-top:35px;min-width:0}
.thumbs{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;min-width:0}
.thumbs::-webkit-scrollbar{display:none}
.thumb{height:456px;flex:0 0 calc(25% - 7.5px);scroll-snap-align:start;border:0;padding:0;overflow:hidden;position:relative}
.thumb:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,#38251aa8);opacity:0;transition:opacity .5s var(--ease)}
.thumb img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.thumb:hover img{transform:scale(1.12)}
.thumb:hover:after{opacity:1}
.gallery-nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;background:#fffaf5ee;border:1px solid #e7d7c7;color:var(--deep);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 10px 26px #2c1d1730;z-index:5;font-size:18px;line-height:1;transition:background .3s,transform .3s var(--ease),opacity .3s;padding:0}
.gallery-nav:hover{background:var(--gold);transform:translateY(-50%) scale(1.06)}
.gallery-nav.prev{left:10px}
.gallery-nav.next{right:10px}
.gallery-nav[hidden]{display:none}
.gallery-nav:disabled{opacity:0;pointer-events:none}

/* ============ FINAL / FOOTER ============ */
.final{padding:95px 9vw;background:linear-gradient(120deg,var(--taupe),#967057 54%,#785344);color:#fff;display:flex;justify-content:space-between;align-items:end;gap:50px}
.final h2{color:#fff;font-size:clamp(40px,4vw,65px)}
.final p{font:15px/1.8 'Playfair Display'}
.footer{padding:55px 8vw;background:linear-gradient(120deg,#e8d8c9,#cfb49b);display:flex;justify-content:space-between;align-items:center;gap:30px;position:relative;flex-wrap:wrap}
.footer img{width:190px;mix-blend-mode:multiply}
.footer p{font:16px 'Playfair Display';color:var(--deep)}
.footer-links{display:flex;gap:22px;font-size:9px;text-transform:uppercase;letter-spacing:.12em}
.footer-links a{border-bottom:1px solid transparent;padding-bottom:4px;transition:border-color .3s}
.footer-links a:hover{border-color:var(--coffee)}
.to-top{border:1px solid #85615055;background:none;color:var(--deep);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;transition:transform .4s var(--ease),background .4s var(--ease)}
.to-top:hover{transform:translateY(-4px);background:#fff}

/* ============ FORM ============ */
.form-section{background:linear-gradient(130deg,var(--cream),#ccb097)}
.form{background:#fff;padding:38px;display:grid;gap:20px;border-top:5px solid var(--coffee);box-shadow:var(--shadow-lg);position:relative}
.form label{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--coffee);display:block}
.form input,.form select,.form textarea{display:block;width:100%;margin-top:9px;border:1px solid #dccbc4;background:#fffaf7;padding:14px;color:var(--ink);font-size:14px;transition:border-color .3s,box-shadow .3s}
.form input:focus,.form select:focus,.form textarea:focus{outline:0;border-color:var(--coffee);box-shadow:0 0 0 3px var(--glow)}
.form textarea{min-height:100px}
.form button{border:0;background:linear-gradient(135deg,var(--coffee),var(--deep));color:#fff;padding:16px;position:relative;overflow:hidden;font-size:14px;letter-spacing:.06em;transition:transform .4s var(--ease)}
.form button:hover{transform:translateY(-2px)}
.form button:disabled{opacity:.65;cursor:progress}
.form-note{font-size:11px;color:#8a7365;letter-spacing:.03em}
.form-success{display:none;align-items:center;gap:10px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#5c7a56;padding:12px 0 0}
.form-success.show{display:flex}
.form.shake{animation:shake .5s}

/* ============ MOTION / REVEAL ============ */
.motion,.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s var(--ease-soft),transform .9s var(--ease-soft)}
.motion.visible,.reveal.visible{opacity:1;transform:none}
.reveal-stagger>*{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease-soft),transform .8s var(--ease-soft)}
.reveal-stagger.visible>*{opacity:1;transform:none}
.reveal-stagger.visible>*:nth-child(1){transition-delay:.05s}
.reveal-stagger.visible>*:nth-child(2){transition-delay:.15s}
.reveal-stagger.visible>*:nth-child(3){transition-delay:.25s}
.reveal-stagger.visible>*:nth-child(4){transition-delay:.35s}
.reveal-stagger.visible>*:nth-child(5){transition-delay:.45s}
.reveal-stagger.visible>*:nth-child(6){transition-delay:.55s}
.reveal-stagger.visible>*:nth-child(n+7){transition-delay:.6s}

/* ============ MODAL / LIGHTBOX ============ */
.modal{position:fixed;inset:0;background:#463129ee;z-index:100;display:none;place-items:center;padding:4vw}
.modal.open{display:grid}
.modal img{max-width:90vw;max-height:82vh;box-shadow:0 30px 100px #0008;opacity:0;transform:scale(.96);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.modal.open img.in{opacity:1;transform:none}
.modal-close{position:absolute;right:3vw;top:2vw;width:48px;height:48px;border-radius:50%;border:1px solid #fff8;background:none;color:#fff;font-size:24px;transition:transform .4s var(--ease),background .3s}
.modal-close:hover{transform:rotate(90deg);background:#ffffff1a}

/* ============ POP-UP "NOSSA HISTÓRIA" ============ */
.historia-modal{position:fixed;inset:0;z-index:100;display:none;place-items:center;padding:4vw}
.historia-modal.open{display:grid}
.historia-modal-backdrop{position:absolute;inset:0;background:#463129ee}
.historia-modal-panel{position:relative;background:var(--cream);width:100%;max-width:920px;max-height:88vh;overflow-y:auto;box-shadow:0 30px 100px #0008;display:grid;grid-template-columns:1fr 1fr;opacity:0;transform:scale(.96) translateY(10px);transition:opacity .45s var(--ease),transform .45s var(--ease)}
.historia-modal.open .historia-modal-panel{opacity:1;transform:none}
.historia-modal-foto{min-height:280px}
.historia-modal-foto img{width:100%;height:100%;object-fit:cover;display:block}
.historia-modal-texto{padding:44px 42px;min-width:0;overflow-wrap:break-word}
.historia-modal-texto h2{font:500 32px 'Playfair Display';color:var(--deep);margin:0 0 20px}
.historia-modal-texto p{font-size:14px;line-height:1.85;color:#5c483e;margin:0 0 18px}
.historia-modal-medico{margin-top:10px;padding-top:24px;border-top:1px solid #85615033}
.historia-modal-medico strong{display:block;font:500 19px 'Playfair Display';color:var(--deep)}
.historia-modal-medico span{display:block;font-size:11px;letter-spacing:.06em;color:var(--coffee);text-transform:uppercase;margin-top:4px}
.historia-modal-medico p{margin-top:16px;margin-bottom:0}
.historia-modal-close{position:absolute;right:16px;top:16px;width:42px;height:42px;border-radius:50%;border:1px solid #85615055;background:#fffaf4ee;color:var(--deep);font-size:22px;line-height:1;display:grid;place-items:center;z-index:2;transition:transform .4s var(--ease),background .3s}
.historia-modal-close:hover{transform:rotate(90deg);background:#fff}

.float-stack{position:fixed;right:22px;bottom:20px;z-index:30;display:flex;flex-direction:column;align-items:flex-end;gap:14px}
.float{border:0;background:linear-gradient(135deg,var(--coffee),var(--deep));color:#fff;padding:14px 18px;box-shadow:0 12px 35px #382b254d;transition:transform .4s var(--ease);white-space:nowrap}
.float:hover{transform:translateY(-4px)}

.whatsapp-float{width:56px;height:56px;flex:0 0 auto;border-radius:50%;background:#25d366;display:grid;place-items:center;box-shadow:0 12px 30px #1c1c1c40;transition:transform .35s var(--ease)}
.whatsapp-float:hover{transform:translateY(-4px) scale(1.05)}
.whatsapp-float svg{width:28px;height:28px;fill:#fff}

.scroll-fabs{position:fixed;left:22px;bottom:20px;z-index:30;display:flex;flex-direction:column;gap:10px;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .35s var(--ease),transform .35s var(--ease),visibility .35s}
.scroll-fabs.show{opacity:1;visibility:visible;transform:none}
.scroll-fab{width:42px;height:42px;border-radius:50%;border:1px solid #85615055;background:#fffaf4ee;color:var(--deep);display:grid;place-items:center;font-size:16px;line-height:1;box-shadow:0 10px 26px #2c1d1730;transition:transform .3s var(--ease),background .3s,opacity .3s}
.scroll-fab:hover{background:#fff;transform:translateY(-3px)}
.scroll-fab[hidden]{display:none}

/* subhero / dermhero / techhero variants */
.subhero .hero-photo{background-image:url('media/drluiz.png');background-position:60% 15%}
.dermhero .hero-photo{background-image:none;background:radial-gradient(circle at 60% 45%,#fff8efaa 0 17%,transparent 18% 28%,#fff8ef3d 29% 35%,transparent 36%),linear-gradient(145deg,#d9c1aa,#987158)}
.dermhero .hero-photo:after{content:"DERMATOLOGIA";position:absolute;right:3vw;bottom:15%;font:500 clamp(40px,7vw,100px) Cinzel;color:#fff2;writing-mode:vertical-rl;letter-spacing:.12em}
.techhero .hero-photo{background-image:url('media/consultorio.jpg');background-position:50% 35%}
.techhero .hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(145deg,#5d433866,transparent 55%)}

/* ============ KEYFRAMES ============ */
@keyframes zoom{to{transform:scale(1.045)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes lineUp{to{transform:translateY(0)}}
@keyframes float{0%,100%{transform:translate(0,0);opacity:.2}50%{transform:translate(8px,-26px);opacity:.7}}
@keyframes shake{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
@keyframes pulseGold{0%,100%{box-shadow:0 0 0 0 var(--glow)}50%{box-shadow:0 0 0 10px transparent}}

/* ============ REDUCED MOTION ============ */
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .hero h1 span b{transform:none;opacity:1}
  .motion,.reveal,.reveal-stagger>*{opacity:1;transform:none}
}

/* ============ RESPONSIVE ============ */
@media(max-width:950px){
  .menu{display:block}
  /* altura via vh/dvh (não bottom:0): o backdrop-filter do .nav cria um novo
     bloco de contenção para descendentes fixed, o que faria bottom:0 calcular
     a altura em relação ao .nav (~72px) em vez da tela inteira — vh/dvh
     sempre se baseam na viewport real, então cobrem a tela corretamente */
  .links{display:none;position:fixed;top:0;left:0;right:0;height:100vh;height:100dvh;overflow-y:auto;z-index:55;background:linear-gradient(150deg,#efe1d3,#dcc4ab);padding:110px 9vw 40px;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:26px;font-size:22px}
  .links a{font:400 22px 'Playfair Display';opacity:0;transform:translateY(14px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
  .links.open{display:flex}
  .links.open a{opacity:1;transform:none}
  .links.open a:nth-child(1){transition-delay:.05s}
  .links.open a:nth-child(2){transition-delay:.12s}
  .links.open a:nth-child(3){transition-delay:.19s}
  .links.open a:nth-child(4){transition-delay:.26s}
  .links.open a:nth-child(5){transition-delay:.33s}
  .links button{margin-top:10px;width:100%}
  .nav{height:72px}
  .nav.scrolled{height:64px}
  .logo,.nav.scrolled .logo{width:150px;height:auto}
  .hero:before{background:linear-gradient(#f3e9dff5,#c2a286b8)}
  .hero-photo{inset:0;opacity:.55}
  .hero-copy{padding:120px 7vw 115px}
  .intro,.split,.heading{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr 1fr}
  .thumb{height:360px;flex-basis:calc(50% - 5px)}
  .gallery-nav{width:36px;height:36px;font-size:15px}
  .final,.footer{flex-direction:column;align-items:flex-start}
  .proof{overflow:auto}
  .section{padding:85px 7vw}
  #estrutura{padding-top:26px}
  .historia-modal-panel{grid-template-columns:1fr;max-height:92vh}
  .historia-modal-foto{min-height:200px;max-height:240px}
  .historia-modal-texto{padding:32px 26px}
  .historia-modal-texto h2{font-size:27px}
}
@media(max-width:580px){
  .hero h1{font-size:44px}
  .actions{flex-direction:column;align-items:flex-start}
  .cards{grid-template-columns:1fr}
  .card{min-height:255px}
  .hero-copy{padding-bottom:165px}
  .proof{padding:14px 6vw;gap:8px 22px}
  .proof-item{gap:12px}
  .proof span{min-width:75px}
  .video-box:before{width:360px;height:360px}
  .video-box:after{width:410px;height:410px}
  .thumb{height:276px;flex-basis:78%}
  .gallery-nav{width:32px;height:32px;font-size:14px}
  .gallery-nav.prev{left:4px}
  .gallery-nav.next{right:4px}
  .footer{align-items:center;text-align:center}
  .float{font-size:10px;padding:12px 15px}
  .float-stack{right:14px;bottom:14px;gap:10px}
  .whatsapp-float{width:48px;height:48px}
  .whatsapp-float svg{width:24px;height:24px}
  .scroll-fabs{left:14px;bottom:14px;gap:8px}
  .scroll-fab{width:36px;height:36px;font-size:14px}
  .section{padding:75px 6vw}
  #estrutura{padding-top:20px}
}
