@font-face {
    font-family: "Bodoni Moda";
    src: url("fonts/BodoniModa-Variable.ttf") format("truetype");
    font-style: normal;
    font-weight: 400 900;
    font-display: swap;
}

@font-face {
    font-family: Manrope;
    src: url("fonts/Manrope-Variable.ttf") format("truetype");
    font-style: normal;
    font-weight: 200 800;
    font-display: swap;
}

:root {
    --paper: #fffdfb;
    --cream: #f8eee8;
    --peach: #efd1c5;
    --peach-deep: #d9a89a;
    --accent: #e86f57;
    --accent-dark: #b94e3d;
    --ink: #211b18;
    --muted: #71635d;
    --line: rgba(54, 38, 31, .16);
    --dark: #282321;
    --white: #fff;
    --container: 1280px;
    --display: "Bodoni Moda", "Bodoni 72", Didot, "Bodoni MT", serif;
    --sans: Manrope, "Avenir Next", Avenir, "Helvetica Neue", Arial, sans-serif;
    --shadow: 0 28px 70px rgba(62, 40, 32, .12);
    --radius: 30px;
    --hero-background: linear-gradient(135deg, var(--cream) 0%, #f7e4db 55%, #f2d2c7 100%);
    --hero-columns: minmax(0, 1.05fr) minmax(330px, .9fr) minmax(230px, .5fr);
    --hero-main-radius: 210px 210px 18px 18px;
    --hero-side-radius: 150px 150px 22px 22px;
    --media-radius: 0;
    --section-soft: #fff8f4;
    --fact-background: rgba(255, 244, 238, .92);
}

body.glow-theme-brows { --accent: #d66f50; --accent-dark: #9f4c38; --peach: #edd1c0; }
body.glow-theme-lips { --accent: #d85f70; --accent-dark: #9e3f51; --peach: #f1cbd1; }
body.glow-theme-eyes { --accent: #8d826b; --accent-dark: #5e5748; --peach: #ded7ca; }
body.glow-theme-longtime { --accent: #be8150; --accent-dark: #80532f; --peach: #ead2ba; }

/* Jede Domain bleibt Teil der Glow-Line Familie, bekommt aber eine eigene visuelle Handschrift. */
body.glow-site-permanent-makeup-braunschweig-de {
    --hero-main-radius: 240px 240px 18px 18px;
    --hero-side-radius: 150px 150px 24px 24px;
}
body.glow-site-pmu-braunschweig-de {
    --hero-background: linear-gradient(125deg, #faeee8 0%, #f2d4ca 72%, #ecc6ba 100%);
    --hero-columns: minmax(0, 1.12fr) minmax(340px, .88fr) minmax(240px, .52fr);
    --hero-main-radius: 260px 260px 24px 24px;
    --hero-side-radius: 140px 140px 30px 30px;
    --section-soft: #fcf2ed;
}
body.glow-site-permmakeup-de {
    --cream: #f6efe7;
    --peach: #e7d5c5;
    --hero-background: linear-gradient(135deg, #faf6f0 0%, #eee1d4 100%);
    --hero-columns: minmax(0, .94fr) minmax(360px, 1fr) minmax(230px, .5fr);
    --hero-main-radius: 48px 240px 48px 48px;
    --hero-side-radius: 120px 28px 120px 28px;
    --media-radius: 26px 90px 26px 26px;
    --section-soft: #f8f1e9;
}
body.glow-site-longtimeliner-braunschweig-de {
    --paper: #fffbf6;
    --cream: #f3e5d6;
    --peach: #dcc0a3;
    --hero-background: linear-gradient(120deg, #faf1e5 0%, #e8d0b8 100%);
    --hero-main-radius: 34px 230px 34px 34px;
    --hero-side-radius: 130px 130px 18px 18px;
    --media-radius: 24px;
    --section-soft: #faf2e8;
}
body.glow-site-longtimeliner-permanentmakeup-de {
    --paper: #fdfaf5;
    --cream: #eee3d3;
    --peach: #d6b896;
    --hero-background: linear-gradient(145deg, #f8f1e7 0%, #e4ceb2 100%);
    --hero-columns: minmax(0, .98fr) minmax(350px, .95fr) minmax(250px, .56fr);
    --hero-main-radius: 230px 38px 38px 38px;
    --hero-side-radius: 26px 120px 26px 120px;
    --media-radius: 70px 20px 70px 20px;
    --section-soft: #f6eee2;
}
body.glow-site-wimpernkranzverdichtung-braunschweig-de {
    --paper: #fbfbf8;
    --cream: #eef0e9;
    --peach: #d8ded1;
    --hero-background: linear-gradient(135deg, #f6f5ef 0%, #dde1d6 100%);
    --hero-main-radius: 260px 260px 260px 26px;
    --hero-side-radius: 50% 50% 28px 28px;
    --media-radius: 120px 120px 22px 22px;
    --section-soft: #f4f5f0;
}
body.glow-site-augenbrauen-braunschweig-de {
    --paper: #fffbf8;
    --cream: #f3e7dc;
    --peach: #e5c7b6;
    --hero-background: linear-gradient(130deg, #fbf1e9 0%, #ead1c2 100%);
    --hero-main-radius: 250px 250px 32px 32px;
    --hero-side-radius: 28px 140px 28px 140px;
    --media-radius: 26px 90px 26px 26px;
    --section-soft: #faf0ea;
}
body.glow-site-lippen-braunschweig-de {
    --paper: #fffafb;
    --cream: #f9e9ed;
    --peach: #edc9d2;
    --hero-background: linear-gradient(135deg, #fff3f5 0%, #f0ced6 100%);
    --hero-main-radius: 270px 270px 72px 72px;
    --hero-side-radius: 50% 50% 28px 28px;
    --media-radius: 120px 120px 28px 28px;
    --section-soft: #fdf0f3;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 116px; }
body {
    margin: 0;
    overflow-x: hidden;
    color: var(--ink);
    background: var(--paper);
    font-family: var(--sans);
    font-size: 17px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    font-optical-sizing: auto;
}
body.menu-is-open { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-underline-offset: .2em; }
button, input, textarea, select { font: inherit; }
figure, blockquote { margin: 0; }
p { margin: 0 0 1.15em; }
h1, h2, h3, h4 {
    margin: 0;
    color: var(--ink);
    font-family: var(--display);
    font-weight: 500;
    line-height: 1.07;
    letter-spacing: -.028em;
    font-optical-sizing: auto;
}
h1 { font-size: clamp(3.35rem, 6.15vw, 6.65rem); }
h2 { font-size: clamp(2.45rem, 4.15vw, 4.6rem); }
h3 { font-size: clamp(1.55rem, 2.1vw, 2.2rem); line-height: 1.12; }
::selection { color: var(--white); background: var(--accent-dark); }

.glow-container { width: min(var(--container), calc(100% - 64px)); margin-inline: auto; }
.glow-section { position: relative; padding: clamp(84px, 9vw, 150px) 0; }
.skip-link {
    position: fixed;
    z-index: 9999;
    top: 10px;
    left: 10px;
    padding: 12px 18px;
    color: var(--white);
    background: var(--dark);
    transform: translateY(-160%);
}
.skip-link:focus { transform: translateY(0); }
.kicker, .eyebrow, .micro-label {
    margin: 0 0 16px;
    color: var(--accent-dark);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .16em;
    line-height: 1.3;
    text-transform: uppercase;
}
.eyebrow::before, .kicker::before {
    display: inline-block;
    width: 30px;
    height: 1px;
    margin: 0 10px 4px 0;
    background: currentColor;
    content: "";
}
.intro-large { font-size: clamp(1.25rem, 2vw, 1.7rem); line-height: 1.55; }
.section-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, .72fr);
    gap: clamp(28px, 6vw, 96px);
    align-items: end;
    margin-bottom: clamp(42px, 6vw, 84px);
}
.section-heading h2 { max-width: 900px; }
.section-heading > p { max-width: 580px; margin-bottom: 4px; color: var(--muted); font-size: 1.05rem; }

.announcement-bar { color: var(--white); background: var(--dark); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.announcement-bar .glow-container { display: flex; justify-content: space-between; gap: 20px; padding-block: 8px; }
.announcement-bar a { text-decoration: none; }
.site-header {
    position: sticky;
    z-index: 1000;
    top: 0;
    border-bottom: 1px solid transparent;
    background: rgba(255, 253, 251, .94);
    backdrop-filter: blur(18px);
    transition: box-shadow .25s ease, border-color .25s ease;
}
.site-header.is-scrolled { border-color: var(--line); box-shadow: 0 12px 34px rgba(42, 29, 24, .07); }
.header-inner { display: grid; grid-template-columns: 260px 1fr; gap: 34px; align-items: center; min-height: 86px; }
.site-logo { display: inline-flex; align-items: center; width: fit-content; text-decoration: none; }
.site-logo img { width: 188px; height: 52px; object-fit: contain; object-position: left center; }
.site-navigation { display: flex; justify-content: flex-end; align-items: center; gap: clamp(18px, 2.5vw, 38px); }
.site-navigation a { position: relative; color: var(--ink); font-size: .78rem; font-weight: 750; letter-spacing: .055em; text-decoration: none; text-transform: uppercase; }
.site-navigation a:not(.nav-booking)::after {
    position: absolute;
    right: 0;
    bottom: -8px;
    left: 0;
    height: 1px;
    background: var(--accent);
    content: "";
    transform: scaleX(0);
    transform-origin: right;
    transition: transform .25s ease;
}
.site-navigation a:hover::after, .site-navigation a[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }
.nav-booking { padding: 12px 18px; border: 1px solid var(--ink); }
.nav-booking:hover { color: var(--white); background: var(--ink); }
.menu-toggle { display: none; border: 0; background: transparent; }

.glow-button {
    display: inline-flex;
    min-height: 54px;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    padding: 14px 20px;
    border: 1px solid transparent;
    color: var(--white);
    background: var(--accent);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .075em;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
    transition: transform .25s ease, color .25s ease, background .25s ease, box-shadow .25s ease;
}
.glow-button:hover { transform: translateY(-2px); box-shadow: 0 16px 32px rgba(74, 44, 33, .17); }
.glow-button--outline { border-color: var(--ink); color: var(--ink); background: transparent; }
.glow-button--outline:hover { color: var(--white); background: var(--ink); }
.glow-button--light { color: var(--ink); background: var(--white); }
.glow-button--ghost { border-color: rgba(255,255,255,.45); color: var(--white); background: transparent; }
.glow-button--text { min-height: 0; padding: 10px 0; border-bottom-color: var(--ink); color: var(--ink); background: transparent; }
.glow-button--text:hover { box-shadow: none; }
.text-link { display: inline-flex; gap: 8px; align-items: center; color: var(--ink); font-size: .78rem; font-weight: 800; letter-spacing: .055em; text-decoration: none; text-transform: uppercase; }
.text-link span { color: var(--accent); }
.text-link:hover { text-decoration: underline; }

.hero-section { position: relative; padding: clamp(54px, 6vw, 92px) 0 0; overflow: hidden; background: var(--hero-background); }
.hero-section::after {
    position: absolute;
    top: 0;
    right: 0;
    width: 32vw;
    height: 32vw;
    min-width: 330px;
    min-height: 330px;
    border: 1px solid rgba(255,255,255,.36);
    border-radius: 50%;
    content: "";
    transform: translate(28%, -36%);
}
.hero-bloom {
    position: absolute;
    top: -44px;
    right: -26px;
    width: 250px;
    height: 250px;
    opacity: .58;
    background: radial-gradient(ellipse at center, var(--accent) 0 18%, transparent 19%) 50% 0/76px 132px,
                radial-gradient(ellipse at center, var(--accent) 0 18%, transparent 19%) 0 50%/132px 76px;
    transform: rotate(23deg);
}
.hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: var(--hero-columns); min-height: 655px; align-items: stretch; }
.hero-copy { display: flex; flex-direction: column; justify-content: center; padding: 50px clamp(34px, 5vw, 74px) 80px 0; }
.hero-copy h1 { max-width: 700px; line-height: 1.08; }
.hero-lead { max-width: 620px; margin: 28px 0 30px; color: #5d4f49; font-size: clamp(1.08rem, 1.6vw, 1.35rem); line-height: 1.6; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.hero-proof { display: flex; gap: 10px; align-items: center; margin-top: 34px; color: var(--muted); font-size: .78rem; font-weight: 700; }
.hero-proof > span:first-child { color: var(--accent); font-size: 1.15rem; }
.hero-main-media { position: relative; min-height: 655px; overflow: hidden; border-radius: var(--hero-main-radius); background: var(--peach); }
.hero-main-media .hero-image { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; }
.hero-main-media::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 62%, rgba(26,18,15,.32)); content: ""; }
.hero-main-media figcaption { position: absolute; z-index: 2; right: 24px; bottom: 22px; left: 24px; color: var(--white); font-size: .7rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.hero-side { display: grid; grid-template-rows: minmax(280px, .9fr) 1.1fr; padding: 0 18px; border-right: 1px solid rgba(46,32,26,.2); }
.hero-side-media { min-height: 250px; overflow: hidden; border-radius: var(--hero-side-radius); background: var(--peach); }
.hero-side-media img { width: 100%; height: 100%; object-fit: cover; }
.hero-story { display: flex; flex-direction: column; justify-content: center; padding: clamp(26px, 3vw, 44px); }
.hero-story h2 { font-size: clamp(1.8rem, 2.1vw, 2.65rem); line-height: 1.05; }
.hero-story p:not(.micro-label) { margin: 20px 0; color: #645650; font-size: .93rem; }
.hero-facts { position: relative; z-index: 3; display: grid; grid-template-columns: repeat(4, 1fr); margin-top: -1px; border: 1px solid rgba(46,32,26,.2); background: var(--fact-background); }
.hero-facts > div { display: flex; min-height: 112px; flex-direction: column; justify-content: center; padding: 22px 30px; border-right: 1px solid rgba(46,32,26,.18); }
.hero-facts > div:last-child { border-right: 0; }
.hero-facts strong { font-family: var(--display); font-size: 2.1rem; font-weight: 500; line-height: 1; }
.hero-facts span { margin-top: 8px; color: var(--muted); font-size: .73rem; font-weight: 700; letter-spacing: .04em; }

.intro-section { background: var(--paper); }
.intro-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.05fr); gap: clamp(50px, 9vw, 150px); }
.intro-layout h2 { max-width: 680px; }
.intro-layout > div:last-child { padding-top: 6px; color: var(--muted); }

.treatments-section { background: var(--section-soft); }
.treatment-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.treatment-card { display: flex; min-width: 0; flex-direction: column; border: 1px solid var(--line); background: var(--paper); transition: transform .3s ease, box-shadow .3s ease; }
.treatment-card:hover { transform: translateY(-7px); box-shadow: var(--shadow); }
.treatment-media { position: relative; display: block; height: 370px; overflow: hidden; border-radius: var(--media-radius); background: var(--peach); }
.treatment-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.2,.75,.2,1); }
.treatment-card:hover .treatment-media img { transform: scale(1.045); }
.card-index { color: var(--accent); font-family: var(--display); font-size: 1.45rem; }
.treatment-media .card-index { position: absolute; right: 0; bottom: 0; min-width: 64px; padding: 12px; color: var(--ink); background: var(--paper); text-align: center; }
.treatment-content { display: flex; flex: 1; flex-direction: column; padding: 30px; }
.treatment-content h3 { margin-bottom: 16px; }
.treatment-content > p:not(.micro-label) { color: var(--muted); }
.card-meta { display: flex; justify-content: space-between; gap: 18px; align-items: center; margin-top: auto; padding-top: 22px; border-top: 1px solid var(--line); font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.card-meta a { text-decoration: none; }
.card-meta a span { color: var(--accent); }

.gallery-section { overflow: hidden; color: var(--white); background: var(--dark); }
.gallery-section::before { position: absolute; top: -180px; right: -130px; width: 440px; height: 440px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; content: ""; }
.section-heading--light h2, .section-heading--light > p { color: var(--white); }
.section-heading--light > p { opacity: .68; }
.gallery-mosaic { display: grid; grid-template-columns: 1.15fr .8fr 1fr; grid-template-rows: 290px 290px; gap: 16px; }
.gallery-item { position: relative; overflow: hidden; background: #463d39; }
.gallery-item--1 { grid-row: 1 / span 2; }
.gallery-item--4 { grid-column: 3; grid-row: 1 / span 2; }
.gallery-item--5, .gallery-item--6 { display: none; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.75,.2,1), filter .4s ease; }
.gallery-item:hover img { filter: saturate(1.08); transform: scale(1.035); }
.gallery-item figcaption { position: absolute; right: 14px; bottom: 14px; left: 14px; padding: 8px 10px; color: var(--white); background: rgba(24,20,18,.56); font-size: .64rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; backdrop-filter: blur(8px); }
.gallery-action { display: flex; justify-content: flex-end; margin-top: 24px; }

.knowledge-section { background: var(--paper); }
.knowledge-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.knowledge-card { min-height: 340px; padding: clamp(28px, 4vw, 52px); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.knowledge-card h3 { margin: 62px 0 22px; }
.knowledge-card p { color: var(--muted); font-size: .96rem; }
.editorial-note { display: grid; grid-template-columns: .4fr 1fr 1fr; gap: 40px; align-items: start; margin-top: 44px; padding: 42px; color: var(--white); background: var(--dark); }
.editorial-note .kicker { color: #f3b8a8; }
.editorial-note h3 { color: var(--white); font-size: clamp(2rem, 3.2vw, 3.6rem); }
.editorial-note p:last-child { opacity: .74; }

.process-section { background: linear-gradient(115deg, #f5dfd5, #fbf2ed); }
.process-layout { display: grid; grid-template-columns: minmax(280px, .7fr) minmax(0, 1.15fr); gap: clamp(50px, 9vw, 130px); }
.process-intro { position: sticky; top: 140px; align-self: start; }
.process-intro h2 { margin-bottom: 24px; }
.process-intro > p:not(.kicker) { max-width: 520px; color: var(--muted); }
.process-list { border-top: 1px solid var(--line); }
.process-step { display: grid; grid-template-columns: 72px 1fr; gap: 24px; padding: 32px 0; border-bottom: 1px solid var(--line); }
.process-step > span { color: var(--accent); font-family: var(--display); font-size: 1.7rem; }
.process-step h3 { margin-bottom: 10px; }
.process-step p { max-width: 660px; margin: 0; color: var(--muted); }

.prices-section { background: var(--paper); }
.price-list { border-top: 1px solid var(--ink); }
.price-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 40px; align-items: center; padding: 28px 6px; border-bottom: 1px solid var(--line); }
.price-row h3 { font-size: clamp(1.65rem, 2.5vw, 2.65rem); }
.price-row p { margin: 8px 0 0; color: var(--muted); font-size: .9rem; }
.price-row .micro-label { margin: 0 0 7px; color: var(--accent-dark); font-size: .62rem; }
.price-row strong { min-width: 130px; color: var(--ink); font-family: var(--display); font-size: clamp(1.9rem, 3vw, 3rem); font-weight: 500; text-align: right; }
.price-footer { display: flex; justify-content: space-between; gap: 24px; align-items: center; margin-top: 28px; }
.price-footer p { margin: 0; color: var(--muted); font-size: .85rem; }

.reviews-section { color: var(--white); background: #cb6e59; }
.reviews-layout { display: grid; grid-template-columns: minmax(280px, .72fr) minmax(0, 1.2fr); gap: clamp(50px, 8vw, 120px); }
.reviews-intro .kicker { color: #ffe9e2; }
.reviews-intro h2, .reviews-intro .text-link { color: var(--white); }
.reviews-intro > p:not(.kicker) { max-width: 520px; margin: 26px 0; color: rgba(255,255,255,.74); }
.review-cards { display: grid; gap: 16px; }
.review-card { padding: 30px; border: 1px solid rgba(255,255,255,.36); background: rgba(255,255,255,.1); backdrop-filter: blur(12px); }
.review-card .stars { margin-bottom: 14px; color: #ffe8a6; letter-spacing: .18em; }
.review-card p { margin-bottom: 18px; font-family: var(--display); font-size: clamp(1.35rem, 2vw, 2rem); line-height: 1.3; }
.review-card cite { color: rgba(255,255,255,.7); font-size: .7rem; font-style: normal; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }

.guides-section { background: #fff8f4; }
.guide-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.guide-card { display: flex; min-height: 300px; flex-direction: column; padding: clamp(28px, 4vw, 46px); border: 1px solid var(--line); background: var(--paper); }
.guide-card h3 { margin-bottom: 20px; }
.guide-card h3 a { text-decoration: none; }
.guide-card h3 a:hover { color: var(--accent-dark); }
.guide-card > p:not(.micro-label) { color: var(--muted); }
.guide-card .text-link { margin-top: auto; padding-top: 18px; }

.faq-section { background: var(--paper); }
.faq-layout { display: grid; grid-template-columns: minmax(280px, .7fr) minmax(0, 1.2fr); gap: clamp(50px, 8vw, 120px); }
.faq-intro { position: sticky; top: 140px; align-self: start; }
.faq-intro h2 { margin-bottom: 24px; }
.faq-intro > p:not(.kicker) { color: var(--muted); }
.faq-list { border-top: 1px solid var(--ink); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { display: flex; min-height: 82px; align-items: center; justify-content: space-between; gap: 24px; cursor: pointer; list-style: none; font-family: var(--display); font-size: clamp(1.3rem, 2vw, 1.9rem); font-weight: 500; line-height: 1.2; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span:last-child { color: var(--accent); font-family: var(--sans); font-size: 1.5rem; transition: transform .2s ease; }
.faq-list details[open] summary span:last-child { transform: rotate(45deg); }
.faq-list details p { max-width: 780px; padding: 0 54px 24px 0; color: var(--muted); }

.location-section { padding-top: 30px; background: var(--paper); }
.location-card { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .55fr); min-height: 520px; overflow: hidden; color: var(--white); background: var(--dark); }
.location-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(40px, 7vw, 94px); }
.location-copy .kicker { color: #efac98; }
.location-copy h2 { max-width: 760px; color: var(--white); }
.location-copy > p:not(.kicker) { margin: 28px 0; color: rgba(255,255,255,.7); }
.location-image { min-height: 420px; }
.location-image img { width: 100%; height: 100%; object-fit: cover; }

.subhero-section { padding: clamp(60px, 7vw, 104px) 0; overflow: hidden; background: linear-gradient(135deg, var(--cream), var(--peach)); }
.subhero-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(280px, .52fr); gap: clamp(40px, 8vw, 100px); align-items: center; }
.subhero-grid h1 { max-width: 900px; font-size: clamp(3.4rem, 5.7vw, 6.35rem); }
.subhero-grid > div > p:last-child { max-width: 760px; margin-top: 28px; color: var(--muted); font-size: 1.1rem; }
.subhero-grid figure { height: 440px; overflow: hidden; border-radius: 220px 220px 0 0; background: var(--peach-deep); }
.subhero-grid figure img { width: 100%; height: 100%; object-fit: cover; }
.contact-section { background: var(--paper); }
.contact-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, .72fr); gap: clamp(50px, 9vw, 140px); align-items: start; }
.contact-grid h2 { margin-bottom: 28px; }
.contact-grid > div:first-child > p:not(.kicker) { color: var(--muted); }
.contact-panel { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; padding: clamp(30px, 5vw, 56px); border: 1px solid var(--line); background: #fff8f4; box-shadow: var(--shadow); }
.contact-panel > a:not(.glow-button) { font-family: var(--display); font-size: clamp(1.5rem, 2.6vw, 2.6rem); text-decoration: none; }
.standard-page { min-height: 60vh; }
.content-prose { max-width: 900px; }
.content-prose h1 { margin-bottom: 38px; font-size: clamp(3.35rem, 5.8vw, 6.2rem); }
.content-prose h2 { margin: 56px 0 22px; font-size: clamp(2.25rem, 3.7vw, 3.9rem); }
.content-prose p, .content-prose li { color: var(--muted); font-size: 1.08rem; }
.content-hero { margin: 38px 0; }

.site-footer { padding: 84px 0 30px; color: #d7cdca; background: #1f1b19; }
.footer-main { display: grid; grid-template-columns: 1.3fr .75fr .65fr .65fr; gap: 54px; padding-bottom: 62px; }
.footer-brand img { width: 210px; height: 62px; object-fit: contain; object-position: left; filter: invert(1); }
.footer-brand p { max-width: 420px; color: #9d918c; }
.site-footer a { color: #d7cdca; font-size: .88rem; text-decoration: none; line-height: 2.1; }
.site-footer a:hover { color: var(--white); text-decoration: underline; }
.footer-title { margin-bottom: 14px; color: var(--white); font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.footer-main > div > p:not(.footer-title) { color: #9d918c; font-size: .9rem; }
.footer-bottom { display: flex; justify-content: space-between; gap: 24px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.12); color: #7e7470; font-size: .7rem; letter-spacing: .04em; }
.mobile-booking { display: none; }

.has-js .reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.75,.2,1); }
.has-js .reveal.is-visible { opacity: 1; transform: translateY(0); }
.has-js .treatment-card:nth-child(2), .has-js .knowledge-card:nth-child(2), .has-js .guide-card:nth-child(2) { transition-delay: .08s; }
.has-js .treatment-card:nth-child(3), .has-js .knowledge-card:nth-child(3) { transition-delay: .16s; }

@media (max-width: 1120px) {
    .header-inner { grid-template-columns: 210px 1fr; }
    .site-navigation { gap: 18px; }
    .site-navigation a { font-size: .7rem; }
    .hero-grid { grid-template-columns: minmax(0, 1fr) minmax(330px, .8fr); }
    .hero-side { display: none; }
    .hero-copy { padding-right: 50px; }
    .gallery-mosaic { grid-template-columns: 1fr 1fr; }
    .gallery-item--4 { grid-column: 2; }
    .footer-main { grid-template-columns: 1.2fr 1fr 1fr; }
    .footer-main > div:last-child { grid-column: 2; }
}

@media (max-width: 900px) {
    html { scroll-padding-top: 90px; }
    .announcement-bar span { display: none; }
    .announcement-bar .glow-container { justify-content: center; }
    .site-header { backdrop-filter: none; }
    .header-inner { position: relative; grid-template-columns: 1fr auto; min-height: 74px; }
    .site-logo { position: relative; z-index: 4; }
    .site-logo img { width: 162px; height: 39px; }
    .menu-toggle { position: relative; z-index: 4; display: flex; align-items: center; gap: 10px; padding: 10px 0 10px 12px; cursor: pointer; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
    .menu-toggle i, .menu-toggle i::before { display: block; width: 22px; height: 1px; background: var(--ink); content: ""; transition: transform .2s ease; }
    .menu-toggle i::before { transform: translateY(6px); }
    .menu-toggle[aria-expanded="true"] i { transform: rotate(45deg); }
    .menu-toggle[aria-expanded="true"] i::before { transform: rotate(-90deg); }
    .site-navigation { position: absolute; z-index: 3; top: 100%; left: 0; display: flex; visibility: hidden; width: 100%; height: calc(100dvh - 74px); overflow-y: auto; flex-direction: column; justify-content: center; align-items: center; gap: 24px; padding: 40px 30px 88px; opacity: 0; background: var(--cream); transform: translateY(-16px); transition: opacity .25s ease, transform .25s ease, visibility .25s; }
    .site-navigation.is-open { visibility: visible; opacity: 1; transform: translateY(0); }
    .site-navigation a { font-family: var(--display); font-size: clamp(1.7rem, 7vw, 2.5rem); font-weight: 500; letter-spacing: -.02em; text-transform: none; }
    .nav-booking { margin-top: 14px; padding: 14px 22px; font-family: var(--sans) !important; font-size: .8rem !important; font-weight: 800 !important; text-transform: uppercase !important; }
    .hero-section { padding-top: 34px; }
    .hero-grid { grid-template-columns: 1fr; min-height: auto; }
    .hero-copy { padding: 42px 0 46px; }
    .hero-main-media { height: min(116vw, 670px); min-height: 0; border-radius: var(--hero-main-radius); }
    .hero-facts { grid-template-columns: repeat(2, 1fr); }
    .hero-facts > div:nth-child(2) { border-right: 0; }
    .hero-facts > div:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
    .intro-layout, .section-heading, .process-layout, .reviews-layout, .faq-layout, .contact-grid { grid-template-columns: 1fr; }
    .section-heading { align-items: start; }
    .process-intro, .faq-intro { position: static; }
    .treatment-grid { grid-template-columns: 1fr 1fr; }
    .treatment-card:last-child { grid-column: 1 / span 2; }
    .treatment-card:last-child .treatment-media { height: 420px; }
    .knowledge-grid { grid-template-columns: 1fr; }
    .knowledge-card { min-height: 0; }
    .knowledge-card h3 { margin-top: 34px; }
    .editorial-note { grid-template-columns: 1fr; }
    .location-card { grid-template-columns: 1fr; }
    .location-image { height: 420px; }
    .subhero-grid { grid-template-columns: 1fr; }
    .subhero-grid figure { height: 480px; max-width: 520px; }
    .footer-main { grid-template-columns: 1fr 1fr; }
    .footer-brand { grid-column: 1 / span 2; }
    .footer-main > div:last-child { grid-column: auto; }
}

@media (max-width: 640px) {
    body { padding-bottom: 70px; font-size: 16px; }
    .glow-container { width: min(var(--container), calc(100% - 36px)); }
    .glow-section { padding: 74px 0; }
    h1 { font-size: clamp(3.35rem, 16vw, 5rem); }
    h2 { font-size: clamp(2.45rem, 12vw, 3.8rem); }
    .announcement-bar { font-size: .64rem; }
    .hero-copy { padding-top: 28px; }
    .hero-lead { margin-top: 20px; font-size: 1rem; }
    .hero-actions { align-items: stretch; }
    .hero-actions .glow-button { width: 100%; }
    .hero-actions .glow-button--text { width: auto; }
    .hero-proof { align-items: flex-start; }
    .hero-main-media { height: 125vw; border-radius: var(--hero-main-radius); }
    .hero-main-media .hero-image { object-position: center top; }
    .hero-facts { width: 100%; }
    .hero-facts > div { min-height: 96px; padding: 18px; }
    .hero-facts strong { font-size: 1.8rem; }
    .hero-facts span { font-size: .64rem; }
    .section-heading { gap: 22px; margin-bottom: 38px; }
    .treatment-grid { grid-template-columns: 1fr; }
    .treatment-card:last-child { grid-column: auto; }
    .treatment-media, .treatment-card:last-child .treatment-media { height: 360px; }
    .gallery-mosaic { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 250px 210px 230px; }
    .gallery-item--1 { grid-column: 1 / span 2; grid-row: 1; }
    .gallery-item--2 { grid-column: 1; grid-row: 2; }
    .gallery-item--3 { grid-column: 2; grid-row: 2; }
    .gallery-item--4 { grid-column: 1 / span 2; grid-row: 3; }
    .gallery-action .glow-button { width: 100%; }
    .editorial-note { padding: 28px; }
    .process-step { grid-template-columns: 50px 1fr; gap: 14px; }
    .price-row { grid-template-columns: 1fr; gap: 14px; }
    .price-row strong { text-align: left; }
    .price-footer { align-items: stretch; flex-direction: column; }
    .guide-grid { grid-template-columns: 1fr; }
    .guide-card { min-height: 260px; }
    .faq-list summary { min-height: 74px; font-size: 1.25rem; }
    .faq-list details p { padding-right: 0; }
    .location-section { padding-top: 0; }
    .location-card { margin-inline: -18px; }
    .location-copy { padding: 48px 28px; }
    .location-image { height: 390px; }
    .subhero-grid h1 { font-size: clamp(3.15rem, 14vw, 4.8rem); }
    .subhero-grid figure { height: 114vw; max-height: 520px; }
    .contact-panel { padding: 28px; }
    .contact-panel > a:not(.glow-button) { font-size: 1.38rem; }
    .site-footer { padding-top: 60px; }
    .footer-main { grid-template-columns: 1fr; gap: 38px; }
    .footer-brand { grid-column: auto; }
    .footer-bottom { flex-direction: column; }
    .mobile-booking { position: fixed; z-index: 1100; right: 0; bottom: 0; left: 0; display: flex; min-height: 66px; align-items: center; justify-content: space-between; padding: 14px 20px; color: var(--white); background: var(--accent-dark); font-size: .75rem; font-weight: 850; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; box-shadow: 0 -12px 30px rgba(34,24,20,.16); }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
    .has-js .reveal { opacity: 1; transform: none; }
}
