@charset "UTF-8";

:root {
    --plum: #20192a;
    --plum-soft: #2e2438;
    --iris-deep: #4b365e;
    --iris: #66507b;
    --rose: #d6a4a6;
    --rose-light: #e5bfc1;
    --lavender: #c7b5cf;
    --pearl: #f8f4f5;
    --pearl-deep: #f0e9ed;
    --blush: #eadfe7;
    --ink: #261f2c;
    --muted: #574c5b;
    --line-light: rgba(38,31,44,.15);
    --line-dark: rgba(248,244,245,.18);
    --display: "Bodoni 72", "Bodoni MT", Didot, "Times New Roman", serif;
    --body: Aptos, "Segoe UI Variable", "Helvetica Neue", Arial, sans-serif;
    --wrapper: min(1240px, calc(100vw - 96px));
    --header-height: 84px;
    --ease: cubic-bezier(.22, 1, .36, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header-height); }
body { margin: 0; background: var(--pearl); color: var(--ink); font-family: var(--body); font-size: 16px; line-height: 1.7; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
body.menu_open { overflow: hidden; }
img { display: block; max-width: 100%; }
svg { display: block; }
a { color: inherit; }
button, input, select, textarea { color: inherit; font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.svg_sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.skip_link { position: fixed; top: 12px; left: 12px; z-index: 12000; padding: .75rem 1rem; border-radius: 999px; background: var(--plum); color: var(--pearl); text-decoration: none; transform: translateY(-160%); transition: transform .2s; }
.skip_link:focus { transform: none; }
:focus-visible { outline: 3px solid var(--rose); outline-offset: 4px; }

.scroll_progress { position: fixed; z-index: 11000; inset: 0 auto auto 0; width: 0; height: 3px; background: linear-gradient(90deg, var(--iris), var(--rose)); pointer-events: none; }
.site_header { position: fixed; z-index: 10000; inset: 0 0 auto; height: var(--header-height); border-bottom: 1px solid transparent; background: rgba(248,244,245,.84); backdrop-filter: blur(16px); transition: background .3s, border-color .3s, box-shadow .3s; }
.site_header.is_scrolled { border-color: var(--line-light); background: rgba(248,244,245,.96); box-shadow: 0 12px 34px rgba(32,25,42,.08); }
.header_inner { width: var(--wrapper); height: 100%; margin: auto; display: grid; grid-template-columns: minmax(210px, 290px) 1fr auto; align-items: center; gap: 2rem; }
.brand { display: block; width: min(100%, 260px); }
.brand img { width: 100%; height: auto; }
.desktop_nav { display: flex; justify-content: center; gap: clamp(1rem, 2.1vw, 2.2rem); }
.desktop_nav a { position: relative; padding: .55rem 0; color: var(--muted); font-size: .75rem; font-weight: 650; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.desktop_nav a::after { content: ""; position: absolute; right: 50%; bottom: 0; left: 50%; height: 1px; background: var(--iris); transition: right .3s var(--ease), left .3s var(--ease); }
.desktop_nav a:hover, .desktop_nav a.active { color: var(--plum); }
.desktop_nav a:hover::after, .desktop_nav a.active::after { right: 0; left: 0; }
.header_contact { padding: .7rem 1.25rem; border: 1px solid var(--plum); border-radius: 999px; color: var(--plum); font-size: .75rem; font-weight: 750; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; transition: background .3s, color .3s; }
.header_contact:hover { background: var(--plum); color: var(--pearl); }
.menu_toggle { display: none; width: 44px; height: 44px; place-items: center; border: 1px solid var(--line-light); border-radius: 50%; background: transparent; color: var(--plum); cursor: pointer; }
.menu_toggle svg { width: 22px; height: 22px; }

.mobile_menu { position: fixed; inset: 0; z-index: 10500; display: grid; align-content: center; padding: 7rem clamp(2rem, 8vw, 6rem); background: var(--plum); color: var(--pearl); opacity: 0; overflow-y: auto; overscroll-behavior: contain; visibility: hidden; transform: scale(1.035); transition: opacity .35s, visibility .35s, transform .55s var(--ease); }
.mobile_menu.is_open { opacity: 1; visibility: visible; transform: none; }
.mobile_close { position: absolute; top: 24px; right: 24px; display: grid; width: 50px; height: 50px; place-items: center; border: 1px solid var(--line-dark); border-radius: 50%; background: transparent; color: var(--pearl); cursor: pointer; }
.mobile_close svg { width: 21px; height: 21px; }
.menu_label { margin: 0 0 2rem; color: var(--rose-light); font-size: .75rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.mobile_menu nav { display: grid; }
.mobile_menu nav a { display: flex; align-items: center; gap: 1rem; padding: .65rem 0; border-bottom: 1px solid var(--line-dark); font-family: var(--display); font-size: clamp(2rem, 6vw, 3.5rem); line-height: 1.15; text-decoration: none; }
.mobile_menu nav span { color: var(--rose); font: 650 .75rem/1 var(--body); letter-spacing: .14em; }
.mobile_phone { display: flex; flex-direction: column; margin-top: 2rem; color: var(--rose-light); font-family: var(--display); font-size: 1.65rem; text-decoration: none; }
.mobile_phone span { color: var(--lavender); font: 650 .75rem/1.4 var(--body); letter-spacing: .14em; text-transform: uppercase; }

.hero { position: relative; min-height: 100svh; padding-top: var(--header-height); background: var(--pearl); overflow: hidden; isolation: isolate; }
.hero::before { content: ""; position: absolute; z-index: -2; top: 4%; right: -10%; width: 58vw; height: 58vw; border-radius: 50%; background: radial-gradient(circle at 40% 40%, rgba(214,164,166,.32), rgba(199,181,207,.12) 45%, transparent 70%); filter: blur(8px); }
.hero_contour { position: absolute; z-index: -1; bottom: -15%; left: -8%; width: 58vw; height: 76vw; color: var(--iris); opacity: .1; }
.hero_contour path { fill: none; stroke: currentColor; stroke-width: 1.2; animation: contourFloat 26s ease-in-out infinite alternate; }
.hero_contour path:nth-child(2) { animation-delay: -8s; }
.hero_contour path:nth-child(3) { animation-delay: -16s; }
@keyframes contourFloat { to { transform: translate3d(18px, -12px, 0); } }
.hero_inner { width: var(--wrapper); min-height: calc(100svh - var(--header-height)); margin: auto; display: grid; grid-template-columns: .92fr 1.08fr; align-items: center; gap: clamp(2.5rem, 6vw, 7rem); padding: 4.5rem 0 5rem; }
.hero_copy { position: relative; z-index: 3; }
.eyebrow { margin: 0 0 1.25rem; color: var(--iris-deep); font-size: .75rem; font-weight: 750; letter-spacing: .16em; line-height: 1.55; text-transform: uppercase; }
.hero h1 { max-width: 12ch; margin: 0; font-family: var(--display); font-size: clamp(3rem, 4.8vw, 5.5rem); font-weight: 400; letter-spacing: -.035em; line-height: .98; }
.hero h1 em, .intro_title h2 em { color: var(--iris); font-weight: 400; }
.fitting_copy h2 em { color: var(--rose-light); font-weight: 400; }
.hero_lead { max-width: 620px; margin: 1.8rem 0 0; color: var(--muted); font-size: clamp(1rem, 1.28vw, 1.16rem); }
.hero_actions { display: flex; align-items: center; gap: 1.5rem; margin-top: 2.2rem; }
.button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: .7rem; padding: .85rem 1.45rem; border: 1px solid var(--plum); border-radius: 999px; background: var(--plum); color: var(--pearl); font-size: .75rem; font-weight: 750; letter-spacing: .1em; line-height: 1.2; text-decoration: none; text-transform: uppercase; cursor: pointer; transition: background .3s, color .3s, transform .3s var(--ease); }
.button:hover { background: var(--iris-deep); transform: translateY(-2px); }
.button svg { width: 17px; height: 17px; }
.button_outline { background: transparent; color: var(--plum); }
.button_outline:hover { color: var(--pearl); }
.text_link { position: relative; display: inline-flex; align-items: center; padding-bottom: .3rem; color: var(--iris-deep); font-size: .75rem; font-weight: 750; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.text_link::after { content: ""; position: absolute; right: 0; bottom: 0; left: 0; height: 1px; background: currentColor; transform-origin: right; transition: transform .35s var(--ease); }
.text_link:hover::after { transform: scaleX(.55); }
.hero_proof { display: flex; gap: 1.4rem; margin-top: 3rem; }
.hero_proof span { display: flex; min-width: 100px; flex-direction: column; color: var(--muted); font-size: .75rem; line-height: 1.45; }
.hero_proof strong { color: var(--plum); font-family: var(--display); font-size: 1.1rem; font-weight: 400; }
.hero_image { position: relative; min-height: min(72svh, 760px); margin: 0; border-radius: 46% 46% 24px 24px / 25% 25% 24px 24px; overflow: hidden; box-shadow: 0 30px 70px rgba(32,25,42,.18); }
.hero_image::after { content: ""; position: absolute; inset: 0; border: 1px solid rgba(248,244,245,.45); border-radius: inherit; box-shadow: inset 0 0 0 12px rgba(248,244,245,.06); pointer-events: none; }
.hero_image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 70% center; }
.hero_image figcaption { position: absolute; right: 1.8rem; bottom: 1.8rem; display: flex; align-items: center; gap: .8rem; padding: .8rem 1rem; border-radius: 999px; background: rgba(32,25,42,.86); color: var(--pearl); backdrop-filter: blur(10px); }
.hero_image figcaption svg { width: 23px; height: 23px; color: var(--rose-light); }
.hero_image figcaption span { font-size: .72rem; font-weight: 700; letter-spacing: .1em; line-height: 1.4; text-transform: uppercase; }

.satin_divider { position: relative; z-index: 3; height: 80px; margin-top: -1px; margin-bottom: -1px; overflow: hidden; }
.satin_divider svg { width: 100%; height: 100%; }
.satin_base, .satin_fold { stroke: none; }
.satin_highlight { fill: none; stroke-width: 1.3; stroke-dasharray: 10 12; animation: satinStitch 26s linear infinite; }
.satin_to_pearl { background: var(--pearl); }
.satin_to_pearl .satin_base { fill: var(--pearl); }
.satin_to_pearl .satin_fold { fill: var(--blush); opacity: .8; }
.satin_to_pearl .satin_highlight { stroke: var(--rose); }
.satin_to_plum { background: var(--blush); }
.satin_to_plum .satin_base { fill: var(--plum); }
.satin_to_plum .satin_fold { fill: var(--plum-soft); }
.satin_to_plum .satin_highlight { stroke: var(--rose); }
.satin_to_contact { background: var(--blush); }
.satin_to_contact .satin_base { fill: var(--plum); }
.satin_to_contact .satin_fold { fill: var(--iris-deep); opacity: .6; }
.satin_to_contact .satin_highlight { stroke: var(--rose-light); }
@keyframes satinStitch { to { stroke-dashoffset: -220; } }

.section { position: relative; padding: clamp(5rem, 7vw, 7.5rem) 0; overflow: hidden; }
.section_inner { width: var(--wrapper); margin: auto; }
.section_pearl { background: var(--pearl); }
.section_blush { background: var(--blush); }
.section_plum { background: var(--plum); color: var(--pearl); }
.section_title { display: grid; grid-template-columns: .6fr 1.4fr; align-items: end; gap: clamp(1.5rem, 3.5vw, 4rem); margin-bottom: clamp(2.5rem, 4vw, 4rem); }
.section_title .eyebrow { align-self: start; }
.section_title h2, .intro_title h2, .fitting_copy h2, .faq_intro h2, .contact_story h2 { margin: 0; font-family: var(--display); font-size: clamp(2.15rem, 3.65vw, 4.25rem); font-weight: 400; letter-spacing: -.032em; line-height: 1.05; }
.faq_intro h2, .contact_story h2 { font-size: clamp(2rem, 3vw, 3.5rem); }
.section_title > p:last-child { color: var(--muted); }
.section_title.centered { display: block; max-width: 860px; margin-right: auto; margin-left: auto; text-align: center; }
.section_title.centered > p:last-child { max-width: 630px; margin: 1.4rem auto 0; }

.jacquard_pattern { position: absolute; inset: 0; width: 100%; height: 100%; color: var(--iris); opacity: .035; pointer-events: none; animation: jacquardDrift 34s ease-in-out infinite alternate; }
@keyframes jacquardDrift { to { transform: translate3d(25px, 18px, 0); } }
.intro_grid { display: grid; grid-template-columns: .8fr 1.2fr; column-gap: clamp(3rem, 7vw, 7rem); row-gap: 3rem; }
.intro_title { align-self: end; }
.intro_copy { align-self: end; max-width: 600px; }
.intro_copy > p { margin: 0 0 1.5rem; color: var(--muted); font-size: 1.05rem; }
.intro_image { position: relative; height: min(52vw, 620px); margin: 0; border-radius: 48% 48% 28px 28px / 24% 24% 28px 28px; overflow: hidden; }
.intro_image img { width: 100%; height: 100%; object-fit: cover; }
.intro_image figcaption { position: absolute; right: 1.4rem; bottom: 1.4rem; padding: .55rem .9rem; border-radius: 999px; background: rgba(248,244,245,.88); color: var(--plum); font-size: .72rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.design_cards { display: grid; gap: 1rem; }
.design_cards article { position: relative; min-height: 155px; padding: 1.55rem 1.7rem 1.55rem 4.6rem; border: 1px solid var(--line-light); border-radius: 22px 22px 22px 60px; background: rgba(248,244,245,.62); transition: transform .4s var(--ease), background .3s; }
.design_cards article:hover { background: var(--pearl); transform: translateX(8px); }
.design_cards span { position: absolute; top: 1.8rem; left: 1.7rem; color: var(--iris); font-family: var(--display); font-size: 1.5rem; }
.design_cards h3 { margin: 0; font-family: var(--display); font-size: 1.55rem; font-weight: 400; }
.design_cards p { margin: .5rem 0 0; color: var(--muted); }

.role_bento { display: grid; grid-template-columns: 1.2fr .8fr 1fr; grid-template-rows: repeat(2, minmax(210px, auto)); gap: 1rem; }
.role_bento article { position: relative; display: grid; align-content: end; padding: 2rem; border: 1px solid rgba(38,31,44,.11); border-radius: 26px; background: rgba(248,244,245,.7); overflow: hidden; }
.role_bento article::before { content: ""; position: absolute; top: -55px; right: -45px; width: 150px; height: 150px; border: 1px solid rgba(102,80,123,.2); border-radius: 50%; }
.role_bento article::after { content: ""; position: absolute; top: -22px; right: -12px; width: 86px; height: 86px; border-radius: 50%; background: rgba(214,164,166,.2); }
.role_bento .role_large { grid-row: span 2; background: var(--plum); color: var(--pearl); }
.role_bento .role_accent { background: var(--iris-deep); color: var(--pearl); }
.role_bento span { position: relative; z-index: 1; color: var(--iris); font-size: .75rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.role_bento .role_large span, .role_bento .role_accent span { color: var(--rose-light); }
.role_bento h3 { position: relative; z-index: 1; margin: .6rem 0; font-family: var(--display); font-size: clamp(1.55rem, 2.4vw, 2.7rem); font-weight: 400; line-height: 1; }
.role_bento p { position: relative; z-index: 1; margin: 0; color: var(--muted); }
.role_bento .role_large p, .role_bento .role_accent p { color: var(--blush); }
.role_bento strong { position: absolute; top: 1.5rem; left: 1.7rem; color: rgba(102,80,123,.2); font-family: var(--display); font-size: 4rem; font-weight: 400; line-height: 1; }
.role_bento .role_large strong, .role_bento .role_accent strong { color: rgba(248,244,245,.12); }

.fabric_contours { position: absolute; inset: 0; width: 100%; height: 100%; color: var(--lavender); opacity: .065; pointer-events: none; }
.fabric_contours path { fill: none; stroke: currentColor; stroke-width: 1.5; animation: contourFloat 28s ease-in-out infinite alternate; }
.fitting .eyebrow { color: var(--rose-light); }
.fitting_grid { display: grid; grid-template-columns: 1fr .72fr; grid-template-areas: "copy image" "points image"; gap: 2.5rem clamp(3rem, 6vw, 6rem); }
.fitting_copy { grid-area: copy; }
.fitting_copy > p:last-child { max-width: 650px; margin: 1.5rem 0 0; color: var(--blush); }
.fitting_image { grid-area: image; position: relative; min-height: 680px; margin: 0; border-radius: 45% 45% 24px 24px / 18% 18% 24px 24px; overflow: hidden; }
.fitting_image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, rgba(32,25,42,.78)); }
.fitting_image img { width: 100%; height: 100%; object-fit: cover; }
.fitting_image figcaption { position: absolute; z-index: 2; right: 1.4rem; bottom: 1.4rem; left: 1.4rem; color: var(--rose-light); font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.fit_points { grid-area: points; border-top: 1px solid var(--line-dark); }
.fit_points article { display: grid; grid-template-columns: 48px 1fr; gap: 1rem; padding: 1.35rem 0; border-bottom: 1px solid var(--line-dark); }
.fit_points span { color: var(--rose); font-family: var(--display); font-size: 1.35rem; }
.fit_points h3 { margin: 0; font-family: var(--display); font-size: 1.35rem; font-weight: 400; }
.fit_points p { margin: .25rem 0 0; color: var(--blush); }

.swatch_grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.swatch_grid article { border: 1px solid var(--line-light); border-radius: 120px 120px 24px 24px; overflow: hidden; background: rgba(248,244,245,.7); }
.swatch { display: block; height: 260px; border-radius: 50% 50% 0 0; }
.swatch_plum { background: repeating-linear-gradient(35deg, #20192a 0 14px, #2e2438 14px 28px); }
.swatch_pearl { background: repeating-linear-gradient(90deg, #f8f4f5 0 18px, #eadfe7 18px 19px); }
.swatch_rose { background: radial-gradient(circle at 30% 30%, #e5bfc1, #b97882); }
.swatch_iris { background: repeating-linear-gradient(135deg, #4b365e 0 8px, #66507b 8px 16px); }
.swatch_grid article div { padding: 1.5rem; }
.swatch_grid small { color: var(--iris); font-family: var(--display); font-size: 1.1rem; }
.swatch_grid h3 { margin: .6rem 0 .4rem; font-family: var(--display); font-size: 1.45rem; font-weight: 400; }
.swatch_grid p { margin: 0; color: var(--muted); font-size: .9rem; }

.process_timeline { position: relative; max-width: 980px; margin: 0 auto; padding: 0; list-style: none; }
.process_timeline::before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; width: 1px; background: var(--iris); opacity: .35; }
.process_timeline li { position: relative; width: 50%; min-height: 155px; padding: 0 4rem 2.25rem 0; }
.process_timeline li:nth-child(even) { margin-left: 50%; padding-right: 0; padding-left: 4rem; }
.process_timeline li > span { position: absolute; top: 0; right: -23px; z-index: 2; display: grid; width: 46px; height: 46px; place-items: center; border: 1px solid var(--iris); border-radius: 50%; background: var(--blush); color: var(--iris-deep); font-family: var(--display); font-size: 1.1rem; }
.process_timeline li:nth-child(even) > span { right: auto; left: -23px; }
.process_timeline li > div { padding: 1.5rem; border-radius: 20px 20px 20px 50px; background: rgba(248,244,245,.72); box-shadow: 0 12px 30px rgba(32,25,42,.05); }
.process_timeline small { color: var(--iris); font-size: .75rem; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; }
.process_timeline h3 { margin: .4rem 0; font-family: var(--display); font-size: 1.6rem; font-weight: 400; }
.process_timeline p { margin: 0; color: var(--muted); }

.price_cards { display: grid; grid-template-columns: repeat(3, 1fr); align-items: stretch; gap: 1.2rem; }
.price_cards article { display: flex; min-height: 480px; flex-direction: column; padding: 2.1rem; border: 1px solid var(--line-light); border-radius: 28px 28px 28px 80px; background: var(--pearl-deep); }
.price_cards article.featured { background: var(--iris-deep); color: var(--pearl); box-shadow: 0 24px 60px rgba(75,54,94,.2); }
.price_label { margin: 0; color: var(--iris); font-size: .75rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.featured .price_label { color: var(--rose-light); }
.price_cards h3 { min-height: 72px; margin: 1rem 0 1.2rem; font-family: var(--display); font-size: clamp(1.65rem, 2.2vw, 2.35rem); font-weight: 400; line-height: 1.05; }
.price_value { min-height: 70px; margin: 0; color: var(--muted); }
.price_value strong { display: block; color: var(--plum); font-family: var(--display); font-size: 1.75rem; font-weight: 400; }
.featured .price_value, .featured .price_value strong { color: var(--pearl); }
.price_cards ul { display: grid; gap: .75rem; margin: 1.8rem 0; padding: 1.6rem 0 0; border-top: 1px solid var(--line-light); list-style: none; }
.featured ul { border-color: var(--line-dark); }
.price_cards li { display: flex; gap: .7rem; color: var(--muted); font-size: .95rem; line-height: 1.6; }
.featured li { color: var(--blush); }
.price_cards li svg { flex: 0 0 auto; width: 18px; height: 18px; margin-top: .25rem; color: var(--iris); }
.featured li svg { color: var(--rose-light); }
.price_cards .button { margin-top: auto; }
.featured .button { background: var(--rose); border-color: var(--rose); color: var(--plum); }
.featured .button:hover { background: var(--rose-light); }
.pricing_note { margin: 1.5rem 0 0; color: var(--muted); font-size: .82rem; text-align: center; }

.faq_grid { display: grid; grid-template-columns: .72fr 1.28fr; gap: clamp(3rem, 6vw, 6rem); }
.faq_intro { position: sticky; top: calc(var(--header-height) + 3rem); align-self: start; }
.faq_intro > p { margin: 1.4rem 0 1.8rem; color: var(--muted); }
.faq_list { display: grid; gap: .8rem; overflow-anchor: none; }
.faq_list details { border: 1px solid rgba(38,31,44,.13); border-radius: 18px 18px 18px 42px; background: rgba(248,244,245,.7); }
.faq_list summary { position: relative; display: flex; min-height: 82px; align-items: center; padding: 1rem 3.7rem 1rem 1.5rem; font-family: var(--display); font-size: clamp(1.2rem, 1.7vw, 1.55rem); line-height: 1.2; list-style: none; cursor: pointer; }
.faq_list summary::-webkit-details-marker { display: none; }
.faq_list summary svg { position: absolute; top: 50%; right: 1.3rem; width: 21px; height: 21px; transform: translateY(-50%); transition: transform .42s var(--ease); }
.faq_list details.is_expanded summary svg { transform: translateY(-50%) rotate(180deg); }
.faq_list details p { margin: -.2rem 1.5rem 1.5rem; color: var(--muted); }
.has_js .faq_list.faq_ready details:not(.is_expanded) p { opacity: 0; transform: translateY(-6px); }
.has_js .faq_list.faq_ready details p { transition: opacity .28s, transform .42s var(--ease); }
.has_js .faq_list.faq_ready details.is_expanded p { opacity: 1; transform: none; }
.faq_list details.is_animating { will-change: height; }

.contact { background: var(--plum); color: var(--pearl); }
.contact_pattern { position: absolute; inset: 0; width: 100%; height: 100%; color: var(--rose-light); opacity: .035; pointer-events: none; animation: jacquardDrift 34s ease-in-out infinite alternate; }
.contact .eyebrow { color: var(--rose-light); }
.contact_grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem, 6vw, 6rem); }
.contact_story > p { margin-top: 1.5rem; color: var(--blush); }
.direct_contact { display: grid; gap: .8rem; margin-top: 2.3rem; }
.direct_contact a { display: flex; flex-direction: column; color: var(--rose-light); font-family: var(--display); font-size: 1.5rem; text-decoration: none; }
.direct_contact span { color: var(--lavender); font: 700 .75rem/1.45 var(--body); letter-spacing: .12em; text-transform: uppercase; }
.contact_form { padding: clamp(2rem, 4vw, 3.4rem); border-radius: 32px 32px 32px 90px; background: var(--pearl); color: var(--ink); box-shadow: 20px 22px 0 rgba(102,80,123,.42); }
.form_pair { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.1rem; }
.contact_form label { display: grid; gap: .45rem; margin-bottom: 1.05rem; color: var(--muted); font-size: .75rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.contact_form input, .contact_form select, .contact_form textarea { width: 100%; border: 0; border-bottom: 1px solid rgba(38,31,44,.38); border-radius: 0; padding: .7rem 0; background: transparent; color: var(--ink); outline: 0; text-transform: none; }
.contact_form textarea { resize: vertical; }
.contact_form textarea::placeholder { color: rgba(38,31,44,.62); }
.contact_form input:focus, .contact_form select:focus, .contact_form textarea:focus { border-bottom-color: var(--iris); box-shadow: 0 2px 0 var(--iris); }
.form_status { min-height: 1.5rem; margin: 1rem 0 0; color: var(--muted); font-size: .82rem; }
.form_status a { color: var(--iris-deep); }
.branches { grid-column: 1 / 2; margin-top: 2rem; }
.branches_title { margin: 0 0 .6rem; color: var(--rose-light); font-size: .75rem; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.branches address { display: grid; grid-template-columns: 40px 1fr 42px; align-items: center; gap: .8rem; padding: 1.05rem 0; border-top: 1px solid var(--line-dark); font-style: normal; }
.branches address > span { color: var(--rose); font-family: var(--display); font-size: 1.2rem; }
.branches address div { display: flex; flex-direction: column; }
.branches address small { color: var(--blush); }
.branches address > a { display: grid; width: 40px; height: 40px; place-items: center; border: 1px solid var(--line-dark); border-radius: 50%; color: var(--rose-light); }
.branches address svg { width: 17px; height: 17px; }
.map_frame { grid-column: 2 / 3; min-height: 410px; margin-top: 2rem; border-radius: 180px 180px 26px 26px / 70px 70px 26px 26px; overflow: hidden; background: var(--iris-deep); }
.map_frame iframe { width: 100%; height: 100%; min-height: 410px; border: 0; filter: grayscale(.3) sepia(.08); }

.site_footer { position: relative; padding: 5.5rem 0 7.2rem; border-top: 1px solid var(--line-dark); background: var(--plum); color: var(--pearl); overflow: hidden; }
.footer_pattern { position: absolute; inset: 0; width: 100%; height: 100%; color: var(--rose-light); opacity: .03; pointer-events: none; }
.footer_inner, .footer_bottom { position: relative; width: var(--wrapper); margin: auto; }
.footer_inner { display: grid; grid-template-columns: .78fr 1.22fr .42fr; gap: clamp(2.5rem, 7vw, 7rem); }
.footer_logo_plate { display: block; width: min(100%, 305px); padding: .55rem 1rem; border-radius: 20px; background: var(--pearl); }
.footer_logo_plate img { width: 100%; height: auto; }
.footer_brand p { max-width: 390px; margin: 1.5rem 0 0; color: var(--blush); }
.footer_title { margin: 0 0 1rem; color: var(--rose-light); font-size: .8rem; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; }
.footer_branches address { display: grid; grid-template-columns: 1fr auto auto; gap: .8rem; padding: .85rem 0; border-top: 1px solid var(--line-dark); font-style: normal; }
.footer_branches strong { font-size: .84rem; }
.footer_branches a { color: var(--blush); font-size: .8rem; text-decoration: none; }
.footer_branches a:last-child { color: var(--rose-light); text-decoration: underline; text-underline-offset: 4px; }
.footer_nav { display: grid; align-content: start; gap: .5rem; }
.footer_nav a { color: var(--blush); font-size: .8rem; text-decoration: none; }
.footer_nav a:hover { color: var(--rose-light); }
.footer_bottom { display: flex; align-items: center; gap: 2rem; margin-top: 3rem; padding-top: 1.2rem; border-top: 1px solid var(--line-dark); color: var(--blush); font-size: .8rem; }
.footer_bottom a { color: inherit; text-decoration: none; }
.footer_bottom a:last-child { margin-left: auto; color: var(--rose-light); }

.contact_orbs { position: fixed; z-index: 9500; right: 22px; bottom: 22px; display: flex; gap: .65rem; }
.contact_orbs a { position: relative; display: grid; width: 58px; height: 58px; place-items: center; border: 1px solid rgba(248,244,245,.35); border-radius: 50%; background: rgba(32,25,42,.94); color: var(--rose-light); text-decoration: none; box-shadow: 0 12px 30px rgba(32,25,42,.24); backdrop-filter: blur(12px); transition: transform .3s var(--ease), background .3s; }
.contact_orbs a:hover { background: var(--iris-deep); transform: translateY(-4px); }
.contact_orbs svg { width: 22px; height: 22px; }
.contact_orbs span { position: absolute; right: calc(100% + 8px); padding: .35rem .6rem; border-radius: 999px; background: var(--plum); color: var(--pearl); font-size: .75rem; white-space: nowrap; opacity: 0; transform: translateX(8px); transition: opacity .3s, transform .3s; pointer-events: none; }
.contact_orbs a:hover span, .contact_orbs a:focus-visible span { opacity: 1; transform: none; }

[data-scroll-spy] { opacity: 1; transform: none; }
.has_js [data-scroll-spy] { opacity: 0; transform: translateY(28px); transition: opacity .85s var(--ease), transform .85s var(--ease); }
.has_js [data-scroll-spy].is_visible { opacity: 1; transform: none; }

@media (max-width: 1120px) {
    :root { --wrapper: min(100% - 56px, 1060px); }
    .desktop_nav { display: none; }
    .header_inner { grid-template-columns: 1fr auto auto; }
    .menu_toggle { display: grid; }
    .hero_inner { grid-template-columns: .85fr 1.15fr; gap: 2.5rem; }
    .hero h1 { font-size: clamp(3rem, 4.8vw, 5.5rem); }
    .section_title { grid-template-columns: .5fr 1.5fr; }
    .role_bento { grid-template-columns: repeat(2, 1fr); }
    .role_bento .role_large { grid-row: span 1; }
    .swatch_grid { grid-template-columns: repeat(2, 1fr); }
    .price_cards article { padding: 1.7rem; }
    .footer_inner { grid-template-columns: .8fr 1.2fr; }
    .footer_nav { grid-column: 1 / -1; grid-template-columns: repeat(7, auto); align-items: center; }
    .footer_nav .footer_title { margin: 0; }
}

@media (max-width: 800px) {
    :root { --wrapper: calc(100% - 36px); --header-height: 70px; }
    html { scroll-padding-top: 70px; }
    body { padding-bottom: 68px; }
    .site_header { height: 70px; }
    .mobile_menu { align-content: start; padding-top: 5.5rem; padding-bottom: 2rem; }
    .header_inner { gap: .8rem; }
    .brand { width: 215px; }
    .header_contact { display: none; }
    .hero_inner { min-height: auto; grid-template-columns: 1fr; padding: 2.5rem 0 5rem; }
    .hero_image { order: 1; min-height: 52svh; border-radius: 42% 42% 22px 22px / 18% 18% 22px 22px; }
    .hero_copy { order: 2; }
    .hero h1 { font-size: clamp(2.55rem, 10.8vw, 3.8rem); line-height: 1; }
    .hero_proof { gap: .8rem; justify-content: space-between; }
    .hero_proof span { min-width: 0; }
    .satin_divider { height: 48px; }
    .section { padding: 4.25rem 0; }
    .section_title { display: block; margin-bottom: 2.25rem; }
    .section_title h2 { margin-bottom: 1.2rem; }
    .section_title h2, .intro_title h2, .fitting_copy h2, .faq_intro h2, .contact_story h2 { font-size: clamp(2rem, 8.7vw, 2.8rem); line-height: 1.06; }
    .intro_grid { grid-template-columns: 1fr; gap: 2.5rem; }
    .intro_image { height: 74vw; }
    .role_bento { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
    .role_bento article { min-height: 220px; }
    .fitting_grid { grid-template-columns: 1fr; grid-template-areas: "copy" "image" "points"; }
    .fitting_image { min-height: 78vw; max-height: 680px; }
    .price_cards { grid-template-columns: 1fr; }
    .price_cards article { min-height: auto; }
    .price_cards h3, .price_value { min-height: 0; }
    .faq_grid, .contact_grid { grid-template-columns: 1fr; gap: 3rem; }
    .faq_intro { position: static; }
    .branches, .map_frame { grid-column: auto; margin-top: 0; }
    .map_frame { min-height: 360px; }
    .footer_inner { grid-template-columns: 1fr; }
    .footer_nav { grid-column: auto; grid-template-columns: repeat(2, 1fr); }
    .footer_nav .footer_title { grid-column: 1 / -1; }
    .footer_bottom { align-items: flex-start; flex-direction: column; gap: .5rem; }
    .footer_bottom a:last-child { margin-left: 0; }
    .contact_orbs { right: 0; bottom: 0; left: 0; gap: 0; border-top: 1px solid var(--line-dark); background: var(--plum); }
    .contact_orbs a { width: 50%; height: 68px; border: 0; border-radius: 0; box-shadow: none; }
    .contact_orbs a + a { border-left: 1px solid var(--line-dark); }
    .contact_orbs span { position: static; margin-left: .55rem; padding: 0; background: transparent; opacity: 1; transform: none; }
    .contact_orbs a { display: flex; align-items: center; justify-content: center; }
}

@media (max-width: 540px) {
    :root { --wrapper: calc(100% - 28px); }
    .brand { width: 195px; }
    .hero h1 { font-size: clamp(2.55rem, 10.8vw, 3.8rem); }
    .hero_actions { align-items: stretch; flex-direction: column; }
    .hero_actions .button { width: 100%; }
    .hero_image { min-height: 45svh; }
    .hero_image figcaption { right: .8rem; bottom: .8rem; }
    .hero_proof strong { font-size: 1rem; }
    .hero_proof span { font-size: .75rem; }
    .role_bento, .swatch_grid { grid-template-columns: 1fr; }
    .role_bento article { min-height: 190px; }
    .swatch_grid article { display: grid; grid-template-columns: 120px 1fr; border-radius: 70px 24px 24px 70px; }
    .swatch { height: auto; min-height: 200px; border-radius: 60px 0 0 60px; }
    .process_timeline::before { left: 22px; }
    .process_timeline li, .process_timeline li:nth-child(even) { width: 100%; margin-left: 0; padding: 0 0 2rem 4.2rem; }
    .process_timeline li > span, .process_timeline li:nth-child(even) > span { right: auto; left: 0; width: 44px; height: 44px; }
    .form_pair { grid-template-columns: 1fr; gap: 0; }
    .contact_form { padding: 1.5rem; border-radius: 24px 24px 24px 54px; box-shadow: 10px 12px 0 rgba(102,80,123,.42); }
    .branches address { grid-template-columns: 34px 1fr 38px; gap: .55rem; }
    .branches address small { font-size: .75rem; }
    .footer_branches address { grid-template-columns: 1fr auto; }
    .footer_branches address > a:last-child { grid-column: 1 / -1; }
    .site_footer { padding-bottom: 6rem; }
}

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