*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}

:root{
  color-scheme:light only;
  --cream:#EFE8DE;
  --espresso:#2C2825;
  --taupe:#C0AFA5;
  --gold:#C9A96E;
  --sage:#848F6F;
  --sage-deep:#5E684A;
  --rust:#A65A3F;
  --ink:#2d2118;
}
/* some phone browsers force-darken any page that does not handle dark mode.
   declaring it, and keeping the brand palette, makes them stand down. */
@media (prefers-color-scheme: dark){
  :root{
    color-scheme:light only;
    --cream:#EFE8DE; --espresso:#2C2825; --taupe:#C0AFA5; --gold:#C9A96E;
    --sage:#848F6F; --sage-deep:#5E684A; --rust:#A65A3F; --ink:#2d2118;
  }
  html,body{background:#EFE8DE !important;color:#2d2118 !important;}
  .hero{background:#C0AFA5 !important;}
  .fits,.how,.faq{background:#EFE8DE !important;}
  .statement,.contact{background:#2C2825 !important;}
  .offerings{background:#C0AFA5 !important;}
}

html{scroll-behavior:smooth;}
body{
  background:var(--cream);color:var(--ink);
  font-family:'Montserrat',sans-serif;font-weight:300;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.eyebrow{font-size:12px;font-weight:400;letter-spacing:0.32em;text-transform:uppercase;}
.wrap{max-width:1060px;margin:0 auto;padding:0 28px;}

.reveal{opacity:0;transform:translateY(26px);transition:opacity 1s ease,transform 1s ease;}
.reveal.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1;transform:none;transition:none;}
}

/* ---------- header ---------- */
header{
  position:fixed;top:0;left:0;right:0;z-index:20;
  display:flex;align-items:center;justify-content:space-between;gap:30px;padding:11px 30px;
  background:rgba(192,175,165,0);backdrop-filter:blur(0px);
  border-bottom:1px solid rgba(90,68,56,0);
  transition:background .45s ease,border-color .45s ease,padding .45s ease,backdrop-filter .45s ease;
}
header.docked{
  background:rgba(192,175,165,0.93);backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(90,68,56,0.16);padding:7px 30px;
}
header .brand{display:flex;align-items:center;gap:15px;text-decoration:none;color:var(--ink);}
header .brand{opacity:0;visibility:hidden;transition:opacity .45s ease,visibility .45s;}
header.docked .brand{opacity:1;visibility:visible;}
header .brand img{height:34px;width:auto;display:block;}
header.docked .brand img{height:30px;}
header .brand .nm b{
  display:block;font-family:'Cormorant Garamond',serif;font-weight:500;
  font-size:21.4px;letter-spacing:0.02em;line-height:1.3;
}
header .brand .nm span{
  display:block;font-size:10.1px;letter-spacing:0.3em;text-transform:uppercase;color:#574a40;
}
header nav{display:flex;gap:30px;}
header nav a{
  font-size:11.5px;letter-spacing:0.26em;text-transform:uppercase;text-decoration:none;
  color:#3b2f28;font-weight:400;padding-bottom:4px;border-bottom:1px solid transparent;
  transition:border-color .3s;white-space:nowrap;
}
header nav a:hover,header nav a:focus-visible{border-color:var(--gold);}

.menu-btn{
  display:none;background:none;border:0;cursor:pointer;padding:10px;
  width:40px;height:40px;align-items:center;justify-content:center;flex-direction:column;gap:5px;
  position:relative;z-index:6;
}
.menu-btn span{display:block;width:22px;height:1px;background:var(--ink);transition:transform .3s,opacity .3s;}
.menu-btn[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.menu-btn[aria-expanded="true"] span:nth-child(2){opacity:0;}
.menu-btn[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

/* The full nav is seven items wide. Below 1080px it ran past the right edge
   and the last links became unreachable, so the menu button holds on longer.
   The compact header sizing stays a phone thing, in its own block below. */
@media(max-width:1080px){
  .menu-btn{display:flex;}
  header nav{
    position:fixed;inset:0 0 auto 0;top:0;
    background:var(--cream);flex-direction:column;gap:0;
    padding:96px 28px 40px;
    transform:translateY(-100%);transition:transform .45s cubic-bezier(.4,0,.2,1);
    box-shadow:0 20px 50px rgba(44,40,37,0.14);
    z-index:4;
  }
  header nav.open{transform:none;}
  header nav a{
    font-size:13.5px;letter-spacing:0.28em;padding:20px 0;
    border-bottom:1px solid rgba(90,68,56,0.14);
  }
}

@media(max-width:820px){
  header{padding:7px 20px;}
  header .brand img{height:36px;}
  header.docked{padding:6px 20px;}
  header.docked .brand img{height:34px;}
}



.hero-brand{
  display:flex;flex-direction:column;align-items:center;gap:16px;
  margin-bottom:0;text-decoration:none;color:var(--ink);
}
.hero-brand img{height:clamp(78px,min(15vw,14.4vh),130px);width:auto;display:block;}
.hero-brand .nm{text-align:center;}
.hero-brand .nm b{
  display:block;font-family:'Cormorant Garamond',serif;font-weight:500;
  font-size:clamp(32px,min(7vw,6.3vh),57px);letter-spacing:0.02em;line-height:1.2;
  color:var(--espresso);
}
.hero-brand .nm b::after{
  content:'';display:block;width:62px;height:1px;background:var(--gold);
  margin:10px auto 7px;
}
.hero-brand .nm span{
  display:block;margin-top:0;font-size:clamp(13px,min(3.1vw,2.95vh),26.5px);
  letter-spacing:0.3em;text-transform:uppercase;color:#3b2f28;font-weight:500;
}

.to-top{
  position:fixed;right:clamp(16px,3vw,34px);bottom:clamp(16px,3vw,34px);z-index:19;
  width:48px;height:48px;border-radius:50%;
  border:1px solid var(--gold);background:var(--cream);
  box-shadow:0 6px 20px rgba(44,40,37,0.20);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .4s ease,transform .4s ease,visibility .4s,background .3s;
}
.to-top.show{opacity:1;visibility:visible;transform:none;}
.to-top:hover{background:var(--cream);}
.to-top svg{width:15px;height:15px;stroke:var(--espresso);stroke-width:1.5;fill:none;}

/* ---------- hero ---------- */
.hero{
  position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:center;
  text-align:center;padding:clamp(72px,10vh,120px) 24px 72px;
  background:var(--taupe);
}
.hero .bigline{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300;
  font-size:clamp(36px,min(7.1vw,10.1vh),94px);line-height:1.05;letter-spacing:0.005em;
  white-space:nowrap;
}
.hero .bigline{color:#5E684A;}
.hero .bigline em{font-style:italic;color:#5E684A;}
.hero .pillars{
  margin-top:34px;
  font-family:'Montserrat',sans-serif;font-weight:300;
  font-size:clamp(11px,1.68vw,22.4px);
  letter-spacing:0.04em;text-transform:uppercase;color:#5a4438;
  line-height:1.35;max-width:100%;text-wrap:balance;
}
.hero .pillars i{
  display:inline-block;vertical-align:0.16em;
  width:clamp(5px,0.78vw,10.5px);height:clamp(5px,0.78vw,10.5px);
  border-radius:50%;background:var(--gold);margin:0 0.46em;
}
.hero-line{
  display:flex;flex-direction:column;align-items:center;
  width:fit-content;max-width:100%;margin:0 auto;padding-top:clamp(40px,6vh,72px);
}
.hero .sub{
  margin-top:clamp(26px,4vh,44px);max-width:24ch;text-align:center;
  font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300;
  font-size:clamp(31px,min(4.4vw,6.3vh),57px);line-height:1.25;letter-spacing:0.01em;
  color:var(--espresso);
}
.hero .sub-note{
  margin-top:18px;max-width:40ch;text-align:center;
  font-family:'Montserrat',sans-serif;font-weight:400;
  font-size:clamp(16px,min(1.6vw,2.25vh),20px);line-height:1.68;letter-spacing:0.035em;
  color:#1c1813;
}
.hero .cta{
  margin-top:20px;display:inline-flex;align-items:center;gap:14px;text-decoration:none;
  font-size:14px;letter-spacing:0.3em;text-transform:uppercase;font-weight:400;
  color:var(--cream);background:var(--espresso);padding:21px 42px;border-radius:4px;
  box-shadow:0 10px 26px rgba(44,40,37,0.26);
  transition:background .3s,transform .3s,box-shadow .3s;
}
.hero .cta svg{width:17px;height:17px;flex:0 0 auto;transition:transform .3s;}
.hero .cta:hover{background:var(--sage-deep);transform:translateY(-2px);box-shadow:0 14px 32px rgba(44,40,37,0.30);}
.hero .cta:hover svg{transform:translateX(5px);}
.hero .cta:active{transform:translateY(0);box-shadow:0 6px 16px rgba(44,40,37,0.24);}
@media(max-width:480px){
  .hero .cta{padding:19px 26px;font-size:12.5px;letter-spacing:0.2em;gap:11px;white-space:nowrap;}
  .hero .cta svg{width:16px;height:16px;}
}
.hero .scroll-hint{
  position:absolute;bottom:14px;left:50%;transform:translateX(-50%);
  width:1px;height:38px;background:linear-gradient(var(--gold),transparent);opacity:.65;
}

@media (min-width:760px){
  .hero-brand{gap:clamp(8px,1.4vh,16px);}
  .hero-brand img{height:clamp(56px,min(15vw,14.4vh),130px);}
  .hero-brand .nm b{font-size:clamp(26px,min(7vw,6.3vh),57px);}
  .hero-brand .nm span{font-size:clamp(12px,min(3.1vw,2.95vh),26.5px);}
  .hero .sub{font-size:clamp(24px,min(4.4vw,6.3vh),57px);}
  .hero .sub-note{font-size:clamp(17px,min(1.6vw,2.25vh),20px);}
  .hero .bigline{font-size:clamp(34px,min(7.56vw,10.76vh),100.8px);}
  .contact img.logo{height:clamp(56px,min(15vw,14.4vh),130px);}
}

/* ---------- statement ---------- */
.statement{background:var(--espresso);color:var(--cream);padding:110px 24px;text-align:center;}
.statement .eyebrow{color:var(--gold);margin-bottom:30px;}
.statement p.big{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300;
  font-size:clamp(33px,5vw,55px);line-height:1.3;max-width:800px;margin:0 auto;
}
.statement p.big span{color:var(--taupe);}

/* ---------- testimonials ---------- */
.voices{padding:120px 0 110px;background:linear-gradient(180deg,#9AA381 0%,#8C9674 45%,#848F6F 100%);}
.voices .head{text-align:center;margin-bottom:64px;}
.voices .head .eyebrow{color:var(--espresso);}
.voices .head h2{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300;
  font-size:clamp(39px,5.5vw,59px);margin-top:16px;
}
.quotes{display:grid;grid-template-columns:1fr 1fr;gap:56px 62px;max-width:980px;margin:0 auto;}
@media(max-width:760px){.quotes{grid-template-columns:1fr;gap:52px;}}
.quote{position:relative;padding-top:36px;}
.quote::before{
  content:'\201C';position:absolute;top:-6px;left:-4px;
  font-family:'Cormorant Garamond',serif;font-size:88px;line-height:1;color:var(--cream);opacity:.75;
}
.qbody{
  font-family:'Cormorant Garamond',serif;font-weight:400;
  font-size:24px;line-height:1.55;color:#1a1510;
  max-height:calc(24px * 1.55 * 4);overflow:hidden;
}
.qbody.open{max-height:none;}
.more{
  margin-top:14px;background:none;border:0;padding:0 0 3px;cursor:pointer;
  font-family:'Montserrat',sans-serif;font-weight:400;font-size:11px;
  letter-spacing:0.24em;text-transform:uppercase;color:var(--espresso);
  border-bottom:1px solid rgba(44,40,37,0.45);transition:color .3s,border-color .3s;
}
.more:hover{color:var(--cream);border-color:var(--cream);}
.quote .who{margin-top:22px;}
.quote .who b{
  display:block;font-size:13px;letter-spacing:0.24em;text-transform:uppercase;
  font-weight:500;color:var(--espresso);
}
.quote .who span{display:block;margin-top:5px;font-size:13px;letter-spacing:0.08em;color:#2f3426;}

/* ---------- about ---------- */
.about{padding:120px 0 40px;}
.about-grid{display:grid;grid-template-columns:minmax(184px,267px) 1fr;gap:clamp(40px,7vw,90px);align-items:center;}
.portrait{
  position:relative;padding:12px;
  border:1px solid var(--gold);
  border-radius:50% 50% 8px 8px / 40% 40% 8px 8px;
}
.arch{border-radius:50% 50% 4px 4px / 40% 40% 4px 4px;overflow:hidden;box-shadow:0 24px 60px rgba(44,40,37,0.18);position:relative;z-index:1;}
.arch img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 20%;}

.about-copy .eyebrow{color:var(--rust);font-family:'Marcellus',serif;letter-spacing:0.28em;}
.about-copy h2{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(41px,5.5vw,59px);margin-top:16px;}
.about-copy .about-lede{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300;
  font-size:clamp(24px,3vw,31px);color:var(--sage-deep);margin-top:18px;line-height:1.4;
}
.about-copy p:not(.eyebrow):not(.about-lede){margin-top:18px;font-size:16.5px;line-height:1.85;color:#2e2720;max-width:520px;}
@media(max-width:760px){
  .about{padding:90px 0 20px;}
  .about-grid{grid-template-columns:1fr;gap:48px;}
  .portrait{max-width:211px;margin:0 auto;}
}

/* ---------- three ways ---------- */
.ways{padding:120px 0 90px;background:linear-gradient(180deg,#9AA381 0%,#8C9674 55%,#848F6F 100%);}
.ways .head{margin-bottom:60px;text-align:center;}
.ways .head .eyebrow{color:var(--cream);font-family:'Marcellus',serif;letter-spacing:0.28em;}
.ways .head h2{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(37px,5.5vw,57px);margin-top:16px;color:#221f1a;}
.way{display:block;text-align:center;padding:46px 0;border-top:1px solid rgba(34,31,26,0.20);}
.ways .head + .way{border-top:none;padding-top:0;}
.way:last-of-type{border-bottom:1px solid rgba(34,31,26,0.20);}
.way .num{display:block;font-family:'Cormorant Garamond',serif;font-weight:300;font-size:33px;color:var(--cream);line-height:1;}
.way h3{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:400;font-size:clamp(31px,4vw,44px);color:#221f1a;}
.way p{margin-top:14px;font-size:18px;line-height:1.75;color:#1a1510;max-width:660px;margin-inline:auto;}
.way .tag{
  display:block;margin:14px 0 8px;font-family:'Marcellus',serif;
  font-size:12px;letter-spacing:0.3em;text-transform:uppercase;color:var(--espresso);
}
.way h3{margin-top:0;}
@media(max-width:560px){.way{padding:38px 0;}}

.sessions{background:#848F6F;padding:10px 0 110px;}
.sessions .head{text-align:center;margin-bottom:46px;}
.sessions .head .eyebrow{color:var(--cream);font-family:'Marcellus',serif;letter-spacing:0.3em;}
.sessions .head h2{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300;
  font-size:clamp(32px,4.6vw,50px);margin-top:14px;color:#1d1a14;
}
.sessions .lede{margin:14px auto 0;max-width:540px;font-size:16px;line-height:1.8;color:#1a1510;}
.shots{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.shot img{
  width:100%;height:auto;aspect-ratio:1;object-fit:cover;display:block;border-radius:2px;
  box-shadow:0 10px 30px rgba(34,31,26,0.18);
}
.shot figcaption{
  margin-top:10px;font-family:'Marcellus',serif;font-size:11px;
  letter-spacing:0.22em;text-transform:uppercase;color:#2C2825;
}
@media(max-width:700px){
  .shots{grid-template-columns:repeat(2,1fr);gap:12px;}
  .shot figcaption{font-size:9.5px;letter-spacing:0.18em;margin-top:7px;}
}

/* ---------- is this you ---------- */
.fits{background:var(--cream);padding:56px 0 46px;}
.fits .head{text-align:center;margin-bottom:24px;}
.fits .head .eyebrow{color:var(--rust);font-family:'Marcellus',serif;letter-spacing:0.3em;}
.fits .head h2{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300;
  font-size:clamp(32px,4.6vw,52px);margin-top:14px;color:var(--ink);
}
.fits ul{list-style:none;max-width:760px;margin:0 auto;}
.fits li{
  position:relative;padding:11px 0 11px 32px;
  border-top:1px solid rgba(90,68,56,0.16);
  font-family:'Cormorant Garamond',serif;font-weight:500;font-size:clamp(21px,2.3vw,25px);
  line-height:1.5;color:#1a1510;
}
.fits li:last-child{border-bottom:1px solid rgba(90,68,56,0.16);}
.fits li::before{
  content:'';position:absolute;left:4px;top:23px;
  width:6px;height:6px;border-radius:50%;background:var(--gold);
}
.fits .close{
  margin-top:26px;text-align:center;
  font-family:'Cormorant Garamond',serif;font-style:italic;
  font-size:clamp(20px,2.6vw,28px);color:var(--sage-deep);
}

/* ---------- how it works ---------- */
.how{background:var(--cream);padding:70px 0 64px;}
.how .head{text-align:center;margin-bottom:34px;}
.how .head .eyebrow{color:var(--rust);font-family:'Marcellus',serif;letter-spacing:0.3em;}
.how .head h2{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300;
  font-size:clamp(32px,4.6vw,52px);margin-top:14px;color:var(--ink);
}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;}
@media(max-width:860px){.steps{grid-template-columns:repeat(2,1fr);gap:34px 24px;}}
@media(max-width:520px){.steps{grid-template-columns:1fr;gap:30px;}}
.step{position:relative;padding-top:26px;border-top:1px solid rgba(90,68,56,0.22);}
.step .s-num{
  display:block;font-family:'Cormorant Garamond',serif;font-weight:300;
  font-size:30px;color:var(--gold);line-height:1;
}
.step h3{
  margin-top:10px;font-family:'Cormorant Garamond',serif;font-style:italic;
  font-weight:400;font-size:clamp(22px,2.3vw,26px);color:var(--ink);line-height:1.2;
}
.step p{margin-top:12px;font-size:15.5px;line-height:1.75;color:#2e2720;}
.how .assure{
  margin-top:50px;text-align:center;font-size:15.5px;line-height:1.9;color:#2e2720;
  max-width:620px;margin-inline:auto;
}
.how .assure b{font-weight:500;color:var(--ink);}

/* ---------- faq ---------- */
.faq{background:var(--cream);padding:110px 0 110px;}
.faq .head{text-align:center;margin-bottom:46px;}
.faq .head .eyebrow{color:var(--rust);font-family:'Marcellus',serif;letter-spacing:0.3em;}
.faq .head h2{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300;
  font-size:clamp(32px,4.6vw,52px);margin-top:14px;color:var(--ink);
}
.qa{max-width:780px;margin:0 auto;}
.qa details{border-top:1px solid rgba(90,68,56,0.18);}
.qa details:last-of-type{border-bottom:1px solid rgba(90,68,56,0.18);}
.qa summary{
  list-style:none;cursor:pointer;padding:24px 42px 24px 0;position:relative;
  font-family:'Cormorant Garamond',serif;font-size:clamp(20px,2.1vw,24px);
  line-height:1.4;color:var(--ink);transition:color .3s;
}
.qa summary::-webkit-details-marker{display:none;}
.qa summary:hover{color:var(--sage-deep);}
.qa summary::after{
  content:'';position:absolute;right:8px;top:50%;width:11px;height:11px;
  border-right:1px solid var(--gold);border-bottom:1px solid var(--gold);
  transform:translateY(-70%) rotate(45deg);transition:transform .3s;
}
.qa details[open] summary::after{transform:translateY(-30%) rotate(-135deg);}
.qa .a{padding:0 20px 26px 0;font-size:16px;line-height:1.85;color:#2e2720;}

/* ---------- enquiry form ---------- */
.enquire{
  margin:0 auto;max-width:560px;text-align:left;
  padding-top:52px;margin-top:50px;border-top:1px solid rgba(239,232,222,0.14);
}
.enquire .f-head{text-align:center;margin-bottom:30px;}
.enquire .f-head p{
  font-family:'Marcellus',serif;font-size:12px;letter-spacing:0.3em;
  text-transform:uppercase;color:var(--gold);
}
.enquire .f-head span{
  display:block;margin-top:12px;font-size:14.5px;line-height:1.8;color:#cdc2b4;
}
.enquire label{
  display:block;margin-bottom:18px;
  font-size:11px;letter-spacing:0.24em;text-transform:uppercase;color:#b8ac9e;
}
.enquire input,.enquire select,.enquire textarea{
  display:block;width:100%;margin-top:8px;
  background:rgba(239,232,222,0.07);border:1px solid rgba(239,232,222,0.22);
  border-radius:2px;padding:14px 15px;color:var(--cream);
  font-family:'Montserrat',sans-serif;font-weight:300;font-size:15px;letter-spacing:0.01em;
  transition:border-color .3s,background .3s;
}
.enquire textarea{min-height:104px;resize:vertical;}
.enquire input:focus,.enquire select:focus,.enquire textarea:focus{
  outline:none;border-color:var(--gold);background:rgba(239,232,222,0.11);
}
.enquire select option{background:var(--espresso);color:var(--cream);}
.enquire button{
  width:100%;margin-top:10px;cursor:pointer;
  background:var(--sage);color:var(--espresso);border:0;border-radius:2px;
  padding:19px 30px;font-family:'Montserrat',sans-serif;font-weight:400;
  font-size:12.5px;letter-spacing:0.28em;text-transform:uppercase;
  transition:background .3s;
}
.enquire button:hover{background:var(--gold);}
.enquire .hp{position:absolute;left:-9999px;}
.enquire .note{
  margin-top:18px;text-align:center;font-size:12.5px;line-height:1.7;color:#8d8275;
}
.enquire .done{
  display:none;text-align:center;padding:36px 20px;
  font-family:'Cormorant Garamond',serif;font-style:italic;
  font-size:24px;line-height:1.5;color:var(--taupe);
}
.enquire.sent form{display:none;}
.enquire.sent .done{display:block;}

/* ---------- offerings ---------- */
.offerings{background:var(--taupe);padding:120px 0 130px;}
.offerings .head{text-align:center;margin-bottom:76px;}
.offerings .head .eyebrow{color:#5a4438;}
.offerings .head h2{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300;
  font-size:clamp(41px,5.9vw,63px);margin-top:18px;
}
.offerings .head .sub{margin-top:20px;font-size:15.5px;line-height:1.8;color:#2e2720;max-width:540px;margin-inline:auto;}
.cards{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(6,auto);gap:26px;}
.card{
  grid-row:span 6;display:grid;grid-template-rows:subgrid;
  background:var(--cream);border-radius:3px;padding:46px 36px 42px;
  box-shadow:0 18px 50px rgba(44,40,37,0.10);
}
.card.feature{background:var(--espresso);color:var(--cream);}
.card .c-eyebrow{font-size:11px;letter-spacing:0.3em;text-transform:uppercase;color:var(--rust);font-weight:400;font-family:'Marcellus',serif;}
.card.feature .c-eyebrow{color:var(--gold);}
.card h3{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:34px;margin-top:16px;line-height:1.15;}
.card .price{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300;font-size:24px;color:var(--sage-deep);margin-top:8px;}
.card.feature .price{color:var(--taupe);}
.card .purpose{margin-top:18px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:18.5px;line-height:1.55;color:#1a1510;}
.card.feature .purpose{color:#cfc4b8;}
.card ul{margin-top:24px;list-style:none;}
.card ul li{font-size:15px;line-height:1.7;color:#2e2720;padding:9px 0 9px 20px;position:relative;border-top:1px solid rgba(90,68,56,0.12);}
.card.feature ul li{color:#ece3d7;border-top-color:rgba(239,232,222,0.14);}
.card ul li::before{content:'';position:absolute;left:2px;top:16px;width:6px;height:6px;border-radius:50%;background:var(--sage);}
.card .connect{
  margin-top:28px;align-self:end;justify-self:start;
  display:inline-flex;align-items:center;gap:10px;text-decoration:none;
  font-size:11px;letter-spacing:0.28em;text-transform:uppercase;font-weight:400;
  color:var(--espresso);border-bottom:1px solid var(--gold);padding-bottom:7px;
  transition:color .3s,border-color .3s,gap .3s;
}
.card .connect:hover{color:var(--sage-deep);gap:16px;}
.card.feature .connect{color:var(--cream);}
.card.feature .connect:hover{color:var(--gold);}
.card .connect svg{width:14px;height:14px;flex:0 0 auto;}
@media(max-width:900px){
  .cards{grid-template-columns:1fr;grid-template-rows:none;max-width:520px;margin:0 auto;}
  .card{grid-row:auto;grid-template-rows:none;display:block;}
  .card .connect{margin-top:26px;}
}
.addon-box{
  margin-top:62px;background:var(--cream);border:1px solid rgba(201,169,110,0.55);
  border-radius:3px;padding:24px clamp(24px,5vw,60px) 26px;text-align:center;
  box-shadow:0 14px 40px rgba(44,40,37,0.08);
}
.addon-label{
  display:block;font-family:'Marcellus',serif;font-size:12px;
  letter-spacing:0.3em;text-transform:uppercase;color:var(--rust);
}
.addon-list{margin:18px auto 0;max-width:640px;list-style:none;text-align:left;}
.addon-list li{
  position:relative;padding:12px 0 12px 23px;
  font-size:16px;line-height:1.72;color:#2e2720;
}
.addon-list li + li{border-top:1px solid rgba(90,68,56,0.14);}
.addon-list li::before{
  content:'';position:absolute;left:2px;top:22px;width:6px;height:6px;
  border-radius:50%;background:var(--sage);
}
.group-box{
  margin-top:62px;background:var(--cream);border:1px solid rgba(201,169,110,0.55);
  border-radius:3px;padding:clamp(32px,4vw,54px) clamp(24px,5vw,56px);
  box-shadow:0 14px 40px rgba(44,40,37,0.08);text-align:center;
}
.group-head h3{
  margin-top:14px;font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300;
  font-size:clamp(30px,4vw,44px);line-height:1.25;color:var(--ink);
}
.group-lede{
  margin:16px auto 0;max-width:560px;font-size:15.5px;line-height:1.8;color:#2e2720;
}
.group-topics{
  margin-top:44px;display:grid;grid-template-columns:repeat(3,1fr);
  gap:34px;text-align:left;
}
@media(max-width:860px){.group-topics{grid-template-columns:1fr;gap:34px;max-width:460px;margin-left:auto;margin-right:auto;}}
.topic{padding-top:22px;border-top:1px solid rgba(90,68,56,0.18);}
.topic .t-num{
  display:block;font-family:'Cormorant Garamond',serif;font-weight:300;
  font-size:26px;color:var(--gold);line-height:1;
}
.topic h4{
  margin-top:8px;font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:400;
  font-size:clamp(23px,2.4vw,27px);line-height:1.2;color:var(--ink);
}
.topic ul{margin-top:14px;list-style:none;}
.topic ul li{
  position:relative;padding:7px 0 7px 18px;
  font-size:16px;line-height:1.7;color:#241e19;
}
.topic ul li::before{
  content:'';position:absolute;left:0;top:15px;
  width:5px;height:5px;border-radius:50%;background:var(--sage);
}
.group-foot{
  margin-top:38px;font-family:'Cormorant Garamond',serif;font-style:italic;
  font-size:21px;line-height:1.6;color:#1a1510;
}
.group-connect{
  margin-top:28px;display:inline-flex;align-items:center;gap:10px;text-decoration:none;
  font-size:11px;letter-spacing:0.28em;text-transform:uppercase;font-weight:400;
  color:var(--espresso);border-bottom:1px solid var(--gold);padding-bottom:7px;
  transition:color .3s,border-color .3s,gap .3s;
}
.group-connect:hover{color:var(--sage-deep);gap:16px;}


/* ---------- contact ---------- */
.contact{background:var(--espresso);color:var(--cream);padding:130px 24px 60px;text-align:center;}
.contact img.logo{height:clamp(78px,min(15vw,14.4vh),130px);width:auto;margin-bottom:30px;}
.contact .creed{
  font-family:'Montserrat',sans-serif;font-weight:300;
  font-size:clamp(14px,1.5vw,18px);line-height:2;letter-spacing:0.14em;
  text-transform:uppercase;color:var(--taupe);
  max-width:620px;margin:0 auto 38px;
}
.contact h2{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300;font-size:clamp(44px,7vw,74px);}
.contact .actions{margin-top:44px;display:flex;gap:18px;justify-content:center;flex-wrap:wrap;}
.contact .actions a{
  text-decoration:none;font-size:12.5px;letter-spacing:0.28em;text-transform:uppercase;font-weight:400;
  padding:17px 40px;border-radius:2px;background:var(--sage);color:var(--espresso);transition:background .3s;
}
.contact .actions a:hover{background:var(--gold);}
.contact .lines{margin-top:54px;display:flex;gap:clamp(18px,4vw,48px);justify-content:center;flex-wrap:wrap;font-size:clamp(16px,1.6vw,18px);letter-spacing:0.08em;color:#cdc2b4;line-height:2;}
.contact .lines a{color:#cdc2b4;text-decoration:none;transition:color .3s;}
.contact .lines a:hover{color:var(--gold);}
.contact .social{margin-top:34px;display:flex;gap:16px;justify-content:center;}
.contact .social a{
  display:flex;align-items:center;justify-content:center;
  width:46px;height:46px;border-radius:50%;
  border:1px solid rgba(239,232,222,0.26);color:#cdc2b4;
  transition:color .3s,border-color .3s,background .3s;
}
.contact .social a:hover,.contact .social a:focus-visible{
  color:var(--espresso);background:var(--gold);border-color:var(--gold);
}
.contact .social svg{width:19px;height:19px;display:block;}
.contact .where-line{margin-top:44px;font-size:12.5px;letter-spacing:0.16em;color:#9d9285;}
.contact .foot{margin-top:80px;padding-top:26px;border-top:1px solid rgba(239,232,222,0.12);font-size:10px;letter-spacing:0.3em;text-transform:uppercase;color:#7d7266;}

/* ---------- phone carousels: offerings + testimonials ---------- */
.dots{display:none;}
@media(max-width:700px){
  .cards,.quotes,.group-topics{
    display:flex;grid-template-columns:none;grid-template-rows:none;
    max-width:none;margin:0;gap:14px;
    overflow-x:auto;overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .cards::-webkit-scrollbar,.quotes::-webkit-scrollbar,
  .group-topics::-webkit-scrollbar{display:none;}
  .cards>.card,.quotes>.quote,.group-topics>.topic{
    flex:0 0 100%;scroll-snap-align:start;grid-row:auto;max-width:none;
  }
  .cards>.card{display:block;}
  .quotes>.quote{padding-right:4px;}
  .cards>.reveal,.quotes>.reveal,.group-topics>.reveal{opacity:1;transform:none;transition:none;}
  .dots{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:26px;}
  .dots button.cnext{
    margin-left:20px;flex:0 0 auto;
    width:54px;height:54px;border-radius:50%;padding:0;cursor:pointer;
    background:var(--gold);border:0;
    box-shadow:0 6px 18px rgba(44,40,37,0.22);
    display:flex;align-items:center;justify-content:center;
  }
  .dots button.cnext svg{width:21px;height:21px;}
  .dots button.cnext:active{transform:scale(0.94);}
  .dots button.cnext[hidden]{display:none;}
  .voices .dots button.cnext{background:var(--cream);}
  .dots button:not(.cnext){
    width:8px;height:8px;padding:0;border:0;border-radius:50%;cursor:pointer;
    background:rgba(44,40,37,0.22);transition:background .3s ease,transform .3s ease;
  }
  .dots button:not(.cnext).on{background:var(--sage-deep);transform:scale(1.4);}
  .voices .dots button:not(.cnext){background:rgba(255,255,255,0.38);}
  .voices .dots button:not(.cnext).on{background:var(--cream);}
}

/* ---------- approach pillars ---------- */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;margin-top:4px;}
.pillar{border-top:1px solid rgba(34,31,26,0.22);padding-top:26px;}
.pillar summary{list-style:none;cursor:pointer;display:block;}
.pillar summary::-webkit-details-marker{display:none;}
.pillar .p-tag{display:block;font-family:'Marcellus',serif;font-size:12px;
  letter-spacing:0.3em;text-transform:uppercase;color:var(--espresso);}
.pillar img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block;
  border-radius:2px;margin:16px 0 20px;box-shadow:0 10px 30px rgba(34,31,26,0.16);}
.pillar h3{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:28px;
  line-height:1.2;color:#1d1a14;margin:0 0 10px;}
.pillar .p-lede{font-size:16px;line-height:1.7;color:#1a1510;margin:0;}
.pillar .p-more{display:inline-flex;align-items:center;gap:9px;margin-top:18px;
  font-family:'Marcellus',serif;font-size:11.5px;letter-spacing:0.22em;
  text-transform:uppercase;color:var(--espresso);
  border-bottom:1px solid var(--gold);padding-bottom:4px;transition:gap .3s ease;}
.pillar .p-more::after{content:'+';font-size:15px;line-height:1;}
.pillar[open] .p-more::after{content:'\2212';}
.pillar summary:hover .p-more{gap:14px;}
.pillar .p-body{margin-top:18px;font-size:16px;line-height:1.78;color:#1a1510;}
@media(max-width:860px){
  .pillars{grid-template-columns:1fr;gap:30px;}
  .pillar h3{font-size:26px;}
}
.credential{
  margin-top:22px;padding-top:18px;border-top:1px solid rgba(34,31,26,0.16);
  font-size:14.5px;line-height:1.7;color:#4a4039;font-style:italic;
}

/* ---------- phone: fit the reading sections to one screen ---------- */
@media(max-width:700px){
  .fits{padding:40px 0 26px;}
  .fits .head{margin-bottom:22px;}
  .fits .head h2{margin-top:8px;}
  .fits li{padding:8px 0 8px 28px;}
  .fits li::before{top:20px;}
  .fits .close{margin-top:14px;}
  .how{padding:40px 0 28px;}
  .how .head{margin-bottom:24px;}
  .how .head h2{margin-top:8px;}
  .steps{gap:20px;}
  .step{padding-top:18px;}
}

/* ---------- phone: anchor offset for fixed header, last tile centred ---------- */
@media(max-width:700px){
  html{scroll-padding-top:66px;}
  .shots>.shot:last-child{
    grid-column:1 / -1;justify-self:center;width:calc(50% - 6px);
  }
}

/* ---------- narrow phones (Galaxy F15 class, under 400px) ---------- */
@media(max-width:400px){
  .fits{padding:32px 0 22px;}
  .fits .head{margin-bottom:18px;}
  .fits .head h2{font-size:30px;margin-top:6px;}
  .fits li{font-size:20.5px;font-weight:500;line-height:1.42;padding:6px 0 6px 24px;}
  .fits li::before{top:15px;width:5px;height:5px;}
  .fits .close{margin-top:12px;font-size:18px;line-height:1.45;}
  .how{padding:32px 0 24px;}
  .how .head{margin-bottom:18px;}
  .how .head h2{font-size:30px;margin-top:6px;}
  .steps{gap:11px;}
  .step{padding-top:10px;}
  .step h3{font-size:24px;}
  .step p{font-size:15px;line-height:1.5;margin-top:4px;}
  .cards>.card{padding:26px 22px;}
  .card h3{font-size:30px;margin-top:12px;}
  .card .purpose{font-size:17px;margin-top:14px;}
  .card ul{margin-top:18px;}
  .card ul li{font-size:14.5px;line-height:1.6;padding:7px 0 7px 19px;}
  .card ul li::before{top:13px;}
  .card .connect{margin-top:20px;}
  .dots{margin-top:18px;}
}

/* ---------- ways in: the three forks on home ---------- */
.forks{background:var(--taupe);padding:clamp(76px,10vh,118px) 0;}
.forks .head{text-align:center;margin-bottom:clamp(36px,5vh,56px);}
.forks .head .eyebrow{color:#5a4438;font-family:'Marcellus',serif;font-size:11px;letter-spacing:0.3em;text-transform:uppercase;}
.forks .head h2{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(34px,5vw,54px);margin-top:14px;color:#1a1510;}
.fork-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch;}
.fork{
  display:flex;flex-direction:column;text-decoration:none;
  background:var(--cream);border-radius:3px;padding:40px 32px 34px;
  box-shadow:0 18px 50px rgba(44,40,37,0.10);
  transition:transform .35s,box-shadow .35s;
}
.fork:hover,.fork:focus-visible{transform:translateY(-4px);box-shadow:0 24px 60px rgba(44,40,37,0.17);}
.fork .f-tag{font-family:'Marcellus',serif;font-size:11px;letter-spacing:0.3em;text-transform:uppercase;color:var(--rust);}
.fork h3{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(27px,3vw,33px);line-height:1.2;color:#1a1510;margin:14px 0 0;}
.fork p{margin-top:14px;font-size:15.5px;line-height:1.7;color:#2e2720;flex:1 1 auto;}
.fork .f-more{
  display:inline-flex;align-items:center;gap:9px;margin-top:26px;align-self:flex-start;
  font-family:'Marcellus',serif;font-size:11.5px;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--sage-deep);border-bottom:1px solid var(--gold);padding-bottom:6px;transition:gap .3s;
}
.fork .f-more::after{content:'\2192';}
.fork:hover .f-more{gap:15px;}
@media(max-width:860px){.fork-grid{grid-template-columns:1fr;gap:18px;max-width:470px;margin-inline:auto;}}

/* ---------- subpage head ---------- */
.pagehead{background:var(--taupe);text-align:center;padding:clamp(124px,17vh,180px) 24px clamp(58px,8vh,88px);}
.pagehead .eyebrow{font-family:'Marcellus',serif;font-size:11px;letter-spacing:0.3em;text-transform:uppercase;color:#5a4438;}
.pagehead h1{font-family:'Cormorant Garamond',serif;font-weight:300;font-style:italic;font-size:clamp(38px,6.6vw,66px);line-height:1.12;color:var(--espresso);margin-top:16px;}
.pagehead .lede{margin:22px auto 0;max-width:580px;font-size:clamp(15.5px,1.7vw,18px);line-height:1.75;color:#2b2420;}

/* ---------- plain prose blocks on subpages ---------- */
.prose{background:var(--cream);padding:clamp(60px,8vh,92px) 0;}
.prose.band{background:var(--taupe);}
.prose .inner{max-width:680px;margin:0 auto;}
.prose h2{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(28px,3.6vw,42px);line-height:1.18;color:#1a1510;}
.prose h3{font-family:'Cormorant Garamond',serif;font-weight:400;font-style:italic;font-size:clamp(23px,2.6vw,29px);color:#1a1510;margin-top:38px;}
.prose p{margin-top:15px;font-size:16px;line-height:1.8;color:#2e2720;}
.prose ul{margin-top:18px;list-style:none;}
.prose ul li{position:relative;padding:11px 0 11px 23px;font-size:16px;line-height:1.7;color:#2e2720;border-top:1px solid rgba(90,68,56,0.15);}
.prose ul li:first-child{border-top:none;}
.prose ul li::before{content:'';position:absolute;left:2px;top:20px;width:6px;height:6px;border-radius:50%;background:var(--sage);}
.prose .runs{margin-top:30px;padding-top:24px;border-top:1px solid rgba(90,68,56,0.22);font-size:15.5px;line-height:1.85;color:#2e2720;}
.prose .runs strong{font-weight:500;color:#1a1510;}

/* ---------- the referral statement ---------- */
.callout{max-width:680px;margin:0 auto;background:var(--cream);border-left:2px solid var(--gold);padding:30px 32px;border-radius:2px;box-shadow:0 14px 40px rgba(44,40,37,0.09);}
.callout p{margin:0;font-size:16.5px;line-height:1.85;color:#1a1510;}
.callout p + p{margin-top:14px;}

/* ---------- session options ---------- */
.options{background:var(--taupe);padding:clamp(66px,9vh,104px) 0;}
.options .head{text-align:center;margin-bottom:clamp(34px,5vh,52px);}
.options .head .eyebrow{font-family:'Marcellus',serif;font-size:11px;letter-spacing:0.3em;text-transform:uppercase;color:#5a4438;}
.options .head h2{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(32px,4.6vw,48px);margin-top:14px;color:#1a1510;}
.option-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;align-items:stretch;}
.option{display:flex;flex-direction:column;background:var(--cream);border-radius:3px;padding:40px 32px;box-shadow:0 18px 50px rgba(44,40,37,0.10);}
.option .o-tag{font-family:'Marcellus',serif;font-size:11px;letter-spacing:0.3em;text-transform:uppercase;color:var(--rust);}
.option h3{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(26px,3vw,32px);line-height:1.25;color:#1a1510;margin-top:14px;}
.option p{margin-top:14px;font-size:15.5px;line-height:1.72;color:#2e2720;flex:1 1 auto;}
@media(max-width:760px){.option-grid{grid-template-columns:1fr;max-width:470px;margin-inline:auto;}}

/* ---------- back link at the foot of a subpage ---------- */
.backline{background:var(--cream);text-align:center;padding:0 24px clamp(54px,7vh,80px);}
.backline a{
  display:inline-flex;align-items:center;gap:10px;text-decoration:none;
  font-family:'Marcellus',serif;font-size:11.5px;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--sage-deep);border-bottom:1px solid var(--gold);padding-bottom:6px;transition:gap .3s;
}
.backline a:hover{gap:16px;}

/* session option links share the card link treatment */
.option .connect{
  margin-top:26px;align-self:flex-start;
  display:inline-flex;align-items:center;gap:10px;text-decoration:none;
  font-size:11px;letter-spacing:0.28em;text-transform:uppercase;font-weight:400;
  color:var(--espresso);border-bottom:1px solid var(--gold);padding-bottom:7px;
  transition:color .3s,border-color .3s,gap .3s;
}
.option .connect::after{content:'\2192';}
.option .connect:hover{color:var(--sage-deep);gap:16px;}

/* the first band after a page head carries its own breathing room already */
.pagehead + section{padding-top:clamp(40px,5.5vh,64px);}

/* subpages have no hero, so the monogram shows from the start */
body.subpage header .brand{opacity:1;visibility:visible;}

/* ---------- the dated sessions notice, built on the statement band ---------- */
.statement.notice{padding:clamp(76px,10vh,104px) 24px;}
.statement.notice p.big{font-size:clamp(29px,4.2vw,46px);}
.notice-cta{
  display:inline-flex;align-items:center;gap:12px;margin-top:34px;text-decoration:none;
  font-family:'Marcellus',serif;font-size:12px;letter-spacing:0.26em;text-transform:uppercase;
  color:var(--cream);border-bottom:1px solid var(--gold);padding-bottom:8px;transition:gap .3s,color .3s;
}
.notice-cta::after{content:'\2192';}
.notice-cta:hover{gap:18px;color:var(--gold);}

/* page head label: a touch larger and deeper */
.pagehead .eyebrow{font-size:13px;letter-spacing:0.28em;color:#2e2720;}

/* ---------- persistent back control, subpages only ---------- */
.backtab{
  display:none;align-items:center;gap:8px;text-decoration:none;
  font-family:'Marcellus',serif;font-size:11px;letter-spacing:0.22em;text-transform:uppercase;
  color:#3b2f28;padding:10px 4px;transition:color .3s,gap .3s;
}
body.subpage .backtab{display:inline-flex;}
.backtab svg{width:15px;height:15px;flex:0 0 auto;}
.backtab:hover,.backtab:focus-visible{color:var(--sage-deep);gap:13px;}
@media(max-width:430px){
  .backtab{font-size:10px;letter-spacing:0.16em;gap:6px;}
  .backtab svg{width:14px;height:14px;}
}

/* ---------- settle the page before showing it ----------
   The web fonts swap in after first paint and move everything. Holding the
   page for that moment turns a visible jump into a fade. JS adds the class,
   so a browser with JS off never hides anything. */
/* the browser's own cross-document transition does this now, see
   @view-transition below; a second fade on top of it read as a double blink */

/* ---------- the enquiry form, on its own light band ---------- */
.enquiry-band{background:var(--cream);padding:clamp(66px,9vh,100px) 0 clamp(70px,9vh,104px);}
.enquiry-band .enquire{
  max-width:560px;margin:0 auto;padding-top:0;border-top:none;
}
.enquiry-band .enquire .f-head p{color:var(--rust);}
.enquiry-band .enquire .f-head span{color:#2e2720;}
.enquiry-band .enquire label{color:#5a4438;}
.enquiry-band .enquire input,
.enquiry-band .enquire select,
.enquiry-band .enquire textarea{
  background:rgba(44,40,37,0.035);border:1px solid rgba(90,68,56,0.26);color:#1a1510;
}
.enquiry-band .enquire input::placeholder,
.enquiry-band .enquire textarea::placeholder{color:#8d8275;}
.enquiry-band .enquire input:focus,
.enquiry-band .enquire select:focus,
.enquiry-band .enquire textarea:focus{
  border-color:var(--sage-deep);background:rgba(44,40,37,0.055);
}
.enquiry-band .enquire select option{background:var(--cream);color:#1a1510;}
.enquiry-band .enquire button{background:var(--sage-deep);color:var(--cream);}
.enquiry-band .enquire button:hover{background:var(--espresso);}
.enquiry-band .enquire .note{color:#5a4438;}
.enquiry-band .enquire .done{color:var(--sage-deep);}

/* ---------- second hero action ---------- */
.hero .cta-alt{
  display:inline-flex;align-items:center;gap:11px;margin-top:14px;text-decoration:none;
  font-size:12px;letter-spacing:0.26em;text-transform:uppercase;font-weight:400;
  color:var(--espresso);background:transparent;
  border:1px solid rgba(44,40,37,0.5);padding:16px 34px;border-radius:4px;
  transition:background .3s,border-color .3s,color .3s;
}
.hero .cta-alt svg{width:15px;height:15px;flex:0 0 auto;}
.hero .cta-alt:hover,.hero .cta-alt:focus-visible{
  background:var(--espresso);border-color:var(--espresso);color:var(--cream);
}
@media(max-width:480px){
  .hero .cta-alt{padding:14px 22px;font-size:11px;letter-spacing:0.18em;gap:9px;white-space:nowrap;}
}

/* ---------- back control reads as an action, not a nav word ---------- */
.backtab{
  font-family:'Montserrat',sans-serif;font-weight:400;
  background:var(--sage);color:var(--espresso);
  border-radius:40px;padding:9px 17px 9px 14px;
}
.backtab:hover,.backtab:focus-visible{background:var(--gold);color:var(--espresso);}
@media(max-width:430px){
  .backtab{padding:8px 14px 8px 11px;}
}

/* ---------- cross page transitions, where the browser supports them ---------- */
@view-transition{ navigation: auto; }

/* ---------- short, wide screens: tablet landscape ----------
   The hero sizes off both width and height, and in landscape the height is
   what runs out. Trim it there so both buttons stay above the fold. */
@media (min-width:700px) and (max-height:900px){
  .hero{padding:clamp(40px,6vh,72px) 24px clamp(36px,5vh,56px);}
  .hero-brand img{height:clamp(54px,10.5vh,96px);}
  .hero .sub{font-size:clamp(22px,4.4vh,40px);}
  .hero .sub-note{font-size:clamp(14.5px,2vh,18px);margin-top:12px;}
  .hero-line{padding-top:clamp(14px,2.6vh,30px);}
  .hero .bigline{font-size:clamp(34px,7.2vh,64px);}
  .hero .cta{padding:15px 32px;margin-top:16px;}
  .hero .cta-alt{padding:13px 28px;margin-top:11px;}
}

/* ---------- second action in Let's chat, matching the hero pattern ---------- */
.contact .actions a.alt{
  background:transparent;color:var(--cream);
  border:1px solid rgba(239,232,222,0.42);
  transition:background .3s,border-color .3s,color .3s;
}
.contact .actions a.alt:hover,.contact .actions a.alt:focus-visible{
  background:var(--cream);border-color:var(--cream);color:var(--espresso);
}
@media(max-width:480px){
  .contact .actions{flex-direction:column;align-items:center;gap:13px;}
  .contact .actions a{width:100%;max-width:330px;text-align:center;padding:16px 20px;font-size:11.5px;letter-spacing:0.2em;}
}

/* A band that carries only a callout has the box's own padding inside it, so
   the box lands lower than a text block would. Close the gap above it. */
.pagehead + .prose.band{padding-top:clamp(16px,2.2vh,28px);}
@media(max-width:430px){
  .callout{padding:24px 24px;}
}

/* ---------- partners: the statement belongs to the heading ----------
   Every other subpage changes colour right under the page head, which ends it.
   Here the band is taupe too, so the head runs on and the callout looks
   stranded. Closing the gap ties the two together instead. */
/* partners now opens on a full width cream band like every other subpage,
   so the boxed callout and its special spacing are no longer needed */

/* two prose bands in a row would otherwise stack their padding into a dead gap */
.prose + .prose{padding-top:clamp(8px,1.2vh,18px);}

/* ---------- WhatsApp, the shortest route to a conversation ----------
   Outlined, so it sits below the filled Back pill in weight rather than
   competing with it. 44px, because a missed tap here costs a conversation. */
header .wa{
  display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
  width:44px;height:44px;border-radius:50%;
  margin-left:auto;margin-right:12px;
  color:var(--espresso);border:1px solid rgba(44,40,37,0.45);
  transition:background .3s,border-color .3s,color .3s,opacity .45s ease,visibility .45s;
  opacity:0;visibility:hidden;
}
header .wa svg{width:21px;height:21px;display:block;}
header .wa:hover,header .wa:focus-visible{
  background:var(--espresso);border-color:var(--espresso);color:var(--cream);
}
/* home holds it back until the hero is behind you, so the first screen keeps
   to one clear action; subpages show it from the start */
header.docked .wa,
body.subpage header .wa{opacity:1;visibility:visible;}

@media(max-width:430px){
  header .wa{width:42px;height:42px;margin-right:8px;}
  header .wa svg{width:20px;height:20px;}
}

/* Where the full menu is on screen, Let's Chat is permanently one click away,
   and a wa.me link on a laptop only lands someone at a WhatsApp Web QR code.
   So the shortcut lives exactly where the menu is hidden. */
@media(min-width:1081px){
  header .wa{display:none;}
}
