/* Coaching (/coaching/) and Tarot & Reiki (/tarot-reiki/). Merged 2026-11-08 from sessions.css and offerings.css.
   /crossroads/ also uses the FAQ fold styles. Shared components live in /v2.css. */

/* == FROM PAGE 4 "A Season of Transformation" (was /sessions/) ======= */

/* == PAGE HEAD ========================================================= */
/* Rachel's subtitle has two parts, one per line on every screen (her middle dot
   would break badly when centred). Each line balances if it has to wrap. */
.sess-head .sess-head__sub{max-width:34em}
.sess-head__sub span{display:block;text-wrap:balance}
.sess-head__sub i{display:none}
.sess-head .lotus-rule{margin-block:18px 14px}
.sess-head__ask{max-width:20em;margin-inline:auto;font:600 clamp(1.5rem,2.6vw,2.1rem)/1.25 var(--serif);color:var(--plum);text-wrap:balance}

/* == OPENING =========================================================== */
.sess-intro{padding-top:0}
.sess-intro .lede{max-width:34em;margin-inline:auto}
.sess-intro .lede+.lede{margin-top:1em}

/* == PHOTO + COPY SPLITS ============================================== */
/* warm grade on Rachel's real photos (CSS only, the files stay untouched) */
.sess-photo img{filter:sepia(.07) saturate(1.05)}
.sess-photo{width:min(100% - 14px,560px);justify-self:center}
/* the tall smoke photo is cropped to 4:5 from the top so the blown-out sky goes */
.sess-photo--tall{width:min(100% - 14px,320px)}
.sess-photo--tall img{aspect-ratio:4/5;height:auto;object-fit:cover;object-position:50% 100%}
.sess-copy{min-width:0}
.sess-block>*+*{margin-top:1em}
.sess-block+.sess-block{margin-top:var(--stack)}
.sess-block h2{font-size:clamp(1.85rem,2.9vw,2.5rem);text-align:center}
@media (min-width:861px){
  .sess-space .split{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
  .sess-action .split{grid-template-columns:minmax(0,7fr) minmax(0,6fr)}
  .sess-photo--tall{width:min(100% - 24px,420px)}
  .sess-photo{width:calc(100% - 24px)}
  .sess-block h2{text-align:left}
}

/* == PULL LINE ========================================================= */
.sess-pull{max-width:42rem;margin-bottom:0}

/* == CONSULTATION ====================================================== */
.sess-begin{overflow:hidden}
.sess-begin .wrap{position:relative;z-index:1}
.sess-begin__text{max-width:34em;margin-inline:auto;color:var(--plum-ink)}
/* flower of life sits in the open space beside the heading, never behind text */
.sess-begin__fol{display:none;position:absolute;z-index:0;width:300px;top:var(--section);opacity:.5}
@media (min-width:1180px){
  .sess-begin__fol{display:block;left:max(24px,calc(50% - 640px))}
}

/* == FROM OFFERINGS (was /offerings/): jump pills, Coaching Seasons, complementary session cards, lineage fold, FAQ == */

/* == PAGE HEAD ========================================================= */
.off-head{overflow:hidden}
/* flower of life in the open space to the right of the heading (desktop); a faint corner on phones */
.off-head__fol{display:none}
@media (min-width:1021px){.off-head__fol{display:block;width:min(26vw,440px);right:max(-140px,calc(50% - 860px));top:calc(var(--head-h) - 60px);opacity:.38}}
.off-head .sub{max-width:24em}
.off-jump{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:6px}
.off-jump a{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;font:500 .875rem/1.2 var(--caps);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--plum);background:rgba(251,247,239,.8);box-shadow:inset 0 0 0 1px var(--panel-line);transition:box-shadow .2s var(--ease-out),background-color .2s var(--ease-out)}
@media (hover:hover) and (pointer:fine){.off-jump a:hover{background-color:var(--ivory);box-shadow:inset 0 0 0 1px var(--gold)}}
@media (max-width:400px){.off-jump{gap:8px}.off-jump a{padding:0 14px;letter-spacing:.08em}}

/* == COACHING SEASONS ================================================== */
.off-intro{padding-top:calc(var(--section) * .5)}
.off-intro__head{max-width:42rem}
.off-intro__head p:not(.kicker){margin-top:14px}
/* the why-paragraph and facts sit in a phone fold (2026-11-10); same 14px gap as before on every screen */
.off-intro__head>.fold__body{margin-top:14px}
.off-intro__head .fold__body>:first-child{margin-top:0}
.off-intro__where{font:italic 500 1.25rem/1.4 var(--serif)}

/* phones and tablets: one swipe row (shared .swipe, 78% cards on phones, 46% on tablets);
   from 1021px it is the 3-column subgrid below. Top padding leaves room for the
   "Recommended" flag, which overflow-y:hidden on the row would otherwise clip. */
.off-seasons-swipe{max-width:1180px;margin-inline:auto}
.off-seasons-swipe .swipe__row{padding-top:20px;overflow-y:hidden}
.off-seasons-swipe .swipe__row>*>*{height:100%}
.off-seasons-swipe .swipe__btn{top:calc(50% + 6px)}
.season{gap:12px;padding-top:clamp(28px,3vw,36px)}
.season__meta i{color:var(--gold);font-style:normal;margin-inline:.3em}
.season__title{font-size:clamp(1.6rem,2.3vw,1.9rem)}
.season__line{max-width:22em}
.season__price{display:grid;justify-items:center;gap:4px;width:100%;padding:14px 0 16px;border-block:1px solid rgba(201,162,76,.4)}
.season__label{font:500 .875rem/1.3 var(--caps);letter-spacing:.14em;text-transform:uppercase;color:var(--plum-ink)}
.season__label .draft-tag{margin-left:6px;letter-spacing:.06em}
.season .card__price{font-size:clamp(2.3rem,3.2vw,2.7rem);margin-top:2px}
.season__plan{font-size:.9375rem;color:var(--plum-ink)}
.season__body{align-self:stretch;text-align:left}
.season__h{font:500 .875rem/1.3 var(--caps);letter-spacing:.14em;text-transform:uppercase;color:var(--plum);text-align:center;margin-bottom:10px}
.season__list{list-style:none;padding:0;display:grid;gap:8px}
.season__list li{position:relative;padding-left:26px;font-size:1rem;line-height:1.5}
.season__list li::before{content:"";position:absolute;left:0;top:.36em;width:16px;height:10px;background:var(--gold);-webkit-mask:var(--svg-lotus) center/contain no-repeat;mask:var(--svg-lotus) center/contain no-repeat}
.season__rhythm{margin-top:12px;font-size:1rem;text-align:center;color:var(--plum-ink)}
.season__rhythm b{font-weight:600;color:var(--plum)}
.season__fold{margin-top:14px;align-self:stretch}
.season__fold .fold__btn{min-height:50px;padding:6px 8px 6px 18px}
.season__fold .fold__text b{font-size:1.2rem}
.season__fold .fold__chev{width:36px;height:36px}
.season__fold .fold__body p{font-size:1rem}
.season__foot{align-self:stretch;display:grid;gap:10px;margin-top:auto;padding-top:4px}
.season__begin{font:italic 500 1.1rem/1.3 var(--serif);color:var(--plum-ink)}
.season--feature{background:linear-gradient(180deg,rgba(251,247,239,.94),rgba(243,226,180,.3)),var(--panel-bg)}

/* desktop: three across, each card's parts on shared rows (subgrid) so prices, lists and buttons line up */
@media (min-width:1021px){
  .off-seasons-swipe .swipe__row{gap:0 var(--gap);padding-top:22px;overflow:visible}
  .off-seasons-swipe .swipe__row>li{display:grid;grid-row:span 7;grid-template-rows:subgrid}
  .off-seasons-swipe .swipe__row>*>*{height:auto}
  .season{display:grid;grid-row:1/-1;grid-template-rows:subgrid;row-gap:12px;align-content:start}
  .season>*{min-width:0}
  .season__price{align-self:start}
  .season__fold{align-self:start;margin-top:0}
  .season__foot{align-self:end}
}
@supports not (grid-template-rows:subgrid){@media (min-width:1021px){.season{display:flex}.off-seasons-swipe .swipe__row>li{display:flex}}}

.off-founding{max-width:36em;margin:var(--stack) auto 0;text-align:center;font-size:.9375rem;color:var(--plum-ink)}
.off-founding b{color:var(--plum)}

/* == COMPLEMENTARY SESSIONS ============================================ */
.off-block{position:relative}
.off-block+.off-block{margin-top:var(--section);padding-top:var(--section)}
.off-block+.off-block::before{content:"";position:absolute;top:0;left:50%;width:min(60%,320px);height:1px;transform:translateX(-50%);background:linear-gradient(90deg,rgba(201,162,76,0),var(--gold),rgba(201,162,76,0))}
.off-block__head{max-width:40rem;margin:0 auto var(--stack);text-align:center;display:grid;justify-items:center;gap:12px}
.off-block__head h3{font-size:clamp(1.85rem,3vw,2.5rem);line-height:1.12}
.off-block__head p{color:var(--plum-ink)}
.off-block__tag{font:italic 500 clamp(1.25rem,1.9vw,1.5rem)/1.3 var(--serif)}
.badge--lg{width:72px;height:72px}
.badge--lg img{width:52px;height:52px}
@media (max-width:720px){.badge--lg{width:64px;height:64px}.badge--lg img{width:46px;height:46px}}

/* tarot hour cards */
.off-hours .swipe__row>*>*{height:100%}
.hour{gap:12px}
.hour__head{display:flex;align-items:center;justify-content:center;gap:14px}
.hour__len{display:grid;justify-items:start;font:500 2.5rem/1 var(--caps);color:var(--plum);font-variant-numeric:lining-nums}
.hour__len small{font:500 .875rem/1.2 var(--caps);letter-spacing:.14em;text-transform:uppercase;color:var(--plum-ink);margin-top:4px}
.hour .card__price{font-size:2.1rem}
.hour__text{font-size:1rem;line-height:1.55;max-width:20em}
.hour__btn{margin-top:auto}
.hour--mid{box-shadow:inset 0 0 0 1.5px var(--gold),var(--shadow-card)}

/* reading styles: icon beside each title, as a list */
.off-sub-h{text-align:center;font:600 clamp(1.45rem,2.2vw,1.8rem)/1.2 var(--serif);color:var(--plum)}
.off-styles{margin-top:var(--stack)}
.off-styles__intro{max-width:34em;margin:10px auto 0;text-align:center;color:var(--plum-ink)}
.styles{list-style:none;padding:0;margin:var(--group) auto 0;display:grid;gap:12px;max-width:560px}
.style{display:flex;align-items:flex-start;gap:16px;padding:16px 18px;border-radius:var(--r-sm);background:var(--panel-bg);box-shadow:inset 0 0 0 1px var(--panel-line)}
.style__text{display:grid;gap:4px;min-width:0}
.style__text b{font:600 1.35rem/1.2 var(--serif);color:var(--plum)}
.style__text span{font-size:1rem;line-height:1.5}
.style__text small{font:500 .875rem/1.3 var(--caps);letter-spacing:.12em;text-transform:uppercase;color:var(--plum-ink)}
@media (min-width:1021px){.styles{max-width:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}.style{padding:20px 22px}}

.off-fold{max-width:760px;margin:var(--stack) auto 0}
.asklist{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px}
.asklist li,.mothers li{position:relative;padding-left:24px;font-size:1rem;line-height:1.45}
.asklist li::before,.mothers li::before{content:"";position:absolute;left:0;top:.38em;width:14px;height:9px;background:var(--gold);-webkit-mask:var(--svg-lotus) center/contain no-repeat;mask:var(--svg-lotus) center/contain no-repeat}
@media (max-width:380px){.asklist{grid-template-columns:minmax(0,1fr)}}

/* Kuan Yin offer cards */
.off-offers{list-style:none;padding:0;margin:0 auto;display:grid;gap:var(--gap);grid-template-columns:minmax(0,1fr);max-width:560px}
@media (min-width:721px){.off-offers{grid-template-columns:repeat(2,minmax(0,1fr));max-width:820px}}
.off-offers>li{display:flex}
.off-offers .card{flex:1}
.offer{gap:12px}
.offer__len{font:600 clamp(1.5rem,2.2vw,1.8rem)/1.15 var(--serif);color:var(--plum);font-variant-numeric:lining-nums}
.offer .card__price{font-size:2.1rem}
.offer__text{font-size:1rem;max-width:22em}
.offer .btn{margin-top:auto}
.off-after{max-width:34em;margin:var(--stack) auto 0;text-align:center;font:italic 500 clamp(1.2rem,1.8vw,1.4rem)/1.4 var(--serif);color:var(--plum-ink)}

/* what you may feel: icons as bullets */
.off-feel{margin-top:var(--stack)}
.feel{list-style:none;padding:0;margin:var(--group) auto 0;display:grid;gap:12px;max-width:560px}
.feel li{display:flex;align-items:center;gap:14px;font-size:1rem;line-height:1.45}
.feel .badge{width:52px;height:52px}
.feel .badge img{width:34px;height:34px}
@media (min-width:721px){.feel{max-width:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px var(--gap)}}
@media (min-width:1021px){.feel{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* lineage fold with the Kuan Yin painting */
.off-lineage{display:grid;gap:var(--group) var(--gap)}
.off-lineage__art{justify-self:center;width:min(78%,300px);margin-top:var(--group)}
.off-lineage__art img{width:100%;border-radius:var(--r-card);box-shadow:0 0 0 1px rgba(201,162,76,.5),var(--shadow-card)}
.off-lineage__text>*+*{margin-top:1em}
.off-lineage__text{min-width:0}
.mothers{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px 20px}
.off-medicine{padding:14px 0 4px;text-align:center;border-top:1px solid var(--gold-soft)}
.off-medicine blockquote p{font:italic 500 clamp(1.3rem,2vw,1.55rem)/1.35 var(--serif);color:var(--plum)}
.off-medicine figcaption{margin-top:8px;font:500 .875rem/1.3 var(--caps);letter-spacing:.14em;text-transform:uppercase;color:var(--plum-ink)}
@media (min-width:721px){.off-lineage{grid-template-columns:minmax(0,260px) minmax(0,1fr);align-items:start}.off-lineage__art{width:100%}}

/* == FAQ =============================================================== */
.off-faq__list>.fold:first-child{margin-top:0}
.off-faq .fold__text b{font-size:clamp(1.2rem,1.8vw,1.35rem)}
.off-faq__points{list-style:none;padding:0;display:grid;gap:12px}
.off-faq__points li{position:relative;padding-left:24px}
.off-faq__points li::before{content:"";position:absolute;left:0;top:.45em;width:14px;height:9px;background:var(--gold);-webkit-mask:var(--svg-lotus) center/contain no-repeat;mask:var(--svg-lotus) center/contain no-repeat}
.off-faq__points b,.off-faq .fold__body b{color:var(--plum)}
.off-faq .fold__body{padding-inline:6px}

/* simplified complementary sessions: two matched cards */
.off-simple{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:820px;margin:0 auto}
.off-simple .offer{height:100%;align-items:center;text-align:center;display:flex;flex-direction:column;gap:8px}
.off-simple .offer .btn{margin-top:auto}
@media (max-width:640px){.off-simple{grid-template-columns:1fr}}
.off-simple .offer__len{font:600 clamp(1.5rem,2.4vw,1.85rem)/1.2 var(--serif);color:var(--plum)}

/* == COACHING PAGE ADDITIONS (2026-11-08) ============================== */
.sess-head{overflow:hidden}
.sess-head .off-jump{margin-top:var(--group)}
@media (min-width:1021px) and (max-width:1180px){.sess-head .off-jump{gap:6px}.sess-head .off-jump a{padding:0 13px;letter-spacing:.08em}} /* the three pills stay on one row beside the hero photo */
/* how a session flows: Rachel's three sections as numbered folds beside the smoke photo */
.sess-flow__h{font-size:clamp(1.85rem,2.9vw,2.5rem);text-align:center}
.sess-folds{margin-top:var(--group)}
.sess-folds .fold__btn{padding-left:12px}
.sess-folds .num{width:44px;height:44px;font-size:.9375rem}
.sess-folds .fold__text b{font-size:clamp(1.2rem,1.8vw,1.35rem);text-wrap:balance}
.sess-folds .fold__body{padding-inline:6px}
.sess-fold-photo{margin:var(--group) 0 0}
.sess-fold-photo img{width:100%;border-radius:var(--r-sm,14px);box-shadow:0 0 0 1px rgba(201,162,76,.5);filter:sepia(.07) saturate(1.05)}
@media (max-width:860px){.sess-flow .sess-photo--tall{width:min(100% - 14px,240px)}}
@media (min-width:861px){.sess-flow .split{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}.sess-flow__h{text-align:left}}
.sess-flow .sess-pull{margin-top:var(--stack)}
.off-intro__lead{font:italic 500 clamp(1.25rem,1.9vw,1.5rem)/1.35 var(--serif);color:var(--plum)!important}
.off-single{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 14px;margin:var(--group) auto 0;text-align:center;color:var(--plum-ink)}
/* == Seasons at a glance (Carson 2026-11-08: show it, don't make them read it) == */
.off-facts{list-style:none;padding:0;margin:22px auto 0;display:grid;gap:10px;max-width:46rem}
.off-facts li{display:grid;grid-template-columns:44px 1fr;column-gap:12px;align-items:center;text-align:left;padding:10px 16px;border-radius:16px;background:rgba(251,247,239,.7);box-shadow:inset 0 0 0 1px rgba(201,162,76,.35)}
.off-facts svg{grid-row:span 2;width:44px;height:30px;color:var(--gold)}
.off-facts b{font:600 1.15rem/1.2 var(--serif);color:var(--plum)}
.off-facts span{font-size:.9375rem;line-height:1.35;color:var(--plum-ink)}
@media (min-width:721px){.off-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.off-facts li{grid-template-columns:1fr;justify-items:center;text-align:center;padding:16px 14px}.off-facts svg{grid-row:auto;margin-bottom:6px}}

.season__glance{align-self:stretch;display:grid;justify-items:center;gap:10px}
.season__dots{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;max-width:15rem}
.season__dots i{width:12px;height:12px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px rgba(201,162,76,.18)}
.season--feature .season__dots i{background:var(--plum)}
.season__count{font-size:.9375rem;color:var(--plum-ink)}
.season__count b{font:600 1.15rem/1 var(--serif);color:var(--plum)}
.season__chips{list-style:none;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.season__chips li{display:inline-flex;align-items:center;gap:6px;padding:6px 12px 6px 10px;border-radius:999px;font-size:.875rem;line-height:1.25;color:var(--plum-deep);background:rgba(243,226,180,.35);box-shadow:inset 0 0 0 1px rgba(201,162,76,.45)}
.season__chips li::before{content:"";flex:none;width:14px;height:9px;background:var(--gold);-webkit-mask:var(--svg-lotus) center/contain no-repeat;mask:var(--svg-lotus) center/contain no-repeat}
.season__for{font:italic 500 1.1rem/1.35 var(--serif);color:var(--plum-ink);max-width:20em}
.season__for b{font:500 .8125rem/1 var(--caps);font-style:normal;letter-spacing:.12em;text-transform:uppercase;color:var(--plum);margin-right:4px}
.season__who{margin-top:16px}
.season__who p{font-size:1rem}
@media (min-width:1021px){.season__glance{align-self:start}.season__fold{align-self:start}}
/* centred on the section, level with the heading block (Carson 2026-11-09: "pushed down too much") */
.sess-begin{position:relative}.sess-begin__fol{top:50%;transform:translateY(-50%);width:min(300px,calc(100% - 40px))}
/* beach ceremony photo pair under How a session flows (Carson 2026-11-09) */
.photo-pair{display:grid;gap:var(--stack);justify-items:center;max-width:980px;margin:var(--stack) auto 0}
.photo-pair__wide{width:calc(100% - 14px)}
.photo-pair__wide img{aspect-ratio:3/2;object-fit:cover}
.photo-pair__tall{width:min(100% - 14px,280px)}
.photo-pair__tall img{aspect-ratio:4/5;object-fit:cover}
@media (min-width:861px){.photo-pair{grid-template-columns:minmax(0,15fr) minmax(0,8fr);align-items:stretch}.photo-pair__wide,.photo-pair__tall{width:calc(100% - 24px)}.photo-pair__tall{display:flex}.photo-pair__tall img{height:100%;aspect-ratio:auto}}
/* pair is now two landscape photos, equal columns (no repeated photo, Carson 2026-11-09) */
@media (min-width:861px){.photo-pair{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* design QA sweep 2026-11-09 */
.off-facts li{padding-block:12px} /* phone fact rows had 10px above and below the text */
.season__for b{font-size:.875rem} /* "For you if" was 13px, floor is 14px */
@media (min-width:1021px){.sess-head .off-head__fol{width:min(17vw,300px);right:max(16px,calc(50% - 860px))}} /* flower stays fully on screen and clear of the heading */

/* == PHONES (2026-11-10) ================================================
   Kept at the end of the file so these win over the base Season rules above.
   Season row: .swipe--center (opens on Recommended, neighbours peek). Each card shows
   name, price, rhythm, one line and its button, and fits above the dock on a 706px-tall screen.
   The dots, chips and "For you if" repeat what is inside Full details, so they hide here. */
@media (max-width:720px){
  /* min-width:0 keeps a card to its slot; before, a long button label made it wider and it ran under the next card */
  .season{min-width:0;gap:10px;padding:26px 16px 18px}
  .season__label{letter-spacing:.08em}
  .season__label .draft-tag{margin-left:4px}
  .season__price{padding:10px 0 12px}
  .season .card__price{font-size:2.1rem}
  .season__plan,.season__count{font-size:1rem;text-wrap:balance}
  .season__dots,.season__chips,.season__for{display:none}
  .season__fold{margin-top:0}
  .season__foot{min-width:0;grid-template-columns:minmax(0,1fr);gap:8px}
  .season__title{font-size:1.5rem}
  .season__line{font-size:1.0625rem;line-height:1.3}
  .season__begin{font-size:1.05rem}
}
/* position dots under the row, phones only (wired by the script in coaching/index.html). 44px tap area, 10px dot. */
.off-dots{display:none}
@media (max-width:720px){
  /* 2026-11-10: pulled up into the row shadow padding (this margin collapses with the row -14px) so the dots clear the dock (634px on a 412x706 phone) when a card is fully in view */
  .js .off-dots{position:relative;display:flex;justify-content:center;margin-top:-30px}
  .off-dots button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:none;cursor:pointer}
  .off-dots button::before{content:"";width:10px;height:10px;border-radius:999px;background:rgba(110,31,67,.24);transition:width .25s var(--ease-out),background-color .25s var(--ease-out)}
  .off-dots button[aria-current="true"]::before{width:26px;background:var(--plum)}
  .season__meta-n{display:none} /* the count line below already says how many sessions */
}
@media (prefers-reduced-motion:reduce){.off-dots button::before{transition:none}}
/* desktop: keep "Ask about Crossroads" on one line in the 298px button (2026-11-10) */
@media (min-width:1021px){.season__foot .btn{gap:10px;padding-inline:20px;font-size:.875rem;letter-spacing:.08em}}

/* 2026-11-10 (Carson): phones fold Rachel's two intro paragraphs and skip the second beach photo,
   so the Season prices come up sooner. Desktop shows both, with no fold heading. */
@media (min-width:760px){.sess-intro__h{display:none}}
@media (max-width:759px){
  .sess-intro__fold{border-block:1px solid rgba(201,162,76,.45);max-width:32em}
  .sess-intro__h{font:500 .9375rem/1.2 var(--caps);letter-spacing:.16em;text-transform:uppercase;color:var(--plum);margin:0}
  .sess-intro__fold .fold__btn{min-height:52px;justify-content:center}
  .sess-intro__fold .fold__body{padding-bottom:16px}
  .photo-pair__m-hide{display:none}
}

/* == LAYOUT PASS (2026-11-11) ===========================================
   Seasons cards. 721px+: larger text inside all three cards. 1021px+: Soul Alchemy is raised and a
   little larger; its negative margin and matching extra padding keep its rows level with the others.
   Motion (data-motion=".3" on the row: v2.js adds .is-armed, then .is-on once 30% of the row is
   in view; only when motion is allowed): prices fade up, then the session dots fill one by one,
   card after card (about 1.7s in all). Phones: each card settles to full size as it snaps to centre. */
@media (min-width:721px){
  .season .card__sub{font-size:1.25rem}
  .season__plan{font-size:1.0625rem}
  .season__count{font-size:1.0625rem}
  .season__count b{font-size:1.3rem}
  .season__chips li{font-size:.9375rem}
  .season__for{font-size:1.2rem}
  .season__list li,.season__fold .fold__body p,.season__who p,.season__rhythm{font-size:1.0625rem}
  .season__begin{font-size:1.2rem}
  .season__dots{gap:7px}
  .season__dots i{width:13px;height:13px}
}
@media (min-width:1021px){
  .off-seasons-swipe .swipe__row{padding-top:48px}
  .season--feature{z-index:1;margin:-26px -12px -14px;padding:calc(clamp(28px,3vw,36px) + 26px) calc(clamp(20px,2.6vw,28px) + 12px) calc(clamp(20px,2.6vw,28px) + 14px);
    box-shadow:inset 0 0 0 1.5px var(--gold),0 0 0 5px rgba(243,226,180,.6),0 36px 64px -30px rgba(74,16,41,.55),0 4px 10px -4px rgba(74,16,41,.18)}
  .season--feature .card__title{font-size:2.05rem}
  .season--feature .card__price{font-size:3rem}
}
.off-seasons>li:nth-child(2){--c:1}.off-seasons>li:nth-child(3){--c:2}
.season__dots i:nth-child(2){--i:1}.season__dots i:nth-child(3){--i:2}.season__dots i:nth-child(4){--i:3}.season__dots i:nth-child(5){--i:4}.season__dots i:nth-child(6){--i:5}.season__dots i:nth-child(7){--i:6}
.season__dots i:nth-child(8){--i:7}.season__dots i:nth-child(9){--i:8}.season__dots i:nth-child(10){--i:9}.season__dots i:nth-child(11){--i:10}.season__dots i:nth-child(12){--i:11}
.off-seasons.is-armed.is-on .card__price{transition:opacity .7s var(--ease-out) calc(var(--c,0) * .1s + .1s),transform .8s var(--ease-out) calc(var(--c,0) * .1s + .1s)}
.off-seasons.is-armed.is-on .season__dots i{box-shadow:inset 0 0 0 1.5px rgba(201,162,76,0),0 0 0 3px rgba(201,162,76,.18);transition:background-color .45s var(--ease-out) var(--dl),box-shadow .45s var(--ease-out) var(--dl),transform .45s var(--ease-out) var(--dl);--dl:calc(var(--c,0) * .14s + var(--i,0) * .065s + .3s)}
.off-seasons.is-armed:not(.is-on) .card__price{opacity:0;transform:translateY(10px)}
.off-seasons.is-armed:not(.is-on) .season__dots i{background:transparent;box-shadow:inset 0 0 0 1.5px rgba(201,162,76,.75),0 0 0 3px rgba(201,162,76,0);transform:scale(.82)}
@supports (animation-timeline:view()){
  @media (max-width:720px) and (prefers-reduced-motion:no-preference){
    .off-seasons>li>.season{animation:season-snap linear both;animation-timeline:view(inline);animation-range:cover}
  }
}
@keyframes season-snap{0%{transform:scale(.94)}50%{transform:scale(1)}100%{transform:scale(.94)}}

/* How a session flows: on screens 861px+ the first step starts open (set by the page script), so the
   three steps fill the height beside the tall smoke photo instead of leaving an empty block under them. */
@media (min-width:861px){.sess-flow .split{align-items:center}}

/* Beginning With a Conversation is the page's deep band (.band-deep in v2.css) */
.band-deep .sess-begin__fol{opacity:.34}
