:root {
    color-scheme: light;
    --ink: #2d1837;
    --purple: #5b326b;
    --purple-dark: #3e204d;
    --pink: #d99aae;
    --pink-soft: #efd4dc;
    --paper: #fbf7f4;
    --cream: #f4ece8;
    --line: rgba(65, 34, 76, .16);
    --white: #fffdfb;
    font-family: "Helvetica Neue", Arial, sans-serif;
    color: var(--ink);
    background: var(--paper);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: var(--paper); line-height: 1.5; }
a { color: inherit; }
.shell { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }

.site-header {
    position: sticky;
    z-index: 100;
    top: 0;
    width: 100%;
    border-bottom: 1px solid var(--line);
    background: rgba(251, 247, 244, .88);
    box-shadow: 0 10px 35px rgba(62, 32, 77, .055);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

.header-inner {
    min-height: 96px;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 36px;
}

.brand { display: inline-flex; align-items: center; gap: 13px; width: max-content; text-decoration: none; }
.brand-mark { position: relative; width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--purple); border-radius: 50%; }
.brand-mark::before, .brand-mark::after { content: ""; position: absolute; border-radius: 50%; }
.brand-mark::before { width: 16px; height: 22px; left: 6px; background: var(--pink); }
.brand-mark::after { width: 16px; height: 22px; right: 6px; border: 1px solid var(--purple); }
.brand-mark i { position: relative; z-index: 1; width: 1px; height: 26px; display: block; background: var(--purple); transform: rotate(34deg); }
.brand-copy { display: grid; gap: 2px; }
.brand-copy strong { font: 500 15px/1.2 Georgia, "Times New Roman", serif; letter-spacing: .01em; }
.brand-copy small { color: rgba(45, 24, 55, .62); font-size: 9px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }

.main-nav { display: flex; align-items: center; gap: clamp(24px, 3vw, 46px); }
.main-nav a { position: relative; padding: 38px 0 36px; color: rgba(45, 24, 55, .74); font-size: 11px; font-weight: 600; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.main-nav a::after { content: ""; position: absolute; right: 100%; bottom: 28px; left: 0; height: 1px; background: var(--pink); transition: right .25s ease; }
.main-nav a:hover::after, .main-nav a:focus-visible::after { right: 0; }

.header-action { justify-self: end; display: inline-flex; align-items: center; gap: 20px; padding: 13px 17px; border: 1px solid var(--purple); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; transition: background .2s, color .2s; }
.header-action:hover, .header-action:focus-visible { background: var(--purple); color: var(--white); }
.header-action span { font-size: 14px; }

.hero { position: relative; min-height: calc(100svh - 97px); overflow: hidden; background: var(--paper); }
.hero::before { content: ""; position: absolute; inset: 0; opacity: .38; background-image: linear-gradient(rgba(91, 50, 107, .035) 1px, transparent 1px), linear-gradient(90deg, rgba(91, 50, 107, .035) 1px, transparent 1px); background-size: 42px 42px; mask-image: linear-gradient(to right, #000, transparent 52%); }
.hero-orbit { position: absolute; border: 1px solid rgba(91, 50, 107, .09); border-radius: 50%; pointer-events: none; }
.hero-orbit--one { width: 460px; height: 460px; top: -265px; left: 30%; }
.hero-orbit--two { width: 310px; height: 310px; right: -160px; bottom: 70px; }

.hero-grid { position: relative; z-index: 1; min-height: calc(100svh - 160px); padding: clamp(70px, 9vh, 112px) 0 72px; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(360px, .75fr); align-items: center; gap: clamp(60px, 9vw, 140px); }
.hero-copy { padding-left: clamp(0px, 3vw, 38px); }
.eyebrow { margin: 0 0 30px; display: flex; align-items: center; gap: 14px; color: var(--purple); font-size: 10px; font-weight: 700; letter-spacing: .19em; text-transform: uppercase; }
.eyebrow span { width: 34px; height: 1px; background: var(--pink); }
.hero h1 { margin: 0; color: var(--ink); font: 400 clamp(58px, 7vw, 103px)/.88 Georgia, "Times New Roman", serif; letter-spacing: -.055em; }
.hero h1 em { display: inline-block; color: var(--purple); font-weight: 400; }
.hero-intro { max-width: 545px; margin: 34px 0 0; color: rgba(45, 24, 55, .7); font: 400 clamp(17px, 1.45vw, 20px)/1.7 Georgia, "Times New Roman", serif; }
.hero-actions { margin-top: 38px; display: flex; align-items: center; gap: 30px; }
.primary-button { min-height: 54px; padding: 0 19px 0 22px; display: inline-flex; align-items: center; gap: 34px; background: var(--purple); color: var(--white); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; transition: transform .2s, background .2s; }
.primary-button:hover, .primary-button:focus-visible { background: var(--purple-dark); transform: translateY(-2px); }
.primary-button span { font-size: 16px; }
.text-link { padding: 10px 0 8px; border-bottom: 1px solid var(--pink); color: var(--purple); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; }
.hero-note { margin-top: 45px; display: flex; align-items: flex-start; gap: 12px; }
.availability-dot { width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; background: var(--pink); box-shadow: 0 0 0 5px rgba(217, 154, 174, .16); }
.hero-note p { margin: 0; color: rgba(45, 24, 55, .56); font-size: 10px; line-height: 1.65; letter-spacing: .08em; text-transform: uppercase; }
.hero-note strong { color: var(--ink); font-weight: 700; }

.hero-art { position: relative; width: min(100%, 430px); aspect-ratio: .82; justify-self: end; }
.art-shadow { position: absolute; inset: 20px -18px -18px 24px; border: 1px solid rgba(91, 50, 107, .17); background: var(--pink-soft); transform: rotate(3deg); }
.art-card { position: absolute; inset: 0; overflow: hidden; padding: 28px; display: flex; flex-direction: column; justify-content: space-between; border: 1px solid rgba(91, 50, 107, .22); background: var(--cream); box-shadow: 0 24px 60px rgba(62, 32, 77, .1); }
.art-card::before { content: ""; position: absolute; inset: 0; opacity: .32; background: repeating-linear-gradient(105deg, transparent 0 7px, rgba(91, 50, 107, .025) 7px 8px); }
.art-label { position: relative; z-index: 2; font-size: 9px; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.art-figure { position: absolute; inset: 17% 11% 20%; }
.figure-arch { position: absolute; inset: 8% 13% 0; border: 1px solid var(--purple); border-bottom: 0; border-radius: 50% 50% 0 0; }
.figure-arch::before { content: ""; position: absolute; inset: 30px; border: 1px solid rgba(91, 50, 107, .35); border-bottom: 0; border-radius: 50% 50% 0 0; }
.figure-circle { position: absolute; width: 43%; aspect-ratio: 1; top: 27%; left: 29%; border-radius: 50%; background: var(--pink); mix-blend-mode: multiply; }
.figure-line { position: absolute; height: 1px; background: var(--purple); transform-origin: left center; }
.figure-line--one { width: 85%; left: 8%; bottom: 19%; transform: rotate(-24deg); }
.figure-line--two { width: 67%; left: 17%; bottom: 8%; transform: rotate(33deg); }
.art-card p { position: relative; z-index: 2; margin: auto 0 0; color: var(--purple-dark); font: 400 clamp(23px, 2.5vw, 34px)/1.08 Georgia, "Times New Roman", serif; }
.art-index { position: absolute; right: 28px; bottom: 29px; color: rgba(45, 24, 55, .55); font-size: 10px; letter-spacing: .12em; }
.art-seal { position: absolute; z-index: 3; top: 18%; right: -31px; width: 64px; height: 64px; display: grid; place-items: center; border: 1px solid var(--purple); border-radius: 50%; background: var(--paper); color: var(--pink); font: 400 34px/1 Georgia, serif; transform: rotate(12deg); }

.hero-footer { position: relative; z-index: 2; min-height: 63px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border-top: 1px solid var(--line); color: rgba(45, 24, 55, .5); font-size: 9px; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; }
.hero-footer i { width: 4px; height: 4px; border-radius: 50%; background: var(--pink); }

@media (max-width: 900px) {
    .header-inner { grid-template-columns: 1fr auto; }
    .main-nav { display: none; }
    .hero-grid { grid-template-columns: 1fr; padding-top: 72px; gap: 70px; }
    .hero-copy { padding-left: 0; }
    .hero-art { width: min(82vw, 430px); justify-self: center; }
}

@media (max-width: 600px) {
    .shell { width: min(100% - 32px, 1180px); }
    .header-inner { min-height: 78px; gap: 12px; }
    .brand-copy strong { font-size: 13px; }
    .brand-copy small { display: none; }
    .brand-mark { width: 31px; height: 31px; }
    .header-action { padding: 11px 12px; gap: 9px; font-size: 8px; }
    .hero { min-height: auto; }
    .hero-grid { min-height: auto; padding: 74px 0 82px; }
    .hero h1 { font-size: clamp(53px, 16vw, 76px); }
    .hero-intro { font-size: 17px; }
    .hero-actions { align-items: flex-start; flex-direction: column; gap: 18px; }
    .primary-button { width: 100%; justify-content: space-between; }
    .hero-art { width: calc(100% - 18px); }
    .art-seal { right: -14px; width: 52px; height: 52px; }
    .hero-footer { padding: 22px 0; flex-wrap: wrap; justify-content: center; }
    .hero-footer i { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition-duration: .01ms !important; }
}
.site-footer { position: relative; overflow: hidden; padding-top: 86px; color: var(--cream); background: var(--purple-dark); }
.site-footer::before { content: ""; position: absolute; width: 430px; height: 430px; right: -220px; top: -255px; border: 1px solid rgba(239, 212, 220, .12); border-radius: 50%; }
.site-footer::after { content: ""; position: absolute; width: 260px; height: 260px; right: -135px; top: -170px; border: 1px solid rgba(239, 212, 220, .1); border-radius: 50%; }
.footer-main { position: relative; z-index: 1; padding-bottom: 78px; display: grid; grid-template-columns: 1.5fr .7fr .9fr; gap: clamp(50px, 8vw, 120px); }
.footer-intro { max-width: 390px; }
.footer-brand { color: var(--white); }
.footer-brand .brand-mark { border-color: var(--pink-soft); }
.footer-brand .brand-mark::after { border-color: var(--pink-soft); }
.footer-brand .brand-mark i { background: var(--pink-soft); }
.footer-brand .brand-copy small { color: rgba(244, 236, 232, .55); }
.footer-intro > p { max-width: 330px; margin: 27px 0 0; color: rgba(244, 236, 232, .66); font: 400 16px/1.7 Georgia, "Times New Roman", serif; }
.footer-label { margin: 0 0 23px; color: var(--pink); font-size: 9px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.footer-column nav { display: grid; gap: 13px; }
.footer-column nav a { width: max-content; color: rgba(244, 236, 232, .7); font: 400 15px/1.4 Georgia, "Times New Roman", serif; text-decoration: none; }
.footer-column nav a:hover, .footer-column nav a:focus-visible { color: var(--white); }
.footer-column > p:not(.footer-label) { margin: 0; color: rgba(244, 236, 232, .68); font: 400 15px/1.65 Georgia, "Times New Roman", serif; }
.footer-link { margin-top: 24px; padding-bottom: 7px; display: inline-flex; gap: 20px; border-bottom: 1px solid rgba(217, 154, 174, .6); color: var(--white); font-size: 9px; font-weight: 700; letter-spacing: .11em; text-decoration: none; text-transform: uppercase; }
.footer-bottom { position: relative; z-index: 1; min-height: 70px; display: flex; align-items: center; justify-content: space-between; gap: 30px; border-top: 1px solid rgba(244, 236, 232, .15); color: rgba(244, 236, 232, .45); font-size: 8px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.footer-bottom p { margin: 0; }
.footer-bottom div { display: flex; align-items: center; gap: 28px; }
.footer-bottom a { color: inherit; text-decoration: none; }
.footer-bottom a:hover, .footer-bottom a:focus-visible { color: var(--white); }

@media (max-width: 760px) {
    .footer-main { grid-template-columns: 1fr 1fr; }
    .footer-intro { grid-column: 1 / -1; }
}

@media (max-width: 520px) {
    .site-footer { padding-top: 70px; }
    .footer-main { padding-bottom: 60px; grid-template-columns: 1fr; gap: 46px; }
    .footer-intro { grid-column: auto; }
    .footer-bottom { padding: 24px 0; align-items: flex-start; flex-direction: column; }
    .footer-bottom div { align-items: flex-start; flex-direction: column; gap: 10px; }
}
.booking-guide { position: relative; padding: clamp(105px, 12vw, 165px) 0 110px; overflow: hidden; background: var(--white); }
.booking-guide::before { content: ""; position: absolute; width: 340px; height: 340px; left: -220px; top: 28%; border: 1px solid rgba(91, 50, 107, .1); border-radius: 50%; }
.booking-heading { margin-bottom: 70px; display: grid; grid-template-columns: .62fr 1.38fr; align-items: start; gap: 50px; }
.booking-heading .eyebrow { margin-top: 13px; }
.booking-heading > div { display: grid; grid-template-columns: 1fr .7fr; align-items: end; gap: clamp(35px, 6vw, 90px); }
.booking-heading h2 { margin: 0; color: var(--ink); font: 400 clamp(48px, 5.6vw, 78px)/.95 Georgia, "Times New Roman", serif; letter-spacing: -.045em; }
.booking-heading h2 em { color: var(--purple); font-weight: 400; }
.booking-heading > div > p { max-width: 330px; margin: 0 0 4px; color: rgba(45, 24, 55, .62); font: 400 16px/1.7 Georgia, "Times New Roman", serif; }
.booking-layout { display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: clamp(60px, 8vw, 120px); }
.booking-visual { margin: 0; }
.booking-image-frame { position: relative; padding: 13px; border: 1px solid var(--line); background: var(--paper); }
.booking-image-frame::before { content: ""; position: absolute; inset: 13px -15px -15px 13px; z-index: -1; background: var(--pink-soft); }
.booking-image-frame img { width: 100%; height: auto; aspect-ratio: 3 / 2; display: block; object-fit: cover; }
.booking-visual figcaption { margin-top: 21px; padding-left: 28px; position: relative; color: rgba(45, 24, 55, .5); font-size: 9px; font-weight: 600; letter-spacing: .12em; line-height: 1.55; text-transform: uppercase; }
.booking-visual figcaption::before { content: ""; position: absolute; top: 6px; left: 0; width: 17px; height: 1px; background: var(--pink); }
.booking-steps { margin: 0; padding: 0; list-style: none; counter-reset: steps; }
.booking-steps li { padding: 29px 0; display: grid; grid-template-columns: 52px 1fr; gap: 22px; border-top: 1px solid var(--line); }
.booking-steps li:last-child { border-bottom: 1px solid var(--line); }
.booking-steps li > span { padding-top: 5px; color: var(--pink); font: 500 11px/1 Georgia, "Times New Roman", serif; letter-spacing: .1em; }
.booking-steps h3 { margin: 0 0 8px; color: var(--ink); font: 400 clamp(23px, 2vw, 29px)/1.1 Georgia, "Times New Roman", serif; }
.booking-steps p { max-width: 410px; margin: 0; color: rgba(45, 24, 55, .58); font-size: 13px; line-height: 1.7; }
.booking-action-row { margin-top: 76px; padding: 25px 0 0; display: flex; align-items: center; justify-content: flex-end; gap: 30px; border-top: 1px solid var(--line); }
.booking-action-row p { margin: 0; color: rgba(45, 24, 55, .56); font: italic 16px/1.4 Georgia, "Times New Roman", serif; }

@media (max-width: 900px) {
    .booking-heading { grid-template-columns: 1fr; gap: 18px; }
    .booking-heading > div { grid-template-columns: 1fr 1fr; }
    .booking-layout { grid-template-columns: 1fr; }
    .booking-visual { max-width: 680px; }
}

@media (max-width: 600px) {
    .booking-guide { padding: 95px 0 85px; }
    .booking-heading { margin-bottom: 54px; }
    .booking-heading > div { grid-template-columns: 1fr; gap: 24px; }
    .booking-heading h2 { font-size: 52px; }
    .booking-layout { gap: 52px; }
    .booking-image-frame { padding: 8px; }
    .booking-steps li { grid-template-columns: 39px 1fr; gap: 13px; }
    .booking-action-row { margin-top: 55px; align-items: flex-start; flex-direction: column; }
    .booking-action-row .primary-button { width: 100%; }
}
.footer-protection { grid-column: 1 / -1; margin-top: 8px; padding: 25px 27px; display: grid; grid-template-columns: 48px 1fr auto; align-items: center; gap: 24px; border: 1px solid rgba(239, 212, 220, .2); background: rgba(255, 253, 251, .045); color: var(--cream); text-decoration: none; transition: border-color .2s, background .2s, transform .2s; }
.footer-protection:hover, .footer-protection:focus-visible { border-color: rgba(217, 154, 174, .65); background: rgba(255, 253, 251, .075); transform: translateY(-2px); }
.footer-protection__index { color: var(--pink); font: 500 11px/1 Georgia, "Times New Roman", serif; letter-spacing: .12em; }
.footer-protection div { display: grid; grid-template-columns: minmax(200px, .65fr) 1.35fr; align-items: center; gap: 25px; }
.footer-protection small { grid-column: 1; color: var(--pink); font-size: 8px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.footer-protection strong { grid-column: 1; font: 400 22px/1.15 Georgia, "Times New Roman", serif; }
.footer-protection p { grid-column: 2; grid-row: 1 / 3; max-width: 560px; margin: 0; color: rgba(244, 236, 232, .6); font-size: 11px; line-height: 1.7; }
.footer-protection > i { color: var(--pink); font-style: normal; font-size: 18px; }

@media (max-width: 700px) {
    .footer-protection { grid-template-columns: 35px 1fr auto; padding: 23px 20px; align-items: start; }
    .footer-protection div { grid-template-columns: 1fr; gap: 8px; }
    .footer-protection small, .footer-protection strong, .footer-protection p { grid-column: 1; grid-row: auto; }
    .footer-protection p { margin-top: 8px; }
}
.about-section { position: relative; padding: clamp(110px, 13vw, 180px) 0; overflow: hidden; background: var(--purple-dark); color: var(--cream); }
.about-section::before { content:""; position:absolute; width:520px; height:520px; right:-240px; bottom:-320px; border:1px solid rgba(239,212,220,.1); border-radius:50%; }
.about-grid { position:relative; display:grid; grid-template-columns:.55fr 1.45fr; gap:clamp(50px,9vw,135px); }
.about-heading .eyebrow { color:var(--pink); }
.about-index { margin:48px 0 0; color:rgba(244,236,232,.34); font-size:9px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.about-copy h2 { margin:0; color:var(--cream); font:400 clamp(48px,5.8vw,80px)/.95 Georgia,"Times New Roman",serif; letter-spacing:-.045em; }
.about-copy h2 em { color:var(--pink); font-weight:400; }
.about-text { max-width:630px; margin:48px 0 0 auto; display:grid; grid-template-columns:1fr 1fr; gap:28px 42px; }
.about-text p { margin:0; color:rgba(244,236,232,.66); font:400 16px/1.75 Georgia,"Times New Roman",serif; }
.instagram-link { grid-column:1/-1; width:max-content; margin-top:11px; padding-bottom:7px; border-bottom:1px solid rgba(217,154,174,.65); color:var(--cream); font-size:9px; font-weight:700; letter-spacing:.12em; text-decoration:none; text-transform:uppercase; }
.instagram-link span { margin-left:18px; color:var(--pink); }
.about-signature { position:absolute; left:2px; bottom:0; display:flex; align-items:center; gap:8px; color:rgba(239,212,220,.22); font:italic 31px/1 Georgia,serif; }
.about-signature i { width:38px; height:1px; background:rgba(239,212,220,.2); transform:rotate(-42deg); }

.approach-section { padding:clamp(110px,12vw,170px) 0; background:var(--cream); }
.approach-heading { margin-bottom:75px; display:grid; grid-template-columns:.55fr 1.45fr; gap:clamp(50px,9vw,135px); }
.approach-heading .eyebrow { margin-top:12px; }
.approach-heading > div { display:grid; grid-template-columns:1fr .6fr; align-items:end; gap:55px; }
.approach-heading h2 { margin:0; color:var(--ink); font:400 clamp(48px,5.6vw,76px)/.96 Georgia,"Times New Roman",serif; letter-spacing:-.045em; }
.approach-heading h2 em { color:var(--purple); font-weight:400; }
.approach-heading > div > p { margin:0 0 2px; color:rgba(45,24,55,.62); font:400 15px/1.7 Georgia,"Times New Roman",serif; }
.approach-cards { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.approach-cards article { min-height:390px; padding:28px clamp(25px,3vw,42px) 38px; position:relative; border-right:1px solid var(--line); }
.approach-cards article:last-child { border-right:0; }
.approach-cards article > span { color:var(--pink); font:500 10px/1 Georgia,serif; letter-spacing:.12em; }
.approach-symbol { width:90px; height:90px; margin:52px 0 48px; position:relative; }
.approach-symbol::before,.approach-symbol::after,.approach-symbol i { content:""; position:absolute; display:block; }
.approach-symbol--listen::before { inset:5px 17px; border:1px solid var(--purple); border-radius:50% 50% 45% 45%; }
.approach-symbol--listen::after { width:30px; height:48px; top:21px; left:30px; border-left:1px solid var(--pink); border-radius:50%; transform:rotate(24deg); }
.approach-symbol--process::before { width:68px; height:68px; top:11px; left:11px; border:1px solid var(--purple); border-radius:50%; }
.approach-symbol--process::after { width:42px; height:42px; top:24px; left:24px; border:1px solid var(--pink); border-radius:50%; }
.approach-symbol--process i { width:8px; height:8px; top:41px; left:41px; border-radius:50%; background:var(--purple); }
.approach-symbol--clarity::before { width:64px; height:64px; top:13px; left:13px; border:1px solid var(--purple); transform:rotate(45deg); }
.approach-symbol--clarity::after { width:1px; height:90px; left:44px; background:var(--pink); transform:rotate(45deg); }
.approach-cards h3 { margin:0 0 15px; font:400 28px/1.1 Georgia,"Times New Roman",serif; }
.approach-cards p { max-width:290px; margin:0; color:rgba(45,24,55,.58); font-size:13px; line-height:1.7; }

.faq-section { padding:clamp(110px,12vw,165px) 0; background:var(--paper); }
.faq-grid { display:grid; grid-template-columns:.72fr 1.28fr; gap:clamp(65px,10vw,145px); }
.faq-intro { position:sticky; top:145px; align-self:start; }
.faq-intro h2 { margin:0; color:var(--ink); font:400 clamp(52px,5.7vw,78px)/.92 Georgia,"Times New Roman",serif; letter-spacing:-.05em; }
.faq-intro h2 em { color:var(--purple); font-weight:400; }
.faq-intro > p:not(.eyebrow) { max-width:330px; margin:30px 0 0; color:rgba(45,24,55,.6); font:400 15px/1.7 Georgia,"Times New Roman",serif; }
.faq-intro .instagram-link { margin-top:30px; display:inline-block; color:var(--purple); }
.faq-list { border-top:1px solid var(--line); }
.faq-list details { border-bottom:1px solid var(--line); }
.faq-list summary { min-height:92px; padding:24px 0; display:grid; grid-template-columns:46px 1fr 24px; align-items:center; gap:15px; cursor:pointer; list-style:none; color:var(--ink); font:400 clamp(18px,2vw,23px)/1.3 Georgia,"Times New Roman",serif; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary span { color:var(--pink); font:500 9px/1 Arial,sans-serif; letter-spacing:.12em; }
.faq-list summary i { width:16px; height:16px; position:relative; }
.faq-list summary i::before,.faq-list summary i::after { content:""; position:absolute; top:7px; left:0; width:16px; height:1px; background:var(--purple); transition:transform .2s; }
.faq-list summary i::after { transform:rotate(90deg); }
.faq-list details[open] summary i::after { transform:rotate(0); }
.faq-list details > p { max-width:610px; margin:-5px 0 29px; padding-left:61px; color:rgba(45,24,55,.62); font-size:14px; line-height:1.8; }

@media(max-width:900px){
    .about-grid,.approach-heading,.faq-grid { grid-template-columns:1fr; gap:40px; }
    .about-index,.about-signature { display:none; }
    .approach-heading > div { grid-template-columns:1fr 1fr; }
    .faq-intro { position:static; }
}
@media(max-width:650px){
    .about-text { grid-template-columns:1fr; margin-top:35px; }
    .instagram-link { grid-column:1; white-space:normal; }
    .approach-heading > div { grid-template-columns:1fr; gap:25px; }
    .approach-cards { grid-template-columns:1fr; }
    .approach-cards article { min-height:auto; border-right:0; border-bottom:1px solid var(--line); }
    .approach-cards article:last-child { border-bottom:0; }
    .approach-symbol { margin:38px 0 34px; }
    .faq-list summary { grid-template-columns:35px 1fr 20px; font-size:19px; }
    .faq-list details > p { padding-left:50px; }
}
.about-side-card { width:min(100%,250px); margin-top:62px; padding:27px 24px 24px; position:relative; border:1px solid rgba(239,212,220,.18); background:rgba(255,253,251,.04); }
.about-side-card > span { position:absolute; top:-20px; right:18px; color:var(--pink); font:400 39px/1 Georgia,serif; }
.about-side-card p { margin:0; color:rgba(244,236,232,.76); font:italic 18px/1.45 Georgia,"Times New Roman",serif; }
.about-side-card small { margin-top:22px; padding-top:16px; display:block; border-top:1px solid rgba(239,212,220,.14); color:rgba(244,236,232,.38); font-size:8px; font-weight:700; letter-spacing:.14em; line-height:1.55; text-transform:uppercase; }

.social-section { position:relative; padding:clamp(105px,12vw,165px) 0; overflow:hidden; background:var(--pink-soft); }
.social-section::before { content:""; position:absolute; width:480px; height:480px; left:-260px; top:-290px; border:1px solid rgba(91,50,107,.1); border-radius:50%; }
.social-section::after { content:""; position:absolute; width:210px; height:210px; left:-95px; top:-155px; border:1px solid rgba(91,50,107,.08); border-radius:50%; }
.social-grid { position:relative; z-index:1; display:grid; grid-template-columns:.8fr 1.2fr; align-items:center; gap:clamp(70px,10vw,150px); }
.social-copy h2 { margin:0; color:var(--ink); font:400 clamp(48px,5.5vw,76px)/.95 Georgia,"Times New Roman",serif; letter-spacing:-.045em; }
.social-copy h2 em { color:var(--purple); font-weight:400; }
.social-copy > p:not(.eyebrow) { max-width:410px; margin:31px 0 0; color:rgba(45,24,55,.62); font:400 16px/1.7 Georgia,"Times New Roman",serif; }
.social-copy .instagram-link { margin-top:30px; display:inline-block; color:var(--purple); }
.instagram-post { width:min(100%,590px); justify-self:end; padding:20px; border:1px solid rgba(91,50,107,.18); background:rgba(255,253,251,.62); box-shadow:18px 18px 0 rgba(91,50,107,.075); }
.instagram-post__index { margin:0 0 15px; display:block; color:rgba(45,24,55,.45); font-size:8px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.instagram-post .instagram-media { width:100% !important; min-width:0 !important; max-width:540px !important; margin:0 auto !important; border:0 !important; background:var(--white); }
.instagram-post > blockquote > a { min-height:480px; padding:35px; display:grid; place-items:center; color:var(--purple); font:400 20px/1.5 Georgia,"Times New Roman",serif; text-align:center; text-decoration:none; }

@media(max-width:900px){
    .social-grid { grid-template-columns:1fr; }
    .instagram-post { justify-self:start; }
}
@media(max-width:650px){
    .about-side-card { width:100%; margin-top:38px; }
    .social-section { padding:95px 0; }
    .instagram-post { padding:10px; box-shadow:10px 10px 0 rgba(91,50,107,.075); }
    .instagram-post > blockquote > a { min-height:390px; padding:25px; }
}
.scheduler-demo { padding:clamp(110px,12vw,170px) 0; position:relative; overflow:hidden; background:var(--cream); }
.scheduler-demo::before { content:""; position:absolute; width:520px; height:520px; right:-340px; top:-320px; border:1px solid rgba(91,50,107,.1); border-radius:50%; }
.scheduler-heading { margin-bottom:68px; display:grid; grid-template-columns:1.35fr .65fr; align-items:end; gap:60px; }
.scheduler-heading h2 { margin:0; color:var(--ink); font:400 clamp(49px,5.5vw,76px)/.95 Georgia,"Times New Roman",serif; letter-spacing:-.045em; }
.scheduler-heading h2 em { color:var(--purple); font-weight:400; }
.scheduler-heading > p { max-width:390px; margin:0 0 4px; color:rgba(45,24,55,.6); font:400 15px/1.75 Georgia,"Times New Roman",serif; }
.scheduler-shell { position:relative; display:grid; grid-template-columns:285px 1fr; border:1px solid rgba(65,34,76,.18); background:var(--white); box-shadow:0 28px 75px rgba(62,32,77,.09); }
.scheduler-profile { padding:33px 27px; color:var(--cream); background:var(--purple-dark); }
.scheduler-profile__top { padding-bottom:28px; display:flex; align-items:center; gap:13px; border-bottom:1px solid rgba(244,236,232,.14); }
.profile-monogram { width:43px; height:43px; display:grid; place-items:center; border:1px solid rgba(239,212,220,.45); border-radius:50%; color:var(--pink); font:400 14px/1 Georgia,serif; }
.scheduler-profile__top > div { display:grid; gap:3px; }
.scheduler-profile__top strong { font:400 15px/1.2 Georgia,"Times New Roman",serif; }
.scheduler-profile__top small { color:rgba(244,236,232,.42); font-size:7px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.scheduler-profile > p { margin:31px 0 18px; color:rgba(244,236,232,.58); font-size:11px; line-height:1.6; }
.modality-list { display:grid; gap:9px; }
.modality-option { min-height:70px; padding:13px; display:grid; grid-template-columns:34px 1fr 13px; align-items:center; gap:10px; border:1px solid rgba(244,236,232,.13); color:rgba(244,236,232,.55); }
.modality-option--active { border-color:rgba(217,154,174,.58); background:rgba(217,154,174,.1); color:var(--cream); }
.modality-option input { position:absolute; opacity:0; }
.modality-icon { width:31px; height:31px; display:grid; place-items:center; border:1px solid rgba(239,212,220,.28); border-radius:50%; color:var(--pink); font:400 15px/1 Georgia,serif; }
.modality-option > span:nth-child(3) { display:grid; gap:4px; }
.modality-option strong { font:400 13px/1.2 Georgia,"Times New Roman",serif; }
.modality-option small { color:rgba(244,236,232,.4); font-size:7px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.modality-option i { width:11px; height:11px; border:1px solid rgba(239,212,220,.35); border-radius:50%; }
.modality-option--active i { border:3px solid var(--purple-dark); background:var(--pink); box-shadow:0 0 0 1px var(--pink); }
.international-note { margin-top:30px; padding:20px 0 0; display:grid; grid-template-columns:27px 1fr; gap:11px; border-top:1px solid rgba(244,236,232,.14); }
.international-note > span { width:26px; height:26px; display:grid; place-items:center; border:1px solid rgba(239,212,220,.2); border-radius:50%; color:var(--pink); font-size:13px; }
.international-note p { margin:0; color:rgba(244,236,232,.46); font-size:9px; line-height:1.65; }
.international-note strong { margin-bottom:4px; display:block; color:var(--pink-soft); font-size:8px; letter-spacing:.1em; text-transform:uppercase; }
.scheduler-content { min-width:0; padding:31px clamp(25px,4vw,52px) 27px; }
.scheduler-stepper { padding-bottom:25px; display:flex; align-items:center; color:rgba(45,24,55,.35); font-size:8px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; }
.scheduler-stepper span { display:flex; align-items:center; gap:8px; white-space:nowrap; }
.scheduler-stepper span i { width:23px; height:23px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; font-style:normal; }
.scheduler-stepper span.active { color:var(--purple); }
.scheduler-stepper span.active i { border-color:var(--purple); color:var(--white); background:var(--purple); }
.scheduler-stepper b { width:clamp(18px,4vw,60px); height:1px; margin:0 11px; background:var(--line); }
.scheduler-demo-grid { padding:31px 0 27px; display:grid; grid-template-columns:.86fr 1.14fr; gap:clamp(35px,5vw,65px); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.scheduler-section-title { margin-bottom:27px; display:grid; grid-template-columns:32px 1fr; gap:10px; }
.scheduler-section-title > span { padding-top:4px; color:var(--pink); font:500 9px/1 Georgia,serif; }
.scheduler-section-title h3 { margin:0 0 4px; font:400 22px/1.15 Georgia,"Times New Roman",serif; }
.scheduler-section-title p { margin:0; color:rgba(45,24,55,.43); font-size:9px; }
.first-visit-form form { display:grid; grid-template-columns:1fr 1fr; gap:17px 12px; }
.demo-field--wide { grid-column:1/-1; }
.demo-field label { margin-bottom:7px; display:block; color:rgba(45,24,55,.58); font-size:7px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; }
.demo-field input,.demo-field select { width:100%; height:43px; padding:0 11px; border:1px solid var(--line); border-radius:0; appearance:none; color:rgba(45,24,55,.38); background:var(--paper); font:400 11px Arial,sans-serif; opacity:1; }
.calendar-toolbar { height:39px; margin-bottom:14px; padding:0 4px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); }
.calendar-toolbar strong { font:400 14px/1 Georgia,"Times New Roman",serif; }
.calendar-toolbar button { border:0; color:var(--purple); background:none; font-size:14px; opacity:1; }
.week-days,.time-grid { min-width:360px; display:grid; grid-template-columns:repeat(5,1fr); gap:6px; }
.week-days { margin-bottom:7px; }
.week-days span { color:rgba(45,24,55,.4); font-size:7px; font-weight:700; letter-spacing:.08em; text-align:center; text-transform:uppercase; }
.time-slot { min-height:35px; display:grid; place-items:center; border:1px solid var(--line); color:var(--purple); background:var(--white); font-size:8px; font-weight:700; letter-spacing:.04em; }
.time-slot--selected { border-color:var(--purple); color:var(--white); background:var(--purple); }
.time-slot--blocked { position:relative; overflow:hidden; border-color:rgba(45,24,55,.06); color:rgba(45,24,55,.24); background:repeating-linear-gradient(-45deg,rgba(45,24,55,.025) 0 4px,rgba(45,24,55,.07) 4px 5px); text-decoration:line-through; }
.calendar-key { margin-top:15px; display:flex; flex-wrap:wrap; gap:14px; color:rgba(45,24,55,.4); font-size:7px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.calendar-key span { display:flex; align-items:center; gap:5px; }
.calendar-key i { width:8px; height:8px; border:1px solid var(--line); background:var(--white); }
.calendar-key span:nth-child(2) i { border-color:var(--purple); background:var(--purple); }
.calendar-key span:nth-child(3) i { background:repeating-linear-gradient(-45deg,rgba(45,24,55,.03) 0 2px,rgba(45,24,55,.12) 2px 3px); }
.scheduler-footer { padding-top:25px; display:flex; align-items:center; justify-content:space-between; gap:25px; }
.scheduler-footer p { margin:0; display:flex; align-items:center; gap:9px; color:rgba(45,24,55,.38); font-size:8px; letter-spacing:.05em; }
.scheduler-footer p span { color:var(--pink); font-size:15px; }
.scheduler-footer button { min-height:48px; padding:0 18px; border:0; display:flex; align-items:center; gap:32px; color:var(--white); background:var(--purple); font-size:8px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; opacity:.7; }
.scheduler-footer button span { font-size:14px; }
@media(max-width:1000px){.scheduler-shell{grid-template-columns:240px 1fr}.scheduler-demo-grid{grid-template-columns:1fr}.calendar-demo{overflow-x:auto}.scheduler-stepper b{margin:0 7px}}
@media(max-width:760px){.scheduler-heading{grid-template-columns:1fr;gap:25px}.scheduler-shell{grid-template-columns:1fr}.scheduler-profile{padding:30px 24px}.modality-list{grid-template-columns:1fr 1fr}.international-note{max-width:480px}.scheduler-stepper{overflow-x:auto;padding-bottom:20px}.scheduler-stepper b{min-width:20px}.scheduler-footer{align-items:flex-start;flex-direction:column}.scheduler-footer button{width:100%;justify-content:space-between}}
@media(max-width:520px){.scheduler-demo{padding:95px 0}.scheduler-heading h2{font-size:50px}.modality-list{grid-template-columns:1fr}.scheduler-content{padding:26px 17px 24px}.first-visit-form form{grid-template-columns:1fr}.demo-field--wide{grid-column:1}.calendar-demo{margin-right:-17px;padding-right:17px}.scheduler-stepper span{font-size:7px}.scheduler-stepper span i{width:21px;height:21px}}
.scheduler-ready-button { min-height:48px; padding:0 18px; display:flex; align-items:center; gap:32px; color:var(--white); background:var(--purple); font-size:8px; font-weight:700; letter-spacing:.11em; text-decoration:none; text-transform:uppercase; transition:background .2s,transform .2s; }
.scheduler-ready-button:hover,.scheduler-ready-button:focus-visible { background:var(--purple-dark); transform:translateY(-2px); }
.scheduler-ready-button span { font-size:14px; }
@media(max-width:760px){.scheduler-ready-button{width:100%;justify-content:space-between}}
