/* ThinJen — design system matched to her current site (thinjen.com), refined.
   Cursive script headings + thin underline · serif feature values · light
   letter-spaced sans body · rose hero bands · floating white cards · wavy
   dividers · dusty-rose palette. Shared by every page; ports to the WP theme. */
:root{
  --cream:#FDFAF8; --blush:#F6E7E7; --blush-2:#F1DCDC; --rose:#C68A8F; --rose-2:#CE9BA0;
  --rose-band:#C08E93; --rose-band-2:#B27F86; --rose-deep:#A96A70; --mauve:#BC8E95;
  --gold:#C2A05C; --gold-hi:#E8CE92; --gold-lo:#9A7A3C; --ink:#5A4E51; --muted:#7A6A6E; --line:#EEDFDF; --maxw:1200px;
  /* minimum left gutter that keeps content clear of the fixed social rail (x 10-48px).
     Only applied from 900px up, where the rail is visible; a no-op above ~1300px, where
     the centred 1200px column already leaves more room than the rail needs. */
  --rail-gutter:64px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Montserrat',system-ui,sans-serif;color:var(--ink);background:#fff;
  font-weight:400;font-size:16px;line-height:1.7;letter-spacing:.01em;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 30px}
.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}
/* honeypot — off-screen, not display:none (headless bots still fill it) */
.hp{position:absolute;left:-9999px;width:0;height:0;overflow:hidden}
/* privacy consent row on the contact form */
.consent{display:flex;align-items:flex-start;gap:9px;font-size:13px;color:var(--muted);line-height:1.5;cursor:pointer}
.consent input{margin-top:3px;accent-color:var(--rose-deep);flex:none;width:15px;height:15px;cursor:pointer}
.consent a{color:var(--rose-deep);text-decoration:underline}

/* script + serif helpers — the display face is Cormorant Garamond italic; the only
   remaining handwriting on the site is her gold signature image + the ebook cover art */
.script{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-weight:500;line-height:1.1}
.serif{font-family:'Cormorant Garamond',Georgia,serif}

/* section heading: rose script + centered thin underline (her signature) */
.shead{margin-bottom:40px;display:flex;flex-direction:column}
.shead.center{text-align:center;align-items:center}
.shead .script{font-size:clamp(30px,5vw,46px);color:var(--rose-deep);display:block}
.shead .uline{width:190px;max-width:60%;height:1px;background:linear-gradient(90deg,transparent,var(--gold) 22%,var(--gold-hi) 50%,var(--gold) 78%,transparent);opacity:.85;margin-top:16px}
.shead.center .uline{margin-left:auto;margin-right:auto}
.shead .sub{font-family:'Montserrat';font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--rose-deep);opacity:.9;margin-top:12px;order:-1;margin-bottom:18px}

/* buttons — her rose gradient pill */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;padding:14px 34px;border-radius:40px;
  font-weight:500;font-size:12px;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;border:none;font-family:'Montserrat';
  transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s,background .4s,color .4s}
.btn-rose{background:linear-gradient(135deg,var(--rose-2),var(--rose-deep));color:#fff;box-shadow:0 14px 30px -16px rgba(169,106,112,.85)}
.btn-rose:hover{transform:translateY(-3px);box-shadow:0 20px 40px -16px rgba(169,106,112,.95)}
.btn-ghost{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.6);backdrop-filter:blur(4px)}
.btn-ghost:hover{background:rgba(255,255,255,.24);transform:translateY(-2px)}
.btn-outline{background:transparent;color:var(--rose-deep);border:1px solid var(--rose-2)}
.btn-outline:hover{background:var(--rose-deep);color:#fff;border-color:var(--rose-deep)}
.btn-white{background:#fff;color:var(--rose-deep)}
.btn-white:hover{transform:translateY(-2px);box-shadow:0 16px 30px -16px rgba(120,80,85,.5)}
/* frosted-solid CTA for the photographic hero (reads on any region) */
/* soft glossy rose pill — the hero CTAs on her original site */
.btn-soft{background:linear-gradient(180deg,rgba(255,255,255,.30),rgba(198,138,143,.52));color:#fff;
  border:1px solid rgba(255,255,255,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  box-shadow:0 12px 26px -14px rgba(120,68,58,.55),inset 0 1px 0 rgba(255,255,255,.55);text-shadow:0 1px 6px rgba(120,68,58,.45)}
.btn-soft:hover{background:linear-gradient(180deg,rgba(255,255,255,.45),rgba(198,138,143,.66));transform:translateY(-2px)}
.btn-soft:focus-visible{outline:2px solid #fff;outline-offset:3px}

/* NAV — no top-left logo (removed per Jenny). White from the first paint on EVERY page,
   homepage included: the bar used to be transparent over the hero with white links on a
   dark scrim, and Jenny asked for "a white BG immediately with a cleaner font". The hero
   photo now scrolls underneath a solid bar, so the links are ink on white from load and
   there is no scrim, no text-shadow and no colour swap on scroll.
   Type is the same Montserrat, retuned: sentence case, 14px/500, tracking .16em -> .035em.
   Only the bar changed — buttons, eyebrows and .sub labels keep their uppercase tracking. */
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:#fff;color:var(--rose-deep);
  padding:12px 22px;border-radius:0 0 14px 0;font-size:13px;font-weight:600;letter-spacing:.1em}
.skip:focus{left:0}
/* HEADER
   The homepage opens on a full-bleed photograph, so the bar rides ON the photo rather
   than cutting a white strip above it, and turns into frosted cream once you scroll off
   the hero. Inner pages carry body.navsolid and are frosted from the first frame.
   The two states share one set of transitions so the swap is a fade, not a jump. */
/* Legibility scrim for the hero state, as the bar's own background. NOT decoration: the
   Paris hero is a pale pink photograph, and white nav text measured 1.9:1 against it —
   unreadable, and nowhere near the 4.5:1 floor. A text-shadow does not move the measured
   number; this does. It is a gradient rather than a flat fill so the bar still reads as
   sitting ON the photo instead of cutting a strip out of it.
   ⚠ If the hero image is ever swapped, RE-MEASURE. The values below were derived from
   this photograph's lightest pixels, not chosen by eye. */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;padding:20px 24px;
  background:linear-gradient(180deg,rgba(58,28,32,.86) 0%,rgba(58,28,32,.71) 62%,rgba(58,28,32,0) 100%);
  transition:padding .35s,background .35s,box-shadow .35s,backdrop-filter .35s}
.nav.scrolled,body.navsolid .nav{padding:12px 24px;background:rgba(253,250,248,.9);
  backdrop-filter:blur(14px) saturate(1.15);-webkit-backdrop-filter:blur(14px) saturate(1.15);
  box-shadow:0 1px 0 var(--line),0 10px 30px -24px rgba(120,80,85,.7)}
.nav-inner{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;justify-content:flex-end;gap:20px}
.nav-links{display:none;gap:26px;align-items:center}
/* the 18+ trigger is a <button>, not an <a>, so every rule in this block names both — a
   menu that opens on Space as well as Enter has to be a real button. */
.nav-links a,.nav-links .srl-btn{position:relative;font-family:'Montserrat',system-ui,sans-serif;font-size:13.5px;font-weight:500;
  letter-spacing:.045em;color:#fff;padding:6px 0;
  text-shadow:0 1px 12px rgba(80,40,45,.55),0 1px 3px rgba(80,40,45,.4);
  transition:color .3s,text-shadow .3s}
.nav-links .srl-btn{background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:5px;line-height:1.5}
.nav-links .srl-btn .chev{width:13px;height:13px;transition:transform .3s}
.nav-links .srl-group.open .srl-btn .chev{transform:rotate(180deg)}
/* the gold hairline that grows under the link you are on, or hovering */
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--gold-hi),transparent);
  transform:scaleX(0);transform-origin:50%;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.nav-links a:hover::after,.nav-links a:focus-visible::after,.nav-links a[aria-current="page"]::after{transform:scaleX(1)}
.nav-links a[aria-current="page"]{font-weight:600}
.nav-links a:hover,.nav-links a:focus-visible{color:var(--gold-hi)}
/* off the photo: ink on frosted cream, no shadow to fake legibility with */
.nav.scrolled .nav-links a,body.navsolid .nav-links a,
.nav.scrolled .nav-links .srl-btn,body.navsolid .nav-links .srl-btn{color:var(--ink);text-shadow:none}
.nav.scrolled .nav-links a:hover,body.navsolid .nav-links a:hover,
.nav.scrolled .nav-links a:focus-visible,body.navsolid .nav-links a:focus-visible{color:var(--rose-deep)}
.nav.scrolled .nav-links a[aria-current="page"],body.navsolid .nav-links a[aria-current="page"]{color:var(--rose-deep)}
/* 18+ is a different KIND of destination, so it reads as a quiet pill rather than a link.
   Deliberately not loud: it must never be the first thing the eye lands on. */
.nav-links .nav-adult{padding:6px 13px;border-radius:30px;border:1px solid rgba(255,255,255,.55);margin-left:4px}
.nav-links .nav-adult::after{display:none}
.nav-links .nav-adult:hover,.nav-links .nav-adult:focus-visible,
.nav-links .srl-group.open .nav-adult{background:rgba(255,255,255,.16);border-color:#fff;color:#fff}
.nav.scrolled .nav-links .nav-adult,body.navsolid .nav-links .nav-adult{border-color:var(--rose-2)}
.nav.scrolled .nav-links .nav-adult:hover,body.navsolid .nav-links .nav-adult:hover,
.nav.scrolled .nav-links .nav-adult:focus-visible,body.navsolid .nav-links .nav-adult:focus-visible,
.nav.scrolled .nav-links .srl-group.open .nav-adult,
body.navsolid .nav-links .srl-group.open .nav-adult{background:var(--rose-deep);border-color:var(--rose-deep);color:#fff}
.burger{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;min-width:44px;min-height:44px;padding:6px}
.burger span{width:26px;height:2.5px;background:#fff;border-radius:2px;box-shadow:0 1px 6px rgba(90,50,54,.5);transition:background .4s,box-shadow .4s}
.nav.scrolled .burger span,body.navsolid .burger span{background:var(--rose-deep);box-shadow:none}
.mm{position:fixed;inset:0;z-index:60;background:rgba(90,78,81,.5);backdrop-filter:blur(10px);display:none;opacity:0;transition:opacity .35s}
.mm.open{display:block;opacity:1}
.mm .panel{position:absolute;top:0;right:0;height:100%;width:min(82vw,330px);background:var(--cream);padding:86px 32px;
  display:flex;flex-direction:column;overflow-y:auto;transform:translateX(100%);transition:transform .4s cubic-bezier(.2,.8,.2,1);box-shadow:0 24px 60px -30px rgba(120,80,85,.5)}
.mm.open .panel{transform:none}
.mm .panel a{padding:13px 0;border-bottom:1px solid var(--line);font-family:'Montserrat',system-ui,sans-serif;font-size:15px;font-weight:500;letter-spacing:.035em;color:var(--ink)}
.mm .panel a:hover{color:var(--rose-deep)}
.mm .close{position:absolute;top:26px;right:30px;font-size:32px;color:var(--rose-deep);background:none;border:none;cursor:pointer;line-height:1}

/* HOMEPAGE HERO — recreated from thinjen.com (rose-wash + arched portrait + metallic signature), quality-lifted */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;
  background:linear-gradient(135deg,#F4DEDE 0%,#E7C3C6 46%,#D6A9AE 100%)}
.hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 22%;
  animation:kenburns 26s ease-in-out infinite alternate;will-change:transform}
/* rose wash matched to her original site's hero overlay */
.hero-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(173deg,rgba(177,127,126,.60),rgba(213,167,169,.62))}
.hero-grid{position:relative;z-index:2;width:100%;max-width:var(--maxw);margin:0 auto;
  padding:118px clamp(24px,5vw,48px) 94px;display:grid;grid-template-columns:1fr;gap:36px;align-items:center}
.hero-portrait{display:none}
.hero-content{text-align:center;animation:rise 1s cubic-bezier(.2,.7,.2,1) both}
/* the signature PNG is SQUARE (1000x1000), so its HEIGHT is what governs whether the hero
   fits a laptop viewport — size it off height, not width, or it eats 360px on every screen */
.hero-sig{height:min(300px,32vh);width:auto;margin:0 auto;filter:drop-shadow(0 10px 24px rgba(120,68,58,.3))}
.hero-rule{width:72px;height:2px;margin:22px auto 18px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--gold-hi),var(--gold),transparent)}
/* the hero H2 — exact wording restored from the original live site */
.hero .tag{font-family:'Cormorant Garamond',serif;font-size:clamp(20px,3vw,29px);color:#fff;
  letter-spacing:.05em;font-weight:500;line-height:1.3;text-shadow:0 2px 16px rgba(120,68,58,.55)}
/* the hero blurb is a subtitle, not a paragraph: it was running to four cramped lines at
   46ch. Wider measure + shorter copy = two lines on desktop, three at most on a phone. */
.hero .blurb{max-width:62ch;margin:16px auto 0;color:rgba(255,255,255,.94);font-size:16px;line-height:1.65;
  text-shadow:0 1px 12px rgba(120,68,58,.5)}
.hero-cta{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:30px}
.hero-cta .btn{padding:13px 22px;letter-spacing:.13em}
/* SOCIAL RAIL — the original site pins these to the left edge of the viewport as a
   single-column fixed widget (Elementor: repeat(1,auto), left:10px, z-index:2, rose
   circles). Frosted white while it sits over the photographic hero, solid rose once
   scrolled onto the cream sections. Desktop only — see the max-width:899px rule below. */
.social-rail{position:fixed;left:10px;top:50%;transform:translateY(-50%);z-index:40;
  display:flex;flex-direction:column;gap:10px}
.social-rail>a,.social-rail .srl-btn{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#fff;
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.5);backdrop-filter:blur(4px);cursor:pointer;padding:0;
  box-shadow:0 8px 20px -12px rgba(120,68,58,.7);transition:background .3s,color .3s,border-color .3s,transform .3s;
  animation:socialIn .7s cubic-bezier(.2,.8,.2,1) both}
/* staggered slide-in — indexed on the row, not on <a>, so a .srl-group counts too */
.social-rail>:nth-child(1),.social-rail>:nth-child(1) .srl-btn{animation-delay:.10s}
.social-rail>:nth-child(2),.social-rail>:nth-child(2) .srl-btn{animation-delay:.17s}
.social-rail>:nth-child(3),.social-rail>:nth-child(3) .srl-btn{animation-delay:.24s}
.social-rail>:nth-child(4),.social-rail>:nth-child(4) .srl-btn{animation-delay:.31s}
.social-rail>:nth-child(5),.social-rail>:nth-child(5) .srl-btn{animation-delay:.38s}
.social-rail>:nth-child(6),.social-rail>:nth-child(6) .srl-btn{animation-delay:.45s}
.social-rail>:nth-child(7),.social-rail>:nth-child(7) .srl-btn{animation-delay:.52s}
.social-rail>a:hover,.social-rail>a:focus-visible,
.social-rail .srl-btn:hover,.social-rail .srl-btn:focus-visible{background:#fff;color:var(--rose-deep);border-color:#fff;transform:translateX(3px)}
.social-rail svg{width:17px;height:17px}
/* off the hero (scrolled, or any inner page) — her original solid rose circle. The white
   ring is load-bearing, not decoration: the rail is fixed, so it crosses both cream
   sections AND the rose inner-page hero bands, where a ringless rose circle vanishes. */
body.scrolled .social-rail>a,body.navsolid .social-rail>a,
body.scrolled .social-rail .srl-btn,body.navsolid .social-rail .srl-btn{background:var(--rose-band-2);
  border-color:rgba(255,255,255,.9);box-shadow:0 8px 20px -12px rgba(120,68,58,.45)}
body.scrolled .social-rail>a:hover,body.scrolled .social-rail>a:focus-visible,
body.navsolid .social-rail>a:hover,body.navsolid .social-rail>a:focus-visible,
body.scrolled .social-rail .srl-btn:hover,body.scrolled .social-rail .srl-btn:focus-visible,
body.navsolid .social-rail .srl-btn:hover,body.navsolid .social-rail .srl-btn:focus-visible{background:var(--rose-deep);color:#fff}
@media(max-width:899px){.social-rail{display:none}}

/* One platform, more than one account. Jenny runs three Instagrams, three TikToks and
   three Facebooks (ThinJen / aurajen / onlyfriends), so an icon that has to pick one is
   wrong. The icon opens a small labelled list instead.
   Jenny, 3 Aug: "when clicking on the tiktok icon 3 options appear" — the CLICK toggle
   lives in site.js (.srl-group.open) and stays: it is what a phone and a keyboard use.
   Luca, 18 Aug: on a mouse the list should also open on plain hover — see the
   @media (hover:hover) block after the variants below. Touch devices never match that
   media query, so Jenny's click behaviour is untouched where it matters.
   ⚠ There is no :focus-within rule and there must not be one. The trigger is a real
   <button>, so Enter and Space already fire the click toggle — :focus-within added nothing
   for the keyboard and it silently defeated Esc: the Esc handler returns focus to the
   button, which is INSIDE the group, so the list re-opened the instant it closed. */
.srl-group{position:relative;display:grid;place-items:center}
.srl-pop{position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%) translateX(-6px);
  display:flex;flex-direction:column;min-width:190px;padding:8px;border-radius:14px;z-index:2;
  background:var(--cream);border:1px solid var(--line);box-shadow:0 18px 40px -18px rgba(120,80,85,.55);
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s,transform .25s,visibility .25s}
.srl-group.open .srl-pop{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(-50%)}
/* the icon reads as "open" while its list is showing */
.social-rail .srl-group.open .srl-btn,.socials .srl-group.open .srl-btn{background:var(--rose-deep);color:#fff}
.srl-pop a{display:block;width:auto;height:auto;padding:9px 12px;border:0;border-radius:9px;background:none;box-shadow:none;
  animation:none;text-align:left;font-family:'Montserrat',system-ui,sans-serif;font-size:12px;font-weight:500;
  letter-spacing:.04em;text-transform:none;color:var(--ink);white-space:nowrap}
.srl-pop a:hover,.srl-pop a:focus-visible{background:var(--blush);color:var(--rose-deep);transform:none}
/* in the footer the rail is above the fold's end, so the list opens upward instead */
.srl-pop--up{left:50%;top:auto;bottom:calc(100% + 10px);transform:translateX(-50%) translateY(6px)}
.srl-group.open .srl-pop--up{transform:translateX(-50%)}
/* in the header it hangs BELOW the pill and right-aligns to it, so a list opened from the
   last item before Contact cannot run off the right edge of the viewport */
.srl-pop--down{left:auto;right:0;top:calc(100% + 12px);transform:translateY(6px);min-width:170px}
.srl-group.open .srl-pop--down{transform:none}
/* the nav's own link styling would otherwise reach into the list: the white text-shadow
   that exists to hold up over the hero photograph, and the gold hairline. Neither belongs
   on ink-on-cream menu items. */
.nav-links .srl-pop a{text-shadow:none;font-size:12.5px}
.nav-links .srl-pop a::after{display:none}
/* Hover-open (mouse only). Mirrors every .srl-group.open rule above for :hover, gated so
   touch keeps the click toggle. The :hover::before is load-bearing: the pop floats 10-12px
   clear of its button, and crossing that gap would drop :hover and start the fade — the
   pseudo bridges exactly that gap, per direction, and only exists while already hovering
   (so it can never cover a neighbouring rail icon at rest).
   ⚠ Still no :focus-within — see the warning above; the Esc bug it caused is real. */
@media (hover:hover) and (pointer:fine){
  .srl-group:hover::before{content:"";position:absolute;left:100%;top:-6px;bottom:-6px;width:12px}
  .socials .srl-group:hover::before{left:-6px;right:-6px;top:auto;bottom:100%;width:auto;height:12px}
  .nav-links .srl-group:hover::before{left:-6px;right:-6px;top:100%;bottom:auto;width:auto;height:14px}
  .srl-group:hover .srl-pop{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(-50%)}
  .srl-group:hover .srl-pop--up{transform:translateX(-50%)}
  .srl-group:hover .srl-pop--down{transform:none}
  .social-rail .srl-group:hover .srl-btn,.socials .srl-group:hover .srl-btn{background:var(--rose-deep);color:#fff}
  .nav-links .srl-group:hover .srl-btn .chev{transform:rotate(180deg)}
  .nav-links .srl-group:hover .nav-adult{background:rgba(255,255,255,.16);border-color:#fff;color:#fff}
  .nav.scrolled .nav-links .srl-group:hover .nav-adult,
  body.navsolid .nav-links .srl-group:hover .nav-adult{background:var(--rose-deep);border-color:var(--rose-deep);color:#fff}
}
/* the drawer renders the same thing flat — a label, then the platforms under it */
.mm .panel .mm-group{display:flex;flex-direction:column}
.mm .panel .mm-gh{padding:16px 0 4px;font-family:'Montserrat',system-ui,sans-serif;font-size:11px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--rose-deep);opacity:.75}
.mm .panel .mm-group a{padding-left:14px}
@keyframes socialIn{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:none}}
.scroll-cue{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);z-index:3;color:rgba(255,255,255,.85);animation:bob 2.2s infinite}
@keyframes rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,8px)}}
@keyframes kenburns{from{transform:scale(1.03)}to{transform:scale(1.1)}}
/* phones: tighten the hero so the signature, the H2 and all three CTAs land
   above the fold on a 360x740 device rather than pushing the last one off */
@media(max-width:899px){
  .hero-grid{padding:92px clamp(20px,5vw,48px) 70px}
  .hero-sig{height:min(260px,30vh)}
  .hero-rule{margin:16px auto 14px}
  .hero .blurb{font-size:14.5px;margin-top:12px;line-height:1.6}
  .hero-cta{margin-top:22px;gap:8px}
  .hero-cta .btn{padding:12px 18px;min-height:44px;font-size:11px}
  .scroll-cue{bottom:14px}
}
/* short phones (iPhone SE and similar): squeeze further so nothing gets cut */
@media(max-width:899px) and (max-height:700px){
  .hero-grid{padding:84px clamp(20px,5vw,48px) 60px}
  .hero-sig{height:min(210px,27vh)}
  .hero-rule{margin:12px auto 10px}
  .hero .blurb{margin-top:10px}
  .hero-cta{margin-top:18px}
}
@media(min-width:900px){
  .hero-bg img{object-position:center}
  /* padding is viewport-relative so the hero equals 100svh on a laptop instead of
     overflowing it; the left value clears the fixed social rail (occupies x 10-48px) */
  .hero-grid{grid-template-columns:.66fr 1.12fr;gap:56px;
    padding:clamp(88px,11vh,108px) 48px clamp(60px,9vh,84px) max(48px,var(--rail-gutter))}
  .wrap{padding-left:max(30px,var(--rail-gutter));padding-right:30px}
  .hero-portrait{display:block;position:relative;aspect-ratio:4/5;max-height:min(70vh,600px);align-self:start;
    border-radius:48% 48% 14px 14px/34% 34% 4% 4%;
    overflow:hidden;box-shadow:0 44px 90px -40px rgba(120,68,58,.6);border:6px solid rgba(255,255,255,.5);
    animation:rise 1s cubic-bezier(.2,.7,.2,1) both}
  .hero-portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 28%}
  .hero-content{text-align:left;animation-delay:.1s}
  .hero-sig{margin:0}
  .hero-rule{margin:22px 0 18px}
  .hero .blurb{margin-left:0}
  .hero-cta{justify-content:flex-start}
}
/* real laptop screens (1440x860, 1280x800, 1366x768): squeeze the vertical rhythm so the
   CTAs and the scroll cue stay inside the fold instead of hanging 13-73px below it */
@media(min-width:900px) and (max-height:880px){
  .hero-rule{margin:16px 0 14px}
  .hero .blurb{margin-top:12px;line-height:1.6}
  .hero-cta{margin-top:22px}
  .hero-portrait{max-height:min(62vh,600px)}
}

/* INNER PAGE HERO — solid rose band + white script title + white underline (her coaching hero) */
.rose-hero{position:relative;background:linear-gradient(160deg,#B27F86,#A2686F);color:#fff;
  padding:112px 0 56px;text-align:center}
.rose-hero .script{font-size:clamp(34px,6.5vw,56px);color:#fff}
.rose-hero .uline{width:200px;max-width:58%;height:1px;background:linear-gradient(90deg,transparent,var(--gold-hi),transparent);opacity:.9;margin:18px auto 0}
.rose-hero p{max-width:60ch;margin:22px auto 0;color:rgba(255,255,255,.94);font-size:16px}
.rose-hero .tiny{font-size:12px;color:rgba(255,255,255,.85);margin-top:14px;letter-spacing:.06em}

/* FLOATING WHITE INFO CARD (her coaching pricing card) */
.info-card{max-width:960px;margin:-64px auto 0;position:relative;z-index:5;background:#fff;border-radius:28px;
  box-shadow:0 40px 80px -40px rgba(120,80,85,.5);padding:32px 22px;display:grid;grid-template-columns:repeat(2,1fr);gap:24px 16px;text-align:center}
.info-card .cell{min-width:0}
.info-card .cell .v{font-family:'Cormorant Garamond',serif;font-size:clamp(22px,4vw,32px);color:var(--rose-deep);font-weight:500;line-height:1.1;overflow-wrap:break-word}
.info-card .cell .k{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:6px}
@media(min-width:600px){
  .info-card{grid-template-columns:repeat(4,1fr);padding:36px 30px;gap:20px}
  .info-card .cell + .cell{border-left:1px solid var(--line)}
}

/* SECTIONS */
.section{padding:84px 0}
.section.tight{padding:60px 0}
.lead{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(21px,4.6vw,28px);color:var(--rose-deep);line-height:1.45}
.body-copy{max-width:64ch;color:var(--ink)}
.body-copy.center{margin:0 auto;text-align:center}

/* bullet list with rose dots (her "What Can We Talk About") */
.rose-list{list-style:none;max-width:70ch;margin:0 auto;display:flex;flex-direction:column;gap:16px}
.rose-list li{position:relative;padding-left:26px;color:var(--ink)}
.rose-list li::before{content:"";position:absolute;left:0;top:12px;width:8px;height:8px;border-radius:50%;background:var(--rose-2)}

/* TWO-COLUMN image + text (her My Story) */
.two-col{display:grid;grid-template-columns:1fr;gap:40px;align-items:center;max-width:1040px;margin:0 auto}
.two-col .media img{width:100%;border-radius:14px;box-shadow:0 30px 60px -34px rgba(120,80,85,.55)}

/* MY STORY — long-form editorial treatment for Jenny's supplied story */
.story-page{padding-top:58px}
.story-intro{display:grid;grid-template-columns:1fr;gap:38px;align-items:center;max-width:1040px;margin:0 auto 56px}
.story-portrait{position:relative;overflow:hidden;border-radius:180px 180px 24px 24px;aspect-ratio:4/5;max-width:430px;margin:0 auto;
  border:6px solid rgba(255,255,255,.75);box-shadow:0 42px 82px -42px rgba(120,68,58,.62)}
.story-portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 24%}
.story-opening .shead{margin-bottom:28px}.story-opening .script{display:block;color:var(--rose-deep);font-size:clamp(40px,6vw,58px)}
.story-opening>p{font-size:clamp(16px,2vw,18px);line-height:1.75;color:var(--ink);margin-bottom:20px}
.story-opening .story-belief{font-family:'Cormorant Garamond',serif;font-size:clamp(24px,3.4vw,32px);font-weight:500;line-height:1.35;color:var(--rose-deep);margin-bottom:0}
.story-copy{max-width:72ch;margin:0 auto;color:var(--ink)}
.story-copy>p{font-size:17px;line-height:1.82;margin-bottom:24px}
.story-affirmation{margin:42px 0;padding:30px clamp(22px,5vw,42px);border-left:3px solid var(--gold);border-radius:0 22px 22px 0;
  background:linear-gradient(135deg,#fff,var(--blush));box-shadow:0 24px 54px -40px rgba(120,80,85,.55)}
.story-affirmation p{font-family:'Cormorant Garamond',serif;font-size:clamp(24px,4vw,32px);font-weight:500;line-height:1.35;color:var(--rose-deep);margin-bottom:14px}
.story-affirmation p:last-child{margin-bottom:0}.story-copy .story-signoff{font-family:'Cormorant Garamond',serif;font-size:30px;color:var(--rose-deep);margin-bottom:0}
@media(min-width:840px){.story-intro{grid-template-columns:.8fr 1.2fr;gap:64px}.story-portrait{margin:0}.story-copy>p{font-size:18px}}

/* STATS grid (media kit) */
.stats{max-width:860px;margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:36px 22px}
.stat{text-align:center;min-width:0}
.stat .n{font-family:'Cormorant Garamond',serif;font-size:clamp(38px,8vw,54px);font-weight:600;color:var(--rose-deep);line-height:1}
.stat .l{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:10px}

/* forms */
.field{width:100%;padding:15px 22px;border-radius:40px;border:1px solid var(--line);background:#fff;
  font-family:'Montserrat';font-size:14px;color:var(--ink);letter-spacing:.04em}
.field:focus{outline:none;border-color:var(--rose)}
textarea.field{border-radius:22px;resize:vertical}
.form-narrow{max-width:460px;margin:0 auto;display:flex;flex-direction:column;gap:12px;text-align:center}
.fine{font-size:11px;color:var(--muted);letter-spacing:.04em}

/* wave dividers (LEGACY — being replaced by .divider; kept until all pages migrate) */
.wave{display:block;width:100%;height:auto;margin-bottom:-1px}
.wave.flip{transform:rotate(180deg);margin:-1px 0 0}

/* SECTION DIVIDERS — seam-proof + color-chained via CSS vars.
   --divider-from = colour ABOVE the curve (the section it leaves); background fills that.
   --divider-fill = colour BELOW the curve (the section it flows INTO); the wave path fills that.
   No hardcoded #fff, no rotate, no white gap. */
.divider{position:relative;display:block;width:100%;height:clamp(46px,6vw,88px);line-height:0;
  background:var(--divider-from,var(--cream));margin-top:-1px;margin-bottom:-1px;pointer-events:none}
.divider svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.divider path{fill:var(--divider-fill,#fff)}
/* overlaps the section above (e.g. the photographic hero): transparent, pulled up over it */
.divider--over{background:transparent;margin-top:calc(-1 * clamp(46px,6vw,88px));z-index:3}

/* GET IN TOUCH band */
.touch{background:var(--blush);text-align:center}

/* FOOTER */
.foot{position:relative;background:linear-gradient(180deg,var(--mauve),var(--rose-deep));color:#fff;padding:64px 0 34px}
/* footer paints its own wave upward — page-agnostic, seam-proof (no per-page divider markup needed) */
.foot::before{content:"";position:absolute;left:0;right:0;bottom:100%;margin-bottom:-1px;height:clamp(46px,6vw,88px);
  background:var(--mauve);pointer-events:none;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M0,64 C240,118 480,22 720,54 C960,86 1200,120 1440,58 L1440,120 L0,120 Z' fill='%23000'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'%3E%3Cpath d='M0,64 C240,118 480,22 720,54 C960,86 1200,120 1440,58 L1440,120 L0,120 Z' fill='%23000'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat}
.foot-top{display:grid;grid-template-columns:1fr;gap:40px;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.18)}
.foot-brand{max-width:420px}
.foot .fsig{width:180px;margin:0 0 18px;filter:brightness(0) invert(1);opacity:.94}
.foot .ftag{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:17px;line-height:1.6;color:rgba(255,255,255,.86);margin-bottom:22px}
.socials{display:flex;gap:14px;flex-wrap:wrap}
.socials>a,.socials .srl-btn{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.14);color:#fff;border:0;padding:0;cursor:pointer;transition:background .3s,transform .3s}
.socials>a:hover,.socials .srl-btn:hover,.socials .srl-btn:focus-visible{background:rgba(255,255,255,.3);transform:translateY(-3px)}
.socials svg{width:17px;height:17px}
.foot-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.fcol{display:flex;flex-direction:column;gap:10px}
.fcol .fh{font-family:'Cormorant Garamond',serif;font-size:18px;color:#fff;margin-bottom:4px}
.fcol a{font-size:12px;letter-spacing:.08em;color:rgba(255,255,255,.78);transition:color .3s}
.fcol a:hover{color:#fff}
.foot-bottom{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding-top:26px}
.foot .mail{color:#fff;font-family:'Cormorant Garamond',serif;font-size:18px;font-style:italic;border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:2px}
.foot .cr{font-size:11px;letter-spacing:.08em;color:rgba(255,255,255,.7)}
@media(min-width:820px){.foot-top{grid-template-columns:1.2fr 1.6fr;gap:60px;align-items:start}}

/* AGE GATE */
@keyframes fade{from{opacity:0}to{opacity:1}}

/* LEAD-MAGNET POPUP — photo-background card, SCROLL-triggered only (never on load) */
.leadpop{position:fixed;inset:0;z-index:110;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(60,40,44,.75);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.leadpop.open{display:flex;animation:popFade .5s cubic-bezier(.2,.8,.2,1)}
.leadpop-card{position:relative;display:grid;grid-template-columns:1fr;max-width:680px;width:100%;max-height:92vh;overflow-y:auto;border-radius:24px;
  box-shadow:0 40px 90px -24px rgba(0,0,0,.55);animation:popScale .45s cubic-bezier(.2,.8,.2,1)}
.leadpop-photo{min-height:220px;background-size:cover;background-position:50% 22%}
.leadpop-body{position:relative;background:rgba(255,255,255,.97);padding:42px 36px 30px;text-align:center}
.leadpop-close{position:absolute;top:14px;right:18px;background:none;border:none;font-size:28px;color:var(--muted);cursor:pointer;line-height:1;
  width:36px;height:36px;border-radius:50%;display:grid;place-items:center;transition:background .25s,color .25s}
.leadpop-close:hover{background:var(--blush);color:var(--rose-deep)}
.leadpop-script{font-size:clamp(28px,5vw,38px);color:var(--rose);display:block;line-height:1.1;margin-bottom:2px}
.leadpop-heading{font-family:'Cormorant Garamond',serif;font-size:clamp(22px,4vw,28px);font-weight:600;color:var(--ink);margin:6px 0 0;line-height:1.25}
.leadpop-text{font-size:15px;line-height:1.65;color:var(--muted);margin:14px auto 22px;max-width:38ch}
.leadpop-form{display:flex;flex-direction:column;gap:10px}
.leadpop-form .btn{width:100%}
.leadpop-decline{background:none;color:var(--muted);font-size:11px;letter-spacing:.12em;text-transform:uppercase;border:none;cursor:pointer;padding:10px 12px 2px;transition:color .25s}
.leadpop-decline:hover{color:var(--rose-deep)}
@keyframes popFade{from{opacity:0}to{opacity:1}}
@keyframes popScale{from{opacity:0;transform:scale(.92) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}

@media(min-width:768px){
  .leadpop-card{grid-template-columns:1fr 1fr;max-width:740px}
  .leadpop-photo{min-height:auto}
  .leadpop-body{padding:44px 40px 34px}
}
@media(max-width:480px){
  .leadpop{padding:14px}
  .leadpop-photo{min-height:150px}
  .leadpop-body{padding:32px 24px 24px}
  .leadpop-text{font-size:14px;margin:12px auto 18px}
}

/* ============ SHOWCASE ADD-ONS (same V4 language) ============ */

/* scroll reveal — content is visible by default; only hidden when JS is active (no-JS/failure safe) */
.reveal{transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1)}
.js .reveal{opacity:0;transform:translateY(26px)}
.reveal.in{opacity:1;transform:none}

/* PODCAST band */
.podcast{background:var(--blush)}
.pod-grid{display:grid;grid-template-columns:1fr;gap:38px;align-items:center;max-width:1160px;margin:0 auto}
.pod-embed{position:relative;border-radius:22px;overflow:hidden;box-shadow:0 40px 84px -34px rgba(120,80,85,.66);background:#1c1113}
.pod-embed iframe{display:block;border:0;width:100%;aspect-ratio:16/9;height:auto}
.pod-cover{position:relative;width:100%;aspect-ratio:16/9;border:none;padding:0;cursor:pointer;display:block;color:#fff;overflow:hidden;font-family:inherit}
.pod-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;filter:saturate(.92) contrast(1.03);transition:transform .6s cubic-bezier(.2,.7,.2,1)}
/* Her thumbnails already carry the episode title, so there is nothing to make legible
   here any more. A whisper of shading keeps the play button from floating. */
.pod-cover::after{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse at 50% 50%,rgba(28,17,19,.22) 0%,rgba(28,17,19,0) 58%)}
.pod-cover .play{position:absolute;z-index:3;top:50%;left:50%;transform:translate(-50%,-50%);width:62px;height:62px;border-radius:50%;background:#ff0033;
  display:grid;place-items:center;box-shadow:0 20px 44px -14px rgba(255,0,51,.7),0 0 0 0 rgba(255,255,255,.55);transition:transform .35s,box-shadow .35s}
.pod-cover:hover .play,.pod-cover:focus-visible .play{transform:translate(-50%,-50%) scale(1.08);box-shadow:0 24px 52px -14px rgba(255,0,51,.8),0 0 0 12px rgba(255,255,255,.12)}
.pod-cover:hover img{transform:scale(1.045)}
.pod-cover .play svg{width:24px;height:24px;color:#fff;margin-left:3px}
.pod-cover .badge{position:absolute;z-index:3;top:22px;left:22px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;
  background:rgba(28,17,19,.42);border:1px solid rgba(255,255,255,.42);backdrop-filter:blur(6px);padding:6px 13px;border-radius:30px;color:#fff}
.pod-cover .badge svg{width:13px;height:13px;color:#ff4d6a;display:inline-block;vertical-align:-2px;margin-right:5px}
.pod-body .lead{margin:10px 0 6px}
.pod-body p{color:var(--ink);max-width:52ch;margin-bottom:22px}
.listen{display:flex;gap:12px;flex-wrap:wrap}
.listen a{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:12px 22px;border-radius:40px;border:1px solid var(--rose-2);
  color:var(--rose-deep);font-size:11px;letter-spacing:.14em;text-transform:uppercase;transition:background .3s,color .3s,transform .3s}
.listen a:hover{background:var(--rose-deep);color:#fff;transform:translateY(-2px)}
.listen a svg{width:16px;height:16px}

/* WATCH / LATEST grid */
.watch .grid{display:grid;grid-template-columns:1fr;gap:20px;max-width:1000px;margin:0 auto}
.vcard{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:9/11;box-shadow:0 20px 44px -30px rgba(120,80,85,.6);
  display:block;background:#eadada;transition:transform .4s,box-shadow .4s}
.vcard:hover{transform:translateY(-4px);box-shadow:0 28px 54px -28px rgba(120,80,85,.55)}
.vcard img{width:100%;height:100%;object-fit:cover}
.vcard .grad{position:absolute;inset:0;background:linear-gradient(to top,rgba(120,60,66,.74),rgba(120,60,66,.05) 58%)}
.vcard .play{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.9);display:grid;place-items:center}
.vcard .play svg{width:16px;height:16px;color:var(--rose-deep);margin-left:2px}
.vcard .cap{position:absolute;left:16px;right:16px;bottom:14px;color:#fff;z-index:2}
.vcard .cap .t{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:600;line-height:1.25}
.vcard .cap .p{font-size:10px;letter-spacing:.16em;text-transform:uppercase;opacity:.85;margin-top:3px}

/* ALBUM CARDS (her themed shoots) */
.albums{display:grid;grid-template-columns:1fr;gap:18px;max-width:1080px;margin:0 auto}
.album{position:relative;display:block;border-radius:18px;overflow:hidden;aspect-ratio:4/5;
  box-shadow:0 24px 50px -30px rgba(120,80,85,.6);transition:transform .4s,box-shadow .4s}
.album:hover{transform:translateY(-4px);box-shadow:0 32px 60px -28px rgba(120,80,85,.55)}
.album img{width:100%;height:100%;object-fit:cover;transition:transform .7s}
.album:hover img{transform:scale(1.06)}
.album .grad{position:absolute;inset:0;background:linear-gradient(to top,rgba(120,60,66,.78),rgba(120,60,66,.05) 60%)}
.album .cap{position:absolute;left:0;right:0;bottom:0;padding:24px;text-align:center;color:#fff;z-index:2}
.album .cap .script{font-size:33px;color:#fff;display:block;line-height:1.1;text-shadow:0 2px 16px rgba(60,35,40,.5)}
.album .cap .n{font-size:10px;letter-spacing:.22em;text-transform:uppercase;opacity:.88;margin-top:5px}

/* natural gallery photos (true colours; NOT harmonized) */
.gphoto{border-radius:14px;overflow:hidden;margin:0 0 14px;break-inside:avoid;cursor:pointer;display:block;box-shadow:0 16px 34px -28px rgba(120,80,85,.55)}
.gphoto img{width:100%;display:block;transition:transform .5s}
.gphoto:hover img{transform:scale(1.03)}

/* GALLERY (harmonized) + lightbox */
.gallery-grid{columns:2;column-gap:14px;max-width:1040px;margin:0 auto}
/* Detail pages use a uniform grid, not the masonry columns: every photo sits in
   the same 3:4 box (object-fit crop), so 8 photos always fill complete, centred
   rows — 2x4 on desktop, 4x2 on phones. */
.gallery-grid.gallery-full{columns:unset;column-gap:normal;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.gallery-full .gphoto{margin:0;aspect-ratio:3/4}
.gallery-full .gphoto img{width:100%;height:100%;object-fit:cover}
.harmonize{position:relative;border-radius:14px;overflow:hidden;margin:0 0 14px;break-inside:avoid;cursor:pointer;display:block}
.harmonize img{width:100%;display:block;filter:saturate(.62) contrast(1.03);transition:filter .5s}
.harmonize::after{content:"";position:absolute;inset:0;background:#C68A8F;mix-blend-mode:multiply;opacity:.4;transition:opacity .5s}
.harmonize::before{content:"";position:absolute;inset:0;z-index:1;background:#F3E0E0;mix-blend-mode:screen;opacity:.15}
.harmonize:hover img{filter:saturate(.9) contrast(1.02)}
.harmonize:hover::after{opacity:.22}
.lightbox{position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(74,63,65,.86);backdrop-filter:blur(4px)}
.lightbox.open{display:flex;animation:fade .3s}
.lightbox img{max-width:92vw;max-height:88vh;border-radius:10px;box-shadow:0 40px 90px -30px #000}
.lightbox .lb-close{position:absolute;top:22px;right:28px;font-size:34px;color:#fff;background:none;border:none;cursor:pointer;line-height:1}

/* MERCH — hybrid product cards (Dashery/Stan showcase + native on-site) */
.legacy-shop-mix{display:none}
.merch-intro{max-width:60ch;margin:0 auto 40px;text-align:center;color:var(--ink)}
.merch-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;max-width:820px;margin:0 auto 8px}
.merch-form{display:flex;align-items:center;gap:14px;padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--rose-deep);box-shadow:0 20px 42px -36px rgba(120,80,85,.55)}
.merch-form svg{width:46px;height:46px;flex:0 0 46px}.merch-form span{font-family:'Cormorant Garamond',serif;font-size:19px;font-weight:600;color:var(--ink)}
@media(min-width:760px){.merch-form-grid{grid-template-columns:repeat(4,1fr)}.merch-form{flex-direction:column;text-align:center}}
.merch-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;max-width:1120px;margin:0 auto}
.courses-page .merch-grid{grid-template-columns:1fr;max-width:520px!important}
@media(min-width:760px){.courses-page .merch-grid{grid-template-columns:repeat(2,1fr);max-width:820px!important}}
.product-card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:20px;
  overflow:hidden;box-shadow:0 1px 2px rgba(120,80,85,.05),0 24px 48px -34px rgba(120,80,85,.55);transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s}
.product-card:hover{transform:translateY(-5px);box-shadow:0 1px 2px rgba(120,80,85,.05),0 32px 58px -30px rgba(120,80,85,.5)}
.product-card .pimg{position:relative;aspect-ratio:1/1;background:var(--blush-2);overflow:hidden}
.product-card .pimg img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.product-card:hover .pimg img{transform:scale(1.05)}
.product-card .badge{position:absolute;top:12px;left:12px;z-index:2;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
  padding:5px 11px;border-radius:30px;background:rgba(255,255,255,.92);color:var(--rose-deep);backdrop-filter:blur(4px);box-shadow:0 6px 16px -8px rgba(120,80,85,.5)}
.product-card .badge--stan{color:#8a5bb0}
.product-card .badge--woo{color:#8a6a2f}
.product-card .pbody{padding:18px 18px 20px;display:flex;flex-direction:column;gap:5px;flex:1}
.product-card .pname{font-family:'Cormorant Garamond',serif;font-size:21px;font-weight:600;color:var(--ink);line-height:1.22}
.product-card .pprice{font-size:12px;letter-spacing:.06em;color:var(--rose-deep);font-weight:500}
.product-card .pdesc{font-size:13px;line-height:1.5;color:var(--muted);margin-top:2px}
.product-card .pcta{margin-top:auto;padding-top:16px}
.product-card .pcta .pill{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;border-radius:40px;
  border:1px solid var(--rose-2);color:var(--rose-deep);font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;transition:background .3s,color .3s}
.product-card:hover .pcta .pill{background:var(--rose-deep);color:#fff;border-color:var(--rose-deep)}
.product-card .pcta .pill svg{width:14px;height:14px}
.product-card--soon{background:linear-gradient(160deg,#fff,var(--blush));border-style:dashed}
.module-panel{max-width:760px;margin:28px auto 0;padding:26px clamp(20px,4vw,34px);background:#fff;border:1px solid var(--line);border-radius:20px;
  box-shadow:0 24px 50px -38px rgba(120,80,85,.55)}
.module-panel h2{font-family:'Cormorant Garamond',serif;font-size:26px;font-weight:600;color:var(--rose-deep);text-align:center;margin-bottom:20px}
.module-list{display:grid;grid-template-columns:1fr;gap:12px;counter-reset:modules;list-style:none}
.module-list li{counter-increment:modules;position:relative;padding:11px 14px 11px 48px;border-radius:12px;background:var(--blush);color:var(--ink);font-size:14px;line-height:1.45}
.module-list li::before{content:counter(modules,decimal-leading-zero);position:absolute;left:14px;top:10px;font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:600;color:var(--rose-deep)}
@media(min-width:680px){.module-list{grid-template-columns:repeat(2,1fr)}}

/* MEDIA KIT — breakdown tables + rate card + PDF download */
.mk-block{max-width:540px;margin:28px auto 0}
.mk-block .mkh{font-family:'Montserrat';font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--rose-deep);text-align:center;margin-bottom:14px}
.mk-rows{background:#fff;border:1px solid var(--line);border-radius:18px;padding:4px 20px;box-shadow:0 20px 44px -34px rgba(120,80,85,.5)}
.mk-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.mk-row:last-child{border-bottom:0}
.mk-row .k{color:var(--ink);font-size:15px}
.mk-row .v{font-family:'Cormorant Garamond',serif;font-weight:600;color:var(--rose-deep);font-size:23px;line-height:1;white-space:nowrap}
.mk-note{text-align:center;color:var(--muted);font-size:12px;margin:14px auto 0;max-width:540px}
.mk-rate .mk-rows{background:linear-gradient(160deg,#fff,var(--blush));border-color:var(--blush)}
.mk-download{display:flex;justify-content:center;margin-top:24px}

/* MEDIA KIT v2 — premium layout: platform cards, metric strip, portrait split, bars */
.platforms{display:grid;grid-template-columns:1fr;gap:18px;max-width:900px;margin:0 auto}
.pf{background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px 20px;text-align:center;box-shadow:0 24px 50px -34px rgba(120,80,85,.55);transition:transform .3s ease,box-shadow .3s ease}
.pf:hover{transform:translateY(-4px);box-shadow:0 34px 62px -34px rgba(120,80,85,.5)}
.pf .ic{width:38px;height:38px;margin:0 auto 12px;color:var(--rose-deep);opacity:.9}
.pf .ic svg{width:100%;height:100%}
.pf .n{font-family:'Cormorant Garamond',serif;font-size:clamp(36px,7vw,50px);font-weight:600;color:var(--rose-deep);line-height:1}
.pf .l{font-family:'Montserrat';font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-top:9px}
.platform-status{font-family:'Cormorant Garamond',serif;font-size:21px;font-weight:600;color:var(--rose-deep);line-height:1.15}
.media-kit-private,.account-breakdown,.metric-strip{display:none}
.mk-highlight{text-align:center;max-width:820px;margin:26px auto 0;padding:16px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.mk-highlight b{font-family:'Cormorant Garamond',serif;color:var(--rose-deep);font-size:clamp(22px,5vw,30px);font-weight:600}
.mk-highlight span{font-family:'Montserrat';font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);display:block;margin-top:4px}
.account-breakdown{max-width:900px;margin:30px auto 0}.account-breakdown h2{font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:600;color:var(--rose-deep);text-align:center;margin-bottom:14px}
.account-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 24px 50px -38px rgba(120,80,85,.55)}
.account-breakdown table{width:100%;border-collapse:collapse;min-width:520px}.account-breakdown th,.account-breakdown td{padding:13px 18px;text-align:left;border-bottom:1px solid var(--line)}
.account-breakdown th{font-family:'Montserrat',system-ui,sans-serif;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--rose-deep);background:var(--blush)}
.account-breakdown td{font-size:14px;color:var(--ink)}.account-breakdown th:last-child,.account-breakdown td:last-child{text-align:right;font-weight:600}
.account-breakdown tbody tr:last-child td{border-bottom:0}
.metric-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:0;max-width:900px;margin:32px auto 0;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 24px 50px -34px rgba(120,80,85,.5)}
.metric{text-align:center;padding:22px 10px;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.metric .n{font-family:'Cormorant Garamond',serif;font-size:clamp(26px,5vw,34px);color:var(--rose-deep);font-weight:600;line-height:1}
.metric .l{font-family:'Montserrat';font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:7px}
.about-split{display:grid;grid-template-columns:1fr;gap:32px;align-items:center;max-width:1000px;margin:0 auto;text-align:left}
.about-split .ph{position:relative;border-radius:26px;overflow:hidden;aspect-ratio:4/5;box-shadow:0 44px 84px -44px rgba(120,68,58,.6);border:6px solid rgba(255,255,255,.6)}
.about-split .ph img{width:100%;height:100%;object-fit:cover;object-position:50% 24%}
.about-split .tx p{color:var(--ink);margin-bottom:14px;line-height:1.7}
.about-split .tx p:last-child{margin-bottom:0}
.mk-two{display:grid;grid-template-columns:1fr;gap:34px;max-width:1000px;margin:0 auto}
.bar-group{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px 22px 8px;box-shadow:0 20px 44px -34px rgba(120,80,85,.5)}
.bar{margin:0 0 18px}
.bar .top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:7px}
.bar .top .k{font-size:14px;color:var(--ink)}
.bar .top .pct{font-family:'Cormorant Garamond',serif;font-size:19px;color:var(--rose-deep);font-weight:600;line-height:1}
.bar .track{height:9px;border-radius:20px;background:var(--blush-2);overflow:hidden}
.bar .fill{height:100%;border-radius:20px;background:linear-gradient(90deg,var(--rose-2),var(--rose-deep));transition:width 1s cubic-bezier(.2,.8,.2,1)}
.platforms>*,.metric-strip>*,.about-split>*,.mk-two>*,.about-split .tx{min-width:0}
.rose-hero p,.body-copy,.about-split .tx p,.bar .top .k{overflow-wrap:break-word}

/* MEDIA KIT — page on ThinJen's pink gradient + portrait-led hero (scoped to .mk-page) */
.mk-page{background:linear-gradient(160deg,#F4DEDE 0%,#E7C3C6 50%,#D6A9AE 100%);background-attachment:fixed}
.mk-page .section,.mk-page .section.tight{background:transparent!important}
.mk-page .rose-hero{background:transparent;color:var(--ink);padding:108px 0 42px}
.mk-page .rose-hero .sub{color:var(--rose-deep)}
.mk-page .rose-hero .script{color:var(--rose-deep)}
.mk-page .rose-hero .uline{background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.mk-page .rose-hero p{color:var(--ink)}
.mk-page .rose-hero .mk-download .btn{background:var(--rose-deep);color:#fff;box-shadow:0 16px 32px -16px rgba(120,60,66,.75)}
/* (the .mk-page nav overrides are gone — the bar is white on every page from load) */
.mk-hero-grid{display:grid;grid-template-columns:1fr;gap:28px;align-items:center;max-width:1000px;margin:0 auto}
.mk-hero-ph{justify-self:center;width:min(74vw,290px);aspect-ratio:4/5;border-radius:180px 180px 22px 22px;overflow:hidden;border:6px solid rgba(255,255,255,.6);box-shadow:0 44px 84px -44px rgba(120,68,58,.65)}
.mk-hero-ph img{width:100%;height:100%;object-fit:cover;object-position:50% 18%}
.mk-hero-tx{text-align:center}
.mk-hero-tx .uline{margin-left:auto;margin-right:auto}
@media(min-width:820px){
  .mk-hero-grid{grid-template-columns:.82fr 1.18fr;gap:52px}
  .mk-hero-tx{text-align:left}
  .mk-hero-tx .uline{margin-left:0}
  .mk-hero-tx .mk-download{justify-content:flex-start}
}
@media(min-width:820px){
  /* 3 columns: six platform cards land as two full, centred rows (4 cols left row 2 dangling) */
  .platforms{grid-template-columns:repeat(3,1fr)}
  .metric-strip{grid-template-columns:repeat(4,1fr)}
  .metric{border-top:0}
  .about-split{grid-template-columns:.85fr 1.15fr;gap:52px}
  .about-split .ph{object-position:center}
  .mk-two{grid-template-columns:1fr 1fr;gap:46px}
}

/* TESTIMONIALS */
.quotes{display:grid;grid-template-columns:1fr;gap:20px;max-width:1000px;margin:0 auto}
.quote{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px 26px;box-shadow:0 20px 44px -34px rgba(120,80,85,.6)}
.quote p{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:19px;color:var(--ink);line-height:1.5;margin-bottom:14px}
.quote .who{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--rose-deep)}

/* photo strip */
.strip{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:1000px;margin:0 auto}
.strip .harmonize{margin:0}

@media(min-width:760px){
  .stats{grid-template-columns:repeat(3,1fr);gap:40px 22px}
  .watch .grid{grid-template-columns:repeat(3,1fr)}
  .gallery-grid{columns:3}
  .gallery-grid.gallery-full{columns:unset;grid-template-columns:repeat(4,1fr)}
  .gallery-full{columns:4}
  .albums{grid-template-columns:repeat(3,1fr)}
  .quotes{grid-template-columns:repeat(3,1fr)}
  .merch-grid{grid-template-columns:repeat(3,1fr)}
}
@media(min-width:900px){
  .two-col{grid-template-columns:0.85fr 1fr;gap:56px}
  .pod-grid{grid-template-columns:1.6fr 1fr;gap:52px}
}
/* The added Courses destination makes the full desktop navigation wider; keep the
   burger until 1120px so links never collide on compact laptops. */
@media(min-width:1120px){
  .nav-links{display:flex}
  .nav-inner{justify-content:center}
  .nav .burger{display:none}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal,.js .reveal{opacity:1;transform:none}}

/* ============ REVISION 2026-07-26 — brand-first homepage components ============ */

/* MISSION — portrait + mission copy (homepage section 2) */
.mission{display:grid;grid-template-columns:1fr;gap:36px;align-items:center;max-width:1060px;margin:0 auto}
.mission .ph{position:relative;border-radius:26px;overflow:hidden;aspect-ratio:4/5;max-height:560px;
  box-shadow:0 44px 84px -44px rgba(120,68,58,.55);border:6px solid rgba(255,255,255,.7)}
.mission .ph img{width:100%;height:100%;object-fit:cover;object-position:50% 22%}
.mission .tx p{margin-bottom:16px}
.mission .tx p:last-child{margin-bottom:0}
.mission-points{list-style:none;display:flex;flex-direction:column;gap:13px;margin:22px 0 0}
.mission-points li{position:relative;padding-left:28px;color:var(--ink)}
.mission-points li::before{content:"";position:absolute;left:0;top:11px;width:9px;height:9px;border-radius:50%;
  background:linear-gradient(135deg,var(--rose-2),var(--rose-deep))}
@media(min-width:860px){.mission{grid-template-columns:.85fr 1.15fr;gap:54px}}

/* PROOF STRIP — community size as social proof, not a media kit */
.proof{display:grid;grid-template-columns:repeat(2,1fr);gap:0;max-width:900px;margin:0 auto;
  background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 24px 50px -34px rgba(120,80,85,.5)}
.proof .p{text-align:center;padding:24px 12px;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.proof .p .n{font-family:'Cormorant Garamond',serif;font-size:clamp(28px,5vw,38px);color:var(--rose-deep);font-weight:600;line-height:1}
.proof .p .l{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:7px}
@media(min-width:700px){.proof{grid-template-columns:repeat(4,1fr)}.proof .p{border-top:0}}

/* OFFERS — the funnel. Package is the hero card, the three offers sit under it. */
.package{position:relative;max-width:1000px;margin:0 auto 26px;border-radius:26px;overflow:hidden;
  background:linear-gradient(150deg,#B27F86,#A2686F);color:#fff;box-shadow:0 44px 84px -44px rgba(120,68,58,.7)}
.package-in{display:grid;grid-template-columns:1fr;gap:26px;padding:38px 30px}
.package .eyebrow{font-size:10.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.85)}
.package h3{font-family:'Cormorant Garamond',serif;font-size:clamp(26px,5vw,36px);font-weight:600;line-height:1.15;margin-top:10px}
.package .why{color:rgba(255,255,255,.9);margin-top:12px;max-width:44ch}
.package-price{display:flex;align-items:baseline;gap:10px;margin-top:20px}
.package-price .amt{font-family:'Cormorant Garamond',serif;font-size:clamp(40px,8vw,58px);font-weight:600;line-height:1}
.package-price .per{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.82)}
.package-list{list-style:none;display:flex;flex-direction:column;gap:12px;margin:0}
.package-list li{position:relative;padding-left:30px;color:rgba(255,255,255,.95);line-height:1.5}
.package-list li::before{content:"";position:absolute;left:2px;top:7px;width:13px;height:8px;border-left:2px solid var(--gold-hi);
  border-bottom:2px solid var(--gold-hi);transform:rotate(-45deg)}
.package .btn{margin-top:24px}
@media(min-width:820px){.package-in{grid-template-columns:1.05fr .95fr;gap:52px;padding:48px 46px;align-items:center}}

.offer-grid{display:grid;grid-template-columns:1fr;gap:18px;max-width:1000px;margin:0 auto}
.offer{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:20px;
  padding:30px 26px 26px;box-shadow:0 24px 48px -34px rgba(120,80,85,.5);transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s}
.offer:hover{transform:translateY(-5px);box-shadow:0 32px 58px -30px rgba(120,80,85,.45)}
.offer .ic{width:40px;height:40px;color:var(--rose-deep);margin-bottom:16px}
.offer .ic svg{width:100%;height:100%}
.offer h3{font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:600;color:var(--ink);line-height:1.2}
.offer .meta{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--rose-deep);margin-top:8px}
.offer p{font-size:14.5px;line-height:1.6;color:var(--muted);margin-top:12px}
.offer .go{margin-top:auto;padding-top:20px;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--rose-deep);
  display:inline-flex;align-items:center;gap:8px}
.offer .go svg{width:14px;height:14px;transition:transform .3s}
.offer:hover .go svg{transform:translateX(4px)}
.offer--soon{background:linear-gradient(160deg,#fff,var(--blush));border-style:dashed}
.offer .tagpill{position:absolute;top:18px;right:18px;font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  padding:5px 11px;border-radius:30px;background:var(--blush);color:var(--rose-deep)}
@media(min-width:820px){.offer-grid{grid-template-columns:repeat(3,1fr)}}

/* HOMEPAGE PHOTO STRIP — the simpler gallery/social area of the original site */
.photo-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;max-width:1080px;margin:0 auto}
.photo-strip a{position:relative;display:block;border-radius:14px;overflow:hidden;aspect-ratio:4/5;
  box-shadow:0 18px 40px -30px rgba(120,80,85,.55)}
.photo-strip img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.photo-strip a:hover img{transform:scale(1.05)}
@media(min-width:700px){.photo-strip{grid-template-columns:repeat(4,1fr);gap:14px}}

/* COACHING — pricing pair + package selector */
.price-pair{display:grid;grid-template-columns:1fr;gap:18px;max-width:900px;margin:0 auto}
.price-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:32px 28px;display:flex;flex-direction:column;
  box-shadow:0 24px 50px -34px rgba(120,80,85,.5)}
.price-card--feature{border:2px solid var(--rose-2);background:linear-gradient(165deg,#fff,var(--blush))}
.price-card .kicker{font-size:10.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--rose-deep)}
.price-card h3{font-family:'Cormorant Garamond',serif;font-size:27px;font-weight:600;color:var(--ink);margin-top:9px;line-height:1.2}
.price-card .amt{font-family:'Cormorant Garamond',serif;font-size:46px;font-weight:600;color:var(--rose-deep);line-height:1;margin-top:16px}
.price-card .per{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:7px}
.price-card ul{list-style:none;display:flex;flex-direction:column;gap:11px;margin:22px 0 0}
.price-card li{position:relative;padding-left:26px;font-size:14.5px;line-height:1.5;color:var(--ink)}
.price-card li::before{content:"";position:absolute;left:1px;top:6px;width:12px;height:7px;border-left:2px solid var(--rose-2);
  border-bottom:2px solid var(--rose-2);transform:rotate(-45deg)}
.price-card .btn{margin-top:26px;width:100%}
@media(min-width:760px){.price-pair{grid-template-columns:1.1fr .9fr;align-items:start}}

/* shared: section intro paragraph under a .shead */
.sintro{max-width:58ch;margin:-18px auto 40px;text-align:center;color:var(--muted)}

/* LEAD MAGNET — the free guide. Cover art is a styled panel, NOT a fake book
   mockup, so it reads as intentional until Jenny supplies the real cover. */
.magnet{display:grid;grid-template-columns:1fr;gap:28px;align-items:center;max-width:980px;margin:0 auto;
  background:#fff;border:1px solid var(--line);border-radius:26px;padding:26px;
  box-shadow:0 34px 70px -40px rgba(120,80,85,.55)}
.magnet-cover{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:3/4;max-height:400px;
  display:grid;place-items:center;text-align:center;padding:26px;background:linear-gradient(160deg,#C68A8F,#A2686F)}
.magnet-cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%;opacity:.3}
.magnet-cover .in{position:relative;z-index:2;color:#fff;width:100%}
.magnet-cover .k{font-size:9.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;opacity:.92}
.magnet-cover .t{font-family:'Great Vibes',cursive;font-size:clamp(28px,5vw,40px);line-height:1.05;margin-top:12px}
.magnet-cover .r{width:74px;height:1px;margin:15px auto;background:linear-gradient(90deg,transparent,var(--gold-hi),transparent)}
.magnet-cover .s{width:104px;margin:0 auto;filter:brightness(0) invert(1);opacity:.9}
.magnet-tx .eyebrow{font-size:10.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--rose-deep)}
.magnet-tx h2{font-family:'Cormorant Garamond',serif;font-size:clamp(25px,4.4vw,34px);font-weight:600;color:var(--ink);line-height:1.18;margin-top:10px}
.magnet-tx .sub-line{color:var(--muted);margin-top:12px;max-width:44ch}
.magnet-list{list-style:none;display:flex;flex-direction:column;gap:10px;margin:20px 0 24px}
.magnet-list li{position:relative;padding-left:27px;font-size:14.5px;line-height:1.5;color:var(--ink)}
.magnet-list li::before{content:"";position:absolute;left:1px;top:6px;width:12px;height:7px;
  border-left:2px solid var(--rose-2);border-bottom:2px solid var(--rose-2);transform:rotate(-45deg)}
.magnet-form{display:flex;gap:10px;flex-wrap:wrap}
.magnet-form .field{flex:1;min-width:200px}
.magnet .fine{margin-top:12px}
@media(min-width:780px){
  .magnet{grid-template-columns:.62fr 1.38fr;gap:40px;padding:34px}
}

/* ---------------- PODCAST ARCHIVE (podcast.html) ----------------
   Jenny: "a way to display the episodes so they are super easy to click to on YouTube
   and Spotify". One row per episode, the whole cover is the YouTube link, and both
   platform buttons are always visible rather than hidden behind a hover. */
.pod-hero-links{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:26px}
.ep-list{display:flex;flex-direction:column;gap:22px;max-width:1000px;margin:0 auto}
.ep{display:grid;grid-template-columns:1fr;gap:0;background:#fff;border:1px solid var(--line);border-radius:20px;
  overflow:hidden;box-shadow:0 24px 48px -34px rgba(120,80,85,.4);transition:transform .35s,box-shadow .35s}
.ep:hover{transform:translateY(-4px);box-shadow:0 34px 60px -32px rgba(120,80,85,.5)}
.ep-cover{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:#1c1113}
.ep-cover img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.ep-cover:hover img{transform:scale(1.04)}
.ep-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,17,19,0) 55%,rgba(28,17,19,.6) 100%)}
.ep-play{position:absolute;z-index:2;top:50%;left:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;
  background:#ff0033;display:grid;place-items:center;box-shadow:0 12px 30px -10px rgba(0,0,0,.6);transition:transform .3s}
.ep-play svg{width:22px;height:22px;color:#fff;margin-left:2px}
.ep-cover:hover .ep-play{transform:translate(-50%,-50%) scale(1.08)}
.ep-dur{position:absolute;z-index:2;right:10px;bottom:10px;padding:3px 8px;border-radius:6px;background:rgba(18,12,13,.82);
  font-family:'Montserrat',system-ui,sans-serif;font-size:11px;font-weight:600;letter-spacing:.04em;color:#fff}
.ep-body{padding:24px 26px 26px;display:flex;flex-direction:column;justify-content:center}
.ep-meta{font-family:'Montserrat',system-ui,sans-serif;font-size:10.5px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--rose-deep);opacity:.9}
.ep-title{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:clamp(21px,2.6vw,27px);line-height:1.18;
  color:var(--ink);margin:9px 0 0}
.ep-blurb{font-size:14.5px;line-height:1.65;color:var(--muted);margin:11px 0 0}
.ep-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.ep-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border-radius:30px;border:1px solid var(--rose-2);
  font-family:'Montserrat',system-ui,sans-serif;font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--rose-deep);transition:background .3s,color .3s,border-color .3s}
.ep-btn svg{width:15px;height:15px;flex:none}
.ep-btn:hover,.ep-btn:focus-visible{background:var(--rose-deep);color:#fff;border-color:var(--rose-deep)}
.ep-btn--yt:hover,.ep-btn--yt:focus-visible{background:#ff0033;border-color:#ff0033}
@media(min-width:760px){
  .ep{grid-template-columns:minmax(0,300px) 1fr}
  .ep-cover{aspect-ratio:auto;height:100%}
}

/* the lead offer card + its gold pill (homepage "Work With Me") */
.offer--lead{border-color:var(--rose-2);box-shadow:0 26px 52px -34px rgba(120,80,85,.45)}
.offer .tagpill--gold{background:linear-gradient(120deg,var(--gold),var(--gold-hi));color:#4a3630}
/* apparel cards list the forms a design actually comes in, not just the tee */
.ptypes{font-family:'Montserrat',system-ui,sans-serif;font-size:11px;font-weight:500;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted);margin-top:8px}
/* one offer, not a pair — the card keeps its feature styling but sits centred */
.price-solo{display:grid;justify-content:center;max-width:520px;margin:0 auto}

/* ---------------- PODCAST, HOMEPAGE ----------------
   The episode title is a caption UNDER the cover, not an overlay on it. Jenny bakes the
   title into her own thumbnails, so anything drawn on the image collided with hers and
   both became unreadable. */
.pod-caption{padding:18px 4px 0;text-align:left}
.pod-cap-meta{display:block;font-family:'Montserrat',system-ui,sans-serif;font-size:10.5px;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--rose-deep);opacity:.9}
.pod-cap-title{display:block;margin-top:8px;font-family:'Cormorant Garamond',serif;font-weight:600;
  font-size:clamp(21px,2.5vw,27px);line-height:1.18;color:var(--ink);transition:color .3s}
.pod-cap-title:hover,.pod-cap-title:focus-visible{color:var(--rose-deep)}
/* .pod-embed is the shadowed card; the caption sits outside it, so the shadow and the
   rounded corners stay on the artwork alone */
.pod-embed{background:none;box-shadow:none;border-radius:0;overflow:visible}
.pod-embed .pod-cover{border-radius:22px;box-shadow:0 40px 84px -34px rgba(120,80,85,.66);overflow:hidden;background:#1c1113}

/* the next three episodes, as compact rows */
.pod-more{display:grid;grid-template-columns:1fr;gap:14px;max-width:1160px;margin:52px auto 0}
.pod-mini{display:grid;grid-template-columns:132px 1fr;gap:16px;align-items:center;padding:10px;
  background:#fff;border:1px solid var(--line);border-radius:16px;
  box-shadow:0 18px 38px -32px rgba(120,80,85,.45);transition:transform .3s,box-shadow .3s,border-color .3s}
.pod-mini:hover,.pod-mini:focus-visible{transform:translateY(-3px);border-color:var(--rose-2);
  box-shadow:0 26px 48px -30px rgba(120,80,85,.55)}
.pod-mini-thumb{position:relative;display:block;border-radius:11px;overflow:hidden;aspect-ratio:16/9;background:#1c1113}
.pod-mini-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.pod-mini-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:30px;height:30px;border-radius:50%;
  background:#ff0033;display:grid;place-items:center;box-shadow:0 8px 18px -6px rgba(0,0,0,.55);transition:transform .3s}
.pod-mini-play svg{width:13px;height:13px;color:#fff;margin-left:1px}
.pod-mini:hover .pod-mini-play{transform:translate(-50%,-50%) scale(1.12)}
.pod-mini-tx{display:block;min-width:0;padding-right:6px}
.pod-mini-meta{display:block;font-family:'Montserrat',system-ui,sans-serif;font-size:9.5px;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--rose-deep);opacity:.85}
.pod-mini-title{display:block;margin-top:5px;font-family:'Cormorant Garamond',serif;font-weight:600;
  font-size:18px;line-height:1.2;color:var(--ink)}
@media(min-width:820px){
  .pod-more{grid-template-columns:repeat(3,1fr)}
  .pod-mini{grid-template-columns:1fr;gap:0;padding:0;overflow:hidden;align-items:stretch}
  .pod-mini-thumb{border-radius:0}
  .pod-mini-tx{padding:15px 17px 18px}
  .pod-mini-title{font-size:19px}
}
