/* Source: assets/fonts.css */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 300 700;
  font-display: swap;
  src: url(assets/type-0.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url(assets/type-1.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url(assets/type-2.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* Source: style.css */
:root{color-scheme:dark;--bg:#0d0e0c;--surface:#171812;--text:#f1eee7;--muted:#b6b2a7;--gold:#caa34f;--line:#39392d;--serif:"Cormorant Garamond",Georgia,serif;--sans:"Manrope",sans-serif;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px;scrollbar-color:var(--gold) var(--bg)}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.75 var(--sans);-webkit-font-smoothing:antialiased}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none;text-underline-offset:5px}button,input,select,textarea{font:inherit}button,a,select,summary{-webkit-tap-highlight-color:transparent}button{color:inherit}button,summary{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}img{display:block;max-width:100%;height:auto}figure{margin:0}svg{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.icon-defs{position:absolute;width:0;height:0;overflow:hidden}::selection{background:var(--gold);color:var(--bg)}:focus-visible{outline:2px solid var(--gold);outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.03;text-wrap:wrap}h1{font-size:clamp(64px,6.1vw,92px);letter-spacing:-.035em}h2{font-size:clamp(48px,4.5vw,68px);letter-spacing:-.025em}h3{font-size:34px;letter-spacing:-.015em}h1 em,h2 em{color:var(--gold);font-weight:400}p{color:var(--muted)}.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.section{padding-block:108px}.skip-link{position:fixed;top:10px;left:12px;transform:translateY(-150%);z-index:100;background:var(--gold);color:var(--bg);padding:12px 20px}.skip-link:focus{transform:none}.preview-note{min-height:33px;display:flex;justify-content:space-between;align-items:center;padding:7px 30px;background:#25251f;font-size:10px;line-height:1.5;letter-spacing:.015em;color:#c9c4b8}.preview-note a{color:#eee9dd}.preview-note svg{width:12px;height:12px;vertical-align:middle;margin-left:3px}.site-header{height:126px;display:flex;align-items:center;gap:23px}.brand{flex:none}.brand img{width:85px;height:85px;object-fit:contain}.header-location{font-size:11px;line-height:1.7;color:#e1daca}.header-location>span{color:var(--muted)}.site-header nav{margin-left:auto;display:flex;align-items:center;gap:31px;font-size:12px}.site-header nav>a{padding-block:12px;transition:color .2s}.site-header nav>a:hover{color:var(--gold)}.nav-contact{display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--gold);color:var(--gold)}.nav-contact svg{width:17px;height:17px}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1fr 1fr;position:relative}.hero-copy{padding:58px 44px 0 0;align-self:center}.hero-description{margin-top:29px;line-height:1.9;font-size:14px}.button{display:inline-flex;align-items:center;justify-content:center;gap:11px;min-height:54px;padding:15px 22px;background:var(--gold);color:#181711;font-size:12px;font-weight:700;line-height:1.5;transition:background .2s,transform .3s var(--ease)}.button:hover{background:#dfbf81;transform:translateY(-2px)}.button-arrow{width:17px;height:17px;margin-left:14px}.hero-copy>.button{margin-top:29px}.text-link{display:inline-flex;align-items:center;gap:12px;font-size:12px;line-height:1.7;font-weight:600;color:var(--gold);padding-block:7px}.text-link:hover{text-decoration:underline}.text-link svg{width:18px;height:18px;transition:transform .3s var(--ease)}.text-link:hover svg:last-child{transform:translate(2px,-2px)}.hero-secondary{display:flex;width:fit-content;margin-top:15px;color:#e6e0d2;font-size:11px}.hero-secondary svg{width:15px;height:15px}.hero-person{display:flex;align-items:center;gap:14px;margin-top:46px;padding-top:22px;border-top:1px solid var(--line);width:fit-content;font-size:11px;line-height:1.5}.hero-person img{width:47px;height:47px;border-radius:50%;object-fit:cover;object-position:50% 24%}.hero-person small{display:block;font-size:10px;color:var(--muted);margin-top:4px}.hero-person>svg{margin-left:8px;width:18px;height:18px;color:var(--gold)}.hero-image{position:relative;height:675px;overflow:hidden;background:#30291f}.hero-image>img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;animation:arrive 1.25s var(--ease) both}.hero-image:after{content:"";position:absolute;inset:65% 0 0;background:linear-gradient(transparent,rgba(17,15,11,.75));pointer-events:none}.hero-image figcaption{position:absolute;bottom:29px;left:31px;right:29px;z-index:1;display:flex;justify-content:space-between;align-items:flex-end;font-family:var(--serif);font-size:25px;line-height:1.12;color:#fff7ea}.hero-image figcaption a{border:1px solid #b9ac96;width:43px;height:43px;display:grid;place-items:center}.hero-image figcaption a:hover{background:#2a251e}.hero-foot{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;padding:25px 0;border-bottom:1px solid var(--line);font-size:10px;letter-spacing:.04em;color:var(--muted)}.hero-foot span,.hero-foot a{display:flex;align-items:center;gap:9px}.hero-foot svg{width:15px;height:15px}.hero-foot a svg{transform:rotate(90deg);margin-left:14px;color:var(--gold)}.section-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:60px;margin-bottom:53px}.section-intro>div{width:38%;max-width:410px;padding-bottom:5px}.section-intro p{font-size:13px;line-height:1.9}.price-date{display:block;color:var(--gold);font-size:10px;margin-top:15px}.treatment-layout{display:grid;grid-template-columns:26% 1fr 24%;gap:40px}.treatment-tabs{display:flex;flex-direction:column;align-items:stretch}.treatment-tabs button{display:flex;align-items:center;justify-content:space-between;text-align:left;border:0;border-bottom:1px solid var(--line);padding:19px 0;background:none;font-size:14px;color:var(--muted);gap:15px}.treatment-tabs button:first-child{border-top:1px solid var(--line)}.treatment-tabs button svg{width:19px;opacity:0}.treatment-tabs button[aria-selected="true"]{color:var(--gold)}.treatment-tabs button[aria-selected="true"] svg{opacity:1}.treatment-tabs button:hover{color:var(--text)}.price-source{font-size:10px;margin-top:22px;gap:7px}.price-source svg{width:14px;height:14px}.treatment-content{min-width:0}.treatment-panel>p{font-size:12px;line-height:1.9;margin-top:16px;max-width:46ch}.price-list{margin:22px 0 15px;font-size:12px}.price-list>div{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding:12px 0}.price-list dd{margin:0;white-space:nowrap;color:var(--gold);font-variant-numeric:tabular-nums;font-weight:600}.price-list small{display:block;color:var(--muted);font-size:10px}.treatment-request{font-size:11px}.treatment-image{align-self:start}.treatment-image img{width:100%;height:315px;object-fit:cover}.treatment-image figcaption{font-size:10px;color:var(--muted);margin-top:12px}.other-services{padding:0;margin:25px 0;list-style:none;font-size:12px}.other-services li{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:14px 0}.other-services span{color:var(--gold);white-space:nowrap}.work-section{background:var(--surface)}.work-section .section-intro{margin-bottom:44px}.work-section .text-link{margin-top:15px;font-size:11px}.work-grid{display:grid;grid-template-columns:1.16fr .92fr .92fr;gap:25px;align-items:start}.work-item{position:relative;display:block;overflow:hidden;height:340px;background:#27231d}.work-item>img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}.work-item:hover>img{transform:scale(1.045)}.work-tall{height:445px}.work-low{margin-top:70px;height:375px}.work-item>span{position:absolute;bottom:0;left:0;right:0;padding:38px 20px 19px;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(transparent,rgba(9,9,8,.85));font-family:var(--serif);font-size:24px;color:#fff7ed}.work-item svg{width:19px;height:19px}.work-caption{display:flex;justify-content:space-between;font-size:10px;padding-top:25px}.work-caption>span{color:var(--gold)}.about{display:grid;grid-template-columns:44% 1fr;gap:12%;align-items:center}.about-photo{position:relative;padding-left:30px;padding-bottom:28px}.about-photo:before{content:"";position:absolute;inset:32px 30px 0 0;border:1px solid #766342;z-index:-1}.about-photo img{height:565px;width:100%;object-fit:cover;object-position:center 25%;filter:saturate(.85)}.about-photo figcaption{display:flex;justify-content:space-between;align-items:center;margin-top:14px;font-family:var(--serif);font-size:24px}.about-photo figcaption span{font-family:var(--sans);font-size:9px;color:var(--muted)}.about-copy h2{font-size:clamp(46px,4.15vw,63px)}.about-copy .about-lead{color:var(--text);font-size:16px;line-height:1.7;margin-top:27px}.about-copy>p{font-size:12px;margin-top:20px;line-height:1.95}.signature{font-size:11px;color:var(--muted);margin-top:26px}.signature>span{display:block;font:italic 38px/1.4 var(--serif);color:var(--gold)}.about-copy>.text-link{margin-top:16px;font-size:11px}.education{border-block:1px solid var(--line);display:flex;align-items:center;gap:44px;padding-block:29px}.education h3{font-size:28px}.education p{font-size:11px;margin-top:7px}.education .text-link{margin-left:auto;white-space:nowrap;font-size:11px}.faq{display:grid;grid-template-columns:38% 1fr;gap:9%}.faq h2{font-size:52px}.faq-list details{border-bottom:1px solid var(--line)}.faq-list details:first-child{border-top:1px solid var(--line)}summary{display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;padding:24px 0;font-size:13px;line-height:1.6}summary::-webkit-details-marker{display:none}summary svg{color:var(--gold);width:18px;height:18px;transition:transform .25s}details[open] summary svg{transform:rotate(45deg)}details p{padding:0 35px 23px 0;font-size:12px;line-height:1.9}details p a{color:var(--gold);text-decoration:underline}.contact-section{background:#25251e;border-top:1px solid #464437}.contact{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:start}.contact h2{font-size:clamp(55px,5vw,76px)}.contact-copy>p{font-size:13px;margin-top:27px;line-height:1.9}address{font-style:normal;margin-top:36px;font-size:12px}address a{display:flex;gap:15px;width:fit-content;align-items:flex-start;margin-top:18px}address a:hover{color:var(--gold)}address svg{width:19px;height:19px;color:var(--gold);margin-top:3px}address a svg:last-child:not(:first-child){margin-left:20px;width:16px}.email-link{font-size:10px;margin-top:16px}.request-panel{padding:34px 38px 30px;border:1px solid #66604e}.request-panel h3{font-size:34px}.request-panel label{display:flex;justify-content:space-between;font-size:11px;line-height:1.5;color:var(--text);margin:21px 0 9px}.request-panel label span{color:var(--muted);font-size:10px}select,textarea{display:block;resize:vertical;width:100%;border:1px solid #777261;background:#1d1e19;color:var(--text);padding:14px;font-size:12px;border-radius:0;caret-color:var(--gold);line-height:1.5}select{min-height:49px;cursor:pointer;padding-right:26px}textarea{min-height:105px;max-height:280px}textarea::placeholder{color:#aaa79b;opacity:1}.request-panel>.button{margin-top:23px;width:100%;font-size:11px;padding-inline:14px}.request-panel>.button .button-arrow{margin-left:auto}.request-panel .request-note{margin-top:15px;font-size:10px;line-height:1.8}.mobile-contact{display:none}[hidden]{display:none!important}.legal-page{max-width:850px;padding-block:70px}.legal-page h1{font-size:56px}.legal-page h2{font-size:34px;margin-top:40px}.legal-page p{margin-top:18px;font-size:14px}.legal-page a:not(.button){color:var(--gold);text-decoration:underline}.legal-page .button{margin-top:30px}.legal-page ul{color:var(--muted);padding-left:20px}.legal-page li{margin-top:12px}
.hero-image:before{content:"";position:absolute;inset:15px;border:1px solid #caa34f80;z-index:1;pointer-events:none}.hero-foot{position:relative}.hero-foot:after{content:"";position:absolute;width:7px;height:7px;bottom:-4px;left:50%;transform:rotate(45deg);border:1px solid var(--gold);background:var(--bg)}.contact-section{background:#1c1e16}.preview-note{background:#22231b}
@keyframes arrive{from{clip-path:inset(0 0 3% 0);transform:scale(1.035)}to{clip-path:inset(0);transform:scale(1)}}
@media(min-width:1600px){.hero-copy{padding-top:35px}.hero-image{height:710px}}
@media(max-width:1150px){.wrap{width:calc(100% - 64px)}.site-header nav{gap:20px;font-size:11px}.header-location{display:none}.hero-copy{padding:25px 32px 0 0}.hero-image{height:650px}.hero-description{font-size:12px}.hero-person small{font-size:9px}.hero-person{gap:10px;font-size:10px}.hero-person>svg{display:none}.treatment-layout{grid-template-columns:27% 1fr;gap:45px}.treatment-image{display:none}.section-intro>div{width:43%}.section{padding-block:85px}.about{gap:8%;grid-template-columns:44% 1fr}.about-photo{padding-left:20px}.about-photo img{height:530px}.about-photo figcaption{display:block}.about-photo figcaption span{display:block}.request-panel{padding:27px}.contact{gap:8%}.request-panel>.button{font-size:10px}.work-item{height:285px}.work-tall{height:375px}.work-low{height:320px;margin-top:55px}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}.preview-note{padding:7px 20px;min-height:30px;font-size:9px;justify-content:center}.preview-note>span:first-child{display:none}.site-header{height:100px;gap:13px}.brand img{width:70px;height:70px}.header-location{display:block;font-size:9px}.menu-toggle{margin-left:auto;display:flex;align-items:center;gap:10px;background:transparent;border:1px solid var(--line);padding:12px;font-size:10px;min-height:44px;z-index:31}.menu-lines{width:17px;height:9px;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold)}.site-header nav{display:none}.site-header nav.is-open{display:flex;position:fixed;inset:130px 0 0;background:var(--bg);z-index:30;flex-direction:column;align-items:stretch;gap:0;margin:0;padding:30px 28px 120px;overflow:auto;font-size:20px}.site-header nav.is-open a{padding:20px 0;border-bottom:1px solid var(--line)}.site-header nav.is-open a:focus-visible{outline-offset:0}.hero{grid-template-columns:1fr}.hero-copy{padding:28px 0 33px;display:flex;flex-direction:column;align-items:flex-start}.hero h1{font-size:clamp(57px,10.6vw,78px);line-height:1.01;letter-spacing:-.03em}.hero h1 em br{display:none}.hero-description{font-size:12px;margin-top:24px;line-height:1.9;max-width:36ch}.desktop-break{display:none}.hero-copy>.button{margin-top:24px;font-size:11px;min-height:52px}.hero-secondary{margin-top:13px;font-size:10px}.hero-person{margin-top:26px;padding-top:19px;width:100%;font-size:10px;gap:12px}.hero-person small{font-size:9px}.hero-person img{width:42px;height:42px}.hero-person>svg{display:block;margin-left:auto}.hero-image{height:440px;margin-inline:0}.hero-image>img{object-position:50% 48%}.hero-image figcaption{bottom:23px;left:22px;right:21px;font-size:24px}.hero-foot{padding-block:20px;font-size:9px;letter-spacing:0;gap:10px}.hero-foot a{font-size:9px;gap:0}.hero-foot a svg{margin-left:6px;width:13px}.hero-foot span{gap:6px}.hero-foot span svg{width:13px}.section{padding-block:66px}h2{font-size:47px}h3{font-size:31px}.section-intro{display:block;margin-bottom:33px}.section-intro>div{width:100%;max-width:40ch;margin-top:25px;padding:0}.section-intro p{font-size:12px;line-height:1.85}.price-date{font-size:9px;margin-top:12px}.treatment-layout{display:block}.treatment-tabs{display:grid;grid-template-columns:1fr 1fr;column-gap:21px;margin-bottom:29px}.treatment-tabs button{font-size:11px;line-height:1.4;min-height:55px;padding:16px 0;gap:7px}.treatment-tabs button:first-child{border-top:0}.treatment-tabs button svg{width:15px}.price-source{grid-column:1/-1;order:5;margin:12px 0 0;font-size:9px}.treatment-panel h3{font-size:34px}.treatment-panel>p{font-size:12px;max-width:48ch}.price-list{margin-top:19px;font-size:11px}.price-list>div{padding:13px 0}.price-list small{font-size:9px}.treatment-request{margin-top:7px}.work-section .section-intro{margin-bottom:29px}.work-section .text-link{font-size:10px}.work-grid{grid-template-columns:1fr 1fr;gap:15px}.work-tall{grid-column:1/-1;height:390px}.work-item:not(.work-tall){height:240px}.work-low{margin:0}.work-item>span{font-size:21px;padding:35px 13px 14px;gap:8px;line-height:1.15}.work-item svg{width:15px;height:15px}.work-caption{font-size:9px;padding-top:19px}.work-caption>span{display:none}.about{display:flex;flex-direction:column;gap:40px}.about-photo{width:100%;max-width:425px;padding:0 0 21px 19px}.about-photo:before{inset:22px 19px 0 0}.about-photo img{height:450px;object-position:center 20%}.about-photo figcaption{display:flex}.about-photo figcaption span{font-size:8px}.about-copy{width:100%}.about-copy h2{font-size:47px}.about-copy .about-lead{font-size:15px;margin-top:24px}.about-copy>p{font-size:12px}.education{flex-wrap:wrap;gap:17px;padding-block:25px}.education h3{font-size:26px}.education p{font-size:11px;max-width:43ch}.education .text-link{margin-left:0;font-size:10px;padding-bottom:0}.faq{display:block}.faq h2{font-size:47px;margin-bottom:31px}.faq summary{font-size:12px;padding-block:21px}.faq details p{font-size:11px;padding-right:10px}.contact{display:block}.contact h2{font-size:57px}.contact-copy>p{font-size:12px;margin-top:24px}address{font-size:12px;margin-top:25px}.request-panel{margin-top:39px;padding:27px 22px}.request-panel h3{font-size:31px}.request-panel label{font-size:11px}select,textarea{font-size:16px;padding:13px 11px}.request-panel>.button{font-size:10px;gap:7px;min-height:53px}.request-panel>.button svg{width:19px;height:19px}.request-panel .request-note{font-size:9px}.mobile-contact{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:25;padding:10px 20px max(10px,env(safe-area-inset-bottom));gap:9px;background:var(--bg);border-top:1px solid var(--line)}.mobile-contact a:first-child{height:46px;width:52px;display:grid;place-items:center;border:1px solid var(--line);color:var(--gold)}.mobile-contact a:last-child{display:flex;justify-content:center;align-items:center;gap:20px;flex:1;background:var(--gold);color:var(--bg);font-size:12px;font-weight:700;min-height:46px}.mobile-contact svg{width:20px;height:20px}.legal-page{padding-top:35px}.legal-page h1{font-size:43px}}
@media(max-width:360px){.wrap{width:calc(100% - 32px)}.hero h1{font-size:54px}.hero-foot{font-size:8px}.hero-foot a{font-size:8px}.header-location{font-size:8px}.menu-toggle{padding-inline:9px}.hero-image{height:390px}.work-item:not(.work-tall){height:210px}.work-item>span{font-size:19px}.about-copy h2{font-size:43px}.request-panel{padding:23px 16px}.request-panel>.button{font-size:9px}.request-panel>.button .button-arrow{display:none}}
.hero-description{font-size:15px}.section-intro p,.treatment-panel>p,.about-copy>p,.contact-copy>p{font-size:14px}.price-list{font-size:13px}.treatment-request,.price-source,.about-copy>.text-link,.education .text-link{font-size:12px}.education p,details p{font-size:13px}.request-panel label{font-size:12px}.request-panel .request-note{font-size:11px}.site-header nav{font-size:13px}.hero-person{font-size:12px}.hero-person small{font-size:10px}
@media(max-width:760px){.hero-description{font-size:14px}.hero h1 em{font-size:.9em}.hero-person{font-size:11px}.hero-person small{font-size:9px}.treatment-tabs button{font-size:12px}.treatment-panel>p,.section-intro p,.about-copy>p,.contact-copy>p{font-size:14px}.price-list{font-size:13px}.treatment-request,.price-source{font-size:11px}.faq summary{font-size:14px}.faq details p{font-size:13px}.request-panel .request-note{font-size:11px}.education p{font-size:12px}.request-panel>.button{font-size:11px}.hero-foot a{flex:none}.site-header nav.is-open{font-size:20px}.hero-person>span{min-width:0}.hero-person>svg{flex:none}}
@media(max-width:360px){.request-panel>.button{font-size:10px}.hero-person small{font-size:8px}.hero-foot>span{max-width:210px;line-height:1.6}}
/* Brand-preserving refinement: Luxury pp. 12–13, 17–19; design-taste; web-prinzipien.
   DESIGN_VARIANCE 7 / MOTION_INTENSITY 4 / VISUAL_DENSITY 3.
   The personal care brief takes precedence over distant luxury-retail behavior. */
body { font-size: 16px; }
h1, h2, h3 { line-height: 1.1; letter-spacing: -.015em; }
.accent { color: var(--gold); font-style: normal; font-weight: 500; }
.site-header { height: 80px; }
.brand img { width: 65px; height: 65px; }
.hero-copy { padding: 24px 42px 24px 0; }
.hero h1 { font-size: clamp(48px, 5.7vw, 82px); line-height: 1.1; letter-spacing: -.02em; }
.hero-description { max-width: 40ch; font-size: 16px; line-height: 1.8; margin-top: 28px; }
.button { font-size: 14px; min-height: 56px; transition: background .35s ease; }
.button:hover { transform: none; }
.button:active { background: #b89442; }
.text-link { min-height: 44px; }
.text-link svg { transition: color .3s ease; }
.text-link:hover svg:last-child { transform: none; }
.hero-secondary { font-size: 13px; margin-top: 8px; }
.hero-image { height: auto; overflow: visible; background: transparent; }
.hero-image > img { height: clamp(480px, calc(100svh - 230px), 660px); animation: arrive 1.6s ease-out both; }
.hero-image:before { inset: 15px 15px 72px; }
.hero-image:after { display: none; }
.hero-image figcaption { position: static; padding: 14px 0 0; font: 13px/1.6 var(--sans); color: var(--muted); align-items: center; gap: 18px; }
.hero-image figcaption a { width: 43px; height: 43px; border-color: var(--line); color: var(--gold); }
.studio-intro { display: flex; justify-content: space-between; align-items: center; gap: 30px; border-bottom: 1px solid var(--line); padding-block: 28px; }
.studio-intro .hero-person { margin: 0; padding: 0; border: 0; font-size: 14px; }
.hero-person small { font-size: 11px; margin-top: 5px; }
.hero-person img { width: 52px; height: 52px; }
.studio-address { display: flex; align-items: center; gap: 14px; font-size: 12px; line-height: 1.7; color: var(--muted); }
.studio-address svg { color: var(--gold); width: 19px; }
.studio-address:hover { color: var(--text); }
.section-intro { display: block; margin-bottom: 42px; }
.section-intro > div { width: 100%; max-width: 70ch; margin-top: 24px; padding: 0; }
.section-intro p, .treatment-panel > p, .about-copy > p, .contact-copy > p { font-size: 16px; line-height: 1.8; }
.price-date { font-size: 12px; }
.treatment-layout { grid-template-columns: 23% 1fr 23%; gap: 44px; }
.treatment-tabs button { font-size: 15px; }
.price-list { font-size: 14px; }
.price-list small, .treatment-image figcaption { font-size: 12px; line-height: 1.6; }
.price-source, .treatment-request { font-size: 13px; }
.treatment-panel h3 { font-size: 32px; }
.other-services { font-size: 14px; }
.work-section .section-intro > div { max-width: 70ch; }
.work-section .text-link { font-size: 13px; }
.work-grid { gap: 32px; }
.work-item { height: auto; overflow: visible; background: none; }
.work-low { margin-top: 80px; }
.work-photo { overflow: hidden; }
.work-photo img { width: 100%; height: 340px; object-fit: cover; transition: transform 1.2s ease; }
.work-tall .work-photo img { height: 445px; }
.work-low .work-photo img { height: 375px; }
.work-item:hover .work-photo img { transform: scale(1.025); }
.work-item > span { position: static; background: none; padding: 18px 0 0; font: 16px/1.5 var(--sans); color: var(--text); gap: 10px; }
.work-item > span svg { color: var(--gold); }
.work-caption { font-size: 12px; padding-top: 32px; }
.about-photo figcaption span { font-size: 11px; }
.about-copy h2 { font-size: clamp(48px, 4.5vw, 68px); }
.about-copy .about-lead { font-size: 18px; line-height: 1.7; }
.about-copy > .text-link { font-size: 13px; }
/* Foto und Textspalte enden auf derselben Linie: Das Bild wird absolut gestellt und bringt damit keine
   Eigenhoehe mehr mit, also gibt der Text die Zeilenhoehe vor. Unter 761 px stapelt der Abschnitt ohnehin. */
@media (min-width: 1001px) {
  .about { align-items: stretch; }
  .about-photo { min-height: 430px; }
  /* Breite und Hoehe ausdruecklich, weil ein Bild als ersetztes Element bei height:auto die untere Kante ignoriert. */
  .about-photo img { position: absolute; top: 0; left: 30px; width: calc(100% - 30px); height: calc(100% - 28px); }
}
/* 761 bis 1000 px: Die Spalte waere nur noch rund 340 px breit, das Portraet wuerde zum Schlitz.
   Deshalb hier gestapelt, Foto in voller Breite ueber dem Text. */
@media (min-width: 761px) and (max-width: 1000px) {
  .about { display: flex; flex-direction: column; gap: 40px; align-items: flex-start; }
  .about-photo { width: 100%; max-width: 480px; padding: 0 0 21px 19px; }
  .about-photo:before { inset: 22px 19px 0 0; }
  .about-photo img { height: 500px; object-position: center 20%; }
  .about-copy { width: 100%; }
}
.signature { font-size: 13px; }
.education p { font-size: 14px; max-width: 70ch; }
.education .text-link { font-size: 13px; }
.faq summary { font-size: 16px; }
.faq details p { font-size: 15px; line-height: 1.8; }
address { font-size: 15px; }
.email-link { font-size: 13px; }
.request-panel { padding: 32px; }
.request-panel label { font-size: 14px; }
.request-panel label span { font-size: 12px; }
select, textarea { font-size: 16px; }
.request-panel > .button { font-size: 13px; }
.request-panel .request-note { font-size: 12px; line-height: 1.7; }
@keyframes arrive { from { opacity: .65; transform: scale(1.015); } to { opacity: 1; transform: scale(1); } }
@media (max-width: 1150px) {
  .hero-copy { padding-right: 28px; }
  .treatment-layout { grid-template-columns: 27% 1fr; }
  .work-photo img { height: 285px; }
  .work-tall .work-photo img { height: 375px; }
  .work-low .work-photo img { height: 320px; }
  .work-low { margin-top: 55px; }
  .request-panel { padding: 25px; }
  .request-panel > .button { font-size: 12px; }
}
@media (max-width: 760px) {
  .header-location { font-size: 10px; }
  .menu-toggle { padding: 11px; }
  .menu-toggle svg { width: 18px; height: 18px; color: var(--gold); }
  .site-header nav.is-open { inset-block-start: 110px; }
  .hero-copy { padding: 32px 0; }
  .hero h1 { font-size: clamp(46px, 13.4vw, 68px); line-height: 1.1; letter-spacing: -.025em; }
  .hero-description { font-size: 16px; margin-top: 24px; max-width: 40ch; }
  .hero-copy > .button { font-size: 14px; margin-top: 26px; }
  .hero-secondary { font-size: 13px; }
  .hero-image > img { height: 420px; object-position: 50% 50%; }
  .hero-image figcaption { font-size: 12px; padding-top: 12px; }
  .hero-image:before { inset: 12px 12px 69px; }
  .studio-intro { display: block; padding-block: 24px; }
  .studio-intro .hero-person { font-size: 13px; }
  .hero-person small { font-size: 11px; }
  .hero-person > svg { margin-left: auto; }
  .studio-address { margin-top: 21px; font-size: 12px; }
  .studio-address br { display: none; }
  .studio-address span { word-spacing: .08em; }
  .studio-address svg:last-child { margin-left: auto; }
  h2, .about-copy h2, .faq h2 { font-size: clamp(39px, 10.8vw, 52px); }
  .section-intro { margin-bottom: 33px; }
  .section-intro > div { margin-top: 22px; }
  .section-intro p, .treatment-panel > p, .about-copy > p, .contact-copy > p { font-size: 16px; }
  .treatment-layout { display: block; }
  .treatment-tabs button { font-size: 13px; }
  .treatment-request, .price-source { font-size: 12px; }
  .price-date { font-size: 11px; }
  .price-list { font-size: 14px; }
  .price-list small { font-size: 11px; }
  .work-grid { grid-template-columns: 1fr; gap: 32px; }
  .work-item, .work-item:not(.work-tall), .work-tall, .work-low { height: auto; margin: 0; grid-column: auto; }
  .work-photo img, .work-tall .work-photo img, .work-low .work-photo img { height: 365px; }
  .work-item > span { font-size: 15px; padding-top: 14px; }
  .work-caption { font-size: 11px; padding-top: 23px; }
  .about-copy .about-lead { font-size: 18px; }
  .about-photo figcaption span { font-size: 10px; }
  .education h3 { font-size: 28px; }
  .education p { font-size: 14px; }
  .faq summary { font-size: 15px; }
  .faq details p { font-size: 15px; }
  .contact h2 { font-size: clamp(46px, 12vw, 60px); }
  .request-panel { padding: 26px 22px; }
  .request-panel > .button { font-size: 12px; }
  .request-panel .request-note { font-size: 12px; }
  .request-panel label { font-size: 14px; }
}
@media (max-width: 360px) {
  .hero h1 { font-size: 46px; }
  .header-location { font-size: 9px; }
  .hero-image > img { height: 370px; }
  .studio-intro .hero-person { font-size: 12px; }
  .hero-person small { font-size: 11px; }
  .work-photo img, .work-tall .work-photo img, .work-low .work-photo img { height: 315px; }
  .request-panel { padding: 24px 16px; }
  .request-panel > .button { font-size: 11px; }
}

/* User feedback: persistent navigation, a clear appointment button and the hero caption on its photo. */
html { scroll-padding-top: 104px; }
.header-shell { position: sticky; top: 0; z-index: 40; background: var(--bg); border-bottom: 1px solid var(--line); }
.site-header { height: 80px; }
.brand { display: flex; align-items: center; gap: 20px; min-width: 0; }
.header-location { display: block; font-size: 11px; }
.brand:hover .header-location { color: var(--gold); }
.site-header nav { gap: 22px; }
.site-header nav > a { white-space: nowrap; }
.site-header nav > a[aria-current="location"]:not(.nav-contact) { color: var(--gold); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 8px; }
.request-panel .request-phone { display: flex; justify-content: center; min-height: 44px; margin-top: 14px; font-size: 13px; font-weight: 500; }
@media (min-width: 1001px) and (max-width: 1200px) { .site-header nav { gap: 16px; } .brand { gap: 12px; } .site-header { gap: 16px; } }
.site-header nav > .nav-contact { padding: 12px 20px; min-height: 48px; border: 1px solid var(--gold); background: var(--gold); color: var(--bg); font-size: 13px; font-weight: 700; gap: 18px; white-space: nowrap; }
.site-header nav > .nav-contact:hover { color: var(--bg); background: #d8b466; border-color: #d8b466; }
.site-header nav > .nav-contact:active { background: #b89442; }
.hero-image { overflow: hidden; }
.hero-image:before { inset: 15px; }
.hero-image:after { display: block; inset: 65% 0 0; background: linear-gradient(transparent, rgb(8 8 6 / 92%)); }
.hero-image figcaption { position: absolute; bottom: 28px; left: 30px; right: 30px; padding: 0; color: var(--text); font: 14px/1.6 var(--sans); }
.hero-image figcaption a { width: 44px; height: 44px; flex: none; border-color: #b5a476; background: rgb(13 14 12 / 70%); color: #e1be70; }
.hero-image figcaption a:hover { background: var(--bg); border-color: var(--gold); }
address a, .studio-address { min-height: 44px; align-items: center; }
@media (max-width: 1000px) {
  .site-header { gap: 16px; }
  .brand { gap: 16px; }
  .menu-toggle { margin-left: auto; display: inline-flex; align-items: center; gap: 10px; background: transparent; border: 1px solid var(--line); padding: 11px 13px; min-height: 44px; font-size: 12px; z-index: 41; }
  .menu-toggle svg { width: 18px; height: 18px; color: var(--gold); }
  .site-header nav { display: none; }
  .site-header nav.is-open { display: flex; position: fixed; inset: var(--menu-top,80px) 0 0; flex-direction: column; align-items: stretch; gap: 0; margin: 0; padding: 20px max(24px,calc((100vw - 700px)/2)) max(32px,env(safe-area-inset-bottom)); background: var(--bg); overflow-y: auto; overscroll-behavior: contain; z-index: 40; font-size: 20px; }
  .site-header nav.is-open > a { padding: 20px 0; border-bottom: 1px solid var(--line); }
  .site-header nav.is-open > .nav-contact { margin-top: 24px; padding: 14px 20px; min-height: 52px; font-size: 15px; justify-content: space-between; color: var(--bg); }
  .site-header nav.is-open > .nav-contact:hover, .site-header nav.is-open > .nav-contact:focus-visible { color: var(--bg); }
  .site-header nav.is-open a:focus-visible { outline-offset: 0; }
  .contact { display: block; }
  .request-panel { margin-top: 36px; max-width: 640px; }
}
@media (min-width: 761px) and (max-width: 1000px) {
  /* Mindestens so gross wie die Abschnittsueberschriften (48 px in diesem Band), sonst kippt die Rangordnung. */
  .hero h1 { font-size: clamp(52px, 7vw, 64px); }
}
@media (max-width: 760px) {
  html { scroll-padding-top: 96px; }
  .site-header { height: 72px; }
  .brand { gap: 12px; }
  .brand img { width: 54px; height: 54px; }
  .header-location { font-size: 11px; }
  .hero-copy > .button { width: 100%; justify-content: center; }
  .hero-image:before { inset: 12px; }
  .hero-image figcaption { left: 24px; right: 24px; bottom: 24px; gap: 14px; font-size: 13px; }
  .hero-image figcaption > span { max-width: 25ch; }
  .request-panel { max-width: none; }
}
@media (max-width: 360px) {
  .brand { gap: 8px; }
  .brand img { width: 48px; height: 48px; }
  .header-location { font-size: 11px; }
  .menu-toggle { gap: 7px; padding: 10px; font-size: 11px; }
}
@media (max-height: 500px) and (max-width: 1000px) {
  .site-header { height: 64px; }
  .brand img { width: 48px; height: 48px; }
  .site-header nav.is-open { padding-top: 8px; }
  .site-header nav.is-open > a { padding: 13px 0; }
  .site-header nav.is-open > .nav-contact { margin-top: 12px; }
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Keep the appointment path together; contact details follow it on small screens. */
.contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: auto 1fr; column-gap: 10%; row-gap: 28px; }
.contact-copy { grid-column: 1; grid-row: 1; min-width: 0; }
.contact .request-panel { grid-column: 2; grid-row: 1 / 3; margin: 0; max-width: none; min-width: 0; }
.contact-details { grid-column: 1; grid-row: 2; min-width: 0; }
.contact-details address { margin: 0; font-size: 15px; border-top: 1px solid var(--line); }
.contact-details address a { width: 100%; margin: 0; padding: 16px 0; align-items: center; }
.contact-details address a > span { flex: 1; min-width: 0; }
.contact-details address a > span > span { display: block; color: var(--muted); font-size: 13px; }
.contact-details address a svg:last-child { margin-left: auto; }
.contact-details .email-link { display: flex; justify-content: space-between; width: 100%; min-height: 48px; margin: 0; padding-block: 12px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
@media (max-width: 1000px) {
  .contact { display: flex; flex-direction: column; gap: 28px; }
  .contact-copy, .contact .request-panel, .contact-details { width: 100%; }
  .contact-copy > p { margin-top: 20px; }
}
@media (max-width: 760px) { .contact { gap: 24px; } }

/* Agency preview wrapper: deliberately separate from the black-and-gold studio. */
.preview-note {
  --preview-ink: #0f172a;
  --preview-muted: #526176;
  --preview-accent: #0052ff;
  display: block;
  min-height: 0;
  padding: 12px 0;
  background: #f8fafc;
  border-bottom: 1px solid rgba(15,23,42,.08);
  color: var(--preview-ink);
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0;
  text-align: left;
}
.preview-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.preview-context, .preview-note .preview-expiry { display: flex; align-items: center; gap: 20px; min-width: 0; }
.preview-context > strong { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; white-space: nowrap; }
.preview-context .preview-symbol { width: 16px; height: 16px; margin: 0; color: var(--preview-accent); flex: none; }
.preview-context > span { display: flex; align-items: center; flex-wrap: wrap; gap: 0 .3em; color: var(--preview-muted); font-size: 13px; }
.preview-note a { display: inline-flex; align-items: center; min-height: 24px; color: var(--preview-accent); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.preview-note a:hover { text-decoration-thickness: 2px; }
.preview-note a:focus-visible { outline: 2px solid var(--preview-accent); outline-offset: 4px; }
.preview-note a svg { width: 14px; height: 14px; margin-left: 4px; }
.preview-note .preview-expiry { gap: 16px; font-size: 12px; color: var(--preview-muted); }
.preview-expiry strong { color: var(--preview-ink); font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.preview-expiry time { color: var(--preview-ink); white-space: nowrap; }
.preview-short { display: none; }
.preview-note ::selection { background: #dbe7ff; color: #0f172a; }
@media (max-width: 900px) {
  .preview-note { padding: 8px 0; }
  .preview-inner { display: block; }
  .preview-context { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
  .preview-context > strong { font-size: 13px; white-space: nowrap; }
  .preview-context > span { font-size: 12px; flex: none; }
  .preview-long { display: none; }
  .preview-short { display: inline; }
  .preview-note .preview-expiry { align-items: baseline; justify-content: space-between; gap: 8px; margin-top: 4px; }
  .preview-expiry strong { font-size: 12px; }
}
/* Grundsätze im Über-mich-Bereich: Hairline-Liste mit dem Rauten-Motiv des Hero-Fußes. */
.principles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;margin:26px 0 0;padding:0;list-style:none}
.principles li{position:relative;padding:11px 0 11px 20px;border-bottom:1px solid var(--line);font-size:14px;line-height:1.6;color:var(--text)}
.principles li:nth-child(-n+2){border-top:1px solid var(--line)}
.principles li::before{content:"";position:absolute;left:2px;top:19px;width:6px;height:6px;border:1px solid var(--gold);transform:rotate(45deg)}
.about-copy .principles+.signature{margin-top:28px}
@media(max-width:760px){.principles{grid-template-columns:1fr;gap:0}.principles li{font-size:13px;padding-block:10px}.principles li:nth-child(2){border-top:0}.principles li::before{top:17px}}
/* Name liegt im Foto: Verlauf unten für die Lesbarkeit, der versetzte Rahmen bleibt links und unten sichtbar. */
.about-photo figcaption{position:absolute;left:30px;right:0;bottom:28px;display:block;margin:0;padding:84px 28px 22px;background:linear-gradient(to top,rgb(13 14 12/.78),rgb(13 14 12/0));color:var(--text);pointer-events:none}
@media(max-width:1150px){.about-photo figcaption{left:20px}}
@media(max-width:760px){.about-photo figcaption{left:19px;bottom:21px;padding:64px 20px 16px}}
/* Ohne FAQ folgt die Anfahrt direkt auf den Schulungs-Hinweis: eine Linie statt zwei. */
.education+.studio-location{border-top:0}
/* Einheitlicher Hintergrund (Kundenwunsch 17.09.): Galerie und Kontakt ohne eigenen Farbton, Abschnitte trennen sich über Abstand und feine Linien. */
.work-section,.contact-section{background:var(--bg)}
/* Bindestrich in NS-Studio: Cormorant setzt ihn auf Kleinbuchstaben-Höhe. Zwischen zwei Großbuchstaben sitzt er 0,1 em höher auf deren Mitte. */
.brand-hyphen{position:relative;top:-.1em}
/* Der Markenname bricht nie am Bindestrich („NS-“ / „Studio.“ bei 375 px); „Gutes Gefühl.“ bleibt als Paar zusammen, sonst bricht die H1 bei 768 px mitten im Satz. */
.brand-name{white-space:nowrap}
.hero h1 .accent{display:inline-block}
/* Abschnitte trennen sich ohne Farbwechsel: je eine feine Linie in Inhaltsbreite an jeder Grenze (Schulung und Anfahrt hatten sie schon). Die alte Linie über dem Kontakt lief über die volle Breite und in anderer Farbe. */
.treatments,.studio-location{border-bottom:1px solid var(--line)}
.reviews-section{border-top:1px solid var(--line)}
.contact-section{border-top:0}
.site-footer{border-top:1px solid var(--line)}
.no-break{white-space:nowrap}
/* Tablet-Band 761 bis 1000 px: Navigation und Termin-Knopf liegen im Menü, deshalb bleibt die Leiste bis 1000 px sichtbar (script.js blendet sie aus, sobald ein Hauptknopf im Bild ist). Schmaler als die Seite, damit sie nicht wie ein Balken über 1000 px wirkt. */
@media (min-width:761px) and (max-width:1000px){
  .mobile-contact{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:25;justify-content:center;gap:12px;padding:12px 32px max(12px,env(safe-area-inset-bottom));background:var(--bg);border-top:1px solid var(--line)}
  .mobile-contact a:first-child{height:48px;width:56px;display:grid;place-items:center;border:1px solid var(--line);color:var(--gold)}
  .mobile-contact a:last-child{display:flex;justify-content:center;align-items:center;gap:20px;flex:0 1 420px;background:var(--gold);color:var(--bg);font-size:13px;font-weight:700;min-height:48px}
  .mobile-contact svg{width:20px;height:20px}
}


/* Source: footer.css */
/* Footer der Studio-Website als ruhige Visitenkarte: eine Serif-Zeile (Satz mit lokalen Suchbegriffen), darunter nur
   Angaben mit leisem Label darüber. Zwei Schriftgrößen: 15 px Inhalt, 13 px Labels, Aktionen und Rechtszeile.
   Die alten Entwurfsregeln für den Footer sind aus style.css entfernt; hier reicht deshalb einfache Spezifität. */
.site-footer { --footer-logo:72px; padding:80px 0 0; }
.footer-main { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr); gap:48px 56px; }

/* Logo und Satz stehen nebeneinander als eine Einheit; Kontakt und Adresse beginnen auf derselben Höhe. */
.footer-brand { display:grid; grid-template-columns:var(--footer-logo) minmax(0,1fr); align-items:center; column-gap:24px; }
.footer-logo { display:block; width:fit-content; }
.footer-logo img { width:var(--footer-logo); height:var(--footer-logo); }
.footer-claim { max-width:30ch; font:500 27px/1.3 var(--serif); letter-spacing:-.01em; color:var(--text); text-wrap:balance; }
.footer-social { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:0 28px; margin:14px 0 0; padding:0; list-style:none; }
.footer-social a { display:inline-flex; align-items:center; gap:10px; min-height:44px; font-size:15px; color:var(--text); transition:color .2s; }
.footer-social a:hover { color:var(--gold); }
.footer-social a:hover, .footer-legal a:hover { text-decoration:underline; text-underline-offset:4px; }
.footer-social svg { width:18px; height:18px; color:var(--gold); }

.footer-hidden { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.footer-col h2, .footer-contact span { display:block; font:400 13px/1.5 var(--sans); letter-spacing:0; color:var(--muted); }
.footer-contact { display:grid; gap:16px; margin:0; padding:0; list-style:none; }
/* Label und Angabe bilden zusammen den Link: 44 px Tippfläche, und der Fokusrahmen umschließt beides.
   Ohne Innenabstand beginnt das Label auf derselben Höhe wie „Adresse“ nebenan. */
.footer-contact a { display:block; width:fit-content; max-width:100%; min-height:44px; font-size:15px; line-height:1.6; color:var(--text); overflow-wrap:anywhere; transition:color .2s; }
.footer-contact a:hover { color:var(--gold); }
.footer-contact a:focus-visible { outline-offset:4px; }
.footer-col address { margin:0; font-style:normal; font-size:15px; line-height:1.75; color:var(--text); }
.footer-col .text-link { min-height:44px; margin-top:6px; font-size:13px; }

.footer-legal { display:flex; flex-wrap:wrap; align-items:center; gap:4px 32px; margin-top:72px; padding:14px 0 30px; border-top:1px solid var(--line); font-size:13px; color:var(--muted); }
.footer-legal a { display:inline-flex; align-items:center; min-height:44px; color:var(--muted); transition:color .2s; }
.footer-legal a:hover { color:var(--gold); }
/* Die Zeile links gehört dem Studio; die Nennung der Website steht rechts, kleiner und leiser (5,3:1 auf --bg). */
.footer-legal a:last-child { margin-left:auto; font-size:12px; color:#8a867c; }
.footer-legal a:last-child:hover { color:var(--gold); }

@media(max-width:1000px) {
  .footer-main { grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; }
  .footer-brand { grid-column:1 / -1; }
  /* Der feste Kopf zeigt das Logo bis hierhin ohnehin; im Footer stünde es doppelt. */
  .footer-logo { display:none; }
  .footer-brand { grid-template-columns:minmax(0,1fr); }
  /* Platz für die feste Leiste, die bis 1000 px mitläuft (style.css, Tablet-Band). */
  .footer-legal { padding-bottom:96px; }
  /* Beim Tabben scrollt der Browser fokussierte Links sonst genau hinter die Leiste (WCAG 2.4.11). */
  html:has(.mobile-contact) { scroll-padding-bottom:88px; }
}
@media(max-width:760px) {
  .site-footer { padding-top:48px; }
  .footer-main { gap:32px 24px; }
  .footer-claim { font-size:25px; }
  .footer-social { margin-top:10px; }
  .footer-legal { margin-top:44px; padding-top:6px; gap:4px 24px; }
  .footer-legal a:last-child { margin-left:0; }
}
/* Unter 480 px passt die E-Mail-Adresse (158 px) nicht mehr sicher in eine halbe Spalte. */
@media(max-width:480px) {
  .footer-main { grid-template-columns:1fr; gap:32px; }
}


/* Source: legal.css */
/* Rechtsseiten (Impressum, Datenschutz): gleicher Kopf und Footer wie die Startseite, ruhige Lesespalte. */
.legal-actions { display:flex; align-items:center; gap:28px; margin-left:auto; }
.legal-actions .text-link { font-size:13px; color:var(--text); }
.legal-actions .text-link:hover { color:var(--gold); text-decoration:none; }
.legal-actions .text-link svg { width:17px; height:17px; color:var(--gold); transform:rotate(180deg); }
.legal-actions .button { min-height:48px; padding:12px 20px; font-size:13px; }
/* Der Text fuellt die volle Inhaltsbreite (Logo-Kante bis Knopf-Kante), keine schmale Spalte mit Leerraum daneben. */
.legal-page { max-width:none; padding-block:88px 104px; }
.legal-page h1 { font-size:clamp(46px,5vw,64px); line-height:1.08; }
.legal-page .legal-lead { margin-top:24px; font-size:17px; line-height:1.75; color:var(--text); }
.legal-page h2 { margin-top:56px; font-size:30px; line-height:1.2; }
.legal-page p { margin-top:14px; font-size:16px; line-height:1.8; color:var(--muted); }
.legal-page strong { color:var(--text); font-weight:600; }
.legal-page a:not(.button) { text-underline-offset:4px; }
.legal-page .legal-date { margin-top:56px; padding-top:18px; border-top:1px solid var(--line); font-size:13px; }
/* Eine Spalte ueber die volle Breite. Titel (und Einleitung) sind durch eine feine Linie vom Text getrennt. */
.legal-page > :is(h1, .legal-lead):has(+ h2) { padding-bottom:40px; margin-bottom:48px; border-bottom:1px solid var(--line); }
.legal-page > :is(h1, .legal-lead) + h2 { margin-top:0; }
.legal-body .legal-page p { max-inline-size:none; }
.legal-body .footer-legal { padding-bottom:30px; }
.site-footer .footer-legal a[aria-current="page"] { color:var(--text); }
@media(max-width:760px) {
  .legal-actions .text-link { display:none; }
  .legal-page { padding-block:48px 72px; }
  .legal-page .legal-lead { font-size:16px; }
  .legal-page h2 { margin-top:44px; font-size:27px; }
  .legal-body .footer-legal { padding-bottom:30px; }
}


/* Source: theme.css */
/* A small segmented control beside the brand; the appointment action keeps priority. */
.theme-toggle { --theme-segment:32px; --theme-height:34px; --theme-border:#797668; --theme-selected:#3e3829; --theme-active:#e3c478; display:inline-flex; align-items:center; justify-content:center; flex:none; min-width:80px; min-height:44px; padding:4px; border:0; border-radius:8px; background:transparent; color:var(--muted); cursor:pointer; }
.theme-track { position:relative; display:grid; grid-template-columns:1fr 1fr; place-items:center; width:calc(var(--theme-segment) * 2 + 8px); height:var(--theme-height); padding:3px; border:1px solid var(--theme-border); border-radius:6px; background:var(--surface); transition:border-color .18s ease-out; }
.theme-track::before { content:""; position:absolute; left:3px; top:3px; width:var(--theme-segment); height:calc(var(--theme-height) - 8px); border-radius:3px; background:var(--theme-selected); transform:translateX(var(--theme-segment)); transition:transform .22s cubic-bezier(.16,1,.3,1); }
.theme-toggle:hover .theme-track { border-color:var(--gold); }
.theme-toggle:active .theme-track { border-color:var(--theme-active); }
.theme-toggle:focus-visible { outline-offset:2px; }
.theme-toggle svg { position:relative; width:17px; height:17px; stroke:currentColor; stroke-width:1.65; fill:none; stroke-linecap:round; stroke-linejoin:round; }
.theme-toggle .theme-moon { color:var(--theme-active); }
html[data-theme="light"] .theme-toggle { --theme-border:#95866b; --theme-selected:#e6d7b8; --theme-active:#795b1b; }
html[data-theme="light"] .theme-track::before { transform:translateX(0); }
html[data-theme="light"] .theme-toggle .theme-sun { color:var(--theme-active); }
html[data-theme="light"] .theme-toggle .theme-moon { color:var(--muted); }
.site-header { gap:24px; }
.site-header .theme-toggle { order:1; }
.site-header .menu-toggle { order:4; }
.site-header nav, .site-header .legal-actions { order:2; }
html[data-theme] { scroll-padding-top:104px; }
@media (min-width:1001px) and (max-width:1200px) {
  .site-header .header-location { display:none; }
  .site-header #navigation { gap:14px; }
  .site-header { gap:16px; }
}
@media (max-width:1000px) {
  .site-header { gap:12px; }
  .site-header .theme-toggle { --theme-segment:28px; --theme-height:32px; margin-left:auto; min-width:64px; padding:0; }
  .theme-toggle svg { width:16px; height:16px; }
  .site-header .menu-toggle { margin-left:0; }
  .legal-body .theme-toggle { margin-left:0; }
}
@media (max-width:760px) { html[data-theme] { scroll-padding-top:96px; } }
@media (max-width:440px) {
  .site-header .header-location { display:none; }
  .site-header { gap:10px; }
  .legal-actions .button { padding-inline:12px; }
}
@media (max-width:360px) { .legal-body .site-header { gap:6px; } }
@media (prefers-reduced-motion:reduce) { .theme-track, .theme-track::before { transition:none; } }

/* Ivory and real gold. Luminous gold fills carry dark type; large gold lettering
   has its own contrast-safe shade. Small text uses ink rather than muddy dark gold. */
:root[data-theme="light"] {
  color-scheme:light;
  --bg:#faf7f0;
  --surface:#f0e9dc;
  --text:#29261f;
  --muted:#696256;
  --gold:#af882d;
  --line:#d8cebb;
  --light-paper:#fffcf6;
  --light-selected:#eee3cb;
  --light-control:#9a8c72;
  --light-button:#caa34f;
  --light-button-hover:#dab666;
  --light-button-active:#bd963f;
  --light-on-button:#29261f;
}
html[data-theme="light"] ::selection { background:#dec99e; color:#29261f; }
html[data-theme="light"] .header-location,
html[data-theme="light"] .hero-secondary { color:var(--text); }
html[data-theme="light"] .header-location > span { color:var(--muted); }

html[data-theme="light"] .button,
html[data-theme="light"] .site-header nav > .nav-contact,
html[data-theme="light"] .mobile-contact a:last-child { background:var(--light-button); border-color:var(--light-button); color:var(--light-on-button); }
html[data-theme="light"] .button:hover,
html[data-theme="light"] .site-header nav > .nav-contact:hover,
html[data-theme="light"] .site-header nav.is-open > .nav-contact:focus-visible,
html[data-theme="light"] .mobile-contact a:last-child:hover { background:var(--light-button-hover); border-color:var(--light-button-hover); color:var(--light-on-button); }
html[data-theme="light"] .button:active,
html[data-theme="light"] .site-header nav > .nav-contact:active,
html[data-theme="light"] .mobile-contact a:last-child:active { background:var(--light-button-active); border-color:var(--light-button-active); }
html[data-theme="light"] .menu-toggle { border-color:var(--light-control); }

/* Soft photographic depth, tuned to the surrounding paper in each theme. */
.hero-image {
  --hero-shadow:0 0 0 / 48%;
  box-shadow:0 14px 38px -12px rgb(var(--hero-shadow));
}
html[data-theme="light"] .hero-image { --hero-shadow:57 40 20 / 26%; }
@media (max-width:760px) {
  .hero-image { box-shadow:0 8px 24px -9px rgb(var(--hero-shadow)); }
}

/* White lettering stays white wherever it is placed on a photograph. */
html[data-theme="light"] .hero-image figcaption,
html[data-theme="light"] .about-photo figcaption { color:#fff7ea; }
html[data-theme="light"] .hero-image figcaption a { background:rgb(13 14 12 / 70%); border-color:#b5a476; color:#e1be70; }
html[data-theme="light"] .hero-image figcaption a:hover { background:#0d0e0c; border-color:#caa34f; }
html[data-theme="light"] .about-photo::before { border-color:var(--line); }

html[data-theme="light"] .treatment-tabs button[aria-selected="true"] { background:var(--light-selected); }
html[data-theme="light"] .reviews-summary,
html[data-theme="light"] .review-invite { background:var(--light-paper); }
html[data-theme="light"] .reviews-all:hover { background:var(--surface); }
html[data-theme="light"] .gallery-more:active { background:var(--light-button-active); border-color:var(--light-button-active); color:var(--light-on-button); }

/* The whole request form is themed, including native controls and selected states. */
html[data-theme="light"] .contact .request-panel { background:var(--light-paper); border-color:var(--line); color:var(--text); }
html[data-theme="light"] .request-panel legend,
html[data-theme="light"] .request-panel .wishes-label { color:var(--text); }
html[data-theme="light"] .request-panel .request-times legend span,
html[data-theme="light"] .request-panel .wishes-label span { color:var(--muted); }
html[data-theme="light"] .request-panel .request-option { border-color:var(--light-control); color:var(--text); }
html[data-theme="light"] .request-panel .request-option:hover { border-color:var(--gold); background:var(--surface); }
html[data-theme="light"] .request-panel .request-option:has(input:checked) { border-color:var(--gold); background:var(--light-selected); color:var(--text); }
html[data-theme="light"] .request-option input { accent-color:var(--gold); }
html[data-theme="light"] select,
html[data-theme="light"] .request-panel textarea { background:var(--light-paper); border-color:var(--light-control); color:var(--text); caret-color:var(--gold); }
html[data-theme="light"] textarea::placeholder { color:var(--muted); }
html[data-theme="light"] .request-panel .request-phone { color:var(--text); border-color:var(--line); }
html[data-theme="light"] .request-panel .request-phone .phone-label { color:var(--muted); }
html[data-theme="light"] .request-panel .request-phone svg,
html[data-theme="light"] .request-panel .request-phone:hover { color:var(--gold); }

html[data-theme="light"] .map-attribution { color:var(--muted); }
html[data-theme="light"] .map-attribution:hover { color:var(--text); }
html[data-theme="light"] .location-map { background:#f1eee5; border-color:var(--light-control); }
html[data-theme="light"] .footer-legal a:last-child { color:var(--muted); }
html[data-theme="light"] .footer-legal a:last-child:hover { color:var(--text); }

/* The viewer is a light photographic mount, with the same original images. */
html[data-theme="light"] .gallery-dialog { background:var(--light-paper); }
html[data-theme="light"] .gallery-dialog::backdrop { background:rgb(239 232 218 / 95%); }
html[data-theme="light"] .gallery-dialog button { border-color:var(--light-control); }
html[data-theme="light"] .gallery-dialog button:hover { background:var(--surface); border-color:var(--gold); }
html[data-theme="light"] .gallery-dialog button:active { background:var(--light-selected); }
html[data-theme="light"] .gallery-dialog .gallery-thumb:hover { background:var(--surface); }

/* Gold remains visible in broad accents and rules. Functional small labels keep
   the same strong ink contrast in normal, hover and selected states. */
html[data-theme="light"] .review-stars { color:var(--light-button); }
html[data-theme="light"] :is(.text-link, .price-action, .gallery-more, .location-route,
  .opening-hours .hours-note, .signature > span, .gallery-dialog button,
  .gallery-filters button[aria-pressed="true"], .treatment-tabs button[aria-selected="true"],
  .site-header nav > a:hover, .site-header nav > a[aria-current="location"],
  .brand:hover .header-location, .hero-rating:hover, .hero-rating:hover strong,
  .footer-social a:hover, .footer-contact a:hover, .footer-legal a:hover,
  .request-panel .request-phone:hover, .legal-page a:not(.button), .legal-actions .text-link:hover) { color:var(--text); }
html[data-theme="light"] .site-header nav > .nav-contact { color:var(--light-on-button); }
html[data-theme="light"] .price-row:is(:hover,:focus-visible) .price-name { color:var(--text); }
html[data-theme="light"] .gallery-more:hover,
html[data-theme="light"] .location-route:hover { background:var(--light-button); color:var(--light-on-button); }
html[data-theme="light"] .gallery-more:active,
html[data-theme="light"] .location-route:active { background:var(--light-button-active); border-color:var(--light-button-active); color:var(--light-on-button); }
html[data-theme="light"] .request-option input { accent-color:#8b6a22; }
html[data-theme="light"] .request-panel .request-option:has(input:checked) { border-color:#8b6a22; }
html[data-theme="light"] .treatment-tabs button[aria-selected="true"] { box-shadow:inset 0 -2px #8b6a22; }
html[data-theme="light"] .gallery-filters button[aria-pressed="true"] { border-bottom-color:#8b6a22; }
html[data-theme="light"] :focus-visible,
html[data-theme="light"] .request-option:has(input:focus-visible) { outline-color:#8b6a22; }




/* Source: readability.css */
/* Shared type roles: Cormorant for the studio voice, Manrope for reading and
   interaction. Relative units respect the visitor's default font size. */
:root {
  --type-credit:.75rem; --type-note:.875rem; --type-label:.9375rem;
  --type-body:1rem; --type-lead:1.125rem;
  --type-display:clamp(3.25rem,1.8rem + 3.7vw,5.125rem);
  --type-section:clamp(2.5rem,1.7rem + 2.7vw,4.25rem);
  --type-subheading:clamp(1.875rem,1.6rem + .7vw,2.25rem);
}
body { font-size:var(--type-body); }
.hero h1 { font-size:var(--type-display); line-height:1.08; letter-spacing:-.02em; text-wrap:balance; }
.section-intro h2, .reviews-intro h2, .about-copy h2, .contact h2, .location-heading h2 { font-size:var(--type-section); line-height:1.12; letter-spacing:-.015em; text-wrap:balance; }
.treatment-panel h3, .request-services legend { font-size:var(--type-subheading); font-weight:500; line-height:1.2; text-wrap:balance; }
.education h3, .opening-hours h3 { font-size:1.75rem; line-height:1.25; text-wrap:balance; }
.hero-description, .about-copy .about-lead { font-size:var(--type-lead); line-height:1.7; }
.hero-description { max-width:42ch; }
.section-intro p, .treatment-panel > p, .about-copy > p, .contact-copy > p, .education p, .legal-page p, .legal-page li { font-size:var(--type-body); line-height:1.75; max-inline-size:64ch; text-wrap:pretty; }
.about-copy > p + p { margin-top:1.25em; }
.legal-page h1 { font-size:var(--type-section); line-height:1.12; }
.legal-page h2 { font-size:1.875rem; line-height:1.25; text-wrap:balance; }
.legal-page .legal-lead { font-size:var(--type-lead); line-height:1.75; }
.legal-page a { overflow-wrap:anywhere; }

/* Readable content and controls. Weight distinguishes primary choices from
   optional fields, rather than making the latter small again. */
.button, .hero-copy > .button, .site-header nav > .nav-contact,
.treatment-tabs button, .treatment-tabs button:first-child,
.request-panel .request-option, .request-panel .request-options-times .request-option,
.request-panel > .request-whatsapp, .request-panel textarea,
.request-panel .wishes-label, .request-times legend, .opening-hours .hours-note,
.hours-list > div, .principles li, .footer-contact a, .footer-col address,
.footer-social a, .contact-person p, .location-heading p,
.location-details .location-recognition, .legal-actions .button,
.mobile-contact a:last-child { font-size:var(--type-body); }
.button, .site-header nav > .nav-contact { font-weight:600; line-height:1.5; }
.treatment-tabs button, .treatment-tabs button:first-child, .request-services .request-option { font-weight:600; }
.request-panel .request-option { line-height:1.5; }
.request-panel .request-options-times .request-option { font-weight:400; }
.request-panel .wishes-label, .request-times legend { font-weight:600; line-height:1.5; }
.request-times legend span, .request-panel .wishes-label span { font-weight:400; }
.hours-list { font-variant-numeric:lining-nums tabular-nums; }
.site-header nav, .hero-secondary, .studio-intro .hero-person,
.gallery-filters button, .gallery-item > span, .gallery-more,
.work-section .text-link, .gallery-more-row .gallery-instagram,
.reviews-all, .customer-review figcaption, .review-invite .text-link,
.education .text-link, .about-copy > .text-link, .request-panel .request-phone,
.location-route, .legal-actions .text-link { font-size:var(--type-label); line-height:1.6; }
.text-link, .gallery-filters button { font-weight:500; }
.gallery-filters button[aria-pressed="true"] { font-weight:600; }

/* Supporting information: a single readable step below ordinary copy. */
.header-location, .hero-person small, .studio-address, .hero-image figcaption,
.contact-person small, .request-panel .request-note, .request-phone .phone-label,
.opening-hours .cancel-note, .request-times legend span,
.request-panel .wishes-label span, .footer-col h2, .footer-contact span,
.footer-col .text-link, .footer-legal, .legal-page .legal-date,
.price-name small,
.price-action, .treatment-tabs button small, .customer-review .text-link,
.reviews-rating-detail p, .review-invite p span, .signature,
.map-attribution, .location-details .location-credit { font-size:var(--type-note); line-height:1.6; }
.header-location { letter-spacing:0; }
.hero-rating { font-size:var(--type-label); }
.hero-rating strong { font-size:1.25rem; }
.review-invite p { font-size:var(--type-body); }
.request-panel .request-note { max-width:44ch; }
.customer-review blockquote p { font-size:clamp(1.75rem,1.4rem + .75vw,2.125rem); line-height:1.3; }
.reviews-rating > strong { font-size:3.25rem; }
.reviews-rating > strong > span { font-size:var(--type-label); }
.signature > span { font-size:2.375rem; }
.price-name { font-size:1.5rem; line-height:1.3; }
.price-value { font-size:1.625rem; line-height:1.2; }
.price-value.is-request { font-size:1.3125rem; }
.price-action { font-weight:500; }
.footer-claim { font-size:1.6875rem; line-height:1.35; }
/* The agency signature is the only deliberately small text on the studio site. */
.footer-legal .footer-credit { font-size:var(--type-credit); line-height:1.6; }

@media (min-width:1001px) { .site-header nav { gap:22px; } }
@media (max-width:1000px) {
  .menu-toggle { font-size:var(--type-note); }
  .site-header nav.is-open { font-size:1.25rem; }
  .price-name { font-size:1.375rem; }
  .price-value { font-size:1.5rem; }
}
@media (max-width:760px) {
  :root { --type-display:clamp(2.875rem,1rem + 9.3vw,4.25rem); --type-section:clamp(2.375rem,1.5rem + 4.2vw,3.25rem); }
  .hero-description { font-size:1.0625rem; }
  .gallery-filters { gap:16px; }
  .treatment-tabs button, .treatment-tabs button:first-child { font-size:var(--type-label); }
  .price-name { font-size:1.3125rem; }
  .price-value { font-size:1.5rem; }
  .price-value.is-request { font-size:1.1875rem; }
  .location-details .location-part { white-space:normal; }
  .footer-claim { font-size:1.5625rem; }
}
@media (max-width:360px) {
  .brand { gap:10px; }
  .menu-toggle { gap:6px; padding-inline:9px; }
  .gallery-filters { gap:12px; }
  .gallery-filters button { font-size:var(--type-note); }
  .request-options { grid-template-columns:1fr; }
  .request-panel .request-option { min-height:48px; }
  .request-panel > .request-whatsapp { gap:8px; padding-inline:12px; font-size:var(--type-label); }
  .reviews-rating { flex-wrap:wrap; row-gap:12px; }
  .price-row { column-gap:12px; }
}


/* Source: brands.css */
/* Original logo shapes. Color follows the role and surface, not the brand name. */
svg.brand-mark { width:20px; height:20px; flex:none; fill:currentColor; stroke:none; }
/* Small gold accents remain distinguishable on both paper and hover surfaces. */
.price-action .brand-mark { width:18px; height:18px; fill:var(--brand-action,var(--gold)); }
html[data-theme="light"] { --brand-action:#9b7828; }
/* Filled actions inherit their dark label; the photo badge needs light ink. */
.request-whatsapp .brand-mark { width:22px; height:22px; }
.hero-image .brand-instagram { fill:#fff7ea; }
.hero-rating-source, .brand-source { display:inline-flex; align-items:center; gap:8px; }
.hero-rating-source .brand-mark, .brand-source .brand-mark { width:18px; height:18px; }
.hero-rating-source .brand-google, .brand-source .brand-google { fill:var(--muted); }
/* Social sources are peers: neither receives a permanent accent in the footer. */
.footer-social .brand-mark { width:18px; height:18px; color:inherit; fill:var(--muted); }
.footer-social a:is(:hover,:focus-visible) .brand-mark { fill:currentColor; }

