:root{--color-wine:#60222f;--color-wine-dark:#421520;--color-wine-light:#7a3141;--color-champagne:#f5e2b2;--color-gold:#d9bd91;--color-cream:#f8f3ed;--color-white:#fffdf9;--color-text:#2b2022;--color-muted:#74676a;--container:1180px;--radius-sm:10px;--radius-md:20px;--radius-lg:34px;--shadow-sm:0 10px 30px rgba(66,21,32,.08);--shadow-md:0 24px 70px rgba(66,21,32,.14);--section-spacing:clamp(5rem,9vw,8.5rem);--border:rgba(96,34,47,.15)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{margin:0;background:var(--color-white);color:var(--color-text);font-family:"DM Sans",sans-serif;font-size:16px;line-height:1.7;overflow-x:hidden}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}img{max-width:100%;display:block}.container{width:min(calc(100% - 3rem),var(--container));margin-inline:auto}.section-space{padding-block:var(--section-spacing)}.skip-link{position:fixed;top:-60px;left:20px;z-index:2000;background:var(--color-champagne);padding:12px 18px;border-radius:8px;color:var(--color-wine-dark)}.skip-link:focus{top:14px}:focus-visible{outline:3px solid var(--color-gold);outline-offset:4px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:"Playfair Display",serif;font-weight:500;line-height:1.03;letter-spacing:-.035em}h1{font-size:clamp(3rem,5.4vw,5.25rem);margin:1.5rem 0 1.7rem}h2{font-size:clamp(2.45rem,4.2vw,4.25rem)}h3{line-height:1.25}em{font-weight:500;color:var(--color-wine);text-decoration:underline;text-decoration-color:var(--color-gold);text-decoration-thickness:1px;text-underline-offset:.18em}.eyebrow{display:inline-flex;align-items:center;gap:.75rem;color:var(--color-wine);font-size:.75rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.eyebrow:before{content:"";width:30px;height:1px;background:var(--color-gold)}.eyebrow-light{color:var(--color-champagne)}
.site-header{position:sticky;top:0;z-index:1000;background:rgba(255,253,249,.9);border-bottom:1px solid transparent;backdrop-filter:blur(16px);transition:.25s}.site-header.scrolled{border-color:var(--border);box-shadow:0 6px 24px rgba(66,21,32,.05)}.header-inner{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:2rem}.brand{display:flex;align-items:center;gap:.85rem;flex-shrink:0}.brand img{width:48px;height:48px;object-fit:cover;object-position:center 48%;border-radius:50%}.brand>span{display:flex;flex-direction:column}.brand strong{font-family:"Playfair Display",serif;font-size:1.05rem;line-height:1.2}.brand small{text-transform:uppercase;letter-spacing:.17em;font-size:.56rem;color:var(--color-muted)}.primary-nav{display:flex;align-items:center;gap:clamp(.8rem,1.5vw,1.5rem)}.primary-nav>a{font-size:.82rem;font-weight:600;position:relative}.primary-nav>a:not(.nav-cta):after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:1px;background:var(--color-gold);transition:.2s}.primary-nav>a:hover:after{right:0}.nav-cta{background:var(--color-wine);color:#fff;padding:.8rem 1.15rem;border-radius:99px;box-shadow:inset 0 0 0 1px rgba(245,226,178,.15)}.menu-toggle{display:none;width:48px;height:48px;border:0;background:transparent;padding:12px;cursor:pointer}.menu-toggle span{display:block;height:2px;background:var(--color-wine);margin:6px 0;transition:.25s}
.hero{position:relative;background:linear-gradient(115deg,var(--color-white) 0 64%,#f1e6e2 64%)}.hero:before{content:"";position:absolute;width:300px;height:300px;border:1px solid rgba(217,189,145,.3);border-radius:50%;left:-190px;top:70px}.hero-grid{display:grid;grid-template-columns:1.12fr .88fr;align-items:center;gap:clamp(3rem,7vw,7rem)}.hero-lead{max-width:650px;color:var(--color-muted);font-size:clamp(1rem,1.4vw,1.18rem);margin-bottom:2rem}.hero-actions{display:flex;gap:.75rem;flex-wrap:wrap}.btn{min-height:54px;display:inline-flex;align-items:center;justify-content:center;gap:.8rem;padding:.8rem 1.45rem;border-radius:99px;font-size:.86rem;font-weight:700;transition:transform .2s,box-shadow .2s,background .2s}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--color-wine);color:#fff;box-shadow:0 13px 30px rgba(96,34,47,.2)}.btn-primary:hover{background:var(--color-wine-dark);box-shadow:0 17px 38px rgba(96,34,47,.25)}.btn-secondary{border:1px solid var(--border);background:rgba(255,255,255,.55)}.btn-champagne{background:var(--color-champagne);color:var(--color-wine-dark)}.trust-list{list-style:none;padding:1.8rem 0 0;margin:2rem 0 0;border-top:1px solid var(--border);display:flex;gap:1rem 1.6rem;flex-wrap:wrap;font-size:.76rem;font-weight:600}.trust-list span{color:var(--color-gold);margin-right:.25rem}.hero-visual{position:relative}.portrait-placeholder{height:clamp(490px,48vw,650px);position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:190px 190px 16px 16px;background:linear-gradient(155deg,#eadbd4,#faf5ef 48%,#d8bfc1);border:1px solid rgba(96,34,47,.12)}.portrait-placeholder:before{content:"";position:absolute;inset:7%;border:1px solid rgba(217,189,145,.65);border-radius:170px 170px 8px 8px}.portrait-monogram{font-family:"Playfair Display",serif;font-size:clamp(5rem,10vw,9rem);font-style:italic;color:rgba(96,34,47,.12)}.placeholder-label{position:absolute;left:0;bottom:32px;background:var(--color-wine);color:#fff;padding:1rem 1.25rem;display:flex;flex-direction:column;min-width:200px}.placeholder-label small{text-transform:uppercase;letter-spacing:.14em;color:var(--color-champagne);font-size:.62rem}.gold-line{position:absolute;right:-18px;top:16%;width:45px;height:65%;border:1px solid var(--color-gold);border-left:0}.visual-note{position:absolute;right:-28px;bottom:-40px;width:230px;padding:1rem 1.2rem;background:var(--color-white);box-shadow:var(--shadow-sm);font-family:"Playfair Display",serif;font-size:.93rem;line-height:1.45}.visual-note span{display:block;color:var(--color-gold);font-family:"DM Sans";font-size:.65rem;letter-spacing:.2em}.expertise-strip{background:var(--color-wine);color:#fff;padding:1rem 0}.expertise-strip .container{display:flex;justify-content:space-between;align-items:center;gap:1rem}.expertise-strip span{text-transform:uppercase;letter-spacing:.13em;font-size:.67rem}.expertise-strip i{width:4px;height:4px;border-radius:50%;background:var(--color-gold)}
.section-heading{display:grid;grid-template-columns:1.15fr .85fr;align-items:end;gap:clamp(2rem,7vw,7rem);margin-bottom:3.5rem}.section-heading h2{margin:.8rem 0 0}.section-heading>p{color:var(--color-muted);margin-bottom:.5rem}.treatments{background:var(--color-white)}.treatment-list{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border);border-left:1px solid var(--border)}.treatment-card{position:relative;display:grid;grid-template-columns:46px 1fr 44px;gap:1rem;align-items:start;min-height:235px;padding:2rem;border-right:1px solid var(--border);border-bottom:1px solid var(--border);transition:.25s}.treatment-card:after{content:"";position:absolute;left:0;bottom:0;width:0;height:3px;background:var(--color-gold);transition:.3s}.treatment-card:hover{transform:translateY(-4px);background:#fcf7f4;box-shadow:var(--shadow-sm);z-index:1}.treatment-card:hover:after{width:100%}.line-icon{width:42px;height:42px;border:1px solid var(--border);border-radius:50%;display:grid;place-items:center;color:var(--color-wine);font-weight:400}.treatment-card h3{margin:0 0 .7rem;font-family:"Playfair Display",serif;font-size:1.5rem}.treatment-card p{margin:0;color:var(--color-muted);font-size:.9rem}.card-link{width:42px;height:42px;border:1px solid var(--border);border-radius:50%;display:grid;place-items:center;color:var(--color-wine);transition:.2s}.card-link:hover{background:var(--color-wine);color:#fff}.treatment-wide{grid-column:1/-1}
.about{background:var(--color-wine);color:#fff}.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:clamp(3rem,8vw,8rem)}.about-media{position:relative}.editorial-placeholder{height:620px;background:linear-gradient(150deg,#7c4050,#e1c8c2);border-radius:180px 180px 8px 8px;position:relative;border:1px solid rgba(245,226,178,.35)}.editorial-placeholder:after{content:"AR";position:absolute;inset:0;display:grid;place-items:center;font:italic 7rem "Playfair Display";color:rgba(255,255,255,.12)}.editorial-placeholder span{position:absolute;left:1.5rem;bottom:1.5rem;text-transform:uppercase;letter-spacing:.16em;font-size:.65rem}.quote-tag{position:absolute;right:-30px;bottom:38px;background:var(--color-champagne);color:var(--color-wine-dark);padding:1.3rem;max-width:210px;font:1.1rem "Playfair Display";box-shadow:var(--shadow-md)}.about-copy h2{margin:1rem 0 1.5rem;font-size:clamp(3rem,5vw,5rem)}.about-copy h2 em{color:var(--color-champagne)}.about-copy>p{color:rgba(255,255,255,.7);max-width:650px}.about-copy .lead-light{font:1.3rem/1.55 "Playfair Display";color:#fff}.principles{display:grid;grid-template-columns:repeat(3,1fr);margin:2rem 0;border-block:1px solid rgba(255,255,255,.14)}.principles div{padding:1.2rem .8rem;border-right:1px solid rgba(255,255,255,.14)}.principles div:last-child{border:0}.principles span,.principles strong,.principles small{display:block}.principles span{color:var(--color-gold);font-size:.65rem}.principles small{color:rgba(255,255,255,.55)}
.specialties{background:var(--color-cream)}.specialties-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(3rem,9vw,9rem)}.sticky-copy h2{margin:1rem 0 1.5rem}.sticky-copy p,.specialty-items p{color:var(--color-muted)}.specialty-items{border-top:1px solid var(--border)}.specialty-items>div{display:grid;grid-template-columns:56px 1fr;column-gap:1rem;padding:1.8rem 0;border-bottom:1px solid var(--border)}.specialty-items span{grid-row:1/3;color:var(--color-gold);font:1.15rem "Playfair Display"}.specialty-items h3{margin:0;font:1.5rem "Playfair Display"}.specialty-items p{margin:.4rem 0 0}.mid-cta{background:var(--color-cream);padding-bottom:var(--section-spacing)}.mid-cta-inner{background:var(--color-wine-dark);color:#fff;padding:clamp(2rem,5vw,4rem);display:flex;align-items:center;justify-content:space-between;gap:2rem;border-radius:var(--radius-md);position:relative;overflow:hidden}.mid-cta-inner:after{content:"";position:absolute;width:220px;height:220px;border:1px solid rgba(217,189,145,.2);border-radius:50%;right:-100px;top:-120px}.mid-cta h2{font-size:clamp(2rem,3vw,3rem);margin:.7rem 0}.mid-cta p{margin:0;color:rgba(255,255,255,.65)}.mid-cta .btn{z-index:1;flex-shrink:0}
.process{background:#fff}.timeline{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr)}.timeline li{position:relative;padding:0 1.5rem 0 0}.timeline li:not(:last-child):before{content:"";position:absolute;left:42px;right:0;top:20px;height:1px;background:var(--border)}.timeline>li>span{width:40px;height:40px;display:grid;place-items:center;position:relative;z-index:1;background:var(--color-white);border:1px solid var(--color-gold);border-radius:50%;color:var(--color-wine);font-size:.7rem}.timeline h3{font:1.35rem "Playfair Display";margin:1.7rem 0 .7rem}.timeline p{color:var(--color-muted);font-size:.88rem}.gallery{background:var(--color-cream)}.gallery-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;grid-auto-rows:220px;gap:1rem}.gallery-card{position:relative;display:flex;flex-direction:column;justify-content:flex-end;padding:1.4rem;border:1px solid var(--border);background:linear-gradient(145deg,#ead9d5,#faf5ef);overflow:hidden}.gallery-card:after{content:"AR";position:absolute;right:1rem;top:0;font:italic 6rem "Playfair Display";color:rgba(96,34,47,.07)}.gallery-card span{font:1.2rem "Playfair Display"}.gallery-card small{text-transform:uppercase;letter-spacing:.13em;color:var(--color-muted);z-index:1}.gallery-tall{grid-row:span 2;border-radius:140px 140px 8px 8px}.gallery-wide{grid-column:span 2}.testimonials{background:var(--color-wine)}.testimonial-shell{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,8vw,8rem);align-items:center;color:#fff}.testimonial-intro h2{margin:1rem 0}.testimonial-intro p{color:rgba(255,255,255,.64)}.testimonial-placeholder{border:1px solid rgba(245,226,178,.28);padding:clamp(2rem,5vw,4rem)}.testimonial-placeholder>span{font:5rem/1 "Playfair Display";color:var(--color-gold)}.testimonial-placeholder p{font:1.35rem/1.5 "Playfair Display"}.testimonial-placeholder small{text-transform:uppercase;letter-spacing:.14em;color:rgba(255,255,255,.5)}
.faq-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(3rem,8vw,8rem)}.faq-intro h2{margin:1rem 0 1.5rem}.faq-intro p{color:var(--color-muted)}.text-link{display:inline-block;color:var(--color-wine);font-weight:700;border-bottom:1px solid var(--color-gold);padding-bottom:.3rem}.accordion{border-top:1px solid var(--border)}.accordion-item{border-bottom:1px solid var(--border)}.accordion-item h3{margin:0}.accordion-item button{width:100%;min-height:76px;border:0;background:transparent;color:var(--color-text);display:flex;justify-content:space-between;align-items:center;gap:1rem;text-align:left;padding:1.2rem 0;font:600 1rem "DM Sans";cursor:pointer}.accordion-item button span{font-size:1.6rem;font-weight:400;color:var(--color-wine);transition:.25s}.accordion-item.active button span{transform:rotate(45deg)}.accordion-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s}.accordion-panel>div{overflow:hidden}.accordion-panel p{color:var(--color-muted);padding:0 2rem 0 0;margin:0}.accordion-item.active .accordion-panel{grid-template-rows:1fr}.accordion-item.active .accordion-panel p{padding-bottom:1.5rem}
.final-cta{position:relative;overflow:hidden;background:var(--color-wine-dark);color:#fff;padding:clamp(6rem,12vw,11rem) 0}.final-cta-content{text-align:center;position:relative;z-index:1}.final-cta h2{font-size:clamp(3rem,6vw,6rem);margin:1.2rem 0 1.7rem}.final-cta h2 em{color:var(--color-champagne)}.final-cta p{color:rgba(255,255,255,.66)}.final-actions{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-top:2rem;flex-wrap:wrap}.instagram-link{font-size:.8rem;border-bottom:1px solid rgba(245,226,178,.5);padding-bottom:.25rem}.final-cta-mark{position:absolute;inset:0;display:grid;place-items:center;color:rgba(255,255,255,.025);font:italic clamp(18rem,40vw,38rem)/1 "Playfair Display"}.site-footer{background:#2a0c13;color:rgba(255,255,255,.65);padding:4.5rem 0 1.5rem}.footer-grid{display:grid;grid-template-columns:1.4fr .7fr .9fr;gap:4rem}.footer-brand strong{color:#fff}.footer-brand small{color:var(--color-gold)}.footer-grid>div,.footer-grid nav{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem}.footer-grid p{max-width:360px}.footer-grid strong{color:#fff}.footer-grid a:hover{color:var(--color-champagne)}.footer-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:3rem;padding-top:1.3rem;display:flex;justify-content:space-between;font-size:.72rem}.floating-whatsapp{position:fixed;z-index:950;right:20px;bottom:20px;background:#1f9c58;color:#fff;border-radius:99px;min-height:52px;padding:0 1rem;display:flex;align-items:center;gap:.5rem;box-shadow:0 12px 30px rgba(14,98,52,.24);font-size:.75rem;font-weight:700}.floating-whatsapp svg{width:22px;fill:currentColor}.reveal{opacity:0;transform:translateY(20px);transition:opacity .65s ease,transform .65s ease}.reveal.visible{opacity:1;transform:none}.delay-1{transition-delay:.08s}.delay-2{transition-delay:.16s}.delay-3{transition-delay:.24s}
@media(max-width:1060px){.primary-nav{gap:.75rem}.primary-nav>a{font-size:.74rem}.hero-grid{gap:3rem}.about-grid{gap:4rem}.visual-note{right:0}.gold-line{right:0}.principles{grid-template-columns:1fr}.principles div{border-right:0;border-bottom:1px solid rgba(255,255,255,.14)}.principles div:last-child{border:0}.timeline{grid-template-columns:1fr 1fr;gap:2.5rem 0}.timeline li:nth-child(2):before{display:none}}
@media(max-width:880px){.container{width:min(calc(100% - 2rem),var(--container))}.header-inner{min-height:74px}.menu-toggle{display:block;z-index:1002}.menu-toggle.active span:nth-child(1){transform:translateY(8px) rotate(45deg)}.menu-toggle.active span:nth-child(2){opacity:0}.menu-toggle.active span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.primary-nav{position:fixed;inset:74px 0 auto;background:var(--color-white);padding:1rem 1rem 1.5rem;box-shadow:var(--shadow-md);flex-direction:column;align-items:stretch;gap:0;opacity:0;visibility:hidden;transform:translateY(-10px);transition:.25s}.primary-nav.open{opacity:1;visibility:visible;transform:none}.primary-nav a{font-size:1rem;padding:.75rem}.primary-nav .nav-cta{text-align:center;margin-top:.6rem;color:#fff}.hero{background:linear-gradient(180deg,var(--color-white) 0 68%,#f1e6e2 68%)}.hero-grid,.about-grid,.specialties-grid,.testimonial-shell,.faq-grid{grid-template-columns:1fr}.hero-visual,.about-media{width:min(100%,620px)}.about-grid{gap:4rem}.section-heading{grid-template-columns:1fr;gap:1rem}.treatment-card{grid-template-columns:44px 1fr 42px;padding:1.5rem}.specialties-grid,.faq-grid{gap:3.5rem}.gallery-grid{grid-template-columns:1fr 1fr}.gallery-tall{grid-row:span 1}.gallery-wide{grid-column:span 2}.mid-cta-inner{align-items:flex-start;flex-direction:column}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}}

@media(max-width:880px){.menu-toggle{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:6px;overflow:visible}.menu-toggle span{flex:0 0 2px;width:100%;height:2px;margin:0}.menu-toggle.active span:nth-child(1){transform:translateY(8px) rotate(45deg)}.menu-toggle.active span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}}
@media(max-width:600px){.section-space{padding-block:clamp(4.5rem,20vw,6rem)}h1{font-size:clamp(2.75rem,13vw,4rem)}h2{font-size:clamp(2.25rem,10vw,3.2rem)}.brand img{width:42px;height:42px}.hero{padding-top:4rem}.hero-actions{flex-direction:column}.hero-actions .btn{width:100%}.trust-list{display:grid;grid-template-columns:1fr;gap:.6rem}.portrait-placeholder{height:470px}.visual-note{position:relative;right:auto;bottom:auto;width:calc(100% - 2rem);margin:-20px 1rem 0}.gold-line{display:none}.expertise-strip .container{justify-content:center;flex-wrap:wrap}.expertise-strip i{display:none}.expertise-strip span{width:47%;text-align:center}.treatment-list{grid-template-columns:1fr}.treatment-card,.treatment-wide{grid-column:auto;grid-template-columns:40px 1fr;min-height:0;padding:1.4rem 1rem}.card-link{grid-column:1;justify-self:center;margin-top:.5rem}.editorial-placeholder{height:480px}.quote-tag{right:1rem;bottom:1rem}.principles{grid-template-columns:1fr}.timeline{grid-template-columns:1fr;gap:0}.timeline li{display:grid;grid-template-columns:52px 1fr;padding-bottom:1.5rem}.timeline li:not(:last-child):before{left:20px;right:auto;top:40px;bottom:0;width:1px;height:auto}.timeline li:nth-child(2):before{display:block}.timeline h3{margin:.2rem 0 .45rem}.timeline p{margin:0}.gallery-grid{grid-template-columns:1fr;grid-auto-rows:190px}.gallery-wide{grid-column:auto}.testimonial-shell{gap:2rem}.faq-grid{gap:2.5rem}.final-actions{flex-direction:column}.final-actions .btn{width:100%}.footer-grid{grid-template-columns:1fr;gap:2.5rem}.footer-grid>div:first-child{grid-column:auto}.footer-bottom{flex-direction:column;gap:.4rem}.floating-whatsapp{width:52px;padding:0;justify-content:center}.floating-whatsapp span{display:none}}
@media(max-width:360px){.container{width:min(calc(100% - 1.25rem),var(--container))}.brand strong{font-size:.92rem}.brand small{font-size:.5rem}.treatment-card{grid-template-columns:36px 1fr}.line-icon{width:36px;height:36px}.quote-tag{max-width:180px;padding:1rem}}

/* Logo institucional no header e no footer */
.brand-mark{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;overflow:hidden;border-radius:50%;background:var(--color-wine);box-shadow:inset 0 0 0 1px rgba(245,226,178,.28)}
.brand-mark img{width:100%;height:100%;object-fit:cover;object-position:center;border-radius:0;mix-blend-mode:screen;transform:scale(1.08)}
.brand-mark-footer{width:56px;height:56px;flex-basis:56px}
@media(max-width:600px){.brand-mark{width:42px;height:42px;flex-basis:42px}.brand-mark-footer{width:50px;height:50px;flex-basis:50px}}
@media(min-width:1500px){:root{--container:1280px}.portrait-placeholder{height:700px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}}
.portrait-stage{height:clamp(490px,48vw,650px);position:relative;overflow:hidden;border-radius:190px 190px 16px 16px;background:#eadbd4;border:1px solid rgba(96,34,47,.12)}.portrait-stage:before{content:"";position:absolute;inset:7%;z-index:2;pointer-events:none;border:1px solid rgba(217,189,145,.7);border-radius:170px 170px 8px 8px}.portrait-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;opacity:0;transform:scale(1.025);transition:opacity 1.45s ease,transform 6.4s ease}.portrait-photo.active{opacity:1;transform:scale(1)}.portrait-caption{position:absolute;z-index:3;left:0;bottom:32px;background:rgba(96,34,47,.94);color:#fff;padding:1rem 1.25rem;display:flex;flex-direction:column;min-width:200px;backdrop-filter:blur(6px)}.portrait-caption small{text-transform:uppercase;letter-spacing:.14em;color:var(--color-champagne);font-size:.62rem}@media(max-width:600px){.portrait-stage{height:470px}}@media(min-width:1500px){.portrait-stage{height:700px}}@media(prefers-reduced-motion:reduce){.portrait-photo{transition:none;transform:none}.portrait-photo:not(:first-child){display:none}}
.hero-identity{display:grid;grid-template-columns:30px auto;grid-template-rows:auto auto;column-gap:.75rem;line-height:1.25}.hero-identity:before{grid-row:1/3;align-self:center}.hero-identity span,.hero-identity strong{grid-column:2}.hero-identity strong{color:var(--color-text);font-size:.72rem;letter-spacing:.13em}.portrait-stage{border:2px solid rgba(217,189,145,.12);box-shadow:0 18px 55px rgba(66,21,32,.12),0 0 0 7px rgba(255,253,249,.72)}.portrait-stage:before{inset:0;border:2px solid transparent;border-radius:inherit;z-index:4}.portrait-stage.frame-pulse:before{animation:frame-gold-pulse 1.8s ease both}.gold-line{right:-34px;width:26px;border-color:rgba(217,189,145,.12);opacity:.25}.hero-visual:has(.frame-pulse) .gold-line{animation:bracket-gold-pulse 1.8s ease both}@keyframes frame-gold-pulse{0%{border-color:transparent;box-shadow:inset 0 0 0 transparent}48%{border-color:var(--color-gold);box-shadow:inset 0 0 22px rgba(217,189,145,.14)}100%{border-color:rgba(217,189,145,.18);box-shadow:inset 0 0 0 transparent}}@keyframes bracket-gold-pulse{0%{opacity:.08;border-color:transparent}48%{opacity:1;border-color:var(--color-gold)}100%{opacity:.28;border-color:rgba(217,189,145,.22)}}@media(prefers-reduced-motion:reduce){.portrait-stage.frame-pulse:before,.hero-visual:has(.frame-pulse) .gold-line{animation:none}}
.hero:after{content:"";position:absolute;z-index:0;width:clamp(260px,33vw,560px);aspect-ratio:1;right:clamp(-180px,-7vw,-70px);top:12%;background:url("assets/images/simbolo-coracao-dourado.png") center/contain no-repeat;opacity:.025;pointer-events:none;animation:heart-gold-breathe 9.5s ease-in-out infinite}.hero-grid{position:relative;z-index:1}.portrait-stage:before{animation:frame-gold-breathe 7.4s ease-in-out infinite}.gold-line{right:-22px;width:18px;top:12%;height:76%;animation:bracket-gold-breathe 5.8s ease-in-out 1.3s infinite}.visual-note{right:10px;bottom:18px;width:min(230px,52%);z-index:5}.portrait-caption{bottom:22px;max-width:46%}@keyframes frame-gold-breathe{0%,100%{border-color:transparent;box-shadow:inset 0 0 0 transparent}42%,58%{border-color:rgba(217,189,145,.85);box-shadow:inset 0 0 20px rgba(217,189,145,.1)}}@keyframes bracket-gold-breathe{0%,100%{opacity:.08;border-color:transparent}45%,64%{opacity:.9;border-color:var(--color-gold)}}@keyframes heart-gold-breathe{0%,100%{opacity:.018;transform:translateY(8px) scale(.97)}45%,62%{opacity:.115;transform:translateY(0) scale(1.02)}}@media(max-width:600px){.visual-note{right:0;bottom:auto;width:calc(100% - 2rem)}.portrait-caption{max-width:62%}.hero:after{width:340px;right:-180px;top:34%}}@media(prefers-reduced-motion:reduce){.portrait-stage:before,.gold-line,.hero:after{animation:none}.portrait-stage:before{border-color:rgba(217,189,145,.3)}.gold-line{opacity:.25;border-color:rgba(217,189,145,.22)}.hero:after{opacity:.05}}
.hero{overflow:clip}.visual-note{right:120px;bottom:120px}.hero:after{right:-5vw}@media(max-width:1060px){.visual-note{right:80px;bottom:86px}}@media(max-width:600px){.visual-note{right:0;bottom:auto}}
.location{background:var(--color-white)}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,8vw,8rem);align-items:center}.location-copy h2{margin:1rem 0 1.4rem}.location-copy p{color:var(--color-muted);margin-bottom:1.8rem}.address-card{display:flex;flex-direction:column;padding:clamp(2rem,5vw,4rem);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--color-cream);font-style:normal;box-shadow:var(--shadow-sm)}.address-card small{text-transform:uppercase;letter-spacing:.15em;color:var(--color-wine);font-weight:700}.address-card strong{font:clamp(1.8rem,3vw,2.7rem) "Playfair Display";margin:.8rem 0 1.2rem}.address-card span{padding:.35rem 0;color:var(--color-muted)}.footer-grid address{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;font-style:normal}@media(max-width:880px){.location-grid{grid-template-columns:1fr}}@media(max-width:600px){.address-card{padding:2rem 1.4rem}}

/* Card de localização projetado para fora da foto, como na composição original */
.hero{overflow:visible}
.visual-note{right:-28px;bottom:-40px}
@media(max-width:1060px){.visual-note{right:0;bottom:-32px}}
@media(max-width:600px){.visual-note{position:relative;right:auto;bottom:auto}}

/* Ritmo dourado sutil na área editorial do hero */
.hero:before{border-color:transparent;animation:hero-orbit-gold 8.8s ease-in-out infinite}
.hero-grid:before,.hero-grid:after{content:"";position:absolute;z-index:-1;pointer-events:none;background:linear-gradient(90deg,transparent,var(--color-gold),transparent);opacity:.08;transform-origin:center}
.hero-grid:before{width:clamp(90px,12vw,170px);height:1px;left:-5vw;top:58%;animation:hero-line-gold 6.7s ease-in-out 1.1s infinite}
.hero-grid:after{width:clamp(110px,15vw,210px);height:1px;left:43%;bottom:5%;animation:hero-line-gold 9.3s ease-in-out 3.2s infinite reverse}
@keyframes hero-orbit-gold{0%,100%{border-color:rgba(217,189,145,.08);box-shadow:0 0 0 rgba(217,189,145,0)}42%,58%{border-color:rgba(217,189,145,.78);box-shadow:0 0 28px rgba(217,189,145,.1)}}
@keyframes hero-line-gold{0%,100%{opacity:.04;transform:scaleX(.18)}38%,62%{opacity:.7;transform:scaleX(1)}}
@media(max-width:880px){.hero-grid:after{left:auto;right:6%;bottom:49%}}
@media(max-width:600px){.hero-grid:before{left:-1rem;top:45%}.hero-grid:after{right:0;bottom:46%}}
@media(prefers-reduced-motion:reduce){.hero:before,.hero-grid:before,.hero-grid:after{animation:none}.hero:before{border-color:rgba(217,189,145,.28)}.hero-grid:before,.hero-grid:after{opacity:.2;transform:none}}

/* Logo completa, sem recorte, preservando a definição do arquivo original */
.brand-mark{width:58px;height:58px;flex-basis:58px;padding:3px}
.brand-mark img{width:100%;height:100%;object-fit:contain;object-position:center;transform:scale(.9);image-rendering:auto}
.brand-mark-footer{width:64px;height:64px;flex-basis:64px}
@media(max-width:600px){.brand-mark{width:50px;height:50px;flex-basis:50px;padding:2px}.brand-mark-footer{width:56px;height:56px;flex-basis:56px}}

/* Três semicírculos concêntricos com o mesmo pulso dourado */
.hero:before{display:block;width:480px;height:480px;left:-280px;top:-20px;border:0;background:radial-gradient(circle,transparent 0 149px,rgba(217,189,145,.9) 149px 150px,transparent 150px 194px,rgba(217,189,145,.78) 194px 195px,transparent 195px 239px,rgba(217,189,145,.66) 239px 240px,transparent 240px);animation:hero-semicircles-gold 8.8s ease-in-out infinite}
@keyframes hero-semicircles-gold{0%,100%{opacity:.08;filter:drop-shadow(0 0 0 rgba(217,189,145,0))}42%,58%{opacity:.82;filter:drop-shadow(0 0 8px rgba(217,189,145,.16))}}
@media(max-width:880px){.hero:before{left:-325px;top:20px;transform:scale(.82)}}
@media(max-width:600px){.hero:before{left:-340px;top:55px;transform:scale(.7)}}
@media(prefers-reduced-motion:reduce){.hero:before{animation:none;opacity:.3;filter:none}}

/* Reflexo branco ocasional nos sublinhados dourados do título */
.hero h1 em,.treatments .section-heading h2 em,.about-copy h2 em{text-decoration:none;padding-bottom:.04em;background-image:linear-gradient(90deg,transparent 0,rgba(255,255,255,.25) 25%,#fff 50%,rgba(255,255,255,.25) 75%,transparent 100%),linear-gradient(var(--color-gold),var(--color-gold));background-repeat:no-repeat;background-size:24% 1px,100% 1px;background-position:-35% 100%,0 100%;-webkit-box-decoration-break:clone;box-decoration-break:clone;animation:title-underline-shine 8.4s ease-in-out 1.8s infinite}
@keyframes title-underline-shine{0%,12%{background-position:-35% 100%,0 100%}32%,100%{background-position:140% 100%,0 100%}}
@media(prefers-reduced-motion:reduce){.hero h1 em,.treatments .section-heading h2 em,.about-copy h2 em{animation:none;background-image:linear-gradient(var(--color-gold),var(--color-gold));background-size:100% 1px;background-position:0 100%}}

/* Remove a linha decorativa que atravessava a última palavra do título */
.hero-grid:before{display:none}

/* Arcos vetoriais em ritmos diferentes, formando uma onda dourada */
.hero:before{display:none}
.hero-orbits{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.hero-orbits i{position:absolute;display:block;border:1px solid var(--color-gold);border-radius:50%;opacity:.05;will-change:opacity,filter;transform:translateZ(0);backface-visibility:hidden;animation-name:hero-orbit-wave;animation-timing-function:ease-in-out;animation-iteration-count:infinite}
.hero-orbits i:nth-child(1){width:300px;height:300px;left:-190px;top:70px;animation-duration:8.2s}
.hero-orbits i:nth-child(2){width:390px;height:390px;left:-235px;top:25px;animation-duration:9.6s;animation-delay:1.15s}
.hero-orbits i:nth-child(3){width:480px;height:480px;left:-280px;top:-20px;animation-duration:11s;animation-delay:2.3s}
@keyframes hero-orbit-wave{0%,100%{opacity:.035;filter:drop-shadow(0 0 0 rgba(217,189,145,0))}38%,55%{opacity:.82;filter:drop-shadow(0 0 4px rgba(217,189,145,.14))}72%{opacity:.12;filter:drop-shadow(0 0 0 rgba(217,189,145,0))}}
@media(max-width:880px){.hero-orbits{transform:scale(.82);transform-origin:left top}.hero-orbits i:nth-child(1){left:-215px}.hero-orbits i:nth-child(2){left:-260px}.hero-orbits i:nth-child(3){left:-305px}}
@media(max-width:600px){.hero-orbits{transform:scale(.7)}.hero-orbits i:nth-child(1){left:-225px;top:115px}.hero-orbits i:nth-child(2){left:-270px;top:70px}.hero-orbits i:nth-child(3){left:-315px;top:25px}}
@media(prefers-reduced-motion:reduce){.hero-orbits i{animation:none;opacity:.28;filter:none}}

/* Centralização do bloco de benefícios no responsivo */
@media(max-width:600px){.trust-list{justify-items:center;text-align:center}.trust-list li{width:100%}.hero-visual{margin-inline:auto}}

/* Letreiro automático e contínuo de serviços */
.expertise-strip{position:relative;overflow:hidden;padding:1.05rem 0;isolation:isolate;pointer-events:none;user-select:none;touch-action:none}
.expertise-strip:before,.expertise-strip:after{content:"";position:absolute;z-index:2;left:0;width:100%;height:1px;background:linear-gradient(90deg,transparent 0,rgba(255,255,255,.2) 34%,#fff 50%,rgba(245,226,178,.9) 56%,transparent 72%);background-size:38% 100%;background-repeat:no-repeat;filter:drop-shadow(0 0 5px rgba(245,226,178,.45));animation:services-border-shine 7.8s linear infinite}
.expertise-strip:before{top:0;background-position:-60% 0}
.expertise-strip:after{bottom:0;background-position:160% 0;animation-duration:10.4s;animation-direction:reverse;animation-delay:1.7s}
.services-marquee{display:flex;width:max-content;animation:services-marquee-flow 34s linear infinite;will-change:transform}
.services-marquee-group{display:flex;align-items:center;flex-shrink:0;gap:clamp(2rem,4vw,5rem);padding-right:clamp(2rem,4vw,5rem)}
.services-marquee-group span{white-space:nowrap;text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;font-weight:600;color:#fff}
.services-marquee-group i{width:4px;height:4px;flex:0 0 4px;border-radius:50%;background:var(--color-gold);box-shadow:0 0 8px rgba(245,226,178,.38)}
@keyframes services-marquee-flow{to{transform:translateX(-50%)}}
@keyframes services-border-shine{0%{background-position:-60% 0;opacity:.12}18%,32%{opacity:1}55%,100%{background-position:160% 0;opacity:.12}}
@media(max-width:600px){.services-marquee{animation-duration:26s}.services-marquee-group{gap:2rem;padding-right:2rem}.services-marquee-group span{font-size:.66rem}}
@media(prefers-reduced-motion:reduce){.expertise-strip{pointer-events:auto;touch-action:auto}.expertise-strip:before,.expertise-strip:after{animation:none;opacity:.3;background-position:center}.services-marquee{width:100%;animation:none}.services-marquee-group{width:100%;padding:0 1rem;justify-content:center;flex-wrap:wrap;gap:.7rem 1.2rem}.services-marquee-group[aria-hidden="true"]{display:none}}

/* Letreiro mais lento, avançando continuamente para a direita */
.services-marquee{animation-duration:52s}
@keyframes services-marquee-flow{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@media(max-width:600px){.services-marquee{animation-duration:44s}}

/* Moldura vetorial nítida com reflexo percorrendo todo o contorno */
@property --portrait-border-angle{syntax:"<angle>";initial-value:0deg;inherits:false}
.portrait-stage{border:1px solid rgba(217,189,145,.72);box-shadow:0 18px 55px rgba(66,21,32,.12),0 0 0 6px rgba(255,253,249,.72)}
.portrait-stage:before,.portrait-stage.frame-pulse:before{display:none;animation:none}
.portrait-stage:after{content:"";position:absolute;inset:0;z-index:6;padding:2px;border-radius:inherit;pointer-events:none;background:conic-gradient(from var(--portrait-border-angle),transparent 0deg 275deg,rgba(245,226,178,.08) 292deg,rgba(255,255,255,.95) 315deg,#fff 322deg,var(--color-gold) 334deg,transparent 357deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;filter:drop-shadow(0 0 4px rgba(245,226,178,.38));animation:portrait-border-shine 8.6s linear infinite;will-change:--portrait-border-angle}
@keyframes portrait-border-shine{to{--portrait-border-angle:360deg}}
@media(prefers-reduced-motion:reduce){.portrait-stage:after{animation:none;background:transparent;filter:none}}

/* Mantém os separadores dourados do letreiro também no responsivo */
@media(max-width:600px){.expertise-strip .services-marquee-group i{display:block}}

/* Remove a linha decorativa lateral restante */
.hero-grid:after{display:none}

/* Reflexo branco ocasional na linha completa acima dos benefícios */
.trust-list{position:relative;border-top:0}
.trust-list:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background-image:linear-gradient(90deg,transparent,rgba(255,255,255,.3),#fff,rgba(255,255,255,.3),transparent),linear-gradient(var(--color-gold),var(--color-gold));background-repeat:no-repeat;background-size:18% 1px,100% 1px;background-position:-24% 0,0 0;animation:trust-line-shine 9.2s ease-in-out 2.4s infinite}
@keyframes trust-line-shine{0%,14%{background-position:-24% 0,0 0}34%,100%{background-position:124% 0,0 0}}

/* Brilho dourado percorrendo as bordas dos botões no hover */
@property --button-shine-angle{syntax:"<angle>";initial-value:0deg;inherits:false}
.btn{position:relative;isolation:isolate;overflow:hidden}
.btn:before{content:"";position:absolute;inset:0;z-index:2;padding:1px;border-radius:inherit;pointer-events:none;opacity:0;background:conic-gradient(from var(--button-shine-angle),transparent 0deg 255deg,rgba(245,226,178,.18) 278deg,#fff 304deg,var(--color-champagne) 322deg,transparent 350deg);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;transition:opacity .22s}
.btn:hover:before,.btn:focus-visible:before{opacity:1;animation:button-border-shine 1.8s linear infinite}
@keyframes button-border-shine{to{--button-shine-angle:360deg}}
@media(prefers-reduced-motion:reduce){.trust-list:before{animation:none;background-image:linear-gradient(var(--color-gold),var(--color-gold));background-size:100% 1px;background-position:0 0}.btn:hover:before,.btn:focus-visible:before{animation:none;background:transparent;box-shadow:inset 0 0 0 1px var(--color-champagne);-webkit-mask:none;mask:none}}

/* O card de localização permanece acima da foto e de todas as animações */
.hero-visual{isolation:isolate}
.portrait-stage{z-index:1}
.gold-line{z-index:2}
.visual-note{z-index:30;isolation:isolate;background:var(--color-white)}

/* Borda estável com um traço dourado percorrendo o contorno */
.btn:before{inset:0;padding:0;border:1px solid transparent;background:none;-webkit-mask:none;mask:none;filter:none;opacity:0;transition:border-color .2s,opacity .2s}
.btn:hover:before,.btn:focus-visible:before{opacity:1;border-color:rgba(245,226,178,.68);animation:none}
.btn:after{content:"";position:absolute;z-index:3;width:30px;height:2px;left:0;top:0;border-radius:99px;pointer-events:none;opacity:0;background:linear-gradient(90deg,transparent,var(--color-champagne) 35%,#fff 55%,var(--color-gold) 76%,transparent);box-shadow:0 0 6px rgba(245,226,178,.7);offset-path:inset(2px round 999px);offset-distance:0%;offset-rotate:auto;will-change:offset-distance}
.btn:hover:after,.btn:focus-visible:after{opacity:1;animation:button-gold-trace 2.4s linear infinite}
@keyframes button-gold-trace{to{offset-distance:100%}}
@media(prefers-reduced-motion:reduce){.btn:hover:before,.btn:focus-visible:before{border-color:var(--color-champagne);box-shadow:none}.btn:after{display:none}}

/* Coração sempre visível, com pulsação suave */
.hero:after{opacity:.085;transform-origin:center;animation:hero-heart-pulse 5.2s ease-in-out infinite;will-change:transform}
@keyframes hero-heart-pulse{0%,100%{opacity:.085;transform:translate3d(0,3px,0) scale(.985)}50%{opacity:.085;transform:translate3d(0,-3px,0) scale(1.035)}}
@media(max-width:600px){.hero:after{opacity:.075}}
@media(prefers-reduced-motion:reduce){.hero:after{animation:none;opacity:.075;transform:none}}

/* Header resiliente em diferentes larguras e proporções de tela */
@media(max-width:880px){.site-header{overflow:visible}.header-inner{min-height:74px;height:auto;padding-block:7px;gap:.75rem}.brand{flex:1 1 auto;min-width:0;gap:.65rem}.brand>span{min-width:0}.brand strong,.brand small{white-space:nowrap}.menu-toggle{flex:0 0 44px;width:44px;height:44px;margin-left:auto}.primary-nav{top:74px;inset-inline:0}}
@media(max-width:600px){.header-inner.container{width:min(calc(100% - 1.25rem),var(--container))}.brand{gap:.55rem}.brand-mark{width:44px;height:44px;flex-basis:44px;padding:2px}.brand strong{font-size:.9rem;line-height:1.15}.brand small{font-size:.47rem;line-height:1.3;letter-spacing:.1em}.menu-toggle{flex-basis:42px;width:42px;height:42px;padding:10px}}
@media(max-width:360px){.header-inner.container{width:min(calc(100% - .8rem),var(--container))}.header-inner{gap:.4rem}.brand{gap:.4rem}.brand-mark{width:40px;height:40px;flex-basis:40px}.brand strong{font-size:.82rem}.brand small{font-size:.42rem;letter-spacing:.065em}.menu-toggle{flex-basis:38px;width:38px;height:38px;padding:8px}}

/* Barra móvel fixa: uma única fonte de altura e posicionamento evita que o
   navegador desloque ou recorte o conteúdo durante a rolagem por toque. */
@media (max-width: 880px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  html {
    overflow-y: auto;
  }

  body {
    padding-top: 80px;
    overflow-y: visible;
  }

  body.menu-open {
    overflow-y: hidden;
  }

  main,
  .site-footer {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  .site-header {
    position: fixed !important;
    top: var(--visual-viewport-top, 0px) !important;
    right: 0;
    left: 0;
    width: 100%;
    height: 80px;
    min-height: 80px;
    padding: 0;
    overflow: hidden;
    transform: none !important;
    translate: none !important;
    z-index: 1000;
    background: var(--color-white);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    transition: none;
  }

  .header-inner {
    position: relative;
    height: 80px;
    min-height: 80px;
    padding-block: 0;
    overflow: visible;
    transform: none;
    display: flex;
    align-items: center;
  }

  .brand,
  .brand > span,
  .brand-mark,
  .menu-toggle {
    transform: none;
  }

  .primary-nav {
    top: 80px;
  }
}

@media (max-width: 360px) {
  body {
    padding-top: 76px;
  }

  .site-header {
    height: 76px;
    min-height: 76px;
  }

  .header-inner {
    height: 76px;
    min-height: 76px;
    padding-block: 0;
  }

  .primary-nav {
    top: 76px;
  }
}

/* CTA dos tratamentos: pulso violeta sutil, sem alterar ou atravessar o formato do botão. */
.card-link {
  position: relative;
  isolation: isolate;
  overflow: visible;
  border-color: rgba(104, 57, 109, .42);
  background: var(--color-white);
  box-shadow: 0 0 0 0 rgba(104, 57, 109, 0);
  animation: treatment-cta-pulse 3.2s ease-in-out infinite;
  width: auto;
  min-width: 178px;
  min-height: 44px;
  height: auto;
  padding: .65rem 1.1rem;
  border-radius: var(--radius-sm);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  white-space: nowrap;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .015em;
}

.card-link::before {
  content: "↗";
  flex: 0 0 auto;
  font-size: .9rem;
  line-height: 1;
  font-weight: 500;
}

.treatment-card {
  grid-template-columns: 46px minmax(0, 1fr) auto;
}

@media (max-width: 880px) {
  .treatment-card,
  .treatment-wide {
    grid-template-columns: 44px minmax(0, 1fr);
  }

  .card-link {
    grid-column: 1 / -1;
    justify-self: start;
  }
}

@media (max-width: 360px) {
  .treatment-card,
  .treatment-wide {
    grid-template-columns: 36px minmax(0, 1fr);
  }
}

.card-link:hover,
.card-link:focus-visible {
  background: var(--color-wine);
  color: #fff;
  border-color: #68396d;
  box-shadow: 0 0 0 4px rgba(104, 57, 109, .12), 0 8px 22px rgba(96, 34, 47, .18);
}

@keyframes treatment-cta-pulse {
  0%, 100% {
    border-color: rgba(104, 57, 109, .34);
    box-shadow: 0 0 0 0 rgba(104, 57, 109, 0);
  }
  50% {
    border-color: rgba(104, 57, 109, .9);
    box-shadow: 0 0 0 4px rgba(104, 57, 109, .1), 0 0 14px rgba(104, 57, 109, .1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .card-link {
    animation: none;
  }
}

/* Corações institucionais ficam nas áreas externas da seção, nunca dentro dos cards. */
.treatments {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.treatments > .container {
  position: relative;
  z-index: 1;
}

.treatments-background-marks {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}

.treatments-background-marks i {
  position: absolute;
  display: block;
  aspect-ratio: 1;
  background: url("assets/images/simbolo-coracao-dourado.png") center / contain no-repeat;
  opacity: .045;
  transform: rotate(var(--heart-rotation, 0deg)) scale(.98);
  animation: treatments-heart-glow 7s ease-in-out infinite;
}

.treatments-background-marks i:nth-child(1) {
  --heart-rotation: -8deg;
  width: 340px;
  left: -105px;
  top: 8rem;
}

.treatments-background-marks i:nth-child(2) {
  --heart-rotation: 7deg;
  width: 430px;
  right: -145px;
  top: 38%;
  animation-duration: 9.5s;
  animation-delay: -3.2s;
}

.treatments-background-marks i:nth-child(3) {
  --heart-rotation: -3deg;
  width: 290px;
  left: -82px;
  bottom: 4rem;
  animation-duration: 8.2s;
  animation-delay: -5.4s;
}

@keyframes treatments-heart-glow {
  0%, 100% {
    opacity: .035;
    filter: drop-shadow(0 0 0 rgba(217, 189, 145, 0));
    transform: rotate(var(--heart-rotation, 0deg)) scale(.98);
  }
  50% {
    opacity: .13;
    filter: drop-shadow(0 0 18px rgba(217, 189, 145, .25));
    transform: rotate(var(--heart-rotation, 0deg)) scale(1.025);
  }
}

@media (max-width: 600px) {
  .treatments-background-marks i:nth-child(1) {
    width: 245px;
    left: auto;
    right: -135px;
    top: 1rem;
  }

  .treatments-background-marks i:nth-child(2) {
    display: none;
  }

  .treatments-background-marks i:nth-child(3) {
    width: 220px;
    left: -125px;
    bottom: -20px;
  }
}

/* Galeria da seção Sobre, seguindo a transição e a moldura luminosa do hero. */
.about-photo-stage {
  position: relative;
  height: 620px;
  overflow: hidden;
  border: 1px solid rgba(217, 189, 145, .72);
  border-radius: 180px 180px 8px 8px;
  background: #7c4050;
  box-shadow: 0 18px 55px rgba(36, 8, 15, .24), 0 0 0 6px rgba(245, 226, 178, .08);
  animation: about-frame-gold-breathe 6.8s ease-in-out infinite;
}

.about-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 38%;
  opacity: 0;
  transform: scale(1.025);
  transition: opacity 1.45s ease, transform 6.4s ease;
}

.about-photo.active {
  opacity: 1;
  transform: scale(1);
}

.about-photo-stage::before {
  content: "";
  position: absolute;
  inset: 7px;
  z-index: 5;
  pointer-events: none;
  border: 1px solid transparent;
  border-radius: 173px 173px 4px 4px;
  opacity: .08;
  box-shadow: inset 0 0 0 rgba(217, 189, 145, 0);
  animation: about-inner-gold-line 8.4s ease-in-out 1.2s infinite;
}

.about-photo-stage::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 6;
  padding: 2px;
  border-radius: inherit;
  pointer-events: none;
  background: conic-gradient(from var(--portrait-border-angle), transparent 0deg 255deg, rgba(217, 189, 145, .08) 275deg, var(--color-champagne) 298deg, #fff 315deg, #fff 326deg, var(--color-gold) 342deg, transparent 359deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  filter: drop-shadow(0 0 6px rgba(245, 226, 178, .55));
  animation: portrait-border-shine 7.8s linear infinite;
  will-change: --portrait-border-angle;
}

@keyframes about-frame-gold-breathe {
  0%, 100% {
    border-color: rgba(217, 189, 145, .28);
    box-shadow: 0 18px 55px rgba(36, 8, 15, .24), 0 0 0 6px rgba(245, 226, 178, .04);
  }
  48%, 62% {
    border-color: rgba(245, 226, 178, .92);
    box-shadow: 0 18px 55px rgba(36, 8, 15, .24), 0 0 0 6px rgba(245, 226, 178, .13), 0 0 22px rgba(217, 189, 145, .15);
  }
}

@keyframes about-inner-gold-line {
  0%, 18%, 100% {
    opacity: .04;
    border-color: transparent;
    box-shadow: inset 0 0 0 rgba(217, 189, 145, 0);
  }
  43%, 68% {
    opacity: .9;
    border-color: rgba(217, 189, 145, .82);
    box-shadow: inset 0 0 18px rgba(217, 189, 145, .1), 0 0 8px rgba(245, 226, 178, .08);
  }
}

.about-media .quote-tag {
  z-index: 8;
}

/* Na seção Sobre, a narrativa textual vem antes da galeria em todas as larguras. */
.about-copy {
  order: 1;
}

.about-media {
  order: 2;
}

/* Os princípios repetem a dinâmica dos cards de tratamentos sobre o fundo vinho. */
.principles div {
  position: relative;
  transition: transform .25s ease, background-color .25s ease, box-shadow .25s ease;
}

.principles div::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 0;
  height: 3px;
  background: var(--color-gold);
  box-shadow: 0 0 10px rgba(245, 226, 178, .28);
  transition: width .3s ease;
}

.principles div:hover {
  z-index: 1;
  transform: translateY(-4px);
  background: rgba(255, 255, 255, .055);
  box-shadow: 0 14px 28px rgba(36, 8, 15, .16);
}

.principles div:hover::after {
  width: 100%;
}

@media (max-width: 600px) {
  .about-photo-stage {
    height: 480px;
    border-width: 2px;
  }

  .about-photo-stage::after {
    padding: 3px;
    opacity: 1;
    background: conic-gradient(from var(--portrait-border-angle), transparent 0deg 220deg, rgba(217, 189, 145, .12) 245deg, var(--color-gold) 275deg, var(--color-champagne) 298deg, #fff 316deg, #fff 336deg, var(--color-gold) 352deg, transparent 359deg);
    filter: drop-shadow(0 0 8px rgba(245, 226, 178, .8));
    animation: portrait-border-shine 5.4s linear infinite, about-mobile-border-glow 2.7s ease-in-out infinite;
    transform: translateZ(0);
  }
}

@keyframes about-mobile-border-glow {
  0%, 100% {
    opacity: .68;
    filter: drop-shadow(0 0 4px rgba(245, 226, 178, .42));
  }
  50% {
    opacity: 1;
    filter: drop-shadow(0 0 11px rgba(255, 255, 255, .9)) drop-shadow(0 0 16px rgba(217, 189, 145, .55));
  }
}

@media (prefers-reduced-motion: reduce) {
  .about-photo {
    transition: none;
    transform: none;
  }

  .about-photo:not(:first-child) {
    display: none;
  }

  .about-photo-stage::after {
    animation: none;
    background: transparent;
    filter: none;
  }


  .about-photo-stage {
    animation: none;
    border-color: rgba(217, 189, 145, .55);
  }

  .about-photo-stage::before {
    animation: none;
    opacity: .35;
    border-color: rgba(217, 189, 145, .55);
  }
}

@media (prefers-reduced-motion: reduce) {
  .treatments-background-marks i {
    animation: none;
    opacity: .07;
  }
}

/* Itens do atendimento integrado repetem a interação dos cards de procedimentos. */
.specialty-items > div {
  position: relative;
  transition: transform .25s ease, background-color .25s ease, box-shadow .25s ease;
}

.specialty-items > div::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 0;
  height: 3px;
  background: var(--color-gold);
  box-shadow: 0 0 10px rgba(217, 189, 145, .3);
  transition: width .3s ease;
}

.specialty-items > div:hover {
  z-index: 1;
  transform: translateY(-4px);
  background: #fcf7f4;
  box-shadow: var(--shadow-sm);
}

.specialty-items > div:hover::after {
  width: 100%;
}

@media (prefers-reduced-motion: reduce) {
  .specialty-items > div {
    transition: none;
  }
}

/* Marca d'água institucional com reflexo restrito ao desenho do coração. */
.specialties {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.specialties > .container {
  position: relative;
  z-index: 1;
}

.specialties::before,
.specialties::after {
  content: "";
  position: absolute;
  z-index: 0;
  width: clamp(250px, 24vw, 430px);
  aspect-ratio: 1;
  right: clamp(-145px, -6vw, -70px);
  top: 50%;
  pointer-events: none;
  transform: translateY(-50%) rotate(-5deg);
  -webkit-mask: url("assets/images/simbolo-coracao-dourado.png") center / contain no-repeat;
  mask: url("assets/images/simbolo-coracao-dourado.png") center / contain no-repeat;
}

.specialties::before {
  background: rgba(217, 189, 145, .075);
}

.specialties::after {
  background: linear-gradient(105deg, transparent 30%, rgba(245, 226, 178, .12) 40%, #fff 49%, var(--color-gold) 56%, transparent 70%);
  background-size: 260% 100%;
  background-position: 150% 0;
  filter: drop-shadow(0 0 8px rgba(217, 189, 145, .18));
  animation: specialties-heart-shine 8.8s ease-in-out infinite;
}

@keyframes specialties-heart-shine {
  0%, 16% { background-position: 150% 0; opacity: .08; }
  42%, 58% { opacity: .68; }
  78%, 100% { background-position: -150% 0; opacity: .08; }
}

@media (max-width: 600px) {
  .specialties::before,
  .specialties::after {
    width: 245px;
    right: -130px;
    top: 30%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .specialties::after {
    display: none;
  }
}

/* Equipe */
.team {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, var(--color-white), #faf6f1);
}

.team-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(1.25rem, 2.6vw, 2.25rem);
}

.team-card {
  position: relative;
  min-width: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  transition: transform .3s ease;
}

.team-card::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 3px;
  background: var(--color-gold);
  box-shadow: 0 0 10px rgba(217, 189, 145, .32);
  transition: width .3s ease;
}

.team-card:hover {
  z-index: 1;
  transform: translateY(-6px);
  background: transparent;
  box-shadow: none;
}

.team-photo-placeholder {
  transition: box-shadow .3s ease, border-color .3s ease;
}

.team-card:hover .team-photo-placeholder {
  border-color: rgba(217, 189, 145, .78);
  box-shadow: 0 18px 38px rgba(66, 21, 32, .12);
}

.team-card:hover::after {
  width: 100%;
}

.team-photo-placeholder {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  border: 1px solid rgba(217, 189, 145, .48);
  border-radius: 150px 150px 0 0;
  background: linear-gradient(150deg, #eadbd4, #faf5ef 52%, #dfc9c8);
}

.team-photo-placeholder::before {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px solid rgba(217, 189, 145, .58);
  border-radius: 142px 142px 0 0;
  pointer-events: none;
  z-index: 3;
  animation: team-inner-frame-pulse 7.6s ease-in-out infinite;
}

@property --team-border-angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}

.team-photo-placeholder::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 4;
  padding: 2px;
  border-radius: inherit;
  pointer-events: none;
  background: conic-gradient(from var(--team-border-angle), transparent 0deg 255deg, rgba(217, 189, 145, .1) 278deg, var(--color-champagne) 302deg, #fff 319deg, #fff 330deg, var(--color-gold) 345deg, transparent 359deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  filter: drop-shadow(0 0 6px rgba(245, 226, 178, .52));
  animation: team-border-shine 7.2s linear infinite;
}

@keyframes team-border-shine {
  to { --team-border-angle: 360deg; }
}

@keyframes team-inner-frame-pulse {
  0%, 16%, 100% {
    opacity: .12;
    border-color: transparent;
    box-shadow: inset 0 0 0 rgba(217, 189, 145, 0);
  }
  42%, 68% {
    opacity: 1;
    border-color: rgba(217, 189, 145, .86);
    box-shadow: inset 0 0 16px rgba(217, 189, 145, .1), 0 0 8px rgba(245, 226, 178, .1);
  }
}

.team-photo-placeholder img {
  width: 38%;
  max-width: 135px;
  opacity: .13;
  filter: sepia(.2) drop-shadow(0 0 12px rgba(217, 189, 145, .12));
}

.team-photo img {
  width: 100%;
  max-width: none;
  height: 100%;
  object-fit: cover;
  object-position: center 28%;
  opacity: 1;
  filter: none;
}

.team-card-copy {
  padding: 1.35rem 1.4rem 1.5rem;
  background: transparent;
}

.team-card-copy h3 {
  margin: 0 0 .35rem;
  font: 1.45rem/1.25 "Playfair Display", serif;
}

.team-card-copy p {
  margin: 0;
  color: var(--color-wine);
  font-size: .84rem;
  font-weight: 600;
}

@media (max-width: 880px) {
  .team-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

}

@media (max-width: 600px) {
  .team-grid {
    grid-template-columns: 1fr;
    gap: 1.25rem;
  }

  .team-card,
  .team-card:last-child {
    grid-column: auto;
    width: 100%;
  }

  .team-photo-placeholder {
    aspect-ratio: 4 / 4.6;
  }

  .team-photo-placeholder::after {
    padding: 3px;
    filter: drop-shadow(0 0 8px rgba(245, 226, 178, .72));
    animation-duration: 5.8s;
  }
}

@media (prefers-reduced-motion: reduce) {
  .team-card {
    transition: none;
  }

  .team-photo-placeholder::before,
  .team-photo-placeholder::after {
    animation: none;
  }

  .team-photo-placeholder::before {
    opacity: .55;
    border-color: rgba(217, 189, 145, .65);
  }

  .team-photo-placeholder::after {
    background: transparent;
    filter: none;
  }
}

/* Corações em fluxo aquecem a seção da jornada sem competir com o conteúdo. */
.process {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.process > .container {
  position: relative;
  z-index: 1;
}

.process-heart-stream {
  position: absolute;
  z-index: 0;
  left: 0;
  top: 12%;
  display: flex;
  align-items: center;
  width: max-content;
  height: 72%;
  pointer-events: none;
  opacity: .42;
  animation: process-hearts-flow 36s linear infinite;
  will-change: transform;
}

.process-heart-group {
  display: flex;
  align-items: center;
  justify-content: space-around;
  width: 100vw;
  min-width: 100vw;
}

.process-heart-group i {
  display: block;
  width: var(--process-heart-size, 120px);
  aspect-ratio: 1;
  background: url("assets/images/simbolo-coracao-dourado.png") center / contain no-repeat;
  opacity: var(--process-heart-opacity, .08);
  transform: translateY(var(--process-heart-y, 0)) rotate(var(--process-heart-rotation, 0deg));
  filter: drop-shadow(0 0 9px rgba(217, 189, 145, .12));
}

.process-heart-group i:nth-child(1) { --process-heart-size: 105px; --process-heart-y: -115px; --process-heart-rotation: -7deg; --process-heart-opacity: .08; }
.process-heart-group i:nth-child(2) { --process-heart-size: 190px; --process-heart-y: 95px; --process-heart-rotation: 5deg; --process-heart-opacity: .1; }
.process-heart-group i:nth-child(3) { --process-heart-size: 135px; --process-heart-y: -25px; --process-heart-rotation: -3deg; --process-heart-opacity: .07; }
.process-heart-group i:nth-child(4) { --process-heart-size: 225px; --process-heart-y: -90px; --process-heart-rotation: 8deg; --process-heart-opacity: .075; }
.process-heart-group i:nth-child(5) { --process-heart-size: 118px; --process-heart-y: 125px; --process-heart-rotation: -5deg; --process-heart-opacity: .1; }
.process-heart-group i:nth-child(6) { --process-heart-size: 165px; --process-heart-y: 28px; --process-heart-rotation: 4deg; --process-heart-opacity: .08; }
.process-heart-group i:nth-child(7) { --process-heart-size: 145px; --process-heart-y: -105px; --process-heart-rotation: -4deg; --process-heart-opacity: .085; }
.process-heart-group i:nth-child(8) { --process-heart-size: 112px; --process-heart-y: 105px; --process-heart-rotation: 7deg; --process-heart-opacity: .095; }

@keyframes process-hearts-flow {
  from { transform: translateX(-50%); }
  to { transform: translateX(0); }
}

@media (max-width: 600px) {
  .process-heart-stream {
    height: 82%;
    animation-duration: 42s;
  }

  .process-heart-group i:nth-child(even) {
    display: none;
  }

  .process-heart-group i {
    --process-heart-size: 92px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .process-heart-stream {
    animation: none;
    transform: translateX(-12%);
  }
}

/* Depoimento autoral da Dra. Andressa */
.doctor-quote {
  position: relative;
  margin: 1.75rem 0 0;
  padding: 0 0 0 1.35rem;
  border-left: 1px solid rgba(217, 189, 145, .62);
  color: rgba(255, 255, 255, .76);
  font-family: "Playfair Display", serif;
  font-style: italic;
}

.doctor-quote p {
  margin: 0 0 1rem;
  line-height: 1.62;
}

.doctor-quote footer {
  margin-top: 1.35rem;
  color: var(--color-champagne);
  font-family: "DM Sans", sans-serif;
  font-size: .75rem;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

/* Coração pulsante ao fundo da seção Equipe. */
.team > .container {
  position: relative;
  z-index: 1;
}

.team::before {
  content: "";
  position: absolute;
  z-index: 0;
  width: clamp(330px, 31vw, 540px);
  aspect-ratio: 1;
  left: clamp(-230px, -10vw, -135px);
  top: 44%;
  pointer-events: none;
  background: url("assets/images/simbolo-coracao-dourado.png") center / contain no-repeat;
  transform-origin: center;
  animation: team-heart-pulse 5.8s ease-in-out infinite;
  will-change: transform, opacity;
}

@keyframes team-heart-pulse {
  0%, 100% {
    opacity: .035;
    transform: translateY(-50%) rotate(-6deg) scale(.96);
    filter: drop-shadow(0 0 0 rgba(217, 189, 145, 0));
  }
  50% {
    opacity: .12;
    transform: translateY(-50%) rotate(-6deg) scale(1.045);
    filter: drop-shadow(0 0 16px rgba(217, 189, 145, .2));
  }
}

@media (max-width: 600px) {
  .team::before {
    width: 280px;
    left: -155px;
    top: 24%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .team::before {
    animation: none;
    opacity: .065;
    transform: translateY(-50%) rotate(-6deg);
  }
}

/* Interação da timeline: o percurso dourado acompanha a etapa destacada. */
.timeline li {
  border-radius: 10px;
  transition: transform .38s ease, background-color .38s ease, box-shadow .38s ease;
}

.timeline > li > span {
  transition: color .32s ease, background-color .32s ease, border-color .32s ease,
    transform .38s cubic-bezier(.2, .8, .2, 1), box-shadow .38s ease;
}

.timeline h3,
.timeline p {
  transition: color .3s ease, transform .38s ease;
}

.timeline li:not(:last-child)::before {
  background: linear-gradient(90deg,
    var(--color-gold) 0%,
    var(--color-champagne) 48%,
    var(--color-gold) 100%);
  background-size: 220% 100%;
  transform: scaleX(.18);
  transform-origin: left center;
  opacity: .4;
  transition: transform .65s cubic-bezier(.2, .8, .2, 1), opacity .35s ease;
}

.timeline:hover li:not(:last-child)::before,
.timeline:focus-within li:not(:last-child)::before {
  transform: scaleX(1);
  opacity: 1;
  animation: timeline-line-shine 2.2s linear infinite;
}

.timeline li:hover {
  transform: translateY(-7px);
  background: rgba(245, 226, 178, .12);
  box-shadow: 0 16px 35px rgba(96, 34, 47, .07);
}

.timeline li:hover > span {
  color: var(--color-white);
  background: var(--color-wine);
  border-color: var(--color-wine);
  transform: scale(1.12);
  box-shadow: 0 0 0 7px rgba(217, 189, 145, .18),
    0 8px 20px rgba(96, 34, 47, .18);
}

.timeline li:hover h3 {
  color: var(--color-wine);
  transform: translateY(-2px);
}

.timeline li:hover p {
  color: var(--color-text);
}

@keyframes timeline-line-shine {
  to { background-position: -220% 0; }
}

@media (max-width: 600px) {
  .timeline li {
    padding-right: .65rem;
  }

  .timeline li:hover {
    transform: translateX(5px);
  }

  .timeline li:not(:last-child)::before {
    transform: scaleY(.18);
    transform-origin: top center;
    background: linear-gradient(180deg,
      var(--color-gold) 0%,
      var(--color-champagne) 48%,
      var(--color-gold) 100%);
    background-size: 100% 220%;
  }

  .timeline:hover li:not(:last-child)::before,
  .timeline:focus-within li:not(:last-child)::before {
    transform: scaleY(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .timeline li,
  .timeline > li > span,
  .timeline h3,
  .timeline p,
  .timeline li:not(:last-child)::before {
    transition: none;
    animation: none;
  }
}

/* Mantém o carrossel de corações presente e perceptível no responsivo. */
@media (max-width: 600px) {
  .process-heart-stream {
    top: 4%;
    height: 92%;
    opacity: .62;
    animation: process-hearts-flow 24s linear infinite;
  }

  .process-heart-group {
    width: 190vw;
    min-width: 190vw;
  }

  .process-heart-group i:nth-child(even) {
    display: block;
  }

  .process-heart-group i:nth-child(1) { --process-heart-size: 96px; --process-heart-y: -185px; }
  .process-heart-group i:nth-child(2) { --process-heart-size: 145px; --process-heart-y: 120px; }
  .process-heart-group i:nth-child(3) { --process-heart-size: 112px; --process-heart-y: -45px; }
  .process-heart-group i:nth-child(4) { --process-heart-size: 158px; --process-heart-y: 210px; }
  .process-heart-group i:nth-child(5) { --process-heart-size: 102px; --process-heart-y: -125px; }
  .process-heart-group i:nth-child(6) { --process-heart-size: 138px; --process-heart-y: 45px; }
  .process-heart-group i:nth-child(7) { --process-heart-size: 118px; --process-heart-y: 260px; }
  .process-heart-group i:nth-child(8) { --process-heart-size: 150px; --process-heart-y: -210px; }
}

@media (max-width: 600px) and (prefers-reduced-motion: reduce) {
  .process-heart-stream {
    animation: none;
    transform: translateX(-12%);
  }
}

/* Brilho percorre as molduras reservadas para as imagens do consultório. */
@property --gallery-frame-angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}

.gallery-card {
  --gallery-frame-speed: 7.5s;
  --gallery-frame-delay: 0s;
  isolation: isolate;
  transition: transform .4s ease, box-shadow .4s ease;
  box-shadow: inset 0 0 0 1px rgba(217, 189, 145, .2);
}

.gallery-card::before {
  content: "";
  position: absolute;
  z-index: 3;
  inset: 0;
  border-radius: inherit;
  padding: 2px;
  pointer-events: none;
  background: conic-gradient(from var(--gallery-frame-angle),
    rgba(217, 189, 145, .28) 0 66%,
    rgba(245, 226, 178, .92) 75%,
    #fff5cf 79%,
    rgba(104, 57, 109, .98) 85%,
    rgba(151, 91, 157, .82) 89%,
    rgba(217, 189, 145, .28) 97% 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  filter: drop-shadow(0 0 5px rgba(217, 189, 145, .42));
  animation:
    gallery-frame-shine var(--gallery-frame-speed) linear var(--gallery-frame-delay) infinite,
    gallery-frame-color 4.8s ease-in-out var(--gallery-frame-delay) infinite;
}

.gallery-card:nth-child(2) {
  --gallery-frame-speed: 9s;
  --gallery-frame-delay: -2.6s;
}

.gallery-card:nth-child(3) {
  --gallery-frame-speed: 6.5s;
  --gallery-frame-delay: -4.1s;
}

.gallery-card:nth-child(4) {
  --gallery-frame-speed: 10.5s;
  --gallery-frame-delay: -1.4s;
}

.gallery-card > span,
.gallery-card > small {
  position: relative;
  z-index: 2;
}

.gallery-card:hover {
  transform: translateY(-5px);
  box-shadow: inset 0 0 0 1px rgba(217, 189, 145, .48),
    0 16px 34px rgba(96, 34, 47, .09);
}

.gallery-card:hover::before {
  filter: drop-shadow(0 0 10px rgba(124, 65, 131, .78));
}

@keyframes gallery-frame-shine {
  to { --gallery-frame-angle: 360deg; }
}

@keyframes gallery-frame-color {
  0%, 100% {
    opacity: .78;
    filter: drop-shadow(0 0 5px rgba(217, 189, 145, .5));
  }
  48% {
    opacity: 1;
    filter: drop-shadow(0 0 10px rgba(104, 57, 109, .72));
  }
}

@media (max-width: 600px) {
  .gallery-card::before {
    padding: 2.5px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gallery-card,
  .gallery-card::before {
    animation: none;
    transition: none;
  }
}

/* Fotografias e transições do carrossel do consultório. */
.gallery-card {
  padding: 0;
  background: #ead9d5;
}

.gallery-card::after {
  content: none;
}

.gallery-photo {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 0;
  transform: scale(1.035);
  transition: opacity 1.15s ease, transform 4.2s ease;
}

.gallery-photo.active {
  opacity: 1;
  transform: scale(1);
}

.gallery-caption {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  width: 100%;
  min-height: 105px;
  margin-top: auto;
  padding: 2.7rem 1.4rem 1.35rem;
  color: #fff;
  background: linear-gradient(180deg, transparent, rgba(42, 12, 19, .78));
  text-shadow: 0 2px 12px rgba(42, 12, 19, .42);
}

.gallery-caption span {
  font: 1.2rem "Playfair Display", serif;
}

.gallery-caption small {
  color: rgba(255, 255, 255, .78);
  text-transform: uppercase;
  letter-spacing: .13em;
}

.gallery-card-empty .gallery-caption {
  color: var(--color-text);
  background: transparent;
  text-shadow: none;
}

.gallery-card-empty .gallery-caption small {
  color: var(--color-muted);
}

@media (prefers-reduced-motion: reduce) {
  .gallery-photo {
    transition: none;
  }
}

@media (min-width: 601px) {
  .gallery-photo-team {
    object-position: center 22%;
  }
}

/* Coração dourado luminoso ao fundo da seção do consultório. */
.gallery {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.gallery > .container {
  position: relative;
  z-index: 1;
}

.gallery::before,
.gallery::after {
  content: "";
  position: absolute;
  z-index: 0;
  width: clamp(300px, 28vw, 500px);
  aspect-ratio: 1;
  right: clamp(-210px, -8vw, -105px);
  top: 28%;
  pointer-events: none;
  transform: rotate(6deg);
  -webkit-mask: url("assets/images/simbolo-coracao-dourado.png") center / contain no-repeat;
  mask: url("assets/images/simbolo-coracao-dourado.png") center / contain no-repeat;
}

.gallery::before {
  background: rgba(217, 189, 145, .09);
  filter: drop-shadow(0 0 10px rgba(217, 189, 145, .16));
}

.gallery::after {
  background: linear-gradient(105deg,
    transparent 27%,
    rgba(245, 226, 178, .15) 39%,
    rgba(255, 250, 225, .98) 49%,
    rgba(217, 189, 145, .72) 57%,
    transparent 72%);
  background-size: 270% 100%;
  animation: gallery-heart-shine 7.6s ease-in-out infinite;
  filter: drop-shadow(0 0 13px rgba(217, 189, 145, .25));
}

@keyframes gallery-heart-shine {
  0%, 15% { background-position: 150% 0; opacity: .1; }
  42%, 60% { opacity: .78; }
  82%, 100% { background-position: -150% 0; opacity: .1; }
}

@media (max-width: 600px) {
  .gallery::before,
  .gallery::after {
    width: 290px;
    right: -155px;
    top: 17%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gallery::after {
    display: none;
  }
}

/* Foto do Edifício Kinbor integrada ao cartão de endereço. */
@property --address-border-angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}

.address-card-photo {
  position: relative;
  isolation: isolate;
  justify-content: flex-end;
  min-height: 460px;
  overflow: hidden;
  color: #fff;
  background: var(--color-wine-dark);
  border-color: rgba(217, 189, 145, .48);
}

.address-card-photo::before {
  content: "";
  position: absolute;
  z-index: 4;
  inset: 0;
  border-radius: inherit;
  padding: 2px;
  pointer-events: none;
  background: conic-gradient(from var(--address-border-angle),
    rgba(217, 189, 145, .28) 0 68%,
    rgba(245, 226, 178, .9) 77%,
    #fff8dc 82%,
    rgba(217, 189, 145, .72) 88%,
    rgba(217, 189, 145, .28) 97% 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  filter: drop-shadow(0 0 7px rgba(217, 189, 145, .52));
  animation: address-border-shine 7.2s linear infinite;
  transition: filter .35s ease;
}

.address-card-photo:hover::before {
  filter: drop-shadow(0 0 12px rgba(245, 226, 178, .82));
}

.address-card-photo::after {
  content: "";
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(180deg,
    rgba(42, 12, 19, .03) 18%,
    rgba(42, 12, 19, .28) 48%,
    rgba(42, 12, 19, .94) 100%);
  pointer-events: none;
}

.address-card-photo > img {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform 7s ease;
}

.address-card-photo:hover > img {
  transform: scale(1.035);
}

.address-card-photo > :not(img) {
  position: relative;
  z-index: 2;
}

.address-card-photo small,
.address-card-photo strong {
  color: #fff;
  text-shadow: 0 2px 15px rgba(42, 12, 19, .48);
}

.address-card-photo span {
  color: rgba(255, 255, 255, .82);
}

@keyframes address-border-shine {
  to { --address-border-angle: 360deg; }
}

@media (max-width: 600px) {
  .address-card-photo {
    min-height: 430px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .address-card-photo > img,
  .address-card-photo::before {
    animation: none;
    transition: none;
  }
}

/* Interação suave dos cards do FAQ, inspirada nos procedimentos. */
.accordion-item {
  position: relative;
  isolation: isolate;
  transition: transform .32s ease, background-color .32s ease, box-shadow .32s ease;
}

.accordion-item::after {
  content: "";
  position: absolute;
  z-index: 2;
  left: 0;
  bottom: -1px;
  width: 0;
  height: 2px;
  pointer-events: none;
  background: linear-gradient(90deg, var(--color-gold), var(--color-champagne));
  box-shadow: 0 0 8px rgba(217, 189, 145, .28);
  transition: width .48s cubic-bezier(.2, .8, .2, 1);
}

.accordion-item button {
  transition: color .3s ease, transform .32s ease;
}

.accordion-item button span {
  border-radius: 50%;
  transition: color .25s ease, transform .25s ease, background-color .25s ease,
    box-shadow .25s ease;
}

@media (hover: hover) {
  .accordion-item:hover {
    z-index: 1;
    transform: translateY(-2px);
    background: rgba(245, 226, 178, .1);
    box-shadow: 0 10px 24px rgba(96, 34, 47, .055);
  }

  .accordion-item:hover::after {
    width: 100%;
  }

  .accordion-item:hover button {
    color: var(--color-wine);
    transform: translateX(4px);
  }

  .accordion-item:hover button span {
    background: rgba(217, 189, 145, .14);
    box-shadow: 0 0 0 5px rgba(217, 189, 145, .07);
  }
}

.accordion-item:focus-within::after {
  width: 100%;
}

@media (max-width: 880px) {
  .accordion-item.active {
    z-index: 1;
    transform: translateX(3px);
    background: rgba(245, 226, 178, .1);
    box-shadow: 0 10px 24px rgba(96, 34, 47, .055);
  }

  .accordion-item.active::after {
    width: 100%;
  }

  .accordion-item.active button {
    color: var(--color-wine);
    transform: translateX(4px);
  }

  .accordion-item.active button span {
    background: rgba(217, 189, 145, .14);
    box-shadow: 0 0 0 5px rgba(217, 189, 145, .07);
  }
}

@media (prefers-reduced-motion: reduce) {
  .accordion-item,
  .accordion-item::after,
  .accordion-item button,
  .accordion-item button span {
    transition: none;
  }
}

/* Corações em movimento ao fundo do FAQ. */
.faq {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.faq > .container {
  position: relative;
  z-index: 1;
}

.faq-heart-stream {
  position: absolute;
  z-index: 0;
  left: 0;
  top: 8%;
  display: flex;
  align-items: center;
  width: max-content;
  height: 84%;
  pointer-events: none;
  opacity: .72;
  animation: faq-hearts-flow 36s linear infinite;
  will-change: transform;
}

.faq-heart-group {
  display: flex;
  align-items: center;
  justify-content: space-around;
  width: 100vw;
  min-width: 100vw;
}

.faq-heart-group i {
  display: block;
  width: var(--faq-heart-size, 110px);
  aspect-ratio: 1;
  background: url("assets/images/simbolo-coracao-dourado.png") center / contain no-repeat;
  opacity: var(--faq-heart-opacity, .14);
  transform: translateY(var(--faq-heart-y, 0)) rotate(var(--faq-heart-rotation, 0deg));
  filter: brightness(1) drop-shadow(0 0 8px rgba(217, 189, 145, .2));
  animation: faq-heart-glow 5.2s ease-in-out infinite;
}

.faq-heart-group i:nth-child(1) { --faq-heart-size: 105px; --faq-heart-y: -120px; --faq-heart-rotation: -7deg; }
.faq-heart-group i:nth-child(2) { --faq-heart-size: 175px; --faq-heart-y: 115px; --faq-heart-rotation: 5deg; --faq-heart-opacity: .17; animation-delay: -1.4s; }
.faq-heart-group i:nth-child(3) { --faq-heart-size: 125px; --faq-heart-y: -20px; --faq-heart-rotation: -3deg; }
.faq-heart-group i:nth-child(4) { --faq-heart-size: 205px; --faq-heart-y: -100px; --faq-heart-rotation: 8deg; --faq-heart-opacity: .12; animation-delay: -2.7s; }
.faq-heart-group i:nth-child(5) { --faq-heart-size: 115px; --faq-heart-y: 135px; --faq-heart-rotation: -5deg; --faq-heart-opacity: .17; animation-delay: -.8s; }
.faq-heart-group i:nth-child(6) { --faq-heart-size: 150px; --faq-heart-y: 32px; --faq-heart-rotation: 4deg; }
.faq-heart-group i:nth-child(7) { --faq-heart-size: 135px; --faq-heart-y: -115px; --faq-heart-rotation: -4deg; }
.faq-heart-group i:nth-child(8) { --faq-heart-size: 112px; --faq-heart-y: 105px; --faq-heart-rotation: 7deg; --faq-heart-opacity: .17; animation-delay: -3.8s; }

@keyframes faq-hearts-flow {
  from { transform: translateX(-50%); }
  to { transform: translateX(0); }
}

@keyframes faq-heart-glow {
  0%, 100% {
    filter: brightness(.95) drop-shadow(0 0 5px rgba(217, 189, 145, .16));
  }
  50% {
    filter: brightness(1.3) drop-shadow(0 0 15px rgba(217, 189, 145, .48));
  }
}

@media (max-width: 600px) {
  .faq-heart-stream {
    top: 3%;
    height: 94%;
    opacity: .78;
    animation-duration: 30s;
  }

  .faq-heart-group {
    width: 175vw;
    min-width: 175vw;
  }

  .faq-heart-group i {
    --faq-heart-size: 96px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .faq-heart-stream {
    animation: none;
    transform: translateX(-12%);
  }

  .faq-heart-group i {
    animation: none;
  }
}

/* Brilho vertical na linha da citação da Dra. Andressa. */
.doctor-quote {
  border-left: 0;
  background-image:
    linear-gradient(180deg,
      transparent,
      rgba(245, 226, 178, .34),
      #fff8d9,
      rgba(245, 226, 178, .34),
      transparent),
    linear-gradient(rgba(217, 189, 145, .62), rgba(217, 189, 145, .62));
  background-repeat: no-repeat;
  background-size: 1px 24%, 1px 100%;
  background-position: 0 -35%, 0 0;
  animation: doctor-quote-line-shine 8.4s ease-in-out 1.2s infinite;
}

@keyframes doctor-quote-line-shine {
  0%, 12% {
    background-position: 0 -35%, 0 0;
  }
  34%, 100% {
    background-position: 0 140%, 0 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .doctor-quote {
    animation: none;
    background-image: linear-gradient(rgba(217, 189, 145, .62), rgba(217, 189, 145, .62));
    background-size: 1px 100%;
    background-position: 0 0;
  }
}

/* Logo dourada completa no encerramento da página. */
.final-cta-mark {
  display: none;
}

.final-cta-content {
  padding-right: clamp(240px, 23vw, 370px);
}

.final-cta-content > .eyebrow {
  display: flex;
  width: 100%;
  justify-content: flex-start;
  text-align: left;
}

.final-cta-logo {
  position: absolute;
  z-index: 0;
  right: clamp(24px, 5vw, 90px);
  top: 50%;
  width: clamp(210px, 20vw, 340px);
  aspect-ratio: 1;
  transform: translateY(-50%) rotate(3deg);
  pointer-events: none;
}

.final-cta-logo img {
  width: 130%;
  max-width: none;
  height: 100%;
  margin-left: -15%;
  object-fit: contain;
  opacity: .34;
  filter: drop-shadow(0 0 14px rgba(217, 189, 145, .2));
  mix-blend-mode: screen;
}

.final-cta-logo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg,
    transparent 25%,
    rgba(245, 226, 178, .12) 38%,
    #fff9df 49%,
    rgba(217, 189, 145, .86) 57%,
    transparent 72%);
  background-size: 280% 100%;
  background-position: 150% 0;
  -webkit-mask: url("assets/images/logo.png") center / 130% auto no-repeat;
  mask: url("assets/images/logo.png") center / 130% auto no-repeat;
  mask-mode: luminance;
  filter: drop-shadow(0 0 12px rgba(245, 226, 178, .38));
  animation: final-logo-shine 7.8s ease-in-out infinite;
}

@keyframes final-logo-shine {
  0%, 15% { background-position: 150% 0; opacity: .08; }
  43%, 60% { opacity: .9; }
  82%, 100% { background-position: -150% 0; opacity: .08; }
}

@media (max-width: 880px) {
  .final-cta {
    padding-bottom: clamp(9rem, 32vw, 12rem);
  }

  .final-cta-content {
    padding-right: 0;
  }

  .final-cta-logo {
    top: auto;
    right: 1rem;
    bottom: 1.25rem;
    width: clamp(115px, 35vw, 170px);
    transform: rotate(3deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .final-cta-logo::after {
    display: none;
  }
}

/* Brilho percorre o sublinhado do e-mail no CTA final. */
.instagram-link {
  border-bottom: 0;
  background-image:
    linear-gradient(90deg,
      transparent,
      rgba(255, 255, 255, .3),
      #fff9df,
      rgba(245, 226, 178, .42),
      transparent),
    linear-gradient(rgba(245, 226, 178, .5), rgba(245, 226, 178, .5));
  background-repeat: no-repeat;
  background-size: 24% 1px, 100% 1px;
  background-position: -42% 100%, 0 100%;
  animation: final-email-line-shine 7.6s ease-in-out 1s infinite;
}

@keyframes final-email-line-shine {
  0%, 14% {
    background-position: -42% 100%, 0 100%;
  }
  38%, 100% {
    background-position: 142% 100%, 0 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .instagram-link {
    animation: none;
    background-image: linear-gradient(rgba(245, 226, 178, .5), rgba(245, 226, 178, .5));
    background-size: 100% 1px;
    background-position: 0 100%;
  }
}

/* Brilho no sublinhado da palavra “tratamento” no CTA final. */
.final-cta h2 em {
  text-decoration: none;
  padding-bottom: .04em;
  background-image:
    linear-gradient(90deg,
      transparent 0,
      rgba(255, 255, 255, .28) 25%,
      #fff 50%,
      rgba(255, 255, 255, .28) 75%,
      transparent 100%),
    linear-gradient(var(--color-gold), var(--color-gold));
  background-repeat: no-repeat;
  background-size: 24% 1px, 100% 1px;
  background-position: -35% 100%, 0 100%;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
  animation: title-underline-shine 8.4s ease-in-out 1.8s infinite;
}

@media (prefers-reduced-motion: reduce) {
  .final-cta h2 em {
    animation: none;
    background-image: linear-gradient(var(--color-gold), var(--color-gold));
    background-size: 100% 1px;
    background-position: 0 100%;
  }
}

/* Informações completas da seção de contato. */
.final-contact-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  max-width: 900px;
  margin: 2rem auto 0;
  border-block: 1px solid rgba(255, 255, 255, .14);
  font-style: normal;
  text-align: left;
}

.final-contact-item {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  padding: 1.15rem 1rem;
  border-right: 1px solid rgba(255, 255, 255, .14);
  transition: background-color .3s ease, color .3s ease;
}

.final-contact-item:last-child {
  border-right: 0;
}

.final-contact-item small {
  color: var(--color-gold);
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.final-contact-item strong {
  overflow-wrap: anywhere;
  color: #fff;
  font-size: .8rem;
}

.final-contact-item span {
  color: rgba(255, 255, 255, .58);
  font-size: .72rem;
}

.final-contact-item:hover {
  color: var(--color-champagne);
  background: rgba(255, 255, 255, .035);
}

.final-contact-list + .final-actions {
  margin-top: 1.6rem;
}

@media (max-width: 880px) {
  .final-contact-list {
    grid-template-columns: 1fr;
  }

  .final-contact-item {
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .14);
    text-align: center;
  }

  .final-contact-item:last-child {
    border-bottom: 0;
  }
}

/* Botão flutuante do WhatsApp com acabamento profissional. */
.floating-whatsapp {
  min-height: 56px;
  padding: 6px 18px 6px 7px;
  gap: .65rem;
  background: #13b85d;
  border: 1px solid rgba(255, 255, 255, .14);
  box-shadow: 0 12px 28px rgba(13, 105, 56, .24);
  font-size: .78rem;
  letter-spacing: .01em;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}

.floating-whatsapp .whatsapp-icon {
  display: grid;
  place-items: center;
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  color: #fff;
  background: rgba(255, 255, 255, .16);
  border-radius: 50%;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12);
}

.floating-whatsapp .whatsapp-icon svg {
  width: 25px;
  height: 25px;
  fill: currentColor;
}

.floating-whatsapp:hover {
  transform: translateY(-3px);
  background: #0faa55;
  box-shadow: 0 16px 34px rgba(13, 105, 56, .32);
}

@media (max-width: 600px) {
  .floating-whatsapp {
    width: 64px;
    height: 64px;
    min-height: 64px;
    padding: 8px;
    border-radius: 50%;
  }

  .floating-whatsapp .whatsapp-icon {
    flex-basis: 48px;
    width: 48px;
    height: 48px;
  }

  .floating-whatsapp .whatsapp-icon svg {
    width: 31px;
    height: 31px;
  }

  .floating-whatsapp .whatsapp-label {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .floating-whatsapp {
    transition: none;
  }
}

/* Chamada para o Instagram dentro da seção de depoimentos. */
@property --instagram-border-angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}

.instagram-cta {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 1.35rem;
  margin-top: clamp(3rem, 6vw, 5.5rem);
  padding: 1.4rem 1.55rem;
  overflow: hidden;
  color: var(--color-text);
  background: var(--color-white);
  border: 1px solid rgba(217, 189, 145, .4);
  border-radius: var(--radius-md);
  box-shadow: 0 18px 44px rgba(42, 12, 19, .16);
}

.instagram-cta::before {
  content: "";
  position: absolute;
  inset: 0;
  padding: 2px;
  border-radius: inherit;
  pointer-events: none;
  background: conic-gradient(from var(--instagram-border-angle),
    rgba(217, 189, 145, .22) 0 73%,
    rgba(245, 226, 178, .9) 80%,
    #fff7d6 84%,
    rgba(104, 57, 109, .9) 90%,
    rgba(217, 189, 145, .22) 98% 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  animation: instagram-border-shine 8.5s linear infinite;
}

.instagram-cta-icon {
  display: grid;
  place-items: center;
  width: 68px;
  height: 68px;
  color: #fff;
  background: radial-gradient(circle at 31% 108%,
    #fdf497 0 5%,
    #fdf497 5%,
    #fd5949 43%,
    #d6249f 66%,
    #285aeb 100%);
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 18px;
  box-shadow: 0 10px 24px rgba(131, 58, 180, .25);
  transition: transform .25s ease, box-shadow .25s ease;
}

.instagram-cta-icon:hover {
  transform: translateY(-2px) scale(1.025);
  box-shadow: 0 14px 28px rgba(214, 36, 159, .3);
}

.instagram-cta-icon svg {
  width: 36px;
  height: 36px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
}

.instagram-cta-copy {
  display: flex;
  flex-direction: column;
}

.instagram-cta-copy small {
  color: var(--color-wine);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .06em;
}

.instagram-cta-copy strong {
  margin-top: .1rem;
  font: clamp(1.2rem, 2vw, 1.65rem)/1.25 "Playfair Display", serif;
}

.instagram-cta-copy p {
  margin: .2rem 0 0;
  color: var(--color-muted);
  font-size: .82rem;
}

.instagram-cta-button {
  position: relative;
  z-index: 1;
  white-space: nowrap;
}

.google-cta {
  color: var(--color-text);
  background: var(--color-white);
  border-color: rgba(217, 189, 145, .4);
  box-shadow: 0 18px 44px rgba(42, 12, 19, .16);
}

.google-cta + .instagram-cta {
  margin-top: 1rem;
}

.google-cta::before {
  background: conic-gradient(from var(--instagram-border-angle),
    rgba(96, 34, 47, .16) 0 76%,
    rgba(245, 226, 178, .72) 84%,
    rgba(104, 57, 109, .38) 91%,
    rgba(96, 34, 47, .16) 100%);
}

.instagram-cta::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  z-index: 3;
  width: 82px;
  height: 3px;
  border-radius: 99px;
  background: linear-gradient(90deg, transparent, rgba(245, 226, 178, .7) 24%, #fff8da 50%, var(--color-gold) 74%, transparent);
  box-shadow: 0 0 8px rgba(245, 226, 178, .8), 0 0 16px rgba(217, 189, 145, .38);
  offset-path: inset(2px round 18px);
  offset-distance: 0%;
  offset-rotate: auto;
  pointer-events: none;
  will-change: offset-distance;
  animation: cta-card-border-trace 5.2s linear infinite;
}

@keyframes cta-card-border-trace {
  to { offset-distance: 100%; }
}

.google-cta-icon {
  display: grid;
  place-items: center;
  width: 68px;
  height: 68px;
  background: #faf6ee;
  border: 1px solid rgba(217, 189, 145, .32);
  border-radius: 18px;
  box-shadow: 0 10px 24px rgba(42, 12, 19, .12);
  transition: transform .25s ease, box-shadow .25s ease;
}

.google-cta .instagram-cta-copy small,
.google-cta .instagram-cta-copy p {
  color: var(--color-muted);
}

.google-cta .instagram-cta-copy small {
  color: var(--color-wine);
}

.google-cta-icon span {
  font: 800 2rem/1 "DM Sans", sans-serif;
  background: conic-gradient(from -45deg, #4285f4, #34a853, #fbbc05, #ea4335, #4285f4);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.google-cta-icon:hover {
  transform: translateY(-2px) scale(1.025);
  box-shadow: 0 14px 28px rgba(66, 133, 244, .2);
}

.feedback-carousel {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(280px, 1.2fr);
  grid-template-rows: 1fr auto;
  align-items: center;
  gap: 1.5rem clamp(2rem, 6vw, 5rem);
  margin-top: 1rem;
  padding: clamp(1.5rem, 4vw, 3rem);
  overflow: hidden;
  color: var(--color-text);
  background: var(--color-white);
  border: 1px solid rgba(217, 189, 145, .4);
  border-radius: var(--radius-md);
  box-shadow: 0 18px 44px rgba(42, 12, 19, .16);
}

.feedback-carousel::before {
  content: "";
  position: absolute;
  inset: 0;
  padding: 2px;
  border-radius: inherit;
  background: conic-gradient(from var(--instagram-border-angle), rgba(217, 189, 145, .2) 0 76%, rgba(245, 226, 178, .82) 84%, rgba(104, 57, 109, .48) 91%, rgba(217, 189, 145, .2) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  animation: instagram-border-shine 8.5s linear infinite;
}

.feedback-carousel-heading span {
  color: var(--color-wine);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.feedback-carousel-heading h3 {
  margin: .6rem 0 .75rem;
  font: clamp(1.8rem, 3vw, 2.7rem)/1.08 "Playfair Display", serif;
}

.feedback-carousel-heading p {
  margin: 0;
  color: var(--color-muted);
}

.feedback-carousel-stage {
  grid-row: span 2;
  display: grid;
  place-items: center;
  min-height: 360px;
  padding: 1rem;
  background: linear-gradient(145deg, #f8f1eb, #fff);
  border: 1px solid var(--border);
  border-radius: 18px;
}

.feedback-carousel-empty {
  display: grid;
  place-items: center;
  gap: .75rem;
  color: rgba(96, 34, 47, .38);
  text-align: center;
}

.feedback-carousel-empty span {
  font: 3.5rem/1 "Playfair Display", serif;
  color: var(--color-gold);
}

.feedback-carousel-empty small {
  font-size: .75rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.feedback-carousel-controls {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.feedback-carousel-controls button {
  width: 38px;
  height: 38px;
  border: 1px solid var(--border);
  border-radius: 50%;
  color: var(--color-wine);
  background: var(--color-cream);
}

.feedback-carousel-controls button:disabled {
  opacity: .42;
  cursor: default;
}

.feedback-carousel-controls div {
  display: flex;
  flex: 1;
  gap: .35rem;
}

.feedback-carousel-controls i {
  flex: 1;
  height: 3px;
  border-radius: 99px;
  background: rgba(96, 34, 47, .14);
}

.feedback-carousel-controls i.active {
  background: var(--color-gold);
}

.feedback-carousel + .instagram-cta {
  margin-top: 1rem;
}

.feedbacks {
  background: var(--color-wine);
  border-top: 1px solid rgba(245, 226, 178, .1);
  padding-top: clamp(3rem, 6vw, 5rem);
}

.testimonials {
  padding-bottom: clamp(3rem, 6vw, 5rem);
}

.feedback-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: clamp(3rem, 8vw, 8rem);
  color: #fff;
}

.feedback-intro h2 {
  margin: 1rem 0;
}

.feedback-intro p {
  max-width: 590px;
  color: rgba(255, 255, 255, .64);
}

.feedback-media-carousel {
  position: relative;
  min-width: 0;
  width: min(100%, 490px);
  justify-self: center;
  padding: .55rem .55rem .85rem;
  border: 1px solid rgba(245, 226, 178, .3);
  transition: border-color .35s ease, box-shadow .35s ease;
}

.feedback-media-carousel::after {
  content: "▶";
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 5;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  color: var(--color-wine-dark);
  background: var(--color-champagne);
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 50%;
  box-shadow: 0 6px 18px rgba(42, 12, 19, .18);
  font: 700 .62rem/1 "DM Sans", sans-serif;
  opacity: .76;
  transform: scale(.92);
  transition: opacity .25s ease, transform .25s ease, box-shadow .25s ease;
  pointer-events: none;
}

.feedback-media-carousel.is-paused {
  border-color: rgba(245, 226, 178, .82);
  animation: feedback-pause-glow 1.8s ease-in-out infinite;
}

.feedback-media-carousel.is-paused::after {
  content: "Ⅱ";
  opacity: 1;
  transform: scale(1);
  box-shadow: 0 0 18px rgba(245, 226, 178, .42);
}

@keyframes feedback-pause-glow {
  0%, 100% { box-shadow: 0 0 0 rgba(245, 226, 178, 0); }
  50% { box-shadow: 0 0 24px rgba(245, 226, 178, .2), inset 0 0 16px rgba(245, 226, 178, .05); }
}

.feedback-media-carousel .feedback-carousel-stage {
  position: relative;
  min-height: 0;
  width: 100%;
  height: auto;
  aspect-ratio: 1061 / 1483;
  padding: 0;
  background: rgba(255, 255, 255, .025);
  border: 0;
  border-radius: 4px;
  overflow: hidden;
}

.feedback-slide {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0;
  transform: translateX(18px) scale(.985);
  transition: opacity .75s ease, transform .75s ease;
  pointer-events: none;
}

.feedback-slide.active {
  opacity: 1;
  transform: translateX(0) scale(1);
}

.feedback-media-carousel .feedback-carousel-empty {
  color: rgba(255, 255, 255, .4);
}

.feedback-media-carousel .feedback-carousel-empty span {
  color: var(--color-gold);
}

.feedback-media-carousel .feedback-carousel-controls {
  margin: .65rem .25rem 0;
}

.feedback-media-carousel .feedback-carousel-controls button {
  color: var(--color-champagne);
  background: rgba(255, 255, 255, .04);
  border-color: rgba(245, 226, 178, .22);
}

.feedback-media-carousel .feedback-carousel-controls button:not(:disabled) {
  cursor: pointer;
  transition: color .25s ease, background-color .25s ease, transform .25s ease;
}

.feedback-media-carousel .feedback-carousel-controls button:not(:disabled):hover,
.feedback-media-carousel .feedback-carousel-controls button:not(:disabled):focus-visible {
  color: var(--color-wine-dark);
  background: var(--color-champagne);
  transform: translateY(-2px);
}

.feedback-media-carousel .feedback-carousel-controls i {
  background: rgba(245, 226, 178, .2);
}

.feedback-media-carousel .feedback-carousel-controls i.active {
  background: var(--color-gold);
  box-shadow: 0 0 9px rgba(245, 226, 178, .3);
}

@media (max-width: 880px) {
  .feedback-section {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .feedback-media-carousel .feedback-carousel-stage {
    min-height: 0;
    height: auto;
  }
}

@keyframes instagram-border-shine {
  to { --instagram-border-angle: 360deg; }
}

@media (max-width: 700px) {
  .instagram-cta {
    grid-template-columns: auto 1fr;
    padding: 1.25rem;
  }

  .instagram-cta-icon {
    width: 58px;
    height: 58px;
    border-radius: 15px;
  }

  .google-cta-icon {
    width: 58px;
    height: 58px;
    border-radius: 15px;
  }

  .instagram-cta-icon svg {
    width: 31px;
    height: 31px;
  }

  .instagram-cta-button {
    grid-column: 1 / -1;
    width: 100%;
  }

  .feedback-carousel {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    padding: 1.25rem;
  }

  .feedback-carousel-stage {
    grid-row: auto;
    min-height: 310px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .instagram-cta::before {
    animation: none;
  }

  .instagram-cta::after {
    display: none;
  }

  .feedback-carousel::before {
    animation: none;
  }


  .instagram-cta-icon {
    transition: none;
  }

  .google-cta-icon {
    transition: none;
  }
}

/* Card central preparado para o carrossel de avaliações do Google. */
.testimonials-heading {
  max-width: 920px;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
  color: #fff;
  text-align: center;
}

.testimonials-heading .eyebrow {
  justify-content: center;
}

.testimonials-heading h2 {
  margin: 1rem 0 1.25rem;
}

.testimonials-heading p {
  max-width: 620px;
  margin: 0 auto;
  color: rgba(255, 255, 255, .64);
}

.google-review-carousel {
  position: relative;
  min-width: 0;
  min-height: 470px;
  padding: clamp(1.7rem, 3vw, 2.75rem);
  overflow: hidden;
  transition: border-color .35s ease, box-shadow .35s ease;
}

.google-review-carousel::after {
  content: "▶";
  position: absolute;
  top: .8rem;
  right: .9rem;
  z-index: 3;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  color: var(--color-wine-dark);
  background: var(--color-champagne);
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 50%;
  box-shadow: 0 6px 18px rgba(42, 12, 19, .15);
  font: 700 .62rem/1 "DM Sans", sans-serif;
  opacity: .72;
  transform: scale(.92);
  transition: opacity .25s ease, transform .25s ease, box-shadow .25s ease;
  pointer-events: none;
}

.google-review-carousel.is-paused {
  border-color: rgba(245, 226, 178, .82);
  animation: review-pause-glow 1.8s ease-in-out infinite;
}

.google-review-carousel.is-paused::after {
  content: "Ⅱ";
  opacity: 1;
  transform: scale(1);
  box-shadow: 0 0 18px rgba(245, 226, 178, .4);
}

@keyframes review-pause-glow {
  0%, 100% { box-shadow: 0 0 0 rgba(245, 226, 178, 0); }
  50% { box-shadow: 0 0 24px rgba(245, 226, 178, .2), inset 0 0 18px rgba(245, 226, 178, .06); }
}

.google-review-card {
  padding: clamp(1.5rem, 4vw, 2.5rem);
  overflow: hidden;
  color: var(--color-text);
  background: var(--color-white);
  border-radius: 18px;
  box-shadow: inset 0 0 0 1px rgba(217, 189, 145, .22);
}

.google-review-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--border);
}

.google-review-brand {
  display: flex;
  align-items: center;
  gap: .7rem;
  color: var(--color-muted);
  font-size: .82rem;
}

.google-review-brand i {
  font-style: normal;
  font-size: 1.75rem;
  font-weight: 800;
  line-height: 1;
  background: conic-gradient(from -45deg, #4285f4, #34a853, #fbbc05, #ea4335, #4285f4);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.google-review-stars {
  color: #f4b400;
  font-size: 1.15rem;
  letter-spacing: .12em;
}

.google-review-track {
  position: relative;
  min-height: 385px;
}

.google-review-slide {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  opacity: 0;
  transform: translateX(22px);
  transition: opacity .8s ease, transform .8s ease;
  pointer-events: none;
}

.google-review-slide.active {
  opacity: 1;
  transform: translateX(0);
  pointer-events: auto;
}

.google-review-quote {
  height: 2.2rem;
  color: var(--color-gold);
  font: 3.8rem/1 "Playfair Display", serif;
}

.google-review-slide > p {
  margin: .35rem 0 1.25rem;
  font: clamp(1.05rem, 1.5vw, 1.28rem)/1.55 "Playfair Display", serif;
}

.google-review-slide-long > p {
  font-size: clamp(.96rem, 1.2vw, 1.08rem);
  line-height: 1.48;
}

.google-review-slide footer {
  display: flex;
  flex-direction: column;
}

.google-review-slide footer strong {
  color: #fff;
  font-size: .85rem;
}

.google-review-slide footer small {
  color: rgba(255, 255, 255, .55);
  font-size: .72rem;
}

.google-review-slide footer small span {
  color: #f4b400;
  letter-spacing: .08em;
}

.google-review-controls {
  position: absolute;
  left: clamp(1.7rem, 3vw, 2.75rem);
  right: clamp(1.7rem, 3vw, 2.75rem);
  bottom: .8rem;
  display: flex;
  align-items: center;
  gap: 1rem;
}

.google-review-controls > button {
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  padding: 0;
  color: var(--color-champagne);
  background: rgba(255, 255, 255, .035);
  border: 1px solid rgba(245, 226, 178, .22);
  border-radius: 50%;
  cursor: pointer;
  transition: color .25s ease, background-color .25s ease, border-color .25s ease, transform .25s ease;
}

.google-review-controls > button:hover,
.google-review-controls > button:focus-visible {
  color: var(--color-wine-dark);
  background: var(--color-champagne);
  border-color: var(--color-champagne);
  transform: translateY(-2px);
}

.google-review-controls > button:focus-visible {
  outline: 2px solid rgba(245, 226, 178, .55);
  outline-offset: 3px;
}

.google-review-dots {
  display: flex;
  flex: 1;
  gap: .35rem;
}

.google-review-dots i {
  flex: 1;
  height: 3px;
  border-radius: 99px;
  background: rgba(245, 226, 178, .24);
  transition: background-color .3s ease, box-shadow .3s ease;
}

.google-review-dots i.active {
  background: var(--color-gold);
  box-shadow: 0 0 10px rgba(245, 226, 178, .35);
}

@media (max-width: 880px) {
  .google-review-carousel {
    min-height: 0;
    padding: 1.6rem 1.6rem 3.2rem;
  }

  .google-review-track {
    min-height: 0;
    transition: height .55s ease;
  }

  .google-review-slide {
    bottom: auto;
  }

  .google-review-controls {
    left: 1.6rem;
    right: 1.6rem;
    bottom: .6rem;
  }
}

@media (max-width: 600px) {
  .google-review-carousel {
    min-height: 0;
    padding: 1.35rem 1.35rem 3rem;
    transition: min-height .55s ease;
  }

  .google-review-card {
    padding: 1.35rem;
    border-radius: 13px;
  }

  .google-review-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .google-review-track {
    min-height: 0;
    transition: height .55s ease;
  }

  .google-review-slide > p {
    font-size: .96rem;
    line-height: 1.48;
  }

  .google-review-controls { left: 1.35rem; right: 1.35rem; bottom: .45rem; gap: .65rem; }
  .google-review-controls > button { width: 36px; height: 36px; }
  .google-review-dots { gap: .22rem; }
}

@media (prefers-reduced-motion: reduce) {
  .google-review-slide {
    transition: none;
  }

  .feedback-slide {
    transition: none;
  }

  .feedback-media-carousel.is-paused {
    animation: none;
    box-shadow: 0 0 18px rgba(245, 226, 178, .14);
  }

  .google-review-carousel.is-paused {
    animation: none;
    box-shadow: 0 0 18px rgba(245, 226, 178, .14);
  }
}

/* Órbitas douradas com brilhos independentes no CTA intermediário. */
.mid-cta-inner::after {
  display: none;
}

.mid-cta-inner > :not(.mid-cta-orbits) {
  position: relative;
  z-index: 2;
}

.mid-cta-orbits {
  position: absolute;
  z-index: 0;
  left: -195px;
  top: 50%;
  width: 390px;
  aspect-ratio: 1;
  transform: translateY(-50%);
  pointer-events: none;
}

.mid-cta-orbits i {
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--orbit-size);
  aspect-ratio: 1;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  background: conic-gradient(from 0deg,
    rgba(217, 189, 145, .14) 0 72%,
    rgba(245, 226, 178, .95) 82%,
    rgba(255, 248, 218, 1) 86%,
    rgba(217, 189, 145, .14) 96% 100%);
  padding: 1px;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  filter: drop-shadow(0 0 7px rgba(245, 226, 178, .42));
  animation: mid-cta-orbit-shine var(--orbit-speed) linear infinite;
}

.mid-cta-orbits i:nth-child(1) {
  --orbit-size: 190px;
  --orbit-speed: 5.5s;
}

.mid-cta-orbits i:nth-child(2) {
  --orbit-size: 285px;
  --orbit-speed: 8s;
  animation-direction: reverse;
}

.mid-cta-orbits i:nth-child(3) {
  --orbit-size: 380px;
  --orbit-speed: 11s;
}

@keyframes mid-cta-orbit-shine {
  to { transform: translate(-50%, -50%) rotate(360deg); }
}

@media (max-width: 600px) {
  .mid-cta-orbits {
    left: -165px;
    width: 330px;
    opacity: .82;
  }

  .mid-cta-orbits i:nth-child(1) { --orbit-size: 155px; }
  .mid-cta-orbits i:nth-child(2) { --orbit-size: 235px; }
  .mid-cta-orbits i:nth-child(3) { --orbit-size: 320px; }
}

@media (prefers-reduced-motion: reduce) {
  .mid-cta-orbits i {
    animation: none;
  }
}

/* Cinco estrelas com brilho contínuo na introdução dos depoimentos. */
.google-stars-shine {
  display: inline-block;
  margin-top: 1.25rem;
  color: var(--color-gold);
  background: linear-gradient(105deg, #d9bd91 12%, #f4b400 34%, #fff8d5 48%, #f4b400 62%, #d9bd91 88%);
  background-size: 260% 100%;
  background-position: 130% 0;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font: 700 clamp(1.45rem, 2.4vw, 2rem)/1 "DM Sans", sans-serif;
  letter-spacing: .2em;
  filter: drop-shadow(0 0 8px rgba(244, 180, 0, .16));
  animation: google-stars-sweep 3.8s ease-in-out infinite;
}

@keyframes google-stars-sweep {
  0%, 18% { background-position: 130% 0; filter: drop-shadow(0 0 5px rgba(244, 180, 0, .1)); }
  58%, 100% { background-position: -130% 0; filter: drop-shadow(0 0 11px rgba(255, 238, 163, .28)); }
}

@media (prefers-reduced-motion: reduce) {
  .google-stars-shine {
    animation: none;
    background-position: 50% 0;
  }
}
