:root{
    --plum:#2a1633; --plum-2:#3d2249; --violet:#6b4a8a; --lavender:#d9cbe8;
    --mist:#f4eef8; --cream:#fbf8f3; --gold:#c9a24e; --gold-soft:#e6cf96;
    --ink:#2b2230; --muted:#6c6074;
    --serif:'Cormorant Garamond',Georgia,serif; --sans:'Jost',system-ui,sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:var(--sans);font-weight:300;color:var(--ink);background:var(--cream);line-height:1.7;font-size:17px}
  img{max-width:100%;display:block}
  a{color:inherit}
  .wrap{max-width:1140px;margin:0 auto;padding:0 24px}
  .eyebrow{font-family:var(--sans);font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);font-weight:500}
  h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.1}
  h2{font-size:clamp(2.2rem,4.5vw,3.4rem);color:var(--plum);margin:.4rem 0 1.2rem}
  h2 em{color:var(--violet)}
  .btn{display:inline-flex;align-items:center;gap:.6rem;padding:.95rem 1.8rem;border-radius:999px;text-decoration:none;font-weight:500;font-size:.92rem;letter-spacing:.06em;transition:.25s}
  .btn-gold{background:var(--gold);color:var(--plum)}
  .btn-gold:hover{background:var(--gold-soft)}
  .btn-line{border:1px solid rgba(255,255,255,.5);color:#fff}
  .btn-line:hover{background:rgba(255,255,255,.1)}
  .btn-plum{background:var(--plum);color:#fff}
  .btn-plum:hover{background:var(--violet)}
  svg.i{width:18px;height:18px;flex:none}

  /* nav */
  header{position:fixed;inset:0 0 auto 0;z-index:50;transition:.3s}
  header.solid{background:rgba(42,22,51,.96);backdrop-filter:blur(8px);box-shadow:0 2px 20px rgba(0,0,0,.2)}
  .nav{display:flex;align-items:center;justify-content:space-between;height:76px}
  .logo{font-family:var(--serif);font-size:1.7rem;color:#fff;text-decoration:none;letter-spacing:.02em}
  .logo span{color:var(--gold-soft);font-style:italic}
  .links{display:flex;gap:2rem;list-style:none}
  .links a{color:#efe6f5;text-decoration:none;font-size:.9rem;letter-spacing:.08em}
  .links a:hover{color:var(--gold-soft)}
  .menu-btn{display:none;background:none;border:0;color:#fff;cursor:pointer}
  @media(max-width:860px){
    .menu-btn{display:block}
    .links{position:fixed;inset:76px 0 auto 0;flex-direction:column;gap:0;background:var(--plum);padding:.5rem 0 1.5rem;display:none}
    .links.open{display:flex}
    .links a{display:block;padding:.9rem 24px;font-size:1.05rem}
  }

  /* hero */
  .hero{position:relative;min-height:100vh;display:flex;align-items:center;background:radial-gradient(ellipse at 75% 40%,#4b2a5c 0%,var(--plum) 60%);color:#fff;overflow:hidden;padding:110px 0 70px}
  .hero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(1.5px 1.5px at 12% 20%,#fff8 50%,transparent 51%),radial-gradient(1px 1px at 30% 70%,#fff6 50%,transparent 51%),radial-gradient(1.5px 1.5px at 52% 12%,#fff7 50%,transparent 51%),radial-gradient(1px 1px at 8% 85%,#fff5 50%,transparent 51%),radial-gradient(1px 1px at 44% 45%,#fff4 50%,transparent 51%),radial-gradient(1.5px 1.5px at 22% 52%,#e6cf9699 50%,transparent 51%)}
  .hero-grid{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:4rem;align-items:center}
  .hero h1{font-size:clamp(3rem,7vw,5.6rem);margin:.8rem 0 1rem}
  .hero h1 em{color:var(--gold-soft);display:block;font-size:.55em;font-weight:400;margin-top:.4rem}
  .hero p.lead{font-size:1.15rem;color:#e3d7ec;max-width:34rem;margin-bottom:2rem}
  .hero .ctas{display:flex;flex-wrap:wrap;gap:1rem}
  .hero-photo{position:relative;justify-self:center}
  .arch{width:min(420px,80vw);aspect-ratio:2/3;border-radius:999px 999px 18px 18px;overflow:hidden;border:1px solid var(--gold);padding:10px;background:rgba(255,255,255,.04)}
  .arch img{width:100%;height:100%;object-fit:cover;border-radius:999px 999px 10px 10px}
  .badge{position:absolute;left:-28px;bottom:48px;background:var(--cream);color:var(--plum);padding:1rem 1.3rem;border-radius:14px;box-shadow:0 18px 40px rgba(0,0,0,.35);font-family:var(--serif);font-size:1.15rem;line-height:1.25}
  .badge small{display:block;font-family:var(--sans);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
  @media(max-width:860px){.hero-grid{grid-template-columns:1fr;gap:3rem;text-align:center}.hero p.lead{margin-inline:auto}.hero .ctas{justify-content:center}.badge{left:50%;transform:translateX(-50%);bottom:-24px;white-space:nowrap}}

  section{padding:110px 0}
  /* about */
  .about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:5rem;align-items:center}
  .about-img{position:relative}
  .about-img img{border-radius:20px;aspect-ratio:4/5;object-fit:cover;object-position:center 30%;width:100%}
  .about-img::after{content:"";position:absolute;inset:22px -22px -22px 22px;border:1px solid var(--gold);border-radius:20px;z-index:-1}
  .about p{color:var(--muted);margin-bottom:1.1rem}
  .quote{font-family:var(--serif);font-style:italic;font-size:1.6rem;color:var(--violet);border-left:2px solid var(--gold);padding-left:1.2rem;margin:1.8rem 0;line-height:1.35}
  @media(max-width:860px){.about-grid{grid-template-columns:1fr;gap:3.5rem}}

  /* services */
  .services{background:var(--mist)}
  .head{text-align:center;max-width:640px;margin:0 auto 3.5rem}
  .head p{color:var(--muted)}
  .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem}
  .card{background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 10px 30px rgba(42,22,51,.08);display:flex;flex-direction:column;transition:.3s}
  .card:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(42,22,51,.14)}
  .card img{aspect-ratio:4/3;object-fit:cover;width:100%}
  .card .body{padding:1.6rem 1.6rem 1.8rem;display:flex;flex-direction:column;flex:1}
  .card h3{font-size:1.75rem;color:var(--plum);margin-bottom:.5rem}
  .card p{color:var(--muted);font-size:.97rem;flex:1}
  .card a.more{margin-top:1.2rem;color:var(--violet);font-weight:500;text-decoration:none;font-size:.9rem;letter-spacing:.06em}
  .card a.more:hover{color:var(--gold)}
  @media(max-width:960px){.cards{grid-template-columns:1fr 1fr}}
  @media(max-width:620px){.cards{grid-template-columns:1fr}}

  /* how */
  .how{background:var(--plum);color:#fff}
  .how h2{color:#fff}
  .how .head p{color:#d8cbe2}
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
  .step{border:1px solid rgba(230,207,150,.3);border-radius:18px;padding:2rem}
  .step .n{font-family:var(--serif);font-size:3rem;color:var(--gold);line-height:1}
  .step h3{font-size:1.6rem;margin:.6rem 0}
  .step p{color:#d8cbe2;font-size:.97rem}
  @media(max-width:860px){.steps{grid-template-columns:1fr}}

  /* gift */
  .gift-grid{display:grid;grid-template-columns:1fr 1fr;gap:4.5rem;align-items:center}
  .gift-img img{border-radius:18px}
  .gift p{color:var(--muted);margin-bottom:1.6rem}
  .ticks{list-style:none;margin:0 0 2rem}
  .ticks li{padding-left:1.8rem;position:relative;margin-bottom:.6rem}
  .ticks li::before{content:"✦";position:absolute;left:0;color:var(--gold)}
  @media(max-width:860px){.gift-grid{grid-template-columns:1fr;gap:3rem}}

  /* meditation */
  .med{background:linear-gradient(135deg,var(--mist),#efe4f6)}
  .med-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:4rem;align-items:center}
  .med p{color:var(--muted);margin-bottom:1.6rem}
  .disc{position:relative;width:min(400px,80vw);aspect-ratio:1;margin:0 auto;border-radius:50%;overflow:hidden;box-shadow:0 24px 60px rgba(42,22,51,.28),inset 0 0 0 1px rgba(255,255,255,.4)}
  .disc img{width:100%;height:100%;object-fit:cover}
  .disc::before{content:"";position:absolute;inset:0;background:conic-gradient(from 30deg,rgba(255,255,255,0),rgba(255,255,255,.28),rgba(255,255,255,0) 30%,rgba(255,255,255,.2) 55%,rgba(255,255,255,0) 70%)}
  .disc::after{content:"";position:absolute;left:50%;top:50%;width:22%;height:22%;transform:translate(-50%,-50%);border-radius:50%;background:var(--mist);box-shadow:0 0 0 10px rgba(255,255,255,.55),inset 0 2px 6px rgba(0,0,0,.15)}
  @media(max-width:860px){.med-grid{grid-template-columns:1fr}.med-img{order:-1}}

  /* banner */
  .banner{position:relative;padding:130px 0;color:#fff;text-align:center;background:linear-gradient(rgba(42,22,51,.72),rgba(42,22,51,.82)),url(images/tea-leaf.webp) center/cover}
  .banner h2{color:#fff;max-width:760px;margin:.5rem auto 1.2rem}
  .banner p{color:#e3d7ec;max-width:560px;margin:0 auto 2rem}

  /* contact */
  .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
  .contact-card{background:#fff;border-radius:22px;padding:2.6rem;box-shadow:0 14px 40px rgba(42,22,51,.1)}
  .method{display:flex;gap:1.1rem;align-items:center;padding:1.15rem 0;border-top:1px solid #eee5f2;text-decoration:none}
  .method:first-child{border-top:0}
  .method .ic{width:50px;height:50px;border-radius:50%;background:var(--mist);display:grid;place-items:center;color:var(--violet);flex:none;transition:.25s}
  .method:hover .ic{background:var(--gold);color:var(--plum)}
  .method small{display:block;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
  .method strong{font-weight:500;font-size:1.1rem;color:var(--plum);word-break:break-word}
  .contact-photo img{border-radius:50%;aspect-ratio:1;object-fit:cover;object-position:center 35%;width:min(380px,100%);margin:0 auto;border:8px solid #fff;box-shadow:0 0 0 1px var(--gold),0 20px 50px rgba(42,22,51,.18)}
  .contact-copy{text-align:center;margin-top:2rem}
  .contact-copy p{color:var(--muted)}
  @media(max-width:860px){.contact-grid{grid-template-columns:1fr}}
  @media(max-width:620px){.contact-card{padding:1.6rem 1.4rem}.method strong{font-size:1rem;word-break:normal;overflow-wrap:anywhere}}

  footer{background:var(--plum);color:#cbbcd6;padding:3rem 0;text-align:center;font-size:.9rem}
  footer .logo{display:inline-block;margin-bottom:.6rem}
  footer a{color:var(--gold-soft);text-decoration:none}
  .fineprint{margin-top:1rem;font-size:.78rem;opacity:.75;max-width:620px;margin-inline:auto}

  .float-wa{position:fixed;right:20px;bottom:20px;z-index:60;width:58px;height:58px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;box-shadow:0 10px 26px rgba(0,0,0,.28)}
  .float-wa svg{width:30px;height:30px}

  .reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}
  .reveal.in{opacity:1;transform:none}
  @media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

  body{overflow-x:hidden}
  @media(max-width:860px){.about-img::after{inset:14px -10px -14px 14px}.hero .eyebrow{font-size:.68rem;letter-spacing:.2em}}
  .ornament{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--gold);margin:0 auto 1rem}
  .ornament::before,.ornament::after{content:"";width:60px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
  .ornament::after{transform:scaleX(-1)}
  /* faq */
  .faq{background:var(--cream)}
  .faq-list{max-width:780px;margin:0 auto}
  details{background:#fff;border-radius:14px;margin-bottom:1rem;box-shadow:0 6px 20px rgba(42,22,51,.06);overflow:hidden}
  summary{cursor:pointer;list-style:none;padding:1.3rem 1.6rem;font-family:var(--serif);font-size:1.35rem;color:var(--plum);display:flex;justify-content:space-between;align-items:center;gap:1rem}
  summary::-webkit-details-marker{display:none}
  summary::after{content:"+";font-family:var(--sans);font-size:1.5rem;color:var(--gold);transition:.25s}
  details[open] summary::after{transform:rotate(45deg)}
  details p{padding:0 1.6rem 1.4rem;color:var(--muted)}
  @keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
  .arch{animation:floaty 7s ease-in-out infinite}
  @keyframes spin{to{transform:rotate(360deg)}}
  .disc:hover img{animation:spin 12s linear infinite}
  @media(prefers-reduced-motion:reduce){.arch,.disc:hover img{animation:none}}

  /* enquiry form */
  .enquiry{background:var(--mist);display:none}
  .enquiry.on{display:block}
  .form-card{max-width:760px;margin:0 auto;background:#fff;border-radius:22px;padding:2.6rem;box-shadow:0 14px 40px rgba(42,22,51,.1)}
  .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.3rem}
  .form-grid .full{grid-column:1/-1}
  .fld label{display:block;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:.45rem}
  .fld label b{color:var(--gold);font-weight:500}
  .fld input,.fld select,.fld textarea{width:100%;font:inherit;font-size:1rem;color:var(--ink);background:var(--cream);border:1px solid #e6dcec;border-radius:12px;padding:.85rem 1rem;outline:none;transition:.2s}
  .fld textarea{min-height:140px;resize:vertical}
  .fld input:focus,.fld select:focus,.fld textarea:focus{border-color:var(--violet);background:#fff;box-shadow:0 0 0 3px rgba(107,74,138,.12)}
  .form-card .btn{border:0;cursor:pointer;width:100%;justify-content:center;margin-top:1.4rem;font-family:var(--sans)}
  .form-msg{margin-top:1rem;text-align:center;font-size:.95rem;min-height:1.4em}
  .form-msg.ok{color:#2e7d4f}.form-msg.err{color:#b23a48}
  .hp{position:absolute;left:-9999px}
  @media(max-width:620px){.form-grid{grid-template-columns:1fr}.form-card{padding:1.8rem}}

/* shared extras */
.h1-eyebrow{display:block;font-size:.78rem!important;margin-bottom:1rem}
@media(max-width:860px){.h1-eyebrow{font-size:.66rem!important;letter-spacing:.18em}}
.card h3 a{text-decoration:none}
.card h3 a:hover{color:var(--violet)}
.text-link{display:inline-block;margin-left:1.2rem;color:var(--violet);text-decoration:none;font-weight:500;font-size:.92rem}
@media(max-width:620px){.text-link{display:block;margin:1rem 0 0}}
.areas{background:var(--mist);padding:90px 0}
.pills{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem}
.pills a{background:#fff;border:1px solid #e3d6ec;border-radius:999px;padding:.7rem 1.4rem;text-decoration:none;color:var(--plum);font-weight:400;transition:.2s}
.pills a:hover{background:var(--plum);color:#fff;border-color:var(--plum)}
.foot-links{margin-top:.8rem;font-size:.85rem}
.links a[aria-current]{color:var(--gold-soft)}

/* service pages */
.page-hero{background:radial-gradient(ellipse at 75% 40%,#4b2a5c 0%,var(--plum) 60%);color:#fff;padding:150px 0 90px}
.page-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center}
.page-hero h1{font-size:clamp(2.8rem,6vw,4.6rem);margin:.6rem 0 1rem}
.page-hero h1 em{color:var(--gold-soft)}
.page-hero .lead{font-size:1.15rem;color:#e3d7ec;margin-bottom:2rem}
.page-hero .ctas{display:flex;flex-wrap:wrap;gap:1rem}
.page-hero-img img{border-radius:20px;aspect-ratio:4/3;object-fit:cover;width:100%;border:1px solid var(--gold);padding:8px;background:rgba(255,255,255,.04)}
.crumbs{font-size:.85rem;color:#cbbcd6;margin-bottom:1.2rem}
.crumbs a{color:var(--gold-soft);text-decoration:none}
.crumbs span{margin:0 .4rem}
.article{padding:90px 0}
.article-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:4rem;align-items:start}
.prose .sub-h{font-size:2.1rem;margin:2.2rem 0 .8rem;color:var(--plum)}
.prose .sub-h:first-child{margin-top:0}
.prose p{color:var(--muted);margin-bottom:1.1rem;font-size:1.05rem}
.side{position:sticky;top:100px}
.side-card{background:#fff;border-radius:22px;padding:2rem;box-shadow:0 14px 40px rgba(42,22,51,.1);text-align:center;display:flex;flex-direction:column;gap:.8rem}
.side-card img{width:120px;height:120px;border-radius:50%;object-fit:cover;margin:0 auto .4rem;border:3px solid #fff;box-shadow:0 0 0 1px var(--gold)}
.side-card h3{font-size:1.7rem;color:var(--plum)}
.side-card p{color:var(--muted);font-size:.95rem}
.side-card .btn{justify-content:center}
.side-mail{display:flex;align-items:center;justify-content:center;gap:.5rem;color:var(--violet);text-decoration:none;font-size:.9rem;margin-top:.3rem;overflow-wrap:anywhere}
.more-services{background:var(--mist);padding:90px 0}
.minis{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.mini{background:#fff;border-radius:16px;overflow:hidden;text-decoration:none;box-shadow:0 10px 26px rgba(42,22,51,.08);transition:.3s}
.mini:hover{transform:translateY(-5px)}
.mini img{aspect-ratio:16/10;object-fit:cover;width:100%}
.mini span{display:block;padding:1.1rem 1.3rem;font-family:var(--serif);font-size:1.45rem;color:var(--plum)}
@media(max-width:860px){.page-hero{padding:120px 0 70px}.page-hero-grid,.article-grid{grid-template-columns:1fr}.side{position:static}.minis{grid-template-columns:1fr}}
.page-hero-img img,.mini img{height:auto}
@media(max-width:860px){.page-hero-img img{aspect-ratio:16/10}}

/* about facts + testimonials */
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.8rem 0 2rem}
.facts div{border:1px solid #e9dcc0;border-radius:14px;padding:1rem;text-align:center;background:#fff}
.facts strong{display:block;font-family:var(--serif);font-size:1.6rem;font-weight:500;color:var(--violet);line-height:1.1}
.facts span{font-size:.8rem;color:var(--muted);letter-spacing:.04em}
@media(max-width:520px){.facts{grid-template-columns:1fr}}
.card > a img{transition:.3s}
.testimonials{background:var(--plum);color:#fff}
.testimonials h2{color:#fff}
.testimonials h2 em{color:var(--gold-soft)}
.testimonials .head p{color:#d8cbe2}
.tgrid{columns:3;column-gap:1.6rem}
.tcard{margin:0 0 1.6rem;break-inside:avoid;background:rgba(255,255,255,.05);border:1px solid rgba(230,207,150,.28);border-radius:18px;padding:2rem 1.8rem;display:flex;flex-direction:column}
.tq{font-family:var(--serif);font-size:4rem;line-height:.6;color:var(--gold);height:1.6rem}
.tgroup{text-align:center;font-size:1.9rem;color:var(--gold-soft);margin:1rem 0 2rem}
.tgroup + .tgrid{margin-bottom:2.5rem}
.tcard blockquote{font-family:var(--serif);font-style:italic;font-size:1.4rem;line-height:1.4;color:#f3ecf7;flex:1}
.tcard figcaption{margin-top:1.2rem;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-soft)}
@media(max-width:960px){.tgrid{columns:2}}
@media(max-width:620px){.tgrid{columns:1}}
.pq{margin:2.4rem 0 0;padding:1.8rem 2rem;background:var(--mist);border-left:3px solid var(--gold);border-radius:0 16px 16px 0}
.pq blockquote{font-family:var(--serif);font-style:italic;font-size:1.45rem;line-height:1.4;color:var(--plum)}
.pq figcaption{margin-top:.8rem;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
/* centre the last row of reading cards */
.cards{display:flex;flex-wrap:wrap;justify-content:center}
.cards .card{flex:0 1 calc((100% - 3.6rem)/3)}
@media(max-width:960px){.cards .card{flex-basis:calc((100% - 1.8rem)/2)}}
@media(max-width:620px){.cards .card{flex-basis:100%}}
.minis{display:flex;flex-wrap:wrap;justify-content:center}
.minis .mini{flex:0 1 calc((100% - 3rem)/3)}
@media(max-width:860px){.minis .mini{flex-basis:100%}}
/* four reading cards: 2 x 2 */
.cards{max-width:960px;margin:0 auto}
.cards .card{flex-basis:calc((100% - 1.8rem)/2)}
.cards .card img{aspect-ratio:16/10}
@media(max-width:620px){.cards .card{flex-basis:100%}}
/* five reading cards: 3 then 2, centred */
.cards{max-width:none}
.cards .card{flex-basis:calc((100% - 3.6rem)/3)}
.cards .card img{aspect-ratio:4/3}
@media(max-width:960px){.cards .card{flex-basis:calc((100% - 1.8rem)/2)}}
@media(max-width:620px){.cards .card{flex-basis:100%}}
.foot-social{margin-top:1rem}
.foot-social a{display:inline-flex;align-items:center;gap:.5rem;color:var(--gold-soft);text-decoration:none;border:1px solid rgba(230,207,150,.35);border-radius:999px;padding:.5rem 1.1rem;font-size:.9rem}
.foot-social a:hover{background:rgba(230,207,150,.12)}
.side-mail + .side-mail{margin-top:0}
.h1-eyebrow{line-height:1.9;max-width:36rem}
@media(max-width:860px){.h1-eyebrow{margin-inline:auto}}
