@font-face{font-family:"Caveat";font-style:normal;font-weight:500;font-display:swap;src:url("./assets/fonts/caveat-latin-500.woff2") format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:400 600;font-display:swap;src:url("./assets/fonts/dm-sans-latin.woff2") format("woff2")}
@font-face{font-family:"Fraunces";font-style:normal;font-weight:400 500;font-display:swap;src:url("./assets/fonts/fraunces-latin.woff2") format("woff2")}
:root{
  --cream:#fff9ef;
  --blush:#f4c7bd;
  --petal:#df8f9a;
  --mauve:#9f737d;
  --plum:#3d263d;
  --plum-soft:#56364f;
  --sage:#87966c;
  --leaf:#4d6448;
  --gold:#d7a953;
  --ink:#302331;
  --line:rgb(61 38 61/.18);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif}
body:before{position:fixed;z-index:50;inset:0;pointer-events:none;box-shadow:inset 0 0 100px rgb(102 67 72/.08);content:""}
a{color:inherit}
img{display:block;max-width:100%;height:auto}
h1,h2,h3,p,blockquote{margin-top:0}
h1,h2,h3,blockquote{font-family:Fraunces,Georgia,serif;font-weight:400}
::selection{background:var(--petal);color:var(--plum)}
a:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:5px}
.skip-link{position:fixed;z-index:100;top:8px;left:8px;padding:10px 14px;background:var(--cream);transform:translateY(-160%)}
.skip-link:focus{transform:none}
header{position:relative;z-index:5;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:15px clamp(18px,4.5vw,72px);border-bottom:1px solid rgb(255 249 239/.17);background:var(--plum);color:var(--cream)}
.brand img{width:300px;height:66px;object-fit:contain;object-position:left}
nav{display:flex;gap:31px}
header a{font-size:.67rem;font-weight:600;letter-spacing:.11em;text-decoration:none;text-transform:uppercase}
.header-actions{display:flex;justify-self:end;align-items:center;gap:24px}
.small-button{padding:12px 15px;border:1px solid var(--gold);border-radius:30px;color:#ffe3a4}
.hero{position:relative;display:grid;grid-template-columns:1.03fr .97fr;min-height:850px;overflow:hidden;background:var(--plum);color:var(--cream)}
.hero:after{position:absolute;right:-180px;bottom:-270px;width:620px;height:620px;border:1px solid rgb(255 249 239/.12);border-radius:50%;content:""}
.hero-copy{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;padding:95px clamp(28px,7vw,115px)}
.eyebrow{margin:0 0 18px;color:#b87387;font-size:.65rem;font-weight:600;letter-spacing:.17em;text-transform:uppercase}
.hero .eyebrow{color:#f2bd9d}
h1{max-width:720px;margin:0 0 30px;font-size:clamp(4rem,6.25vw,7.2rem);letter-spacing:-.048em;line-height:.9}
h1 em{position:relative;color:var(--blush);font-weight:400}
h1 em:after{position:absolute;right:0;bottom:-4px;left:0;height:7px;border-top:2px solid var(--gold);border-radius:50%;content:"";transform:rotate(-2deg)}
.lede{max-width:630px;color:#eadde5;font-size:1.05rem;line-height:1.8}
.hero-actions{display:flex;align-items:center;gap:28px;margin-top:21px}
.button{display:flex;justify-content:space-between;align-items:center;width:min(100%,245px);padding:17px 19px;border:1px solid transparent;border-radius:2px;background:var(--blush);color:var(--plum);font-size:.65rem;font-weight:600;letter-spacing:.12em;text-decoration:none;text-transform:uppercase;transition:transform .2s ease,background .2s ease}
.button:hover{background:#ffe5db;transform:translateY(-2px)}
.text-link{padding-bottom:5px;border-bottom:1px solid currentColor;font-size:.64rem;font-weight:600;letter-spacing:.1em;text-decoration:none;text-transform:uppercase}
.hand-note{margin:38px 0 0;color:#f3cc94;font:500 1.55rem Caveat,cursive;transform:rotate(-1.5deg)}
.hero-portrait{position:relative;display:grid;place-items:center;min-width:0;background:radial-gradient(circle at 50% 45%,#7a5867 0 28%,#543749 58%,#3d263d 73%)}
.hero-portrait:before{position:absolute;inset:6%;border:1px solid rgb(255 229 181/.18);border-radius:48% 48% 3px 3px;content:""}
.hero-portrait figure{position:relative;z-index:2;width:min(71%,610px);margin:0}
.hero-portrait figure>img{width:100%;aspect-ratio:.74/1;object-fit:cover;object-position:center 30%;border:10px solid rgb(255 249 239/.1);border-radius:48% 48% 10px 10px;box-shadow:0 35px 80px rgb(25 11 25/.42)}
.hero-portrait figcaption{position:absolute;right:-50px;bottom:40px;min-width:230px;padding:18px 21px;background:var(--cream);color:var(--plum);box-shadow:0 16px 35px rgb(25 11 25/.2)}
.hero-portrait figcaption b,.hero-portrait figcaption span{display:block}
.hero-portrait figcaption b{margin-bottom:5px;font:500 1.25rem Fraunces,serif}
.hero-portrait figcaption span{font-size:.64rem;line-height:1.55}
.floating-mark{position:absolute;z-index:3;top:7%;right:7%;width:115px;filter:drop-shadow(0 10px 20px rgb(29 15 29/.25))}
.orbit{position:absolute;border:1px solid rgb(255 218 156/.34);border-radius:50%}
.orbit-one{width:88%;aspect-ratio:1;transform:rotate(18deg)}
.orbit-two{width:65%;aspect-ratio:1;transform:rotate(-24deg)}
.spark{position:absolute;color:#f8d88f}
.spark-one{top:18%;left:11%;font-size:2.1rem}.spark-two{right:12%;bottom:19%;font-size:2.6rem}
.credentials{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line);background:#f7e6da}
.credentials p{display:flex;gap:15px;margin:0;padding:25px clamp(18px,3.5vw,55px);border-right:1px solid var(--line);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}
.credentials p:last-child{border:0}.credentials span{color:var(--mauve);font-size:.55rem}
.therapy{padding:clamp(100px,12vw,175px) clamp(22px,7vw,115px);background:var(--cream)}
.section-heading{display:grid;grid-template-columns:1.15fr .65fr;gap:clamp(55px,10vw,165px);align-items:end;margin-bottom:70px}
.section-heading h2,.philosophy h2,.kelly h2,.reiki h2,.contact h2{margin:0;font-size:clamp(3rem,5vw,6rem);letter-spacing:-.045em;line-height:.98}
.section-heading>p{max-width:610px;margin:0;line-height:1.8}
.service-grid{display:grid;grid-template-columns:1.18fr 1fr 1fr;gap:14px}
.service-card{position:relative;display:flex;min-height:360px;flex-direction:column;padding:30px;border:1px solid var(--line);background:#fffdf8;overflow:hidden}
.service-card.feature{grid-row:span 2;min-height:734px;background:var(--plum);color:var(--cream)}
.service-card:nth-child(4){grid-column:2/4}
.card-number{font-size:.57rem;letter-spacing:.14em}
.service-card h3{margin:80px 0 19px;font-size:clamp(2rem,2.6vw,3rem);line-height:1}
.service-card.feature h3{margin-top:auto;font-size:clamp(3rem,4vw,4.7rem)}
.service-card p{max-width:520px;color:#645766;line-height:1.7}
.service-card.feature p{color:#e5d7e2}
.service-card ul{margin:18px 0 0;padding:18px 0 0;border-top:1px solid rgb(255 249 239/.22);list-style:none}
.service-card li{padding:7px 0;color:#f1d7df;font-size:.8rem}
.service-card li:before{margin-right:10px;color:var(--gold);content:"✦"}
.service-card a{margin-top:auto;padding-top:20px;border-top:1px solid var(--line);font-size:.62rem;font-weight:600;letter-spacing:.1em;text-decoration:none;text-transform:uppercase}
.petal-icon{position:absolute;top:70px;right:-28px;width:230px;height:230px;opacity:.85}
.petal-icon i{position:absolute;bottom:50px;left:78px;width:78px;height:130px;border:1px solid var(--blush);border-radius:55% 55% 45% 45%;transform-origin:50% 100%}
.petal-icon i:first-child{transform:rotate(-45deg)}.petal-icon i:last-child{transform:rotate(45deg)}
.philosophy{display:grid;grid-template-columns:.6fr 1.25fr .7fr;gap:clamp(45px,8vw,130px);align-items:center;padding:clamp(100px,13vw,185px) clamp(22px,7vw,115px);background:#eed8cf}
.philosophy-mark{display:grid;aspect-ratio:1;place-items:center;border-radius:50%;background:var(--plum)}
.philosophy-mark img{width:68%}
.philosophy-copy>p:last-of-type{max-width:720px;margin:31px 0;line-height:1.8}
.values{display:flex;gap:8px;flex-wrap:wrap}
.values span{padding:9px 13px;border:1px solid var(--mauve);border-radius:30px;font-size:.61rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase}
.philosophy blockquote{position:relative;margin:0;padding:30px 0 0;border-top:1px solid var(--plum);font-size:clamp(1.6rem,2.3vw,2.7rem);line-height:1.22}
.philosophy blockquote span{position:absolute;top:-7px;right:0;color:var(--petal);font-size:5rem;line-height:1}
.kelly{display:grid;grid-template-columns:.45fr 1.1fr .55fr;gap:clamp(45px,7vw,120px);padding:clamp(105px,14vw,195px) clamp(22px,7vw,115px);background:var(--cream)}
.section-number{font-size:.58rem;letter-spacing:.15em;text-transform:uppercase}
.script{margin:55px 0 0;color:var(--mauve);font:500 1.8rem Caveat,cursive;transform:rotate(-3deg)}
.kelly-copy .columns{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-top:34px}
.kelly-copy p{line-height:1.75}
.kelly aside{padding:25px;border-top:2px solid var(--gold);background:#f3e2d8}
.kelly aside>span{font:500 1.25rem Fraunces,serif}
.kelly aside ul{margin:25px 0 0;padding:0;list-style:none}
.kelly aside li{padding:12px 0;border-top:1px solid var(--line);font-size:.75rem}
.kelly aside li:before{margin-right:9px;color:var(--petal);content:"✦"}
.reiki{display:grid;grid-template-columns:1.05fr .85fr auto;gap:clamp(50px,8vw,130px);align-items:end;padding:clamp(85px,10vw,145px) clamp(22px,7vw,115px);background:var(--leaf);color:var(--cream)}
.reiki .eyebrow{color:#f2cc91}.reiki>p{margin:0;color:#e9eee1;line-height:1.8}.light-link{white-space:nowrap}
.expect{padding:clamp(100px,12vw,175px) clamp(22px,7vw,115px)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--plum)}
.steps article{min-height:280px;padding:26px 28px;border-right:1px solid var(--line)}
.steps article:last-child{border:0}.steps span{font-size:.57rem}.steps h3{margin:70px 0 14px;font-size:2.3rem}.steps p{max-width:350px;color:#6c5d67;line-height:1.65}
.faq{display:grid;grid-template-columns:.72fr 1fr;gap:clamp(65px,11vw,180px);padding:clamp(100px,12vw,170px) clamp(22px,7vw,115px);background:#f3e2d8}
.faq-heading h2{margin:0;font-size:clamp(3rem,4.6vw,5.6rem);letter-spacing:-.045em;line-height:.98}
.faq-heading>p:last-child{max-width:590px;margin:32px 0 0;line-height:1.8}
.faq-list{border-top:1px solid var(--plum)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{display:flex;gap:24px;justify-content:space-between;align-items:center;padding:28px 4px;cursor:pointer;font:400 clamp(1.35rem,2vw,2rem) Fraunces,Georgia,serif;list-style:none}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:after{display:grid;width:31px;height:31px;flex:0 0 auto;place-items:center;border:1px solid var(--mauve);border-radius:50%;color:var(--mauve);content:"+";font:500 1.25rem "DM Sans",sans-serif;transition:transform .2s ease}
.faq-list details[open] summary:after{transform:rotate(45deg)}
.faq-list details p{max-width:760px;margin:0;padding:4px 50px 30px 4px;color:#655664;line-height:1.75}
.faq-list details a{text-underline-offset:3px}
.contact{position:relative;display:grid;grid-template-columns:1.15fr .65fr;gap:clamp(65px,12vw,190px);align-items:end;padding:clamp(105px,13vw,185px) clamp(22px,8vw,130px);overflow:hidden;background:var(--plum);color:var(--cream)}
.contact-flower{position:absolute;right:-80px;bottom:-180px;width:500px;opacity:.09;pointer-events:none}.contact-flower img{width:100%}.contact .eyebrow{color:#f2bd9d}.contact-details{position:relative;z-index:2}
.light-button{background:var(--cream)}.contact address{margin:27px 0 14px;font-style:normal;line-height:1.65}.contact-details>p{color:#dbcbd8;line-height:1.65}
footer{display:grid;grid-template-columns:1fr auto auto;gap:40px;align-items:center;padding:30px clamp(18px,4.5vw,72px);background:#2d1c2d;color:var(--cream)}
footer img{width:280px;height:65px;object-fit:contain;object-position:left}footer p{margin:0;color:#c8b8c7;font-size:.72rem}
footer>div{display:flex;gap:25px;align-items:center}.design-credit{color:#c8b8c7;font-size:.64rem}.design-credit a{font-size:inherit;letter-spacing:0;text-transform:none;text-underline-offset:3px}footer a{font-size:.58rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.not-found-page{min-height:100vh;background:var(--plum);color:var(--cream)}
.not-found-page:before{box-shadow:inset 0 0 180px rgb(15 5 15/.2)}
.not-found{display:flex;width:min(850px,calc(100% - 44px));min-height:100vh;flex-direction:column;justify-content:center;margin:auto;padding:70px 0}
.not-found>img{width:130px;margin-bottom:38px}
.not-found h1{max-width:830px;margin-bottom:28px;font-size:clamp(4rem,8vw,7rem)}
.not-found>p:not(.eyebrow){max-width:620px;color:#eadde5;font-size:1.05rem;line-height:1.8}
.not-found .button{margin-top:20px}
@media(max-width:1100px){
  header{grid-template-columns:1fr auto}nav{display:none}
  .hero{grid-template-columns:1fr .9fr}.hero-copy{padding-inline:55px}
  .hero-portrait figcaption{right:-15px}
  .service-grid{grid-template-columns:1fr 1fr}.service-card.feature{grid-row:auto;grid-column:1/3;min-height:570px}.service-card:nth-child(4){grid-column:auto}
  .philosophy{grid-template-columns:.45fr 1fr}.philosophy blockquote{grid-column:2}
  .kelly{grid-template-columns:.35fr 1fr}.kelly aside{grid-column:2}
  .reiki{grid-template-columns:1fr 1fr}.reiki>a{grid-column:2}
}
@media(max-width:760px){
  header{padding-inline:15px}.brand img{width:225px}
  .hero{grid-template-columns:1fr}.hero-copy{min-height:0;justify-content:flex-start;padding:42px 24px 60px}.hero-portrait{min-height:700px}.hero-portrait figure{width:78%}.hero-portrait figcaption{right:-8%;bottom:25px;min-width:205px}.floating-mark{width:85px}
  .credentials{grid-template-columns:1fr 1fr}.credentials p:nth-child(2){border-right:0}.credentials p{border-bottom:1px solid var(--line)}
  .section-heading,.philosophy,.kelly,.reiki,.faq,.contact{grid-template-columns:1fr}
  .service-grid{grid-template-columns:1fr}.service-card.feature,.service-card:nth-child(4){grid-column:auto}.service-card.feature{min-height:560px}
  .philosophy-mark{width:min(75vw,330px)}.philosophy blockquote,.kelly aside,.reiki>a{grid-column:auto}
  .kelly-copy .columns{grid-template-columns:1fr}.steps{grid-template-columns:1fr}.steps article{min-height:230px;border-right:0;border-bottom:1px solid var(--line)}
  .contact-flower{right:-65px;bottom:-115px;width:320px}footer{grid-template-columns:1fr}footer>div{justify-content:flex-start;flex-wrap:wrap}
}
@media(max-width:480px){
  .small-button{padding:10px 12px;font-size:.55rem}.hero-actions{align-items:flex-start;flex-direction:column}
  h1{font-size:4.1rem}.hero-portrait{min-height:600px}.hero-portrait figure{width:84%}
  .credentials{grid-template-columns:1fr}.credentials p{border-right:0}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}
