:root{--wine:#542b35;--wine-dark:#2c1e24;--rose:#b89187;--rose-light:#e6d1c7;--cream:#f9f6f1;--paper:#fffdfa;--ink:#272025;--muted:#827a77;--hair:#ded7d2;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;color:var(--ink);background:var(--paper);font-family:Inter,"Helvetica Neue",Arial,sans-serif;font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased}img{display:block;width:100%;height:auto}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #b68d82;outline-offset:4px}::selection{background:#d5bdb3;color:#2c1e24}.container{width:min(1312px,calc(100% - 96px));margin-inline:auto}.narrow{width:min(820px,100%);margin-inline:auto}.skip-link{position:fixed;z-index:3000;top:-120px;left:16px;padding:14px 22px;background:white;color:black}.skip-link:focus{top:16px}.topbar{height:31px;background:var(--wine-dark);color:#efe2dc;font-size:10px;letter-spacing:.12em;text-transform:uppercase}.topbar>.container{height:100%;display:flex;justify-content:space-between;align-items:center}.topbar a:hover{text-decoration:underline}.site-header{height:88px;position:sticky;top:0;z-index:500;background:rgba(255,253,250,.97);border-bottom:1px solid rgba(75,46,52,.1);backdrop-filter:blur(20px);transition:height .35s var(--ease),box-shadow .35s}.site-header.scrolled{height:75px;box-shadow:0 9px 35px rgba(47,26,31,.065)}.header-inner{height:100%;display:flex;align-items:center;gap:35px}.brand{display:flex;gap:12px;align-items:center;flex-shrink:0}.brand-mark{font-family:Georgia,serif;font-style:italic;font-size:43px;line-height:1;font-weight:400;letter-spacing:-8px;color:var(--wine);padding-right:6px}.brand-dot{color:var(--rose);font-size:47px}.brand-type{font-weight:400;letter-spacing:.18em;font-size:17px;line-height:1.05;color:var(--wine)}.brand-type>span{font-weight:700}.brand-type small{display:block;font-size:7px;letter-spacing:.27em;color:#887875;margin-top:7px}.desktop-nav{display:flex;margin:auto;align-items:center;gap:28px}.desktop-nav a{font-size:12px;font-weight:500;white-space:nowrap;transition:color .2s}.desktop-nav a:hover,.header-cta:hover{color:#9a6473}.header-right{display:flex;align-items:center;gap:15px}.header-cta{white-space:nowrap;padding:12px 18px;border:1px solid var(--wine);font-size:11px;letter-spacing:.02em;transition:all .3s}.header-cta:hover{background:var(--wine);color:#fff}.header-cta span{margin-left:12px}.menu-toggle{display:none;width:43px;height:43px;justify-content:center;align-items:center;flex-direction:column;gap:7px;border:0;background:transparent}.menu-toggle span{width:25px;height:1px;background:var(--wine);transition:transform .3s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.mobile-nav{display:none}.page-hero{position:relative;min-height:540px;background:var(--wine-dark);color:#fff;display:flex;align-items:center;overflow:hidden}.page-hero.photo-hero{min-height:670px}.page-hero.plain-hero{background:linear-gradient(110deg,#f2e9e3,#f9f6f2);color:var(--wine);min-height:475px}.hero-image{position:absolute;inset:0;background-position:center 50%;background-size:cover;transform:scale(1.065);animation:heroZoom 2.2s var(--ease) forwards;filter:saturate(.72)}@keyframes heroZoom{to{transform:scale(1)}}.page-hero::after{content:"";pointer-events:none;position:absolute;inset:0;background:linear-gradient(0deg,rgba(34,23,27,.20),transparent 40%)}.page-hero.plain-hero::after{display:none}.page-hero-inner{position:relative;z-index:2;padding:115px 0 118px}.page-hero h1{font-size:clamp(43px,6.3vw,96px);line-height:1.115;letter-spacing:-.061em;font-weight:300;max-width:1050px;margin:22px 0 22px;text-wrap:balance}.page-hero h1 em,.intro-copy h2 em,.section-head h2 em,.section-title em,.footer h2 em,.cta-section h2 em,.manifesto em,.admin-header h1 em,.catalog-toolbar h2 em{font-family:Georgia,"Times New Roman",serif;font-style:italic;font-weight:400;letter-spacing:-.045em}.hero-lead{max-width:575px;color:#e8dfda;font-size:16px;line-height:1.78;margin:0}.plain-hero .hero-lead{color:#645454}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.27em;color:var(--wine);font-weight:650;line-height:1.5;display:block}.eyebrow.light{color:#e7cabd}.hero-rule{width:76px;height:1px;background:#e5d4cb;margin-top:42px;opacity:.85}.hero-index{position:absolute;right:52px;bottom:34px;color:rgba(255,255,255,.65);font-size:9px;letter-spacing:.26em;z-index:3;white-space:nowrap}.plain-hero .hero-index{color:#9c7e76}.features{background:#ede2db;border-bottom:1px solid #e5d8d0}.features-inner{min-height:79px;display:flex;align-items:center;justify-content:space-between;gap:22px;color:#76515b;font-size:10px;text-transform:uppercase;letter-spacing:.19em;font-weight:600}.section{padding:124px 0}.cream-section{background:var(--cream)}.intro-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:clamp(55px,8vw,130px)}.intro-section .intro-grid{grid-template-columns:minmax(0,.98fr) minmax(0,1.02fr)}.intro-visual{position:relative;min-height:510px;background:#e8ddd6;overflow:hidden}.intro-visual:before{content:"";position:absolute;inset:12px;z-index:2;border:1px solid rgba(255,255,255,.45);pointer-events:none}.intro-visual img{width:100%;height:100%;min-height:510px;object-fit:cover;filter:saturate(.80);transition:transform 1s var(--ease)}.intro-visual:hover img{transform:scale(1.06)}.image-number{position:absolute;bottom:33px;left:38px;background:rgba(255,250,246,.93);padding:11px 21px;color:var(--wine);font-size:10px;letter-spacing:.15em}.intro-copy h2,.section-head h2,.catalog-toolbar h2{font-size:clamp(35px,4.6vw,67px);line-height:1.18;letter-spacing:-.055em;font-weight:300;color:var(--wine);margin:22px 0 31px}.intro-copy p:not(.eyebrow),.section-head p{font-size:15px;line-height:1.93;color:#655d5a;max-width:610px}.intro-copy p+p{margin-top:14px}.line-link{display:inline-flex;align-items:center;gap:24px;border-bottom:1px solid var(--wine);padding-bottom:10px;margin-top:24px;color:var(--wine);font-size:12px;font-weight:650;letter-spacing:.02em;transition:gap .3s}.line-link:hover{gap:35px}.section-head{max-width:850px;margin:0 0 54px}.section-head h2{margin-bottom:16px}.section-head>p{margin:0}.cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--hair);border:1px solid var(--hair)}.service-card{display:flex;min-height:310px;padding:30px 34px 35px;flex-direction:column;justify-content:space-between;background:var(--paper);transition:background .35s,color .35s}.service-card:hover{background:var(--wine);color:#fff}.service-card:hover .eyebrow,.service-card:hover .card-number,.service-card:hover p{color:#eacdc6}.card-top{display:flex;align-items:center;justify-content:space-between}.card-number{font-family:Georgia,serif;font-size:16px;color:#ac908c}.card-arrow{border:1px solid var(--hair);width:33px;height:33px;border-radius:50%;display:grid;place-items:center;transition:transform .3s}.service-card:hover .card-arrow{transform:rotate(45deg)}.service-card h3{font-size:27px;line-height:1.15;font-weight:350;letter-spacing:-.04em;margin:10px 0 13px}.service-card p{color:#756a68;font-size:13px;line-height:1.7;margin:0}.service-card .eyebrow{font-size:9px;margin:0}.section-end{display:flex;justify-content:flex-end;margin-top:38px}.manifesto{background:var(--wine);color:#fff;padding:123px 0 139px}.manifesto blockquote{font-size:clamp(43px,6.4vw,93px);line-height:1.18;letter-spacing:-.05em;font-weight:250;margin:27px 0 30px}.manifesto em{color:#e1beb2}.manifesto span{font-size:11px;color:#e8cdc4;letter-spacing:.14em}.quotes-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px}.quotes-grid blockquote{padding:40px;background:var(--cream);margin:0}.quote-mark{display:block;font-family:Georgia,serif;font-size:74px;height:62px;color:var(--rose)}.quotes-grid blockquote p{font-size:22px;line-height:1.65;letter-spacing:-.02em;font-weight:300;min-height:135px}.quotes-grid footer{color:#88736f;font-size:11px}.magazine-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.article-card{min-height:285px;background:#fff;padding:36px 34px;display:flex;flex-direction:column;align-items:flex-start;transition:transform .4s var(--ease),box-shadow .4s}.article-card:hover{transform:translateY(-7px);box-shadow:0 18px 45px rgba(58,36,43,.075)}.article-card h3{font-size:24px;line-height:1.23;letter-spacing:-.035em;font-weight:450;margin:22px 0 12px}.article-card p{font-size:13px;color:#77706d;line-height:1.75;margin:0}.card-go{margin-top:auto;padding-top:25px;color:var(--wine);font-size:11px;font-weight:650}.cta-section{background:var(--wine-dark);color:#fff;padding:97px 0}.cta-grid{display:flex;align-items:end;justify-content:space-between;gap:60px}.cta-section h2{font-size:clamp(40px,6vw,78px);letter-spacing:-.055em;font-weight:300;line-height:1.18;margin:22px 0 0}.cta-section h2 em{color:#e3c7bf}.cta-grid>div:last-child{max-width:315px}.cta-grid p:not(.eyebrow){color:#d5c5c6;line-height:1.8}.btn{display:inline-flex;justify-content:center;align-items:center;gap:16px;padding:16px 23px;min-height:51px;border-radius:0;border:1px solid transparent;font-size:12px;line-height:1.2;font-weight:650;letter-spacing:.015em;transition:transform .25s,background .25s,color .25s}.btn:hover{transform:translateY(-2px)}.btn-light{background:#f8f2eb;color:var(--wine)}.btn-outline{color:var(--wine);border:1px solid var(--wine);background:transparent}.btn-dark{background:var(--wine);color:#fff}.footer{background:#efe6e0;color:var(--wine)}.footer-grid{padding-top:90px;padding-bottom:83px;display:grid;grid-template-columns:2fr 1fr 1.15fr;gap:65px}.footer-grid h2{font-size:clamp(36px,4.5vw,63px);font-weight:300;letter-spacing:-.055em;line-height:1.17;margin:16px 0 23px}.footer-grid>div:not(:first-child){display:flex;align-items:flex-start;flex-direction:column;gap:13px}.footer-grid a:not(.line-link){font-size:13px}.footer-grid a:hover{text-decoration:underline}.footer-grid address{font-size:13px;font-style:normal;line-height:1.6}.foot-label{font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:700;margin:8px 0 10px}.foot-bottom{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;border-top:1px solid #d9c9c4;padding-top:20px;padding-bottom:30px;font-size:10px;color:#826f71}.foot-bottom a{text-decoration:underline;text-underline-offset:3px}.legal-links{display:flex;flex-wrap:wrap;gap:16px}.txt-btn{background:transparent;border:0;padding:0;font-size:10px;color:#826f71;text-decoration:underline}.cookie-banner{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:1500;width:min(930px,calc(100% - 32px));padding:26px 30px;background:#fff;box-shadow:0 18px 70px rgba(44,25,29,.20);border:1px solid #e0d2cb;display:flex;justify-content:space-between;align-items:center;gap:30px}.cookie-banner[hidden]{display:none}.cookie-banner h3{margin:0 0 5px;color:var(--wine);font-size:17px}.cookie-banner p{margin:0 0 5px;font-size:12px;color:#706563;max-width:480px}.cookie-banner a{font-size:11px;text-decoration:underline}.cookie-actions{display:flex;gap:8px;flex-shrink:0}.cookie-banner .btn{font-size:11px;padding:11px 14px}.cookie-banner .btn-light{background:var(--wine);color:#fff}.custom-cursor{position:fixed;z-index:2000;top:0;left:0;transform:translate(-50%,-50%);width:18px;height:18px;border-radius:50%;pointer-events:none;border:1px solid var(--wine);opacity:0;transition:width .22s,height .22s,background .22s;mix-blend-mode:multiply}.custom-cursor.active{width:46px;height:46px;background:rgba(174,117,123,.13)}.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair)}.team-card{background:var(--paper);padding:30px;min-height:245px}.team-card h3{font-size:28px;font-weight:350;margin:26px 0 10px;letter-spacing:-.045em;color:var(--wine)}.team-card p{font-size:12px;line-height:1.8;color:#716867}.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:50px}.values-grid article{border-top:1px solid var(--hair);padding-top:18px}.values-grid article>span{color:var(--rose);font-family:Georgia,serif}.values-grid h3{font-size:28px;font-weight:400;margin:32px 0 15px;color:var(--wine)}.values-grid p{color:#756866}.service-detail{display:grid;grid-template-columns:1fr 1.05fr;gap:90px}.detail-intro h2{font-size:clamp(36px,4.5vw,62px);line-height:1.2;letter-spacing:-.05em;font-weight:300;margin:25px 0;color:var(--wine)}.detail-intro em{font-family:Georgia,serif;font-weight:400}.detail-body h3{font-size:24px;color:var(--wine);font-weight:400;margin:0 0 15px}.detail-body h3:not(:first-child){margin-top:31px}.detail-body p{color:#6c6261;line-height:1.88}.detail-actions{display:flex;gap:25px;flex-wrap:wrap;align-items:center;margin-top:35px}.detail-actions .line-link{margin:0}.section-title{font-size:clamp(34px,4vw,58px);font-weight:300;line-height:1.22;letter-spacing:-.05em;color:var(--wine);margin:16px 0 30px}.faq{padding:22px 0;border-bottom:1px solid var(--hair)}.faq:first-of-type{border-top:1px solid var(--hair)}.faq summary{cursor:pointer;font-size:17px;font-weight:450;list-style:none;display:flex;justify-content:space-between;gap:20px}.faq summary::-webkit-details-marker{display:none}.faq summary span{font-size:23px;color:var(--wine)}.faq[open] summary span{transform:rotate(45deg)}.faq p{margin:15px 0 4px;color:#6b5f5b}.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.contact-box{border:1px solid var(--hair);padding:33px 27px;min-height:235px;transition:background .3s}.contact-box:hover{background:var(--cream)}.contact-box h2{font-size:clamp(20px,2vw,28px);font-weight:350;letter-spacing:-.045em;margin:25px 0 12px;overflow-wrap:anywhere;color:var(--wine)}.contact-box h2 span{color:var(--rose)}.contact-box p{font-size:13px;color:#786b68}.post-layout{padding:100px 0 110px}.post-back{display:flex;justify-content:space-between;color:var(--rose);font-size:11px;letter-spacing:.12em}.post-back a{border-bottom:1px solid var(--rose)}.post-head{max-width:980px;margin:85px auto 64px;text-align:center}.post-head h1{font-size:clamp(39px,5vw,72px);line-height:1.17;letter-spacing:-.058em;color:var(--wine);font-weight:300;margin:18px auto 23px}.post-deck{font-size:18px;color:#80716f}.post-text{max-width:720px;margin:auto;font-size:17px;line-height:1.95;color:#55494a}.post-text h2{font-size:28px;color:var(--wine);font-weight:400;letter-spacing:-.03em;margin:45px 0 10px}.post-note{border-left:2px solid var(--rose);padding:2px 25px;background:var(--cream);font-size:14px;margin-top:40px}.post-next{display:flex;justify-content:space-between;max-width:720px;margin:55px auto 0;gap:20px;font-size:12px;color:var(--wine);font-weight:650}.legal-content h2{font-size:34px;line-height:1.3;color:var(--wine);font-weight:400}.legal-content h3{margin-top:28px;color:var(--wine);font-size:18px}.legal-content p{color:#695f5c;line-height:1.86}.legal-content a{color:var(--wine);text-decoration:underline}.legal-content button{margin-top:20px}.catalog-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:45px}.catalog-toolbar h2{margin:10px 0 5px}.catalog-toolbar p:not(.eyebrow){color:#7c6f6c;font-size:13px}.catalog-toolbar .btn{flex-shrink:0}.catalog-filter{border:1px solid #e6d9d3;background:#fff;display:grid;grid-template-columns:180px 1fr auto;align-items:center;gap:20px;padding:15px 20px;margin:45px 0 25px}.catalog-filter label{font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:#765d61}.catalog-filter input{border:0;outline:0;font-size:14px;padding:12px;color:var(--ink);width:100%}.catalog-filter input:focus-visible{outline:2px solid var(--rose)}.catalog-filter span{font-size:11px;color:#8d8180}.catalog-group{margin-bottom:16px;background:#fff;border:1px solid #e9e2de}.catalog-group>summary{padding:22px 27px;cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px}.catalog-group>summary::-webkit-details-marker{display:none}.catalog-group>summary strong{font-size:16px;letter-spacing:-.025em;font-weight:500;color:var(--wine)}.catalog-group>summary span{font-size:13px;color:#937b7a}.catalog-items{border-top:1px solid #ede5e1;padding:7px 27px 14px}.catalog-item{display:flex;justify-content:space-between;gap:25px;border-bottom:1px solid #f0eae7;padding:14px 0;font-size:13px;color:#665d5c}.catalog-item:last-child{border:0}.catalog-price{font-weight:650;white-space:nowrap;color:var(--wine)}.catalog-help{margin-top:36px;font-size:13px;color:#746765}.catalog-help a{text-decoration:underline}.admin-shell{background:var(--cream);min-height:70vh;padding:110px 0}.admin-header h1{font-size:clamp(43px,6vw,76px);font-weight:300;letter-spacing:-.055em;margin:12px 0;color:var(--wine)}.admin-header p{max-width:650px;color:#786b6a}.admin-login{max-width:500px;margin:55px 0;border:1px solid var(--hair);padding:35px;background:#fff}.admin-login form{display:flex;flex-direction:column;gap:13px}.admin-login label{color:var(--wine);font-size:12px}.admin-login input{padding:16px;border:1px solid #cfc1bb;border-radius:0}.admin-login .muted{font-size:12px;color:#8a7c79;margin:25px 0 0}.admin-feedback{font-size:12px;color:#963b3b}.admin-bar{position:sticky;top:76px;z-index:100;background:#fff;box-shadow:0 9px 28px rgba(48,25,29,.06);padding:18px;display:flex;align-items:center;justify-content:space-between;gap:25px;flex-wrap:wrap}.admin-bar .btn{padding:11px 17px;min-height:44px}.admin-edit-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:48px}.admin-edit-header h2{font-size:31px;font-weight:350;color:var(--wine)}.admin-cat{margin:20px 0;background:#fff;border:1px solid var(--hair);padding:24px}.admin-cat-head{display:flex;align-items:center;gap:12px}.admin-cat-head input{font-size:17px;font-weight:600;flex:1;border:1px solid #e3d8d2;padding:10px;min-width:120px;color:var(--wine)}.admin-cat-head button,.admin-item button{background:transparent;border:1px solid #b9aba4;padding:9px 13px;font-size:11px;white-space:nowrap}.admin-items{margin:16px 0}.admin-item{display:grid;grid-template-columns:1.6fr .6fr .6fr .8fr auto;gap:9px;margin:7px 0;align-items:center}.admin-item input,.admin-item select{padding:11px 8px;border:1px solid #e1d8d4;width:100%;min-width:0;font-size:12px}.admin-add{margin-top:12px;background:#f5ebe6;border:0;padding:12px 18px;font-size:12px;color:var(--wine);font-weight:650}.reveal{opacity:0;transform:translateY(24px);transition:opacity .95s var(--ease),transform .95s var(--ease)}.reveal.is-visible{opacity:1;transform:translateY(0)}
@media(hover:none),(pointer:coarse){.custom-cursor{display:none!important}}@media(max-width:1120px){.desktop-nav{gap:15px}.header-inner{gap:17px}.header-cta{padding:10px 12px}.team-grid{grid-template-columns:repeat(3,1fr)}.container{width:min(1312px,calc(100% - 64px))}}@media(max-width:900px){.site-header{height:75px}.site-header.scrolled{height:70px}.topbar{height:26px}.desktop-nav{display:none}.header-right{margin-left:auto}.header-cta{font-size:10px}.menu-toggle{display:flex}.mobile-nav{display:none;position:absolute;top:100%;left:0;width:100%;background:#fff;padding:20px 32px 32px;box-shadow:0 20px 30px rgba(36,15,19,.1);border-bottom:1px solid var(--hair)}.mobile-nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0}.mobile-nav a{padding:17px 3px;border-bottom:1px solid var(--hair);font-size:19px;font-weight:350}.page-hero.photo-hero{min-height:570px}.page-hero-inner{padding:90px 0}.intro-grid,.intro-section .intro-grid{grid-template-columns:1fr;gap:48px}.intro-visual{min-height:430px}.intro-visual img{min-height:430px;max-height:600px}.intro-copy{order:-1}.cards-grid{grid-template-columns:repeat(2,1fr)}.service-detail{grid-template-columns:1fr;gap:15px}.contact-grid{grid-template-columns:1fr}.magazine-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1.4fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.cta-grid{align-items:start}.team-grid{grid-template-columns:repeat(2,1fr)}.catalog-toolbar{align-items:flex-start;flex-direction:column}.admin-item{grid-template-columns:1fr 105px 105px 105px auto}}@media(max-width:600px){html{scroll-padding-top:70px}.container{width:calc(100% - 40px)}.topbar{font-size:8px;letter-spacing:.04em}.brand{gap:8px}.brand-mark{font-size:36px}.brand-type{font-size:14px}.brand-type small{font-size:6px}.header-cta{display:none}.page-hero.photo-hero{min-height:575px}.page-hero.plain-hero{min-height:390px}.page-hero h1{font-size:clamp(40px,10vw,59px);letter-spacing:-.052em}.page-hero-inner{padding:85px 0}.hero-lead{font-size:13px;line-height:1.8}.hero-index{right:20px;bottom:20px;font-size:8px}.features-inner{display:grid;grid-template-columns:1fr 1fr;padding:18px 0;gap:11px}.features-inner span{font-size:8px;letter-spacing:.10em}.section{padding:75px 0}.intro-copy h2,.section-head h2,.catalog-toolbar h2{font-size:clamp(34px,8vw,48px)}.intro-visual,.intro-visual img{min-height:340px}.section-head{margin-bottom:36px}.cards-grid,.magazine-grid,.quotes-grid,.values-grid,.team-grid{grid-template-columns:1fr}.service-card{min-height:245px;padding:26px}.service-card h3{font-size:24px}.manifesto{padding:80px 0}.manifesto blockquote{font-size:clamp(39px,9vw,58px)}.quotes-grid blockquote{padding:30px}.quotes-grid blockquote p{min-height:0;font-size:20px}.cta-grid{display:block}.cta-section{padding:75px 0}.cta-grid>div:last-child{margin-top:30px}.footer-grid{grid-template-columns:1fr;gap:35px;padding:65px 0 45px}.footer-grid>div:first-child{grid-column:auto}.footer-grid>div:not(:first-child){gap:7px}.foot-bottom{gap:15px}.cookie-banner{display:block;padding:19px;bottom:12px}.cookie-banner h3{font-size:16px}.cookie-actions{margin-top:18px}.cookie-actions .btn{flex:1;white-space:normal}.catalog-filter{display:block;padding:14px}.catalog-filter label{display:block}.catalog-filter input{display:block;margin:5px 0}.catalog-group>summary{padding:18px 15px}.catalog-items{padding:5px 15px}.catalog-item{font-size:12px}.catalog-toolbar{gap:20px}.post-layout{padding:55px 0}.post-head{margin:60px 0}.post-head h1{font-size:40px}.post-text{font-size:15px}.post-next{display:block}.post-next a{display:block;margin-top:18px}.admin-shell{padding:65px 0}.admin-cat{padding:15px}.admin-cat-head{flex-wrap:wrap}.admin-cat-head input{flex-basis:100%}.admin-item{grid-template-columns:1fr 1fr;gap:7px;border-bottom:1px solid var(--hair);padding-bottom:13px}.admin-item .item-name{grid-column:1/-1}.admin-item button{grid-column:1/-1}.admin-item select{min-width:0}.admin-bar{top:70px}.admin-bar>div{display:flex;flex-wrap:wrap;gap:5px}.admin-edit-header{align-items:flex-start;flex-direction:column}.legal-content h2{font-size:27px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1!important;transform:none!important;transition:none!important}.hero-image{animation:none!important;transform:none!important}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}


/* EstetiTech Atelier — refinement across every page */
:root{--wine:#582a40;--wine-dark:#261a26;--rose:#bd8a9a;--rose-light:#e4c5ca;--cream:#faf6f1;--paper:#fffaf7;--ink:#43323c;--muted:#807078;--hair:#e7d8d6;--ease:cubic-bezier(.2,.8,.2,1);--serif:"Baskerville","Iowan Old Style","EB Garamond",Georgia,serif;--sans:"Avenir Next","Helvetica Neue",Arial,sans-serif}
body{font-family:var(--sans);font-weight:350;font-size:14px;line-height:1.78;color:var(--ink);background:var(--paper)}
.section{position:relative;padding-top:clamp(80px,9vw,148px);padding-bottom:clamp(80px,9vw,148px)}
.section::before{content:"";display:block;width:1px;height:60px;position:absolute;left:50%;top:18px;background:linear-gradient(var(--rose),transparent);transform-origin:top;transform:scaleY(0);transition:transform 1.2s var(--ease)}
.section.section-seen::before{transform:scaleY(1)}
.eyebrow{font-size:10px;letter-spacing:.28em;font-weight:500}.brand-type{font-size:16px;letter-spacing:.24em}.desktop-nav a{font-size:11px;letter-spacing:.05em}.site-header{background:rgba(255,250,247,.94)}.site-header.scrolled{height:72px}
.original-brand-logo{width:43px;height:43px;object-fit:contain;display:none}.brand:has(.original-brand-logo.loaded) .monogram-fallback{display:none}.brand:has(.original-brand-logo.loaded) .brand-type{display:none}.original-brand-logo.loaded{display:block;width:auto;max-width:160px;height:56px}
.page-hero.atelier-hero{background:#f6ebe8;color:var(--wine);min-height:min(740px,85vh);overflow:hidden}
.page-hero.atelier-hero.photo-hero{min-height:710px}
.atelier-hero.photo-hero .hero-image{position:absolute;inset:58px 4.4% 62px auto;width:40%;border-radius:46% 46% 3px 3px / 37% 37% 3px 3px;opacity:.92;filter:saturate(.75);background-color:#d3b9b3;background-position:center;animation:heroReveal 1.7s var(--ease) both;transform:none;box-shadow:0 35px 85px rgba(84,41,60,.1)}
@keyframes heroReveal{from{opacity:.1;clip-path:inset(100% 0 0 0)}to{opacity:.92;clip-path:inset(0)}}
.atelier-hero.plain-hero{min-height:480px;background:linear-gradient(120deg,#f8eeeb,#e9d4d1)}
.atelier-hero::after{background:radial-gradient(circle at 72% 50%,transparent 13%,rgba(255,248,243,.16) 60%);pointer-events:none}
.atelier-hero .page-hero-inner{padding:clamp(90px,9vw,152px) 0;min-height:inherit;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.atelier-hero h1{font-size:clamp(39px,4.45vw,67px);line-height:1.22;font-weight:300;letter-spacing:-.048em;max-width:780px;width:60%;margin:21px 0 20px}
.atelier-hero h1 em,.intro-copy h2 em,.section-head h2 em,.section-title em,.manifesto em,.footer h2 em,.cta-section h2 em,.admin-header h1 em,.catalog-toolbar h2 em,.post-head h1 em,.ritual-content h2 em{font-family:var(--serif);font-weight:400;font-style:italic;letter-spacing:-.035em}
.atelier-hero .eyebrow,.atelier-hero .eyebrow.light{color:#81495d}
.atelier-hero .hero-lead{color:#795b6c;max-width:430px;width:50%;font-size:13px;line-height:1.95}
.atelier-hero .hero-rule{background:var(--wine);opacity:.32}
.atelier-hero .hero-index{color:var(--wine);opacity:.7;font-size:9px;letter-spacing:.22em}
.hero-illustration{position:absolute;right:1%;bottom:3%;height:68%;width:35%;pointer-events:none;z-index:1;color:#936174;opacity:.44}
.hero-floral{height:100%;width:100%;stroke-dasharray:1100;stroke-dashoffset:1100;animation:drawBotanical 3.3s .1s var(--ease) forwards}
@keyframes drawBotanical{to{stroke-dashoffset:0}}
.hero-signature{font:italic 19px var(--serif);letter-spacing:.07em;color:var(--rose);margin-top:27px}
.atelier-hero.photo-hero .hero-illustration{right:0;bottom:-6%;z-index:3;opacity:.45;height:57%;width:25%}
.atelier-hero:not(.photo-hero) h1{max-width:930px;width:85%}.atelier-hero:not(.photo-hero) .hero-lead{max-width:530px;width:80%}.atelier-hero:not(.photo-hero) .hero-illustration{right:5%;height:90%;width:25%;opacity:.3}
.section-head h2,.intro-copy h2,.section-title,.ritual-content h2,.catalog-toolbar h2{font-size:clamp(35px,4vw,56px);font-weight:300;line-height:1.19;letter-spacing:-.047em;max-width:840px}
.section-head p{font-size:13px;max-width:550px;color:var(--muted)}
.intro-grid{gap:clamp(60px,7vw,130px)}.intro-copy p:not(.eyebrow){font-size:14px;line-height:1.95;color:#796a70}.intro-visual{border-radius:47% 47% 0 0/37% 37% 0 0;overflow:hidden;box-shadow:0 28px 60px rgba(61,31,42,.1);background:linear-gradient(145deg,#e6d2d0,#f0e2dd 58%,#d0a6ac);isolation:isolate}.intro-visual img{position:relative;z-index:2;object-fit:cover;transition:transform 1.5s var(--ease),opacity .3s}.intro-visual:hover img{transform:scale(1.055)}.botanical-frame .frame-botanical{position:absolute;inset:2% 0 0 10%;color:#a57280;z-index:1;opacity:.7;pointer-events:none}.frame-botanical .hero-floral{stroke-dasharray:0;stroke-dashoffset:0}.image-number{z-index:3}
.features{background:#ead6d3}.features-inner span{color:#7a4b5f;letter-spacing:.16em;font-weight:400}
.ritual-section{background:#f5e9e8}.ritual-grid{display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:clamp(60px,9vw,170px)}.ritual-art{height:550px;position:relative;background:linear-gradient(150deg,#e5d0ce,#eddad6);border-radius:46% 46% 0 0/30% 30% 0 0;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#a36d81}.ritual-art .hero-floral{width:70%;height:86%;stroke-width:1;stroke-dashoffset:0}.ritual-kicker{position:absolute;top:19px;right:20px;font:italic 16px var(--serif);letter-spacing:.12em}.ritual-caption{position:absolute;bottom:22px;left:24px;font-size:9px;letter-spacing:.22em}.ritual-art:before{content:"";border:1px solid #fff9;position:absolute;inset:10px;border-radius:inherit}.ritual-content h2{margin:20px 0;font-weight:300}.ritual-intro{max-width:490px;color:#817076}.ritual-tabs{margin-top:42px;border-top:1px solid #d8c0c1}.ritual-tab{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;background:none;border:none;border-bottom:1px solid #d8c0c1;padding:18px 2px;color:var(--wine);font-family:var(--serif);font-size:24px;font-style:italic;font-weight:400;transition:padding .3s,color .3s}.ritual-tab>span{font:300 23px var(--sans);transition:transform .3s}.ritual-tab.active{padding-left:18px;color:#9d596f}.ritual-tab.active>span{transform:rotate(45deg)}.ritual-panel{min-height:128px;margin-top:22px;font-size:13px;color:#796872}.ritual-panel p{max-width:470px}
.cards-grid{gap:15px}.service-card{min-height:325px;padding:26px 27px;overflow:hidden;position:relative;border:1px solid #e7d9da;background:#fffaf7;transition:transform .5s var(--ease),box-shadow .5s,background .5s,border-color .5s}.service-card::before{content:"";position:absolute;inset:auto 0 0;height:100%;background:linear-gradient(145deg,transparent,#f5e5e6);transform:scaleY(0);transform-origin:bottom;transition:transform .65s var(--ease)}.service-card:hover{transform:translateY(-7px);box-shadow:0 24px 52px #67354813;border-color:#cdb3b9}.service-card:hover::before{transform:scaleY(1)}.service-card>*{position:relative;z-index:2}.card-number{font:italic 20px var(--serif);color:#8b5872}.card-arrow{font-size:17px}.service-card h3{font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.2vw,32px);letter-spacing:-.02em;line-height:1.13}.service-card p:not(.eyebrow){font-size:12px;line-height:1.85;color:#89787d}.card-illustration{position:absolute;top:55px;right:29px;color:#bc8b9c;opacity:.8}.sketch-icon{width:65px;height:65px}.sketch-icon path,.sketch-icon circle{stroke-dasharray:230;stroke-dashoffset:230;transition:stroke-dashoffset 1.9s .1s var(--ease)}.service-card.is-visible .sketch-icon path,.service-card.is-visible .sketch-icon circle,.service-card:hover .sketch-icon path,.service-card:hover .sketch-icon circle,.contact-box:hover .sketch-icon path,.contact-box:hover .sketch-icon circle{stroke-dashoffset:0}.service-card:hover .sketch-icon{transform:rotate(5deg)}
.values-grid article,.contact-box{position:relative;overflow:hidden}.values-grid article{padding-top:65px}.contact-illustration{position:absolute;right:25px;top:12px;color:#b48298;opacity:.65}.contact-illustration svg{width:60px;height:60px}.contact-box h2{font-weight:320;font-family:var(--serif);font-size:clamp(22px,2.15vw,31px)}
.cta-section,.manifesto{position:relative;overflow:hidden;background:linear-gradient(120deg,#4a2b3b,#261c29)}.cta-art{position:absolute;right:-3%;bottom:-58%;height:160%;width:28%;opacity:.25;transform:rotate(-18deg);color:#e6c3c7;pointer-events:none}.cta-art .hero-floral{stroke-dashoffset:0;animation:none}.cta-section h2,.manifesto blockquote{font-weight:300;font-size:clamp(36px,4.4vw,62px)}
.quotes-grid blockquote p{font:italic 25px/1.5 var(--serif)}.footer h2{font-size:clamp(36px,4.5vw,64px);font-weight:300}.post-head h1{font-family:var(--serif);font-size:clamp(41px,4.4vw,64px);font-weight:400;letter-spacing:-.02em}
.article-card{transition:background .4s,transform .4s}.article-card:hover{transform:translateY(-5px)}.article-card h3{font-family:var(--serif);font-size:27px;line-height:1.23;font-weight:400}.team-card h3{font-family:var(--serif);font-size:30px;font-weight:400}.team-card{transition:transform .4s,border-color .4s}.team-card:hover{transform:translateY(-5px);border-color:#b78da0}.btn{font-size:11px;letter-spacing:.07em;border-radius:0;transition:background .3s,color .3s,transform .3s}.btn:hover{transform:translateY(-2px)}.line-link{font-size:11px;letter-spacing:.08em}
.scroll-progress{position:fixed;top:0;left:0;z-index:3000;height:2px;width:0;background:#ae7896;pointer-events:none;transition:width .09s linear}.page-transition{pointer-events:none;position:fixed;inset:0;z-index:2100;background:#f0e1e0;transform:translateY(-100%);transition:transform .7s var(--ease)}.page-transition.transition-in{transform:translateY(0)}
/* Word reveal keeps semantic H1/H2/H3 intact */
.word-piece{display:inline-block;vertical-align:baseline;opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(22px);transition:transform 1s var(--ease),opacity .75s,clip-path 1.05s var(--ease);transition-delay:var(--wd,0ms)}.title-ready.is-visible .word-piece,.title-ready.motion-show .word-piece{opacity:1;clip-path:inset(0 0 0 0);transform:translateY(0)}.reveal:not(.title-ready){transform:translateY(38px);filter:blur(4px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease),filter 1.1s}.reveal.is-visible:not(.title-ready){transform:none;filter:blur(0)}
@media(min-width:950px){.atelier-hero.photo-hero h1{position:relative;z-index:3}.atelier-hero.photo-hero .page-hero-inner{padding-right:38px}}
@media(max-width:950px){.atelier-hero.photo-hero .hero-image{inset:8% 4% 17% auto;width:46%;opacity:.4}.atelier-hero h1{width:78%;max-width:690px;font-size:clamp(40px,6vw,59px)}.atelier-hero .hero-lead{width:75%}.hero-illustration{width:40%}.ritual-grid{gap:40px;grid-template-columns:1fr 1.2fr}.ritual-art{height:410px}}
@media(max-width:650px){.section{padding:80px 0}.section:before{height:33px;top:6px}.page-hero.atelier-hero.photo-hero{min-height:655px}.page-hero.atelier-hero.plain-hero{min-height:430px}.atelier-hero .page-hero-inner{padding:86px 0 100px;justify-content:flex-end}.atelier-hero h1{font-size:clamp(36px,9.2vw,48px);line-height:1.16;width:95%;margin-top:14px;position:relative;z-index:2}.atelier-hero .hero-lead{width:88%;font-size:12px;line-height:1.8}.atelier-hero.photo-hero .hero-image{top:7%;right:-8%;bottom:auto;height:46%;width:69%;opacity:.52}.atelier-hero.photo-hero .hero-illustration{width:64%;height:48%;top:4%;right:-7%;bottom:auto}.atelier-hero:not(.photo-hero) .hero-illustration{width:55%;height:70%;right:-12%;top:0;opacity:.2}.hero-signature{font-size:17px;margin-top:12px}.hero-index{display:none}.section-head h2,.intro-copy h2,.section-title,.ritual-content h2,.catalog-toolbar h2{font-size:clamp(32px,8vw,44px);letter-spacing:-.04em}.intro-grid{gap:30px}.intro-visual{min-height:370px}.intro-visual img{min-height:370px}.intro-copy{order:0}.ritual-grid{grid-template-columns:1fr;gap:48px}.ritual-art{height:310px;width:min(85%,340px);margin:auto}.ritual-content{order:-1}.ritual-tab{font-size:22px}.cards-grid{grid-template-columns:1fr}.service-card{min-height:270px}.service-card h3{font-size:28px}.service-card .card-illustration{right:16px;top:50px}.cta-art{width:65%;right:-35%;height:100%;bottom:-15%}.footer h2{font-size:47px}.brand-type{font-size:14px}.original-brand-logo.loaded{max-width:120px;height:46px}.contact-illustration{top:5px}.post-head h1{font-size:38px}.word-piece{transform:translateY(12px)}}
@media(prefers-reduced-motion:reduce){.word-piece{opacity:1!important;clip-path:none!important;transform:none!important;transition:none!important}.hero-floral{stroke-dashoffset:0!important;animation:none!important}.sketch-icon path,.sketch-icon circle{stroke-dashoffset:0!important;transition:none!important}.ritual-art,.service-card{transform:none!important}.page-transition{display:none!important}.page-hero .hero-image{clip-path:none!important}}


/* ===============================================================
   ESTETITECH V3 | interventi mirati senza alterare il layout Atelier
   =============================================================== */
:root{--ink:#35232f;--muted:#594951}
body{color:#35232f}
/* Make text darker in every page: no typography changes */
.section p:not(.eyebrow),.intro-copy p,.detail-intro p,.service-detail p,.article-card p,
.team-card p,.values-grid p,.catalog-toolbar p,.catalog-item,.catalog-help,.contact-card p,
.post-text p,.post-text li,.footer p,.footer address,.footer a,.review-card p,
.section-head p,.service-card p{color:#4a3741}
.eyebrow,.card-category,.section-kicker,.team-card .eyebrow,.article-card .eyebrow{color:#673e50}
.cream-section .eyebrow,.section .eyebrow{color:#673e50}
.hero-lead,.page-hero .eyebrow.light{color:#fff3ef}
/* Hamburger visible at all widths, typographic signature matching the home. */
.desktop-nav{display:none!important}
.header-right{margin-left:auto}
.menu-toggle{display:flex!important;position:relative;z-index:555;width:48px;height:48px;border:1px solid rgba(88,42,64,.20);border-radius:50%;flex-shrink:0}
.menu-toggle:hover{background:#f6ebe8}
.mobile-nav{display:none;position:absolute;top:100%;left:0;right:0;width:100%;height:min(690px,calc(100dvh - 72px));overflow:auto;background:rgba(255,250,247,.985);padding:clamp(24px,5vw,54px) max(24px,calc((100vw - 1110px)/2));border-top:1px solid #eadadd;border-bottom:1px solid #e6d8d6;box-shadow:0 22px 32px rgba(45,21,35,.08);z-index:510}
.mobile-nav.open{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px clamp(24px,5vw,60px);align-content:start}
.mobile-nav .menu-prelude{grid-column:1/-1;color:#794f60;font-family:var(--serif);font-style:italic;font-size:clamp(24px,3vw,32px);letter-spacing:0;display:flex;gap:20px;align-items:baseline;padding:0 0 16px;border-bottom:1px solid #e6d8d6;margin-bottom:16px}
.mobile-nav .menu-prelude i{font-size:14px;color:#6e5260}
.mobile-nav>a{font:italic 400 clamp(30px,4vw,50px)/1.2 var(--serif);padding:17px 0;color:#462c3d;border-bottom:1px solid #d9c8cc;letter-spacing:-.026em;transition:color .25s,padding-left .3s}
.mobile-nav>a:hover,.mobile-nav>a:focus-visible{color:#8a506d;padding-left:12px}
.mobile-nav>a[aria-current=page]{color:#8a506d}
.mobile-nav .menu-bottom{grid-column:1/-1;font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:#624d57;margin:24px 0 0}
/* Fix incorrect alignment and excessive empty space in the philosophy block */
.manifesto{padding:clamp(84px,10vw,146px) 0}
.manifesto-content{display:grid;grid-template-columns:minmax(180px,.38fr) minmax(0,1fr);gap:clamp(35px,6vw,96px);align-items:center}
.manifesto-lead{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:22px}
.manifesto .eyebrow{margin:0;color:#f8e7e4}
.manifesto-stroke{height:1px;width:min(100%,165px);background:#d9afb9;display:block}
.manifesto-note{margin:0;max-width:230px;font:italic 20px/1.55 var(--serif);color:#f6e3e3}
.manifesto-quote{min-width:0;text-align:left;}
.manifesto blockquote{margin:0!important;font:400 clamp(35px,4.4vw,63px)/1.18 var(--serif);color:#fff7f3;max-width:none;text-align:left;letter-spacing:-.025em}
.manifesto blockquote em{color:#f7dae0}
.manifesto .manifesto-author{display:block;font:400 11px/1.5 var(--sans);letter-spacing:.13em;color:#f5dce0;margin:26px 0 0;text-transform:uppercase;text-align:left}
/* Google review references, preserving the testimonial layout */
.review-card .review-header{display:flex;gap:10px;align-items:center;color:#5f4554;font-size:11px;letter-spacing:.035em;flex-wrap:wrap}
.google-g{font:bold 17px/1 Arial,sans-serif;background:conic-gradient(#4285f4 0 23%,#34a853 23% 43%,#fbbc05 43% 67%,#ea4335 67% 83%,#4285f4 83%);-webkit-background-clip:text;background-clip:text;color:transparent}
.review-stars{color:#866072;letter-spacing:2px;margin-left:auto}
.quotes-grid blockquote footer{color:#604a54}
.reviews-source{margin:28px 0 0;text-align:right}
.reviews-source a{color:#603849}
/* Keep magazine clean, add real salon photo only where available */
.article-card .magazine-photo{display:block;margin:-36px -34px 27px;width:calc(100% + 68px);height:172px;overflow:hidden;background:#dbcaca}
.article-card .magazine-photo img{height:100%;width:100%;object-fit:cover;transition:transform 1.0s var(--ease);filter:saturate(.75)}
.article-card:hover .magazine-photo img{transform:scale(1.07)}
/* Team motion and existing photographs; never label an interior as a portrait */
.team-photo-strip{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;margin:0 0 38px}
.team-photo{margin:0;overflow:hidden;position:relative;height:clamp(190px,25vw,330px);background:#eadfdb;border-radius:46% 46% 1px 1px / 35% 35% 1px 1px}
.team-photo img{height:100%;object-fit:cover;object-position:center;transition:transform 1s var(--ease),filter 1s var(--ease);filter:saturate(.78)}
.team-photo:hover img{transform:scale(1.06);filter:saturate(.97)}
.team-photo figcaption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(44,25,34,.7));color:#fff;padding:30px 20px 15px;font:italic 20px/1.1 var(--serif)}
.team-card{position:relative;overflow:hidden;isolation:isolate;cursor:default;transition:transform .45s var(--ease),border-color .45s,box-shadow .45s var(--ease),background-color .45s}
.team-card:hover,.team-card:focus-visible{transform:translateY(-8px);background:#fffaf7;border-color:#a7758f;box-shadow:0 18px 50px rgba(80,40,56,.08)}
.team-card h3{transition:transform .55s var(--ease),color .45s var(--ease)}
.team-card:hover h3,.team-card:focus-visible h3{transform:translateX(5px);color:#8b4d6a}
.team-card-hairline{display:block;width:40px;height:1px;background:#bd8a9a;margin-bottom:20px;transform-origin:left;transition:transform .65s var(--ease)}
.team-card:hover .team-card-hairline{transform:scaleX(2.2)}
.team-card-footer{display:flex;justify-content:space-between;gap:10px;margin-top:24px;padding-top:12px;border-top:1px solid #e9d9df;font:italic 17px/1.2 var(--serif);color:#67485a;opacity:.78;transition:opacity .35s}
.team-card:hover .team-card-footer,.team-card:focus-visible .team-card-footer{opacity:1}
.team-card-arrow{transition:transform .4s var(--ease)}.team-card:hover .team-card-arrow{transform:translate(4px,-4px)}
.values-grid .value-card{position:relative;overflow:hidden;transition:background .45s,transform .5s var(--ease),padding .45s}
.values-grid .value-card:hover,.values-grid .value-card:focus-visible{transform:translateY(-6px);background:#fffaf7;padding-left:15px;padding-right:15px}
.values-grid .value-card .sketch-icon{transition:transform .65s var(--ease),color .45s}
.values-grid .value-card:hover .sketch-icon,.values-grid .value-card:focus-visible .sketch-icon{transform:rotate(-9deg) scale(1.15);color:#8c5571}
.value-flourish{position:absolute;right:6px;bottom:3px;opacity:0;color:#8a4e66;font-size:30px;transform:scale(.6);transition:opacity .4s,transform .4s}
.value-card:hover .value-flourish,.value-card:focus-visible .value-flourish{opacity:1;transform:scale(1)}
/* Price list: everything expanded with a sticky row of category anchors */
.catalog-explainer{margin:42px 0 15px;font:italic 30px/1.2 var(--serif);color:#563849}
.catalog-explainer em{color:#8f5a74}
.catalog-anchors{position:sticky;top:72px;z-index:80;margin:0 0 27px;background:rgba(255,250,247,.96);border:1px solid #e6d6da;padding:15px 20px 12px;backdrop-filter:blur(14px)}
.catalog-anchors-label{display:block;text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:550;color:#654956;margin-bottom:8px}
.catalog-anchors-items{display:flex;flex-wrap:wrap;gap:7px}
.catalog-anchors-items a{border:1px solid #dec6ce;padding:6px 12px;border-radius:99px;color:#563649;font-size:11px;transition:all .25s}
.catalog-anchors-items a:hover,.catalog-anchors-items a:focus-visible{background:#65364e;color:white}
.catalog-group{scroll-margin-top:225px}
.catalog-group summary{cursor:default;pointer-events:none;background:#f1e5e8;user-select:text}
.catalog-group summary span{color:#634356!important}
.catalog-group .catalog-items{display:block!important}
.catalog-item span{color:#402d37}
.catalog-item .catalog-price{color:#492a3c}
@media(max-width:900px){.mobile-nav{height:calc(100dvh - 70px);padding:27px 24px 48px}.mobile-nav.open{grid-template-columns:1fr}.mobile-nav .menu-prelude{margin-bottom:0}.mobile-nav>a{font-size:clamp(30px,8vw,44px);padding:12px 0}.manifesto-content{grid-template-columns:1fr;gap:32px}.manifesto-lead{gap:11px}.manifesto-note{max-width:100%}.manifesto-quote blockquote{font-size:clamp(37px,7vw,55px)}.catalog-anchors{top:70px}.team-photo-strip{gap:10px}.team-photo{height:230px}}
@media(max-width:560px){.header-cta{display:none}.mobile-nav .menu-prelude{font-size:24px}.mobile-nav .menu-prelude i{font-size:12px}.manifesto{padding:78px 0}.manifesto blockquote{font-size:clamp(34px,8.4vw,48px)}.manifesto blockquote br{display:none}.manifesto .manifesto-author{font-size:10px}.team-photo-strip{grid-template-columns:1fr 1fr}.team-photo{height:200px}.team-photo figcaption{font-size:14px;padding:24px 12px 12px}.catalog-anchors{position:sticky;top:69px;padding:11px}.catalog-anchors-items{flex-wrap:nowrap;overflow:auto;padding-bottom:4px;scrollbar-width:thin}.catalog-anchors-items a{white-space:nowrap}.catalog-explainer{font-size:25px}.review-stars{margin-left:0}}
@media(prefers-reduced-motion:reduce){.team-card,.value-card,.team-card h3,.team-photo img,.article-card .magazine-photo img,.team-card-hairline{transition:none!important;animation:none!important}}

.catalog-static-head{padding:22px 27px;background:#f1e5e8;display:flex;align-items:center;justify-content:space-between;gap:20px}.catalog-static-head strong{font-family:var(--serif);font-size:23px;font-weight:400;color:#492d3e}.catalog-static-head span{font-size:11px;color:#644955;white-space:nowrap}.catalog-items{border-top:1px solid #e1d0d6}.catalog-anchors-items:empty{display:none}@media(max-width:560px){.catalog-static-head{padding:17px 14px}.catalog-static-head strong{font-size:19px}.catalog-static-head span{font-size:10px}.catalog-group{scroll-margin-top:200px}}

.value-flourish{width:19px;height:19px;transform:scale(.6) rotate(45deg);border:1px solid #8a4e66;bottom:16px;right:16px}.value-card:hover .value-flourish,.value-card:focus-visible .value-flourish{transform:scale(1) rotate(45deg)}.values-photo{margin:54px 0 0;position:relative;height:clamp(220px,29vw,380px);overflow:hidden;background:#e7d5d7}.values-photo img{width:100%;height:100%;object-fit:cover;object-position:center 40%;filter:saturate(.7);transition:transform .9s var(--ease)}.values-photo:hover img{transform:scale(1.04)}.values-photo figcaption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(44,25,34,.75));color:#fffaf7;padding:65px 30px 30px;font:400 clamp(22px,3vw,36px)/1.1 var(--serif)}.values-photo figcaption em{font-style:italic}


/* ===============================================================
   ESTETITECH V4 — readable body text and editorial philosophy only
   Existing typography, palette, transitions and page structure stay.
   =============================================================== */
:root{--ink:#362531;--muted:#493541}
body{color:#362531}
/* Readable contrast on every light surface. Override legacy softer variants. */
main .section p:not(.eyebrow),main .ritual-section p:not(.eyebrow),
main .section .service-card p:not(.eyebrow),main .section .article-card p:not(.eyebrow),
main .section .intro-copy p:not(.eyebrow),main .section .section-head p,
main .section .team-card p,main .section .value-card p,
main .section .contact-box p,main .section .quotes-grid p,
main .section .reviews-source p,main .section .detail-intro p,
main .section .catalog-help,main .section .catalog-toolbar p,
main .section .catalog-item,main .section .post-text p,
main .section .post-text li,main .section .faq-answer p,
main .section .legal-copy p,main .section .legal-copy li,
main .section .ritual-intro,main .section .ritual-description,
main .section p:not(.eyebrow) a{color:#493541}
/* Typical text blocks outside generic .section containers, including blog/service/legal pages. */
main .post-text,main .post-text p,main .post-text li,
main .service-detail p,main .detail-intro p,main .contact-card p,
main .catalog-toolbar p,main .catalog-help,
main .team-card p,main .value-card p,main .values-grid p,
main .article-card p,main .service-card p:not(.eyebrow),
main .ritual-content .ritual-intro,main .footer-note{color:#493541}
/* Small introductory text and metadata remain distinct, but never fade into the background. */
main .section .eyebrow,main .ritual-section .eyebrow,
main .section .card-category,main .section .section-kicker,
main .section .team-card .eyebrow,
main .section .article-card .eyebrow{color:#65404f}
main .page-hero.atelier-hero .hero-lead,
main .page-hero.plain-hero .hero-lead,
main .page-hero.atelier-hero .eyebrow,
main .page-hero.atelier-hero .eyebrow.light{color:#593b4a}
main .page-hero.atelier-hero .hero-signature{color:#784456}
main .page-hero.atelier-hero .hero-index{color:#674450}
main .section .quotes-grid blockquote footer{color:#503543}
.footer p,.footer address,.footer a,.footer .footer-bottom,
footer.footer .footer-copy,footer.footer .footer-meta{color:#513744}
.cta-section p:not(.eyebrow),.cta-section .cta-grid p:not(.eyebrow){color:#f2e4e4}
.cta-section .eyebrow,.manifesto .eyebrow.light{color:#694251}
/* Background-specific fixes so global contrast does not darken text on dark panels. */
main .service-card:hover p:not(.eyebrow){color:#503443}
main .page-hero:not(.atelier-hero):not(.plain-hero) .hero-lead{color:#fff0eb}

/* Philosophy: balanced image-plus-copy composition, no empty half-panel. */
.manifesto.manifesto-v4{background:#efe0df;color:#392431;overflow:visible;padding:clamp(66px,8vw,114px) 0;position:relative}
.manifesto-v4::before{content:"";position:absolute;inset:0 0 auto;height:1px;background:#e4cdce}
.manifesto-v4 .philosophy-layout{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:center;gap:clamp(42px,6.4vw,115px)}
.philosophy-visual{margin:0;position:relative;isolation:isolate;height:clamp(425px,41vw,590px);overflow:hidden;background:linear-gradient(145deg,#d6bcbd,#ead3d3);border-radius:46% 46% 0 0 / 29% 29% 0 0}
.philosophy-visual::after{content:"";inset:15px;position:absolute;border:1px solid rgba(255,246,240,.42);pointer-events:none;border-radius:inherit;z-index:2}
.philosophy-visual img{display:block;object-fit:cover;object-position:center 48%;height:100%;width:100%;filter:saturate(.88) contrast(1.03);transition:transform 1.25s var(--ease)}
.philosophy-visual:hover img{transform:scale(1.05)}
.philosophy-visual figcaption{position:absolute;bottom:30px;left:30px;z-index:3;background:rgba(255,251,247,.95);color:#4c3340;font-size:10px;letter-spacing:.15em;padding:12px 17px;display:flex;align-items:center;gap:12px}
.philosophy-photo-line{display:inline-block;width:24px;height:1px;background:#6f475b}
.philosophy-visual-number{position:absolute;top:27px;right:27px;z-index:2;color:#f9eee9;font-size:10px;letter-spacing:.18em;text-shadow:0 1px 5px #483340}
.philosophy-visual.photo-fallback::before{content:"EstetiTech";font:italic clamp(60px,9vw,130px)/1 var(--serif);color:#8a6273;opacity:.46;position:absolute;left:13%;top:34%;transform:rotate(-10deg)}
.philosophy-copy{min-width:0;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:15px 0}
.manifesto-v4 .philosophy-copy .eyebrow{color:#674254;margin:0 0 19px;font-family:var(--sans);letter-spacing:.23em}
.philosophy-copy h2{font-family:var(--sans);font-size:clamp(34px,3.8vw,57px);line-height:1.16;letter-spacing:-.05em;font-weight:300;color:#4a2a3c;margin:0 0 25px;max-width:615px;text-wrap:balance}
.philosophy-copy h2 em{font:italic 400 1.09em/1.08 var(--serif);color:#79475e;letter-spacing:-.035em}
.manifesto-v4 .philosophy-intro{font-size:14px;line-height:1.9;color:#4b3642;max-width:495px;margin:0 0 31px}
.philosophy-quote-group{border-top:1px solid #ccabb3;width:100%;max-width:550px;position:relative;padding:24px 0 0 37px}
.philosophy-quote-mark{position:absolute;top:18px;left:0;color:#976c7d;font:italic 65px/.9 var(--serif);letter-spacing:0}
.manifesto-v4 .philosophy-quote-group blockquote{font:italic 400 clamp(24px,2.35vw,33px)/1.34 var(--serif);color:#553244;margin:0;letter-spacing:-.01em;max-width:460px}
.manifesto-v4 .philosophy-quote-group blockquote em{color:#6b3c53;font-weight:400}
.manifesto-v4 .philosophy-credit{font:400 10px/1.6 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#624553;margin:18px 0 0}
.manifesto-v4 .philosophy-credit span{font-size:11px;letter-spacing:0;color:#624553}
.philosophy-copy .philosophy-link{margin-top:32px}
/* Home magazine: first two photos are original, differently cropped; third is a clean editorial card. */
.home-magazine-grid .home-magazine-card{min-height:340px}
.home-magazine-grid .home-magazine-card-1 .magazine-photo img{object-position:center 25%;filter:saturate(.86)}
.home-magazine-grid .home-magazine-card-2 .magazine-photo img{object-position:48% 68%;filter:saturate(.88)}
.magazine-editorial-deco{height:172px;align-self:stretch;margin:-36px -34px 27px;padding:22px 25px;position:relative;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(145deg,#ebd8d8,#d8b5bd);color:#704056;overflow:hidden}
.magazine-editorial-deco::after{content:"";position:absolute;width:190px;height:190px;border:1px solid #b7899f;border-radius:50%;right:-45px;top:-40px;opacity:.55}
.magazine-editorial-deco span:first-child{font:italic 32px/1 var(--serif);color:#6e3d54;position:relative;z-index:2}
.magazine-editorial-line{width:56px;height:1px;background:#86566a;position:relative;z-index:2}
.magazine-editorial-num{font:500 10px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;position:relative;z-index:2}
@media(max-width:950px){.manifesto-v4 .philosophy-layout{gap:36px}.philosophy-visual{height:440px}.philosophy-copy h2{font-size:clamp(33px,4.6vw,45px)}}
@media(max-width:680px){.manifesto.manifesto-v4{padding:66px 0 73px}.manifesto-v4 .philosophy-layout{grid-template-columns:1fr;gap:31px}.philosophy-visual{height:clamp(260px,78vw,400px);width:100%;border-radius:43% 43% 0 0 / 29% 29% 0 0}.philosophy-visual img{object-position:center 48%}.philosophy-copy{padding:0}.philosophy-copy h2{font-size:clamp(33px,9vw,44px);max-width:520px;margin-bottom:16px}.manifesto-v4 .philosophy-intro{font-size:13px;margin-bottom:22px}.philosophy-quote-group{padding-top:18px}.manifesto-v4 .philosophy-quote-group blockquote{font-size:clamp(23px,6.5vw,30px)}.philosophy-visual figcaption{left:17px;bottom:17px;padding:9px 11px;font-size:9px}.philosophy-copy .philosophy-link{margin-top:23px}}
@media(prefers-reduced-motion:reduce){.philosophy-visual img{transition:none!important}}
/* Maintain the original light-on-dark contrast during interactive card hover. */
main .section .service-card:hover p:not(.eyebrow),
main .section .service-card:focus-visible p:not(.eyebrow),
main .section .service-card:hover .eyebrow,
main .section .service-card:focus-visible .eyebrow{color:#fff3ee!important}


/* =============================================================
   ESTETITECH V5 — GLOBAL LEGIBILITY PATCH
   Design, typography, spacing and photos unchanged.
   Warm near-black typography on pale surfaces; warm white on dark.
   ============================================================= */
:root{
  --ink:#261820;
  --muted:#32212a;
  --text-strong:#261820;
  --text-secondary:#34232d;
  --text-on-dark:#fffaf7;
}
body{color:var(--text-strong)}
/* Keep address in the dark header strip clearly readable. */
.topbar,
.topbar>.container,
.topbar>.container a,
.topbar>.container span{color:var(--text-on-dark)!important}
/* Header, hamburger overlay and navigation: all on light backgrounds. */
.site-header .brand,
.site-header .brand-type,
.site-header .brand-type small,
.site-header .header-cta,
.mobile-nav .menu-prelude,
.mobile-nav .menu-prelude i,
.mobile-nav>a,
.mobile-nav .menu-bottom{color:var(--text-strong)!important}
.site-header .header-cta:hover{color:var(--text-on-dark)!important}
/* All hero descriptions, overlines and metadata sit on pastel backgrounds. */
main .page-hero.atelier-hero .eyebrow,
main .page-hero.atelier-hero .eyebrow.light,
main .page-hero.atelier-hero .hero-lead,
main .page-hero.atelier-hero .hero-signature,
main .page-hero.atelier-hero .hero-index,
main .page-hero.atelier-hero p,
main .page-hero.atelier-hero small{color:var(--text-strong)!important}
/* ALL editorial and service text on pale/light surfaces, across every page. */
main .section p,
main .section li,
main .section dd,
main .section small,
main .section .eyebrow,
main .section .section-kicker,
main .section .card-category,
main .section .card-number,
main .section .card-go,
main .section .catalog-help,
main .section .catalog-count,
main .section .catalog-item,
main .section .catalog-item span,
main .section .catalog-price,
main .section .catalog-anchors-label,
main .section .catalog-static-head span,
main .section .catalog-anchors-items a,
main .section .team-card-footer,
main .section .reviews-source,
main .section .review-header,
main .section .quotes-grid blockquote footer,
main .section .line-link,
main .section .muted,
main .section .footnote,
main .section .intro-copy p,
main .section .detail-intro p,
main .section .service-detail p,
main .section .legal-copy,
main .section .post-text,
main .section .faq-answer,
main .section .service-card p,
main .section .article-card p,
main .section .contact-card p,
main .section .contact-box p,
main .section .team-card p,
main .section .value-card p,
main .section .section-head p,
main .section .catalog-toolbar p,
main .section .ritual-intro,
main .section .ritual-description{color:var(--text-strong)!important}
/* Some text is outside generic .section containers. */
main .features,
main .features span,
main .ritual-section p,
main .ritual-section .ritual-kicker,
main .ritual-section .ritual-description,
main .ritual-section .ritual-intro,
main .ritual-section .ritual-tab:not(.active),
main .catalog-explainer,
main .catalog-explainer em,
main .catalog-toolbar p,
main .catalog-count,
main .catalog-help,
main .catalog-item,
main .catalog-item span,
main .catalog-static-head span,
main .catalog-anchors-label,
main .catalog-anchors-items a,
main .post-text p,
main .post-text li,
main .detail-intro p,
main .service-detail p,
main .contact-card p,
main .reviews-source,
main .reviews-source a,
main .philosophy-copy p,
main .manifesto-v4 .philosophy-intro,
main .manifesto-v4 .philosophy-credit,
main .manifesto-v4 .philosophy-credit span,
main .manifesto-v4 .philosophy-copy .eyebrow,
main .manifesto-v4 .philosophy-quote-group blockquote,
main .manifesto-v4 .philosophy-quote-group blockquote em{color:var(--text-strong)!important}
/* Text embedded in hover-dark cards must remain light. */
main .service-card:hover p,
main .service-card:hover .eyebrow,
main .service-card:focus-visible p,
main .service-card:focus-visible .eyebrow,
main .section .service-card:hover p,
main .section .service-card:focus-visible p,
main .section .service-card:hover .eyebrow,
main .section .service-card:focus-visible .eyebrow{color:var(--text-on-dark)!important}
/* Footer always sits on the pale blush background. */
.footer,
.footer p,
.footer address,
.footer span,
.footer small,
.footer a,
.footer button,
.footer .foot-label,
.footer .foot-bottom,
.footer .eyebrow,
.footer .footer-grid,
.footer .footer-meta{color:var(--text-strong)!important}
/* The CTA panel is DARK: preserve the inverse contrast. */
.cta-section,
.cta-section p,
.cta-section .eyebrow,
.cta-section .eyebrow.light,
.cta-section h2,
.cta-section h2 em,
.cta-section .cta-grid p,
.cta-section a:not(.btn){color:var(--text-on-dark)!important}
.cta-section .btn-light{color:var(--text-strong)!important}
/* Forms, hints, cookie dialog, editorial small print. */
.cookie-banner p,
.cookie-banner h3,
.cookie-banner a,
.admin-header p,
.admin-panel p,
.admin-cat p,
.admin-item label,
main input::placeholder,
main textarea::placeholder{color:var(--text-strong)!important}
/* Do not allow reveal-opacity to hide body copy before scroll JS fires.
   Headline word reveal and all motion/position transitions remain intact. */
main .reveal:not(.title-ready){opacity:1!important;filter:none!important}


/* ESTETITECH V6 — ACCESSIBLE TEXT: PRECEDENCE AND VISIBILITY GUARANTEED */
:root{--ink:#180e15!important;--muted:#24141d!important;--text-strong:#180e15!important;--text-secondary:#24141d!important}
html body,html body main,html body footer,html body header{color:#180e15}
/* Make every textual element dark even if a prior selector sets pale muted colors. */
html body :is(p,h1,h2,h3,h4,h5,h6,span,small,a,li,dt,dd,blockquote,cite,figcaption,label,summary,time,strong,b,em,i,address,button,input,select,textarea,legend,th,td,div.eyebrow){
  color:#180e15!important;
  -webkit-text-fill-color:currentColor!important;
  text-shadow:none!important;
}
/* Guarantee prose never inherits hidden/faded reveal or decorative filter states. */
html body :is(p,h1,h2,h3,h4,h5,h6,blockquote,small,li,label,figcaption,address,.eyebrow,.hero-lead,.hero-index,.philosophy-copy,.intro-copy,.section-head,.post-text,.catalog-help,.review-source,.word-piece){
  opacity:1!important;
  filter:none!important;
  visibility:visible!important;
}
html body .reveal,html body .reveal:not(.title-ready),html body .title-ready,
html body .reveal.is-visible,html body .reveal .word-piece,
html body .title-ready .word-piece,html body .motion-show .word-piece{
  opacity:1!important;
  filter:none!important;
  visibility:visible!important;
  clip-path:none!important;
  -webkit-clip-path:none!important;
  transform:none!important;
  transition-delay:0s!important;
}
/* Dark background areas: WHITE readable text, including ALL descendants. */
html body :is(.topbar,.cta-section,.manifesto:not(.manifesto-v4),.page-hero:not(.atelier-hero):not(.plain-hero),.mobile-nav .nav-dark):is(p,h1,h2,h3,h4,h5,h6,span,small,a,li,dt,dd,blockquote,cite,figcaption,label,summary,time,strong,b,em,i,address,button),
html body :is(.topbar,.cta-section,.manifesto:not(.manifesto-v4),.page-hero:not(.atelier-hero):not(.plain-hero)) :is(p,h1,h2,h3,h4,h5,h6,span,small,a,li,dt,dd,blockquote,cite,figcaption,label,summary,time,strong,b,em,i,address){
  color:#fffdfb!important;
  -webkit-text-fill-color:currentColor!important;
}
/* Dark buttons and cards retain correct inverse legibility. */
html body :is(.btn-dark,.cookie-actions .btn-dark,.service-card:hover,.service-card:focus-visible,.team-card:hover .team-card-footer,.menu-dark) :is(span,strong,small,em,i,p,h2,h3,h4),
html body a.btn-dark,html body button.btn-dark,
html body .service-card:hover :is(p,h3,span,small,em,strong,.eyebrow,.card-number),
html body .service-card:focus-visible :is(p,h3,span,small,em,strong,.eyebrow,.card-number),
html body button#acceptAnalytics,
html body .cookie-actions button:last-child{
  color:#fffdfb!important;
  -webkit-text-fill-color:currentColor!important;
}
/* Buttons with pale backgrounds IN dark sections remain dark. */
html body .cta-section .btn-light,html body .cta-section .btn-light :is(span,em,i),
html body .manifesto:not(.manifesto-v4) .btn-light,
html body .manifesto:not(.manifesto-v4) .btn-light :is(span,em,i){
  color:#180e15!important;
  -webkit-text-fill-color:currentColor!important;
}
/* Readable input placeholder text as well. */
html body input::placeholder,html body textarea::placeholder{color:#463743!important;-webkit-text-fill-color:currentColor!important;opacity:1!important}
/* Text-only animations must never conceal content, even when JS isn't running. */
html body .word-piece{opacity:1!important;clip-path:none!important;transform:none!important;transition:none!important}
/* Text intended for screen readers remains screen-reader-only. */
html body .sr-only,html body .visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}


/* ESTETITECH V7 — REAL LEGIBILITY FIX, KEEP THE APPROVED DESIGN */
html body { -webkit-font-smoothing: auto !important; }
/* On Mac Avenir Next, the inherited 350 mapped to a very thin face.
   Give prose a genuine Medium cut instead of only changing color. */
html body :is(p:not(.eyebrow),li,dt,dd,figcaption,blockquote,label,address,summary,small,.hero-lead,.catalog-help,.hero-index,.header-cta,.line-link,.footer-contact,.contact-info,.review-source){
  font-weight: 500 !important;
  -webkit-font-smoothing: auto !important;
  -webkit-text-stroke: 0.16px currentColor !important;
  opacity: 1 !important;
  filter: none !important;
  visibility: visible !important;
}
/* Tiny interface text needs a stronger actual stroke, without changing typeface. */
html body :is(.topbar,.topbar .container,.header-cta,.menu-toggle,.eyebrow,.eyebrow.light,.brand-type small,.image-number,.card-number,.footer-bottom,.catalog-nav a,.catalog-tabs a,.mobile-nav a){
  font-weight: 600 !important;
  -webkit-font-smoothing: auto !important;
  -webkit-text-stroke: 0.12px currentColor !important;
  opacity: 1 !important;
}
/* Retain the original palette but remove the washed-out copy on pale surfaces. */
html body :is(.intro-section,.ritual-section,.services-section,.section,.manifesto-v4,.magazine-section,.magazine-grid,.page-hero.atelier-hero,.page-hero.plain-hero) :is(p:not(.eyebrow),li,dt,dd,blockquote,figcaption,small){
  color: #23151f !important;
  -webkit-text-fill-color: #23151f !important;
}
/* Preserve legibility for dark sections and buttons. */
html body :is(.cta-section,.topbar,.footer,.site-footer,.mobile-nav,.menu-dark,.page-hero:not(.atelier-hero):not(.plain-hero)) :is(p,li,dt,dd,blockquote,figcaption,small,label,address,.eyebrow){
  color: #fffaf7 !important;
  -webkit-text-fill-color: #fffaf7 !important;
}
html body :is(.btn-dark,.menu-dark,.btn-primary,.header-cta:hover,.service-card:hover) :is(span,p,small,em,strong){
  color: #fffaf7 !important;
  -webkit-text-fill-color: #fffaf7 !important;
}
/* Buttons on light surfaces use the darker color unless they have a dark fill. */
html body .btn-light :is(span,p,small,em,strong){
  color:#23151f!important;
  -webkit-text-fill-color:#23151f!important;
}
/* Avoid applying heavy strokes to large headlines and italic display typography. */
html body :is(h1,h2,h3,h4,h5,h6) { -webkit-text-stroke: 0 !important; }


/* EstetiTech V8 — palette refinement only; retain V7 fonts, weights, spacing and effects. */
:root{
  --ink:#514950!important;
  --muted:#514950!important;
  --text-strong:#514950!important;
  --text-secondary:#514950!important;
  --estetitech-heading:#582a40;
  --estetitech-copy:#514950;
}
/* The base tone also covers direct text nodes that inherit from containers. */
html body,html body main,html body header,html body footer{color:var(--estetitech-copy)!important}
/* Soft warm dark-grey copy on pale surfaces, with the established V7 weight. */
html body :is(#estetitech-v8-priority,p,li,dt,dd,blockquote,figcaption,small,label,address,summary,.eyebrow,.hero-lead,.catalog-help,.line-link,.footer-contact,.contact-info,.review-source){
  color:var(--estetitech-copy)!important;
  -webkit-text-fill-color:var(--estetitech-copy)!important;
}
/* Restore the original brand burgundy to ALL headings and their animated/italic spans. */
html body :is(#estetitech-v8-priority,h1,h2,h3,h4,h5,h6),
html body :is(#estetitech-v8-priority,h1,h2,h3,h4,h5,h6) :is(#estetitech-v8-priority,em,span,strong,b,i,.word-piece){
  color:var(--estetitech-heading)!important;
  -webkit-text-fill-color:var(--estetitech-heading)!important;
}
/* Address strip and dark feature panels must keep inverse contrast. */
html body .topbar,html body .topbar .container,html body .topbar a,html body .topbar span,
html body :is(#estetitech-v8-priority,.cta-section,.manifesto:not(.manifesto-v4),.page-hero:not(.atelier-hero):not(.plain-hero)) :is(#estetitech-v8-priority,h1,h2,h3,h4,h5,h6,p,li,dt,dd,blockquote,figcaption,small,label,address,.eyebrow,.hero-lead),
html body :is(#estetitech-v8-priority,.cta-section,.manifesto:not(.manifesto-v4),.page-hero:not(.atelier-hero):not(.plain-hero)) :is(#estetitech-v8-priority,h1,h2,h3,h4,h5,h6) :is(#estetitech-v8-priority,em,span,strong,b,i,.word-piece),
html body :is(#estetitech-v8-priority,.service-card:hover,.service-card:focus-visible) :is(#estetitech-v8-priority,h1,h2,h3,h4,h5,h6,p,li,dt,dd,blockquote,figcaption,small,label,.eyebrow),
html body :is(#estetitech-v8-priority,.service-card:hover,.service-card:focus-visible) :is(#estetitech-v8-priority,h1,h2,h3,h4,h5,h6) :is(#estetitech-v8-priority,em,span,strong,b,i,.word-piece){
  color:#fffaf7!important;
  -webkit-text-fill-color:#fffaf7!important;
}
/* Text on light buttons remains dark even when the button sits in a dark area. */
html body :is(#estetitech-v8-priority,.cta-section,.manifesto:not(.manifesto-v4)) .btn-light,
html body :is(#estetitech-v8-priority,.cta-section,.manifesto:not(.manifesto-v4)) .btn-light :is(#estetitech-v8-priority,span,em,strong,b,i,p){
  color:var(--estetitech-copy)!important;
  -webkit-text-fill-color:var(--estetitech-copy)!important;
}
/* Footer has a light blush background: keep its copy grey and its headings burgundy. */
html body .footer :is(#estetitech-v8-priority,p,address,small,label,a,.eyebrow,.footer-meta,.footer-copy){
  color:var(--estetitech-copy)!important;
  -webkit-text-fill-color:var(--estetitech-copy)!important;
}
html body .footer :is(#estetitech-v8-priority,h1,h2,h3,h4,h5,h6),
html body .footer :is(#estetitech-v8-priority,h1,h2,h3,h4,h5,h6) :is(#estetitech-v8-priority,em,span,.word-piece){
  color:var(--estetitech-heading)!important;
  -webkit-text-fill-color:var(--estetitech-heading)!important;
}
/* Preserve the inverse text of filled buttons and hover states. */
html body :is(#estetitech-v8-priority,.btn-dark,.btn-primary) :is(#estetitech-v8-priority,span,em,strong,b,i,p,small),
html body :is(#estetitech-v8-priority,.service-card:hover,.service-card:focus-visible) :is(#estetitech-v8-priority,span,em,strong,b,i,p,small){
  color:#fffaf7!important;
  -webkit-text-fill-color:#fffaf7!important;
}
