/* ============ Align Integrative Wellness — shared styles ============ */
:root{--serif:'Fraunces',serif;--sans:'Inter',sans-serif}
body[data-mode="light"]{--bg:#F3EEE4;--bg2:#EAE2D3;--ink:#23201A;--muted:#6E665A;--gold:#9A7B3E;--gold2:#B89456;--line:rgba(38,34,27,.14);--card:#FBF7EE}
body[data-mode="dark"]{--bg:#0A0F0D;--bg2:#0E1512;--ink:#ECE7D9;--muted:#8A968C;--gold:#C9A86A;--gold2:#E3C98F;--line:rgba(236,231,217,.12);--card:#0F1613}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);overflow-x:hidden;transition:background .6s,color .6s}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
::selection{background:var(--gold);color:#fff}

/* logo */
.mark{width:26px;height:26px;flex:none}
.loader-mark{width:54px;height:54px;margin-bottom:20px}

/* loader */
#loader{position:fixed;inset:0;z-index:9999;background:var(--bg);display:flex;align-items:center;justify-content:center;flex-direction:column;transition:opacity .8s,visibility .8s}
#loader .lw{font-family:var(--serif);font-weight:300;font-size:clamp(40px,9vw,86px);line-height:1;letter-spacing:-.02em;display:flex;align-items:baseline;gap:4px}
#loader .lw .pct{color:var(--gold);font-size:.5em}
.loaded #loader{opacity:0;visibility:hidden}

/* grain */
.grain{position:fixed;inset:-50%;z-index:9990;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:gr 1s steps(3) infinite}
@keyframes gr{0%{transform:translate(0,0)}33%{transform:translate(-3%,2%)}66%{transform:translate(2%,-2%)}100%{transform:translate(2%,3%)}}

/* mode toggle */
.mode{position:fixed;right:clamp(16px,4vw,40px);bottom:24px;z-index:1002;display:flex;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:100px;padding:5px;box-shadow:0 10px 30px -16px rgba(0,0,0,.4)}
.mode button{font-family:var(--sans);font-size:12px;font-weight:500;color:var(--muted);background:transparent;border:none;padding:8px 14px;border-radius:100px;cursor:pointer;transition:.3s}
.mode button.on{background:var(--gold);color:#fff}

/* nav */
header{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:20px clamp(20px,4vw,60px);transition:.4s}
header.scr{padding:13px clamp(20px,4vw,60px);background:color-mix(in srgb,var(--bg) 80%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.logo{font-family:var(--serif);font-size:24px;display:flex;align-items:center;gap:10px;color:var(--ink)}
nav.main{display:flex;gap:28px}
nav.main a{font-size:13px;color:var(--muted);position:relative;padding:4px 0;transition:color .3s}
nav.main a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold);transition:width .35s}
nav.main a:hover,nav.main a.active{color:var(--ink)}
nav.main a:hover::after,nav.main a.active::after{width:100%}
.ncta{font-size:13px;font-weight:500;border:1px solid var(--line);padding:11px 20px;border-radius:100px;cursor:pointer;transition:.35s;background:transparent;color:var(--ink);font-family:var(--sans)}
.ncta:hover{background:var(--gold);color:#fff;border-color:var(--gold)}
@media(max-width:880px){nav.main{display:none}}
.prog{position:fixed;top:0;left:0;height:2px;background:linear-gradient(90deg,var(--gold),var(--gold2));z-index:1001;width:0}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:500;padding:16px 30px;border-radius:100px;overflow:hidden;cursor:pointer;border:none;font-family:var(--sans);transition:color .4s;text-align:center}
.btn .a{transition:transform .4s}.btn:hover .a{transform:translateX(6px)}
.bp{background:var(--gold);color:#fff}
.bp::before{content:"";position:absolute;inset:0;background:var(--gold2);transform:translateY(101%);transition:transform .45s cubic-bezier(.2,.8,.2,1);z-index:-1}
.bp:hover::before{transform:translateY(0)}
.bg2{border:1px solid var(--line);background:transparent;color:var(--ink)}.bg2:hover{border-color:var(--gold)}

/* marquee */
.mq{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;overflow:hidden;white-space:nowrap;background:var(--bg2)}
.mq .t{display:inline-flex;gap:48px}
.mq i{font-style:italic;font-family:var(--serif);font-weight:300;font-size:clamp(20px,3vw,36px);display:inline-flex;gap:48px;align-items:center}
.mq i::after{content:"\2726";font-style:normal;color:var(--gold);font-size:.55em}

/* sections */
section.blk{padding:clamp(80px,12vw,170px) clamp(20px,5vw,80px);position:relative}
.eb{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:22px;display:flex;align-items:center;gap:12px}
.eb.ctr{justify-content:center}
.eb::before{content:"";width:30px;height:1px;background:var(--gold)}
.bigstate{max-width:20ch;font-family:var(--serif);font-weight:300;font-size:clamp(30px,5vw,68px);line-height:1.08;letter-spacing:-.02em}
.bigstate em{font-style:italic;color:var(--gold)}
.amp{font-family:var(--sans);font-weight:400;font-style:normal;font-size:.78em;letter-spacing:0;padding:0 .04em}
.lead{font-size:18px;line-height:1.7;color:var(--muted);max-width:60ch;font-weight:300}

/* cards */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:18px}
.card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:34px 30px;overflow:hidden;transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s,border-color .4s;display:block;color:inherit}
.card::before{content:"";position:absolute;left:0;top:0;height:100%;width:3px;background:var(--gold);transform:scaleY(0);transform-origin:bottom;transition:transform .4s}
.card:hover{transform:translateY(-8px);box-shadow:0 30px 60px -28px color-mix(in srgb,var(--ink) 30%,transparent);border-color:color-mix(in srgb,var(--gold) 40%,var(--line))}
.card:hover::before{transform:scaleY(1)}
.card .tag{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:16px;display:block}
.card h3{font-family:var(--serif);font-weight:400;font-size:24px;margin-bottom:12px;line-height:1.12}
.card p{font-size:14.5px;line-height:1.6;color:var(--muted);font-weight:300}
.card .more{margin-top:18px;font-size:13px;font-weight:600;display:inline-flex;gap:6px;color:var(--ink);transition:.3s}
.card:hover .more{gap:12px}

/* feature list (service pages) */
.flist{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}
.fitem-c{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:28px 26px}
.fitem-c h4{font-family:var(--serif);font-weight:400;font-size:20px;margin-bottom:10px}
.fitem-c p{font-size:14.5px;line-height:1.6;color:var(--muted);font-weight:300}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chips span{font-size:13px;color:var(--ink);border:1px solid var(--line);padding:9px 16px;border-radius:100px;background:var(--card)}

/* two-col spread */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,70px);align-items:center;max-width:1200px;margin:0 auto}
.split h2{font-family:var(--serif);font-weight:300;font-size:clamp(28px,4vw,52px);line-height:1.08;letter-spacing:-.02em;margin-bottom:18px}
.split h2 em{font-style:italic;color:var(--gold)}
.split p{font-size:16px;line-height:1.7;color:var(--muted);font-weight:300;margin-bottom:14px}
@media(max-width:820px){.split{grid-template-columns:1fr}}

/* steps */
.steps{max-width:900px;margin:0 auto}
.step{display:grid;grid-template-columns:80px 1fr;gap:28px;padding:34px 0;border-top:1px solid var(--line);align-items:start}
.step:last-child{border-bottom:1px solid var(--line)}
.step .sn{font-family:var(--serif);font-size:clamp(30px,4vw,52px);font-weight:300;color:var(--gold);line-height:1}
.step h3{font-family:var(--serif);font-weight:400;font-size:clamp(20px,2.4vw,28px);margin-bottom:8px}
.step p{font-size:15px;line-height:1.6;color:var(--muted);font-weight:300;max-width:56ch}

/* pricing */
.price{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;max-width:1100px;margin:0 auto}
.ptier{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:36px 32px;display:flex;flex-direction:column;transition:transform .4s,border-color .4s,box-shadow .4s}
.ptier:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--gold) 45%,var(--line));box-shadow:0 30px 60px -30px color-mix(in srgb,var(--ink) 30%,transparent)}
.ptier.feat{border-color:var(--gold)}
.ptier .pt-tag{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:600}
.ptier h3{font-family:var(--serif);font-weight:400;font-size:24px;margin:14px 0 8px}
.ptier .amt{font-family:var(--serif);font-weight:300;font-size:54px;letter-spacing:-.02em;line-height:1}
.ptier .amt small{font-size:15px;color:var(--muted);font-family:var(--sans)}
.ptier p{font-size:14px;line-height:1.6;color:var(--muted);font-weight:300;margin:14px 0 22px}
.ptier .btn{margin-top:auto;justify-content:center}
.pnote{text-align:center;color:var(--muted);font-size:13px;margin-top:26px;max-width:70ch;margin-left:auto;margin-right:auto}

/* stats */
.stb{background:var(--bg2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.st{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:48px;max-width:1200px;margin:0 auto;text-align:center}
.st .n{font-family:var(--serif);font-weight:300;font-size:clamp(52px,8vw,100px);line-height:1;color:var(--gold);letter-spacing:-.03em}
.st .l{margin:14px auto 0;font-size:14px;color:var(--muted);line-height:1.5;max-width:26ch}
.disc{text-align:center;color:var(--muted);font-size:12px;margin-top:46px;opacity:.7}

/* providers */
.prov{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:1100px;margin:0 auto}
.pcard{background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.pphoto{aspect-ratio:4/5;background:linear-gradient(135deg,var(--bg2),var(--card));display:flex;align-items:center;justify-content:center;position:relative;border-bottom:1px solid var(--line);overflow:hidden}
.pphoto img{width:100%;height:100%;object-fit:cover}
.pphoto .ph-note{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-align:center;padding:20px}
.pphoto .ph-note b{display:block;color:var(--gold);font-size:22px;letter-spacing:0;text-transform:none;font-family:var(--serif);font-weight:400;margin-bottom:6px}
.pbody{padding:28px 28px 32px}.pbody h3{font-family:var(--serif);font-weight:400;font-size:26px}
.pbody .cred{color:var(--gold);font-size:13px;letter-spacing:.08em;margin:6px 0 14px}
.pbody p{font-size:14.5px;line-height:1.6;color:var(--muted);font-weight:300}
@media(max-width:720px){.prov{grid-template-columns:1fr}}

/* faq */
.faq{max-width:880px;margin:0 auto}
.fitem{border-top:1px solid var(--line)}.faq .fitem:last-child{border-bottom:1px solid var(--line)}
.fq{width:100%;text-align:left;background:transparent;border:none;font-family:var(--serif);color:var(--ink);font-size:clamp(18px,2.2vw,26px);font-weight:400;padding:26px 50px 26px 0;cursor:pointer;position:relative;display:block}
.fq::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);color:var(--gold);font-size:26px;transition:transform .3s;font-family:var(--sans)}
.fitem.open .fq::after{transform:translateY(-50%) rotate(45deg)}
.fa{max-height:0;overflow:hidden;transition:max-height .45s ease}
.fa p{padding:0 40px 26px 0;color:var(--muted);font-size:15px;line-height:1.7;font-weight:300}
.fa p strong{color:var(--ink);font-weight:500}

/* page hero (inner pages) */
.phero{position:relative;padding:170px clamp(20px,5vw,80px) clamp(60px,8vw,110px);overflow:hidden}
.phero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 80% at 75% 10%,color-mix(in srgb,var(--gold) 13%,transparent),transparent 60%);pointer-events:none}
.phero .wrap{position:relative;max-width:1100px;margin:0 auto}
.phero h1{font-family:var(--serif);font-weight:300;font-size:clamp(40px,7vw,96px);line-height:.96;letter-spacing:-.03em;max-width:16ch;margin:14px 0 22px}
.phero h1 em{font-style:italic;color:var(--gold)}
.phero .intro{font-size:clamp(16px,1.5vw,20px);line-height:1.6;color:var(--muted);max-width:54ch;font-weight:300}
.phero .pcta{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap}
.crumbs{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.crumbs a:hover{color:var(--gold)}

/* cta */
#cta{text-align:center;position:relative;overflow:hidden}
#cta .gl{position:absolute;left:50%;top:50%;width:120vw;height:120vw;transform:translate(-50%,-50%);background:radial-gradient(circle,color-mix(in srgb,var(--gold) 16%,transparent),transparent 55%);pointer-events:none}
#cta h2{font-family:var(--serif);font-weight:300;font-size:clamp(40px,8vw,118px);line-height:.96;letter-spacing:-.03em;position:relative}
#cta h2 em{font-style:italic;color:var(--gold)}
#cta p{position:relative;max-width:52ch;margin:26px auto 38px;color:var(--muted);font-size:17px;line-height:1.6;font-weight:300}
.cta-a{position:relative;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* footer */
footer{padding:80px clamp(20px,5vw,80px) 50px;border-top:1px solid var(--line);background:var(--bg2)}
.ft{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;max-width:1300px;margin:0 auto 56px}
.ft .bl{max-width:34ch;color:var(--muted);font-size:14px;line-height:1.6;margin-top:16px;font-weight:300}
.fc h5{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}
.fc a{display:block;color:var(--muted);font-size:14px;padding:6px 0;transition:.3s}.fc a:hover{color:var(--ink)}
.fb{max-width:1300px;margin:0 auto;border-top:1px solid var(--line);padding-top:28px;font-size:12px;color:var(--muted);line-height:1.7}
.fb strong{color:var(--ink);font-weight:500}
@media(max-width:780px){.ft{grid-template-columns:1fr 1fr}.ft .bl{grid-column:1/-1}}

/* sticky mobile book */
.mbook{display:none}
@media(max-width:880px){.mbook{display:block;position:fixed;left:16px;right:86px;bottom:24px;z-index:1002}.mbook .btn{width:100%;justify-content:center}}

/* booking modal */
.modal{position:fixed;inset:0;z-index:5000;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(10,12,11,.6);backdrop-filter:blur(6px)}
.modal.open{display:flex}
.modal-inner{position:relative;width:min(560px,100%);max-height:90vh;background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;display:flex;flex-direction:column}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line)}
.modal-head .mt{font-family:var(--serif);font-size:20px}
.modal-x{background:transparent;border:none;color:var(--muted);font-size:26px;cursor:pointer;line-height:1}
.modal-body{flex:1;overflow:auto}
.modal-body iframe{width:100%;height:70vh;border:none;display:block}
.book-fallback{padding:40px 30px;text-align:center}
.book-fallback h4{font-family:var(--serif);font-weight:400;font-size:24px;margin-bottom:12px}
.book-fallback p{color:var(--muted);font-size:14.5px;line-height:1.7;font-weight:300;max-width:42ch;margin:0 auto 8px}
.book-fallback code{background:var(--bg2);padding:2px 7px;border-radius:5px;font-size:13px;color:var(--gold)}

/* reveal */
.rv{opacity:0;transform:translateY(40px)}
@media (prefers-reduced-motion: reduce){
  *{scroll-behavior:auto!important}
  .rv{opacity:1!important;transform:none!important}
  .mq .t{animation:none!important}
  .grain,.scrollcue .bar::after{animation:none!important}
}
