/*
Theme Name: Geared for Growth
Theme URI: 
Author: Mehedi Hasan Sajal
Author URI: https://gearedforgrowth.biz/
Description: Custom theme for Geared for Growth — Josephine Palermo's leadership coaching, podcast, and book site. Converted from the static design.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.4
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: geared-for-growth
*/
/* ============================================================
   Geared for Growth — Shared Stylesheet
   Reusable across all pages of the site.
   ============================================================ */

:root{
  --pink:#5f1242;
  --pink-soft:#8a3a78;
  --pink-light:#ebd2ef;
  --wine:#3e0a2c;
  --navy:#0b0f3d;
  --indigo:#1d1d58;
  --cream:#f7f4f9;
  --sand:#ece4f0;
  --ink:#0b0f3d;
  --ink-soft:#2a2750;
  --muted:#7a6478;
  --line:rgba(95,18,66,.14);
  --shadow-sm:0 4px 14px rgba(11,15,61,.08);
  --shadow-md:0 18px 40px -12px rgba(11,15,61,.22);
  --shadow-lg:0 30px 80px -20px rgba(11,15,61,.32);
  --radius:18px;
  --radius-lg:28px;
  /* aliases keep legacy class names working */
  --plum:#5f1242;
  --plum-deep:#3e0a2c;
  --plum-soft:#8a3a78;
  --teal:#1d1d58;
  --teal-deep:#0b0f3d;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Inter',system-ui,sans-serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4{font-family:'Fraunces',Georgia,serif;font-weight:600;line-height:1.18;letter-spacing:-.02em;color:var(--plum-deep)}
h1{font-size:clamp(2.5rem,5.5vw,4.6rem);line-height:1.15}
h2{font-size:clamp(2rem,3.8vw,3.2rem)}
h3{font-size:1.25rem}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.container{max-width:1240px;margin:0 auto;padding:0 28px}
.eyebrow{
  font-family:'Inter',sans-serif;
  font-size:.78rem;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--teal-deep);
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.eyebrow::before{
  content:"";width:28px;height:1px;background:var(--teal);
}

/* ---------------- NAV ---------------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background .35s ease,backdrop-filter .35s ease,border-color .35s ease,padding .25s ease,box-shadow .35s ease;
}
.nav.scrolled{
  background:rgba(95,18,66,.92);
  backdrop-filter:saturate(180%) blur(14px);
  border-bottom-color:rgba(255,255,255,.12);
  box-shadow:0 10px 30px -15px rgba(62,10,44,.5);
}
.nav.scrolled .nav-inner{padding:10px 0}
.nav-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 0;gap:30px;
}
.brand{display:flex;align-items:center;flex-shrink:0;margin-left:10px}
.brand img{height:54px;width:auto;display:block;transition:filter .35s ease}
.nav .brand img{filter:invert(14%) sepia(34%) saturate(2400%) hue-rotate(290deg) brightness(50%) contrast(95%)}
.nav.scrolled .brand img{filter:none}
.nav-links{display:flex;align-items:center;gap:26px;font-size:.88rem;font-weight:500;color:var(--ink-soft);flex-wrap:wrap;justify-content:center;flex:1;transition:color .35s ease}
.nav-links a{position:relative;transition:color .2s;white-space:nowrap}
.nav-links a:hover{color:var(--plum)}
.nav.scrolled .nav-links{color:rgba(255,255,255,.82)}
.nav.scrolled .nav-links a:hover{color:#ebd2ef}
.cart{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 18px;border-radius:999px;
  background:#fff;border:1px solid var(--line);
  font-size:.85rem;font-weight:600;color:var(--plum-deep);flex-shrink:0;
  transition:background .35s ease,border-color .35s ease,color .35s ease;
}
.nav.scrolled .cart{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18);color:#fff}
.cart .ic{font-size:1rem}

/* ---------------- BUTTONS ---------------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:13px 24px;border-radius:999px;
  font-weight:600;font-size:.92rem;
  transition:transform .2s ease,box-shadow .2s ease,background .2s;
  cursor:pointer;border:none;
}
.btn-primary{background:var(--plum);color:#fff;box-shadow:0 8px 22px -8px rgba(95,18,66,.45)}
.btn-primary:hover{background:var(--plum-deep);transform:translateY(-1px);box-shadow:0 12px 26px -8px rgba(62,10,44,.55)}
.btn-ghost{background:transparent;color:var(--plum-deep);border:1.5px solid var(--plum)}
.btn-ghost:hover{background:var(--plum);color:#fff}
.btn-light{background:#fff;color:var(--plum-deep)}
.btn-light:hover{background:var(--cream)}
.btn .arrow{transition:transform .25s}
.btn:hover .arrow{transform:translateX(4px)}

/* ---------------- HERO ---------------- */
.hero{
  position:relative;
  padding:160px 0 100px;
  overflow:hidden;
}
.hero-bg{
  position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(800px 500px at 85% 20%,rgba(29,29,88,.18),transparent 60%),
    radial-gradient(700px 500px at 10% 80%,rgba(95,18,66,.08),transparent 60%);
}
.hero-grid{
  display:grid;grid-template-columns:1.05fr 1fr;gap:60px;align-items:center;
}
.hero h1{margin:18px 0 22px}
.hero h1 .accent{
  background:linear-gradient(120deg,var(--pink) 0%,var(--indigo) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-style:italic;font-weight:500;
  display:inline-block;padding-bottom:.12em;line-height:1.25;
}
.hero p.lead{
  font-size:1.12rem;color:var(--ink-soft);max-width:520px;margin-bottom:34px;
}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center}

.hero-visual{
  position:relative;aspect-ratio:1/1.05;max-width:600px;margin-left:auto;width:100%;
}
.hero-rings{
  position:absolute;inset:0;width:100%;height:100%;
  background:url('https://gearedforgrowth.biz/wp-content/uploads/2024/12/background.png') center/contain no-repeat;
  animation:spin 80s linear infinite;
  filter:hue-rotate(95deg) saturate(1.1) brightness(1);
}
@keyframes spin{to{transform:rotate(360deg)}}
.hero-photo{
  position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  height:96%;width:auto;z-index:2;
}
.hero-photo img{height:100%;width:auto;object-fit:contain;filter:drop-shadow(0 30px 50px rgba(60,15,45,.18))}
.pill{
  position:absolute;display:flex;align-items:center;gap:10px;
  background:#fff;padding:12px 18px;border-radius:999px;
  box-shadow:var(--shadow-md);font-size:.88rem;font-weight:600;color:var(--plum-deep);
  z-index:3;
}
.pill .dot{width:8px;height:8px;border-radius:50%;background:var(--teal)}
.pill.p1{top:10%;left:-2%;animation:float 6s ease-in-out infinite}
.pill.p2{top:40%;right:-4%;animation:float 7s ease-in-out infinite .8s}
.pill.p3{bottom:30%;left:-6%;animation:float 6.5s ease-in-out infinite 1.5s}
.pill.p4{bottom:14%;right:2%;animation:float 7.5s ease-in-out infinite .3s}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

/* ---------------- ABOUT ---------------- */
.about{
  background:var(--plum);color:#fff;padding:110px 0;position:relative;overflow:hidden;
}
.about::before{
  content:"";position:absolute;right:-200px;top:-200px;width:600px;height:600px;
  border-radius:50%;background:radial-gradient(circle,rgba(95,18,66,.22),transparent 70%);
}
.about::after{
  content:"GFG";position:absolute;right:-40px;bottom:-80px;
  font-family:'Fraunces',serif;font-size:24rem;font-weight:700;
  color:rgba(255,255,255,.04);line-height:1;pointer-events:none;
}
.about-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:start;position:relative;z-index:1}
.about h2{color:#fff}
.about .eyebrow{color:#ebd2ef}
.about .eyebrow::before{background:#ebd2ef}
.about p{color:rgba(255,255,255,.85);margin-bottom:18px}
.about .question-list{margin:28px 0 36px;display:grid;gap:14px}
.about .q{
  display:flex;gap:14px;padding:18px 22px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);
  border-radius:14px;transition:background .2s,transform .2s;
}
.about .q:hover{background:rgba(255,255,255,.1);transform:translateX(4px)}
.about .q-num{font-family:'Fraunces',serif;color:#ebd2ef;font-weight:600;flex-shrink:0}

/* ---------------- SERVICES ---------------- */
.services{padding:120px 0;background:var(--cream)}
.section-head{text-align:center;max-width:680px;margin:0 auto 64px}
.section-head h2{margin:16px 0 0}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.service-card{
  background:#fff;border-radius:var(--radius-lg);padding:36px 32px 40px;
  box-shadow:var(--shadow-sm);transition:transform .35s,box-shadow .35s;
  border:1px solid transparent;position:relative;overflow:hidden;
}
.service-card::before{
  content:"";position:absolute;left:0;top:0;width:100%;height:5px;
  background:linear-gradient(90deg,var(--plum),var(--teal));
  transform:scaleX(0);transform-origin:left;transition:transform .4s;
}
.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);border-color:var(--line)}
.service-card:hover::before{transform:scaleX(1)}
.service-num{
  font-family:'Fraunces',serif;font-size:3.5rem;font-weight:600;
  color:var(--sand);line-height:1;margin-bottom:18px;
}
.service-icon{
  width:62px;height:62px;border-radius:14px;
  background:linear-gradient(135deg,rgba(29,29,88,.18),rgba(90,23,70,.1));
  display:grid;place-items:center;color:var(--teal-deep);font-size:1.6rem;
  margin-bottom:20px;
}
.service-card h3{margin-bottom:14px;color:var(--teal-deep);font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;font-family:'Inter',sans-serif;font-weight:700}
.service-card p{color:var(--ink-soft);font-size:1rem;line-height:1.6}

/* ---------------- JOIN BANNER ---------------- */
.join{
  position:relative;padding:0;overflow:hidden;
  background:#3e0a2c;
}
.join-grid{display:grid;grid-template-columns:1.2fr 1fr;min-height:520px;position:relative;z-index:1}
.join-img{
  background:
    linear-gradient(120deg,rgba(62,10,44,.55) 0%,rgba(62,10,44,.45) 60%,rgba(62,10,44,.75) 100%),
    url('https://images.unsplash.com/photo-1522202176988-66273c2fd55f?w=1200&q=80') center/cover;
  position:relative;filter:saturate(.7);
}
.join-img::after{
  content:"";position:absolute;top:0;right:0;bottom:0;width:140px;
  background:linear-gradient(90deg,transparent,#3e0a2c);
}
.join-text{padding:80px 60px;display:flex;flex-direction:column;justify-content:center;color:#fff;position:relative}
.join-text .eyebrow{color:#ebd2ef}
.join-text .eyebrow::before{background:#ebd2ef}
.join-text h2{color:#fff;margin:18px 0 22px}
.join-text p{color:rgba(255,255,255,.85);font-size:1.05rem;margin-bottom:28px;max-width:460px}

/* ---------------- BLOG ---------------- */
.blog{padding:120px 0;background:var(--cream);overflow:hidden}
.blog-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;margin-bottom:48px}
.blog-head .eyebrow{margin-bottom:14px}
.blog-head h2{margin:0}
.blog-head-nav{display:flex;gap:10px}
.nav-arrow{
  width:48px;height:48px;border-radius:50%;
  border:1.5px solid var(--line);background:#fff;color:var(--plum);
  cursor:pointer;display:grid;place-items:center;font-size:1.1rem;
  transition:all .25s;
}
.nav-arrow:hover{background:var(--plum);color:#fff;border-color:var(--plum);transform:translateY(-2px)}
.nav-arrow:disabled{opacity:.35;cursor:not-allowed;transform:none;background:#fff;color:var(--plum)}
.blog-carousel{position:relative}
.blog-track{
  display:flex;gap:28px;
  overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  scrollbar-width:none;-ms-overflow-style:none;
  padding-bottom:8px;
  cursor:grab;user-select:none;-webkit-user-select:none;
}
.blog-track::-webkit-scrollbar{display:none}
.blog-track.dragging{cursor:grabbing;scroll-behavior:auto;scroll-snap-type:none}
.blog-track.dragging a,.blog-track.dragging img{pointer-events:none}
.blog-track .blog-card{user-select:none}
.blog-card{
  background:#fff;border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:var(--shadow-sm);transition:transform .35s,box-shadow .35s;
  display:flex;flex-direction:column;
  flex:0 0 calc((100% - 56px) / 3);scroll-snap-align:start;
}
.blog-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)}
.blog-dots{display:flex;justify-content:center;gap:10px;margin-top:36px}
.blog-dot{
  width:8px;height:8px;border-radius:999px;background:rgba(95,18,66,.25);
  cursor:pointer;border:none;padding:0;transition:width .3s,background .3s;
}
.blog-dot.active{width:28px;background:var(--plum)}
@media (max-width:900px){
  .blog-card{flex:0 0 calc((100% - 28px) / 2)}
}
@media (max-width:640px){
  .blog-card{flex:0 0 100%}
}
.blog-img{display:block;aspect-ratio:16/10;position:relative;overflow:hidden;background:var(--sand)}
.blog-tag{
  position:absolute;top:16px;left:16px;background:rgba(255,255,255,.95);
  padding:6px 14px;border-radius:999px;font-size:.72rem;font-weight:600;
  color:var(--plum);letter-spacing:.08em;text-transform:uppercase;
}
.blog-body{padding:26px 28px 30px;display:flex;flex-direction:column;flex:1}
.blog-body h3{font-size:1.2rem;margin-bottom:12px;color:var(--plum-deep);font-family:'Fraunces',serif}
.blog-body h3 a{color:inherit;text-decoration:none}
.blog-body h3 a:hover{color:var(--plum)}
.blog-body p{color:var(--ink-soft);font-size:.94rem;margin-bottom:18px;flex:1}
.read-link{color:var(--plum);font-weight:600;display:inline-flex;gap:6px;align-items:center;transition:gap .2s;font-size:.9rem;padding-top:14px;border-top:1px solid var(--line)}
.read-link:hover{gap:10px}

/* ---------------- EVENTS ---------------- */
.events{padding:120px 0;background:var(--sand)}
.events-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:60px;align-items:center}
.events-image{
  aspect-ratio:4/5;border-radius:var(--radius-lg);overflow:hidden;
  background:linear-gradient(180deg,transparent 40%,rgba(62,10,44,.45) 100%),
    url('https://gearedforgrowth.biz/wp-content/uploads/2024/02/Jo-Palermo-personal-branding-by-Ksenia-Belova-72-scaled.jpg') center/cover;
  position:relative;box-shadow:var(--shadow-md);
}
.events-image .badge{
  position:absolute;bottom:24px;left:24px;right:24px;
  background:rgba(255,255,255,.95);padding:20px 24px;border-radius:14px;
  backdrop-filter:blur(10px);
}
.events-image .badge small{color:var(--teal-deep);font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:.72rem}
.events-image .badge h4{font-family:'Fraunces',serif;color:var(--plum-deep);font-size:1.1rem;margin-top:4px}
.events-image .badge-cta{
  display:inline-block;margin-top:14px;
  padding:9px 22px;border-radius:8px;
  background:var(--plum);color:#fff;
  font-family:'Inter',sans-serif;font-size:.86rem;font-weight:500;
  text-decoration:underline;text-underline-offset:3px;
  text-decoration-color:rgba(255,255,255,.55);
  transition:background .25s ease,transform .2s ease;
}
.events-image .badge-cta:hover{
  background:var(--wine);transform:translateY(-1px);
  text-decoration-color:rgba(255,255,255,.85);
}
.events-content h2{margin:16px 0 22px}
.events-content > p{color:var(--ink-soft);font-size:1.05rem;margin-bottom:32px}
.events-content > p strong{color:var(--plum-deep)}
.resource-title{font-family:'Fraunces',serif;font-size:clamp(1.8rem,2.6vw,2.4rem);font-weight:600;color:var(--plum-deep);margin:0 0 26px;padding-bottom:18px;border-bottom:2px solid var(--plum-deep)}
.resource-list{display:grid;gap:2px;border-top:1px solid var(--line)}
.resource-list a{
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:18px 4px;border-bottom:1px solid var(--line);
  transition:padding .25s,color .25s;color:var(--ink);font-weight:500;
}
.resource-list a:hover{padding-left:14px;color:var(--plum)}
.resource-list a .res-arrow{color:var(--teal);font-weight:700;flex-shrink:0}
.resource-list a .res-label{display:flex;align-items:center;gap:14px}
.resource-list a .res-label .icon{color:var(--teal);font-weight:700}

/* ---------------- IMPACT ---------------- */
.impact{padding:90px 0;background:var(--cream);text-align:center}
.impact h3{font-family:'Fraunces',serif;font-size:clamp(1.5rem,2.5vw,2rem);color:var(--plum-deep);max-width:760px;margin:0 auto;font-weight:500;font-style:italic;line-height:1.4}
.impact .eyebrow{margin-bottom:18px}

/* ---- Be | Do | Shift | Transform + Our impact ---- */
.resources{padding:60px 0 100px;background:var(--cream)}
.resources-grid{
  display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center;
}
.resources-content .resource-list{margin-top:14px}
.resources-image{
  position:relative;border-radius:var(--radius-lg);overflow:hidden;
  aspect-ratio:4/4.5;box-shadow:var(--shadow-md);
}
.resources-image img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.resources-image .impact-card{
  position:absolute;bottom:24px;left:24px;right:24px;
  background:#fff;padding:24px 28px;border-radius:14px;
  box-shadow:0 18px 36px -14px rgba(62,10,44,.3);
}
.resources-image .impact-card h3{
  font-family:'Fraunces',serif;font-size:1.45rem;font-weight:500;
  color:var(--plum-deep);margin-bottom:0;line-height:1.2;
}
.impact-card-divider{
  width:80px;height:1.5px;background:var(--plum-deep);margin:12px 0 14px;
}
.resources-image .impact-card p{
  font-size:.95rem;color:var(--ink-soft);line-height:1.55;margin:0;
}
@media (max-width:960px){
  .resources-grid{grid-template-columns:1fr;gap:50px}
  .resources-image{max-width:520px;margin:0 auto;aspect-ratio:4/3.5}
  .resources-image .impact-card{left:auto;right:24px;bottom:24px;max-width:60%}
}
@media (max-width:560px){
  .resources{padding:40px 0 70px}
  .resources-image{aspect-ratio:4/4}
  .resources-image .impact-card{left:16px;right:16px;max-width:none;padding:18px 20px}
  .resources-image .impact-card h3{font-size:1.2rem}
}

/* ---------------- LOGOS ---------------- */
.logos{
  padding:110px 0 120px;background:var(--cream);
  border-top:1px solid var(--line);position:relative;overflow:hidden;
}
.logos::before,.logos::after{
  content:"";position:absolute;width:520px;height:520px;border-radius:50%;
  filter:blur(90px);opacity:.45;pointer-events:none;z-index:0;
}
.logos::before{background:radial-gradient(circle,rgba(235,210,239,.55),transparent 65%);top:-180px;left:-160px}
.logos::after{background:radial-gradient(circle,rgba(138,58,120,.35),transparent 65%);bottom:-220px;right:-180px}
.logos > .container{position:relative;z-index:1}
.logos-head{text-align:center;max-width:640px;margin:0 auto 60px}
.logos-head .eyebrow{margin-bottom:14px;display:inline-block}
.logos-head h2{
  font-family:'Fraunces',serif;font-size:clamp(1.8rem,3.4vw,2.6rem);
  font-weight:500;letter-spacing:-.02em;line-height:1.15;
  color:var(--ink);margin-bottom:14px;
}
.logos-head p{
  font-size:1rem;color:var(--muted);max-width:520px;margin:0 auto;line-height:1.6;
}
.logo-row{
  display:flex;flex-wrap:wrap;justify-content:center;
  gap:18px;max-width:1080px;margin:0 auto;
}
.logo-row .logo{
  flex:0 0 calc((100% - 18px * 4) / 5);
  display:flex;align-items:center;justify-content:center;
  height:90px;padding:18px 22px;
  background:rgba(255,255,255,.6);
  border:1px solid rgba(95,18,66,.1);
  border-radius:18px;
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  opacity:.75;filter:grayscale(.85);
  transition:opacity .3s ease,filter .3s ease,transform .3s ease,box-shadow .3s ease,border-color .3s ease,background .3s ease;
}
.logo-row .logo:hover{
  opacity:1;filter:grayscale(0);transform:translateY(-4px);
  background:#fff;border-color:rgba(95,18,66,.25);
  box-shadow:0 18px 40px -18px rgba(62,10,44,.25);
}
.logo-row .logo img{max-width:100%;max-height:100%;object-fit:contain;display:block}
@media (max-width:960px){
  .logo-row{gap:14px}
  .logo-row .logo{flex:0 0 calc((100% - 14px * 2) / 3)}
}
@media (max-width:560px){
  .logos{padding:80px 0 90px}
  .logo-row{gap:12px}
  .logo-row .logo{flex:0 0 calc((100% - 12px) / 2);height:78px;padding:14px 16px}
}

/* ---------------- TAGLINE BANNER ---------------- */
.tagline-banner{
  background:transparent;
  padding:140px 0 150px;text-align:center;color:var(--ink);position:relative;overflow:hidden;
}
.tagline-banner::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(62,10,44,.06) 1.5px,transparent 1.5px);
  background-size:24px 24px;opacity:.6;
  mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);
  -webkit-mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);
}
.tagline-inner{position:relative;z-index:1;max-width:900px;margin:0 auto}
.tag-ornament{
  display:inline-flex;align-items:center;gap:14px;
  font-size:.78rem;font-weight:600;letter-spacing:.3em;text-transform:uppercase;
  color:var(--pink);margin-bottom:34px;
}
.tag-ornament::before,.tag-ornament::after{
  content:"";width:50px;height:1px;background:linear-gradient(90deg,transparent,rgba(95,18,66,.5),transparent);
}
.tag-words{
  display:flex;justify-content:center;align-items:center;gap:22px;flex-wrap:wrap;
  font-family:'Fraunces',serif;font-size:clamp(1.4rem,2.6vw,2.2rem);
  color:var(--ink);font-weight:400;letter-spacing:.04em;
  margin-bottom:22px;
}
.tag-words .word{position:relative;padding:0 2px}
.tag-words .word::first-letter{font-style:italic;color:var(--pink)}
.tag-words .sep{
  width:6px;height:6px;border-radius:50%;background:var(--pink);display:inline-block;
  box-shadow:0 0 14px rgba(95,18,66,.35);
}
.tag-hero{
  font-family:'Fraunces',serif;font-size:clamp(4rem,11vw,9rem);
  font-style:italic;font-weight:500;letter-spacing:-.03em;line-height:1;
  color:var(--wine);
  padding-bottom:.1em;display:inline-block;
}
.tag-flourish{
  display:flex;justify-content:center;align-items:center;gap:18px;margin-top:36px;
  color:var(--pink);
}
.tag-flourish .line{
  width:60px;height:1px;background:linear-gradient(90deg,transparent,rgba(95,18,66,.5),transparent);
}
.tag-flourish .star{font-size:1rem;letter-spacing:.3em}

/* ---------------- FOOTER ---------------- */
footer{
  background:
    radial-gradient(ellipse at 50% 100%,rgba(62,10,44,.45),transparent 60%),
    #5f1242;
  color:rgba(255,255,255,.78);padding:90px 0 30px;position:relative;
}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1.4fr;gap:60px;margin-bottom:60px}
.foot-brand .brand{color:#fff;margin-bottom:18px}
.foot-brand p{font-size:.94rem;max-width:300px;margin-bottom:24px}
.foot-col h5{
  font-family:'Inter',sans-serif;font-size:.78rem;font-weight:600;
  color:#fff;letter-spacing:.18em;text-transform:uppercase;margin-bottom:22px;
}
.foot-col ul{list-style:none;display:grid;gap:12px}
.foot-col a{font-size:.94rem;color:rgba(255,255,255,.7);transition:color .2s}
.foot-col a:hover{color:#fff}
.foot-sub p{font-size:.94rem;margin-bottom:18px}
.sub-form{
  display:flex;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);
  border-radius:999px;padding:5px 5px 5px 22px;
}
.sub-form input{
  flex:1;background:transparent;border:0;color:#fff;font-family:inherit;
  font-size:.92rem;outline:none;padding:8px 0;min-width:0;
}
.sub-form input::placeholder{color:rgba(255,255,255,.5)}
.sub-form input:-webkit-autofill,
.sub-form input:-webkit-autofill:hover,
.sub-form input:-webkit-autofill:focus,
.sub-form input:-webkit-autofill:active{
  -webkit-text-fill-color:#fff;caret-color:#fff;
  -webkit-box-shadow:0 0 0 1000px #5f1242 inset;
  box-shadow:0 0 0 1000px #5f1242 inset;
}
.sub-form button{
  background:#fff;color:var(--plum);border:0;padding:9px 20px;border-radius:999px;
  font-weight:600;font-size:.88rem;cursor:pointer;transition:background .2s,color .2s;
}
.sub-form button:hover{background:#3e0a2c;color:#fff}
/* Footer subscribe — its OWN CF7 form (wrapper class .sub-cf7), styled as the
   horizontal pill. Kept fully separate from the popup's .nl-cf7 so neither set of
   rules leaks into the other (stacked layout / white box / mangled arrow). */
.foot-sub .sub-cf7-wrap,
.foot-sub .wpcf7,
.foot-sub form.wpcf7-form{margin:0;background:none;border:0;padding:0}
.foot-sub .sub-cf7{
  display:flex;flex-direction:row;align-items:center;gap:0;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);
  border-radius:999px;padding:5px 5px 5px 22px;
}
.foot-sub .sub-cf7 .wpcf7-form-control-wrap{flex:1;min-width:0;display:block}
.foot-sub .sub-cf7 input[type="email"]{
  width:100%;background:transparent;border:0;border-radius:0;color:#fff;
  font-family:inherit;font-size:.92rem;outline:none;padding:8px 0;min-width:0;
}
.foot-sub .sub-cf7 input[type="email"]::placeholder{color:rgba(255,255,255,.5)}
/* Stay transparent on plain focus — no white box over the pill. */
.foot-sub .sub-cf7 input[type="email"]:focus{background:transparent}
/* On browser autofill, Chrome forces an opaque (white) background that the
   "transition 9999s" trick can't reliably suppress. Repaint it with an inset
   box-shadow tinted to the pill's colour (footer plum + ~8% white) so the field
   keeps looking like the pill, with readable white text. */
.foot-sub .sub-cf7 input[type="email"]:-webkit-autofill,
.foot-sub .sub-cf7 input[type="email"]:-webkit-autofill:hover,
.foot-sub .sub-cf7 input[type="email"]:-webkit-autofill:focus,
.foot-sub .sub-cf7 input[type="email"]:-webkit-autofill:active{
  -webkit-text-fill-color:#fff;caret-color:#fff;
  -webkit-box-shadow:0 0 0 1000px #5f1242 inset;
  box-shadow:0 0 0 1000px #5f1242 inset;
}
.foot-sub .sub-cf7 input.sub-cf7-btn,
.foot-sub .sub-cf7 input[type="submit"]{
  flex:none;width:auto;min-height:0;box-shadow:none;
  background:#fff;color:var(--plum);border:0;padding:9px 20px;border-radius:999px;
  font-weight:600;font-size:.88rem;cursor:pointer;transition:background .2s,color .2s;
}
.foot-sub .sub-cf7 input.sub-cf7-btn:hover,
.foot-sub .sub-cf7 input[type="submit"]:hover{background:#3e0a2c;color:#fff}
.foot-sub .wpcf7-response-output{
  margin:12px 2px 0!important;padding:8px 14px!important;
  border-radius:10px;font-size:.82rem;color:#fff;border-color:rgba(255,255,255,.3)!important;
}
.foot-sub .wpcf7-not-valid-tip{color:#ffd2d2;font-size:.78rem;margin-top:6px;padding-left:8px}
/* Hide CF7's spinner here — even when invisible it reserves ~24-72px of width as a
   flex item, which pushed the Subscribe button left off the pill's right edge.
   (The inline .sub-success message is the submit feedback instead.) */
.foot-sub .sub-cf7 .wpcf7-spinner{display:none}
/* Inline success shown after a successful footer subscribe (JS adds .show and
   hides the form), so the footer doesn't redirect away like the guide popup. */
.foot-sub .sub-success{display:none;align-items:center;gap:10px;font-size:.95rem;font-weight:500;color:#fff}
.foot-sub .sub-success.show{display:flex}
.foot-sub .sub-success .sub-check{
  width:26px;height:26px;flex:none;display:grid;place-items:center;
  border-radius:50%;background:rgba(255,255,255,.18);font-size:.8rem;
}
.socials{display:flex;gap:10px;margin-top:24px}
.socials a{
  width:38px;height:38px;display:grid;place-items:center;
  border:1px solid rgba(255,255,255,.2);border-radius:50%;font-size:.85rem;font-weight:600;
  transition:background .2s,border-color .2s;
}
.socials a:hover{background:#fff;border-color:#fff;color:var(--plum)}
.foot-base{
  padding-top:30px;border-top:1px solid rgba(255,255,255,.1);
  display:flex;justify-content:center;align-items:center;font-size:.85rem;
}

/* ============================================================
   PODCAST PAGE
   ============================================================ */

.nav-links a.active{color:var(--plum)}
.nav.scrolled .nav-links a.active{color:#ebd2ef}

/* ---------------- NAV DROPDOWN ---------------- */
.nav-dropdown{position:relative}
.nav-dropdown-toggle{
  background:none;border:0;cursor:pointer;
  font-family:inherit;font-size:.88rem;font-weight:500;color:inherit;
  display:inline-flex;align-items:center;gap:4px;
  padding:0;transition:color .2s;
}
.nav-dropdown-toggle:hover,
.nav-dropdown-toggle.active{color:var(--plum)}
.nav.scrolled .nav-dropdown-toggle{color:rgba(255,255,255,.82)}
.nav.scrolled .nav-dropdown-toggle:hover,
.nav.scrolled .nav-dropdown-toggle.active{color:#ebd2ef}
.caret{
  font-size:.7rem;line-height:1;margin-top:2px;
  transition:transform .25s ease;
}
.nav-dropdown.open .caret{transform:rotate(180deg)}

.nav-dropdown-menu{
  position:absolute;top:calc(100% + 14px);left:50%;
  transform:translateX(-50%) translateY(-6px);
  min-width:300px;
  background:#fff;border:1px solid var(--line);
  border-radius:16px;padding:10px;
  box-shadow:0 20px 50px -15px rgba(11,15,61,.25);
  opacity:0;visibility:hidden;
  transition:opacity .25s ease,transform .25s ease,visibility .25s;
  z-index:60;
}
.nav-dropdown-menu::before{
  content:"";position:absolute;top:-6px;left:50%;transform:translateX(-50%) rotate(45deg);
  width:12px;height:12px;background:#fff;
  border-left:1px solid var(--line);border-top:1px solid var(--line);
}
.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown.open .nav-dropdown-menu{
  opacity:1;visibility:visible;
  transform:translateX(-50%) translateY(0);
}
.nav-dropdown-menu a{
  display:flex;flex-direction:column;gap:2px;
  padding:11px 16px;border-radius:10px;
  color:var(--ink);transition:background .2s,color .2s;
}
.nav-dropdown-menu a:hover{background:rgba(95,18,66,.08)}
.dd-title{
  font-family:'Fraunces',serif;font-size:.96rem;font-weight:500;color:var(--plum-deep);
}
.dd-sub{font-size:.78rem;color:var(--muted)}

@media (max-width:1100px){
  .nav-dropdown-menu{min-width:280px}
}

/* ============================================================
   RISING TO FEMININE POWER — BOOK PAGE
   ============================================================ */
.book-page{background:#fff}

/* book page has dark hero — invert nav colors when not scrolled */
.book-page .nav:not(.scrolled) .nav-links{color:rgba(255,255,255,.92)}
.book-page .nav:not(.scrolled) .nav-links a:hover,
.book-page .nav:not(.scrolled) .nav-dropdown-toggle:hover,
.book-page .nav:not(.scrolled) .nav-dropdown-toggle.active{color:#ebd2ef}
.book-page .nav:not(.scrolled) .nav-dropdown-toggle{color:rgba(255,255,255,.92)}
.book-page .nav:not(.scrolled) .brand img{filter:brightness(0) invert(1);opacity:.95}
.book-page .nav:not(.scrolled) .cart{
  background:rgba(255,255,255,.1);
  border-color:rgba(255,255,255,.22);
  color:#fff;
}

/* hero */
.book-hero{
  position:relative;min-height:560px;display:flex;align-items:center;
  overflow:hidden;color:#fff;text-align:center;padding:140px 0 80px;
}
.book-hero-bg{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(circle at 50% 60%,rgba(255,200,120,.18),transparent 60%),
    radial-gradient(circle at 30% 80%,rgba(95,18,66,.35),transparent 50%),
    radial-gradient(circle at 70% 30%,rgba(80,20,60,.5),transparent 55%),
    linear-gradient(180deg,#281028 0%,#4a1550 45%,#732a78 100%);
}
.book-hero-bg::after{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(2px 2px at 10% 20%,rgba(255,200,150,.4),transparent 50%),
    radial-gradient(3px 3px at 80% 15%,rgba(255,180,120,.35),transparent 50%),
    radial-gradient(2px 2px at 20% 70%,rgba(255,200,150,.3),transparent 50%),
    radial-gradient(2.5px 2.5px at 70% 80%,rgba(255,170,130,.35),transparent 50%),
    radial-gradient(2px 2px at 50% 40%,rgba(255,220,180,.3),transparent 50%);
  opacity:.7;
}
.book-hero-overlay{
  position:absolute;inset:0;z-index:1;
  background:radial-gradient(ellipse at center,transparent 30%,rgba(42,8,32,.4) 100%);
}
.book-hero-inner{position:relative;z-index:2;max-width:840px;margin:0 auto}
.book-eyebrow{
  display:inline-block;
  font-size:.82rem;font-weight:600;letter-spacing:.32em;text-transform:uppercase;
  color:#fff;margin-bottom:24px;
}
.book-title{
  font-family:'Fraunces',serif;font-style:italic;font-weight:500;
  font-size:clamp(3rem,7vw,6rem);line-height:1.05;letter-spacing:-.02em;
  background:linear-gradient(180deg,#eac4a6 0%,#d08a60 60%,#b0673e 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  margin-bottom:24px;
  text-shadow:0 6px 30px rgba(0,0,0,.2);
  filter:drop-shadow(0 4px 20px rgba(255,160,80,.3));
}
.book-subtitle{
  font-size:.95rem;font-weight:600;letter-spacing:.3em;text-transform:uppercase;
  color:rgba(255,255,255,.95);margin-bottom:24px;
}
.bestseller-badge{
  display:inline-flex;align-items:center;gap:10px;
  padding:10px 22px;border-radius:999px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,200,140,.3);
  backdrop-filter:blur(8px);
  font-size:.92rem;font-weight:600;color:#eac4a6;letter-spacing:.04em;
}
.bs-star{color:#eac4a6;font-size:1.05rem}

/* section divider — elegant with decorative lines */
.section-divider{
  padding:90px 0 50px;text-align:center;background:var(--cream);
  position:relative;
}
.section-divider .container{display:flex;align-items:center;justify-content:center;gap:24px}
.section-divider .eyebrow.centered{
  letter-spacing:.36em;font-size:.85rem;color:var(--plum-deep);
  font-weight:600;
}
.section-divider .eyebrow.centered::before,
.section-divider .eyebrow.centered::after{
  content:"";display:inline-block;width:60px;height:1px;
  background:linear-gradient(90deg,transparent,var(--plum),transparent);
  vertical-align:middle;margin:0 18px;
}
.section-divider .eyebrow.centered::before{background:linear-gradient(90deg,transparent,var(--plum))}
.section-divider .eyebrow.centered::after{background:linear-gradient(90deg,var(--plum),transparent)}

/* author section — full bleed photo bg, card on right (NO filter) */
.book-author-section{
  position:relative;overflow:hidden;background:var(--cream);
  padding:80px 0;min-height:640px;
  display:flex;align-items:center;
}
.book-author-section::before{
  content:"";position:absolute;inset:0;z-index:0;
  background:url('img/book-author-bg.jpg') center/cover no-repeat;
}
.book-author-section::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(100deg,transparent 0%,transparent 40%,rgba(250,244,246,.55) 75%,rgba(250,244,246,.85) 100%);
}
.book-author-section > .container{
  position:relative;z-index:2;
  display:flex;justify-content:flex-end;width:100%;
}
.author-bio-card{
  position:relative;
  background:#fff;
  padding:48px 50px;border-radius:22px;
  box-shadow:0 40px 90px -30px rgba(62,10,44,.35),0 0 0 1px rgba(95,18,66,.08);
  max-width:540px;width:100%;
}
.author-bio-card::before{
  content:"";position:absolute;top:-1px;left:50%;transform:translateX(-50%);
  width:80px;height:3px;border-radius:0 0 3px 3px;
  background:linear-gradient(90deg,var(--pink),var(--wine));
}
.author-bio-card .eyebrow{
  font-size:.78rem;letter-spacing:.32em;color:var(--plum);margin-bottom:16px;
  display:flex;justify-content:center;font-weight:600;
}
.author-bio-card .eyebrow::before{display:none}
.author-bio-card h2{
  font-family:'Fraunces',serif;font-size:2rem;font-weight:500;
  color:var(--plum-deep);text-align:center;margin-bottom:20px;line-height:1.1;
  letter-spacing:-.01em;
}
.bio-divider{
  width:50px;height:1px;background:var(--plum);
  margin:0 auto 26px;
}
.author-bio-card p{
  font-size:.96rem;line-height:1.7;color:var(--ink-soft);margin-bottom:16px;
}
.author-bio-card p strong{color:var(--plum-deep);font-weight:600}
.author-bio-card p em{color:var(--plum);font-style:italic;font-weight:500}

/* book details — soft cream panel with refined two-column */
.book-details{
  padding:110px 0;
  background:
    radial-gradient(ellipse 60% 50% at 15% 30%,rgba(235,210,239,.2),transparent 60%),
    radial-gradient(ellipse 60% 50% at 90% 80%,rgba(138,58,120,.12),transparent 60%),
    var(--cream);
  position:relative;
}
.book-details::before{
  content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:120px;height:1px;
  background:linear-gradient(90deg,transparent,var(--line),transparent);
}
.book-details-grid{
  display:grid;grid-template-columns:.9fr 1fr;gap:90px;align-items:center;
  max-width:1100px;margin:0 auto;
}
.book-cover-wrap{display:flex;flex-direction:column;align-items:center;gap:30px}
.book-cover-img{
  position:relative;max-width:420px;width:100%;
  filter:drop-shadow(0 30px 50px rgba(62,10,44,.35));
  transition:transform .35s ease;
}
.book-cover-img img{width:100%;height:auto;display:block}
.book-cover-img:hover{transform:translateY(-4px) scale(1.02)}
.book-cta-stack{display:flex;flex-direction:column;gap:14px;align-items:center}
.book-cta-primary{
  background:linear-gradient(180deg,#d08a66,#bc7048);color:#fff;
  padding:14px 32px;border-radius:999px;font-size:.88rem;font-weight:600;
  box-shadow:0 12px 26px -10px rgba(198,104,48,.45);
}
.book-cta-primary:hover{background:linear-gradient(180deg,#bc7048,#8a4e30);transform:translateY(-2px)}
.amazon-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:11px 24px;border-radius:8px;
  background:#232f3e;color:#fff;
  font-family:'Inter',sans-serif;font-weight:600;
  transition:background .2s,transform .2s;
}
.amazon-btn:hover{background:#131a24;transform:translateY(-2px)}
.amazon-label{font-size:.7rem;color:rgba(255,255,255,.8)}
.amazon-logo{font-size:1.05rem;font-weight:700;letter-spacing:-.02em}
.amazon-arrow{color:#ff9900;font-size:.95rem}

.book-description{position:relative}
.book-description::before{
  content:"";position:absolute;top:8px;left:-24px;
  width:3px;height:60px;border-radius:3px;
  background:linear-gradient(180deg,var(--pink),var(--wine));
  opacity:.6;
}
.book-description p{
  font-size:1.02rem;line-height:1.78;color:var(--ink-soft);margin-bottom:18px;
}
.book-description p:first-child{
  font-family:'Fraunces',serif;font-size:1.18rem;line-height:1.55;
  color:var(--plum-deep);font-style:italic;font-weight:400;
  margin-bottom:24px;
}
.book-description p em{color:var(--plum);font-style:italic;font-weight:500}
.book-description p:first-child em{
  background:linear-gradient(120deg,var(--pink),var(--wine));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-weight:500;
}

/* retreat */
.retreat-section{padding:90px 0 110px;background:#fff;border-top:1px solid var(--line)}
.retreat-head{text-align:center;margin-bottom:50px}
.retreat-head h2{
  font-family:'Fraunces',serif;font-size:clamp(1.8rem,3vw,2.4rem);
  font-weight:500;color:var(--plum-deep);margin-bottom:8px;line-height:1.2;
}
.retreat-date{
  font-family:'Fraunces',serif;font-size:1.2rem;font-style:italic;
  color:var(--plum);
}
.retreat-gallery{
  display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:50px;
  max-width:920px;margin-left:auto;margin-right:auto;
}
.retreat-img{
  aspect-ratio:4/5;border-radius:var(--radius);
  box-shadow:0 24px 50px -25px rgba(62,10,44,.35);
  position:relative;overflow:hidden;
}
.retreat-img img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .6s ease;
}
.retreat-img:hover img{transform:scale(1.04)}
.retreat-content{max-width:780px;margin:0 auto}
.retreat-intro{
  font-family:'Fraunces',serif;font-size:1.25rem;font-style:italic;
  color:var(--plum-deep);line-height:1.5;margin-bottom:22px;
}
.retreat-content p{
  font-size:1rem;line-height:1.75;color:var(--ink-soft);margin-bottom:16px;
}
.retreat-lists{display:flex;flex-direction:column;gap:30px;margin:32px 0;}
.retreat-list h3{
  font-family:'Fraunces',serif;font-size:1.15rem;font-weight:500;
  color:var(--plum-deep);margin-bottom:14px;
}
.retreat-list ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.retreat-list li{
  position:relative;padding-left:24px;
  font-size:.96rem;line-height:1.65;color:var(--ink-soft);
}
.retreat-list li::before{
  content:"";position:absolute;left:0;top:11px;
  width:6px;height:6px;border-radius:50%;background:var(--pink);
}
.retreat-cta{text-align:center;margin-top:40px}

/* book page responsive */
@media (max-width:960px){
  .book-hero{min-height:480px;padding:120px 0 60px}
  .book-author-section{padding:340px 0 50px;min-height:auto}
  .book-author-section::before{background-position:center top;background-size:contain;background-color:#3e0a2c}
  .book-author-section > .container{justify-content:center}
  .author-bio-card{max-width:none}
  .book-details-grid{grid-template-columns:1fr;gap:50px}
  .retreat-gallery{grid-template-columns:1fr}
}
@media (max-width:560px){
  .book-title{font-size:clamp(2.4rem,11vw,3.6rem)}
  .book-subtitle{font-size:.82rem;letter-spacing:.22em}
  .author-bio-card{padding:30px 24px}
  .book-cover-img{max-width:320px}
}

/* ---------------- POD HERO ---------------- */
.pod-hero{position:relative;padding:170px 0 110px;overflow:hidden}
.pod-hero-bg{
  position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(900px 600px at 12% 20%,rgba(235,210,239,.35),transparent 60%),
    radial-gradient(700px 500px at 90% 80%,rgba(29,29,88,.14),transparent 60%),
    var(--cream);
}
.pod-hero-grid{
  display:grid;grid-template-columns:1.05fr 1fr;gap:70px;align-items:center;
}
.pod-hero-text h1{margin:18px 0 22px}
.pod-hero-text h1 .accent{
  background:linear-gradient(120deg,var(--pink) 0%,var(--wine) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-style:italic;font-weight:500;
}
.pod-hero-text p.lead{
  font-size:1.12rem;color:var(--ink-soft);max-width:540px;margin-bottom:36px;line-height:1.65;
}
.listen-on{display:flex;flex-direction:column;gap:14px}
.listen-label{
  font-size:.78rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
}
.listen-platforms{display:flex;flex-wrap:wrap;gap:10px}
.platform{
  display:inline-flex;align-items:center;gap:9px;
  padding:11px 18px;border-radius:999px;
  background:#fff;border:1px solid var(--line);
  font-size:.88rem;font-weight:600;color:var(--plum-deep);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s;
}
.platform:hover{
  transform:translateY(-2px);
  border-color:rgba(95,18,66,.35);
  box-shadow:0 12px 28px -14px rgba(62,10,44,.3);
}
.platform .p-icon{
  width:24px;height:24px;border-radius:50%;display:grid;place-items:center;
  background:var(--plum);color:#fff;font-size:.78rem;
}

/* ---------------- HOST PHOTO HERO ---------------- */
.pod-hero-text h1 .h1-sub{
  display:block;font-family:'Fraunces',serif;font-size:.5em;font-style:italic;
  font-weight:400;color:var(--plum);margin-top:10px;letter-spacing:-.01em;
}
.pod-hero-text p.lead{font-size:1.05rem;margin-bottom:18px}
.pod-hero-text .lead-sub{
  font-size:.98rem;color:var(--ink-soft);max-width:540px;
  margin-bottom:32px;line-height:1.65;
}
.pod-hero-cover{position:relative;aspect-ratio:1/1.1;max-width:520px;margin-left:auto;width:100%}
.host-photo{
  position:relative;width:100%;height:100%;border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:0 40px 90px -30px rgba(62,10,44,.45);
}
.host-photo-bg{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(circle at 30% 30%,#8a3a78 0%,transparent 55%),
    linear-gradient(145deg,#3e0a2c 0%,#511239 50%,#5f1242 100%);
}
.host-photo img{
  position:relative;z-index:1;width:100%;height:100%;object-fit:cover;
  object-position:center;
  mix-blend-mode:luminosity;
  filter:contrast(1.05) brightness(.95);
}
.host-photo::after{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:
    linear-gradient(180deg,transparent 55%,rgba(62,10,44,.5) 100%),
    radial-gradient(circle at 70% 30%,rgba(235,210,239,.18),transparent 55%);
}
.photo-glow{
  position:absolute;inset:-30px;z-index:-1;border-radius:50%;
  background:radial-gradient(circle,rgba(235,210,239,.35),transparent 60%);
  filter:blur(60px);
}
.stat-chip{
  position:absolute;display:flex;flex-direction:column;
  padding:14px 20px;border-radius:18px;background:#fff;
  box-shadow:var(--shadow-md);z-index:3;
}
.stat-chip strong{font-family:'Fraunces',serif;font-size:1.35rem;color:var(--plum-deep);line-height:1}
.stat-chip span{font-size:.72rem;color:var(--muted);letter-spacing:.04em;margin-top:4px;max-width:140px}
.stat-chip.s1{top:8%;left:-8%;animation:float 6s ease-in-out infinite}
.stat-chip.s2{top:46%;right:-10%;animation:float 7s ease-in-out infinite .8s}
.stat-chip.s3{bottom:6%;left:-4%;animation:float 6.5s ease-in-out infinite 1.5s}

/* ---------------- LATEST EPISODE ---------------- */
.latest-ep{padding:80px 0;background:var(--cream)}
.section-head-row{
  display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:40px;flex-wrap:wrap;
}
.section-head-row h2{margin-top:14px}
.featured-ep{
  display:grid;grid-template-columns:.85fr 1fr;gap:0;
  background:#fff;border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:0 30px 70px -30px rgba(62,10,44,.25);
  border:1px solid var(--line);
}
.featured-cover{
  position:relative;min-height:420px;display:flex;align-items:center;justify-content:center;
}
.featured-cover::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 30% 30%,rgba(235,210,239,.3),transparent 60%);
}
.ep-num{
  position:absolute;top:24px;left:24px;
  font-family:'Fraunces',serif;font-size:.95rem;font-weight:600;
  color:#fff;background:rgba(255,255,255,.15);
  padding:6px 14px;border-radius:999px;
  border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(8px);
}
.play-btn{
  position:relative;z-index:1;width:88px;height:88px;border-radius:50%;
  background:#fff;color:var(--plum-deep);border:0;cursor:pointer;
  font-size:1.6rem;display:grid;place-items:center;padding-left:6px;
  box-shadow:0 20px 50px -20px rgba(0,0,0,.5);
  transition:transform .25s ease,box-shadow .25s ease;
}
.play-btn:hover{transform:scale(1.08);box-shadow:0 25px 60px -20px rgba(0,0,0,.6)}
.featured-body{padding:50px 50px 50px 50px;display:flex;flex-direction:column;justify-content:center}
.ep-tag{
  display:inline-flex;width:fit-content;
  font-size:.74rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--plum);background:rgba(95,18,66,.1);padding:6px 12px;border-radius:999px;margin-bottom:18px;
}
.article-meta-row .ep-tag{margin-bottom:0}
.featured-body h3{
  font-family:'Fraunces',serif;font-size:clamp(1.5rem,2.4vw,2rem);
  font-weight:500;line-height:1.2;color:var(--plum-deep);margin-bottom:18px;
}
.featured-body p{color:var(--ink-soft);font-size:1.02rem;margin-bottom:24px;line-height:1.65}
.ep-meta{display:flex;flex-wrap:wrap;gap:18px;margin-bottom:28px}
.meta-item{font-size:.86rem;color:var(--muted);display:inline-flex;align-items:center;gap:6px}
.meta-ic{color:var(--plum);font-size:.95rem}
.featured-cta{display:flex;gap:12px;flex-wrap:wrap}

/* ---------------- ALL EPISODES ---------------- */
.all-episodes{padding:110px 0;background:var(--cream)}
.ep-head{
  display:flex;justify-content:space-between;align-items:flex-end;gap:30px;
  margin-bottom:40px;flex-wrap:wrap;
}
.ep-head h2{margin-top:14px}
.ep-filters{display:flex;flex-wrap:wrap;gap:8px}

/* ---------- blog category filter (collapsible pill grid) ---------- */
.ep-filters-box{
  position:relative;flex:1 1 100%;min-width:0;width:100%;
  margin-top:4px;
}
.ep-filters-box .ep-filters{
  display:flex;flex-wrap:wrap;gap:8px;
  max-height:96px;overflow:hidden;
  transition:max-height .35s ease;
}
.ep-filters-box.is-expanded .ep-filters{max-height:1200px}
.ep-filters-box .ep-filters .filter{
  flex:0 0 auto;text-decoration:none;user-select:none;white-space:nowrap;
}
.ep-filters-fade{
  position:absolute;left:0;right:0;bottom:34px;height:42px;
  pointer-events:none;
  background:linear-gradient(to bottom, rgba(250,244,246,0), rgba(250,244,246,1));
  opacity:1;transition:opacity .25s;
}
.ep-filters-box.is-expanded .ep-filters-fade{opacity:0}
.ep-filters-toggle{
  display:inline-flex;align-items:center;gap:4px;
  margin-top:14px;padding:0 4px;
  background:transparent;border:0;
  font-family:inherit;font-size:.82rem;font-weight:600;color:var(--plum);
  cursor:pointer;letter-spacing:.02em;
}
.ep-filters-toggle:hover{color:var(--plum-deep)}
.ep-filters-toggle .ft-less{display:none}
.ep-filters-box.is-expanded .ep-filters-toggle .ft-more{display:none}
.ep-filters-box.is-expanded .ep-filters-toggle .ft-less{display:inline}

/* Make the filter row sit on its own line below the title for breathing room */
.ep-head{align-items:flex-start;flex-wrap:wrap}
.ep-head > div:first-child{flex:1 1 100%;min-width:200px}

/* AJAX loading state for the blog post grid */
.ajax-grid{transition:opacity .2s,filter .2s;min-height:200px}
.ajax-grid.is-loading{opacity:.55;pointer-events:none;filter:blur(.5px)}

@media (max-width:760px){
  .ep-filters-box .ep-filters{max-height:132px}
}
.filter{
  padding:9px 18px;border-radius:999px;
  background:transparent;border:1px solid var(--line);
  font-family:inherit;font-size:.85rem;font-weight:500;color:var(--ink-soft);
  cursor:pointer;transition:all .2s;
}
.filter:hover{border-color:var(--plum);color:var(--plum)}
.filter.active{background:var(--plum);border-color:var(--plum);color:#fff}

.ep-list{display:grid;gap:16px}
.ep-card{
  display:grid;grid-template-columns:160px 1fr auto;gap:28px;align-items:center;
  padding:20px;background:#fff;border-radius:var(--radius);
  border:1px solid var(--line);
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.ep-card:hover{
  transform:translateY(-3px);
  box-shadow:0 20px 50px -20px rgba(62,10,44,.2);
  border-color:rgba(95,18,66,.25);
}
.ep-cover{
  position:relative;width:160px;height:160px;border-radius:14px;overflow:hidden;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.ep-cover::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 30% 30%,rgba(235,210,239,.18),transparent 60%);
}
.ep-cover-num{
  position:absolute;top:12px;left:12px;
  font-family:'Fraunces',serif;font-size:.82rem;font-weight:600;
  color:#fff;background:rgba(255,255,255,.15);
  padding:4px 10px;border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
}
.play-mini{
  position:relative;z-index:1;width:50px;height:50px;border-radius:50%;
  background:rgba(255,255,255,.95);color:var(--plum-deep);border:0;cursor:pointer;
  font-size:1rem;display:grid;place-items:center;padding-left:3px;
  transition:transform .2s ease,background .2s;
}
.ep-card:hover .play-mini{transform:scale(1.1);background:#fff}
.ep-content{min-width:0}
.ep-content .ep-tag{margin-bottom:10px}
.ep-content h3{
  font-family:'Fraunces',serif;font-size:1.18rem;font-weight:500;
  color:var(--plum-deep);margin-bottom:8px;line-height:1.3;
}
.ep-content p{
  font-size:.94rem;color:var(--ink-soft);margin-bottom:12px;line-height:1.55;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.ep-arrow{
  width:48px;height:48px;border-radius:50%;
  background:var(--cream);color:var(--plum-deep);
  display:grid;place-items:center;font-size:1.1rem;flex-shrink:0;
  transition:background .2s,color .2s,transform .2s;
}
.ep-card:hover .ep-arrow{background:var(--plum);color:#fff;transform:translateX(4px)}
.ep-load{text-align:center;margin-top:50px}

/* ---------------- ABOUT THE SHOW ---------------- */
.about-show{padding:110px 0;background:var(--sand)}
.about-show-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:70px;align-items:start}
.about-show h2{margin:18px 0 22px}
.about-show p{font-size:1.02rem;color:var(--ink-soft);margin-bottom:18px;line-height:1.7}
.show-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:36px}
.show-stat{
  padding:22px 20px;background:#fff;border-radius:var(--radius);
  border:1px solid var(--line);
}
.show-stat strong{
  display:block;font-family:'Fraunces',serif;font-size:1.8rem;color:var(--plum);
  font-weight:600;line-height:1;
}
.show-stat span{display:block;font-size:.8rem;color:var(--muted);margin-top:6px;letter-spacing:.04em}
.about-show-quote{
  position:relative;padding:50px 40px;background:#fff;border-radius:var(--radius-lg);
  border:1px solid var(--line);
  box-shadow:0 30px 60px -30px rgba(62,10,44,.18);
}
.quote-mark{
  font-family:'Fraunces',serif;font-size:6rem;color:var(--pink-light);
  position:absolute;top:-10px;left:24px;line-height:1;
}
.about-show-quote p{
  font-family:'Fraunces',serif;font-size:1.2rem;font-style:italic;
  color:var(--plum-deep);line-height:1.5;margin-bottom:24px;position:relative;
}
.quote-author strong{display:block;color:var(--plum-deep);font-family:'Inter',sans-serif;font-size:.95rem;margin-bottom:2px}
.quote-author span{display:block;font-size:.82rem;color:var(--muted)}

/* ---------------- POD SUBSCRIBE ---------------- */
.pod-subscribe{padding:60px 0 110px;background:var(--sand)}
.sub-card{
  display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center;
  padding:60px 60px;border-radius:var(--radius-lg);
  background:linear-gradient(135deg,#3e0a2c 0%,#511239 60%,#5f1242 100%);
  color:#fff;position:relative;overflow:hidden;
}
.sub-card::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(circle at 10% 20%,rgba(235,210,239,.18),transparent 50%),
    radial-gradient(circle at 90% 80%,rgba(29,29,88,.35),transparent 50%);
}
.sub-card > *{position:relative;z-index:1}
.sub-card .eyebrow{color:#ebd2ef}
.sub-card .eyebrow::before{background:#ebd2ef}
.sub-card h2{color:#fff;margin:14px 0 14px}
.sub-card p{color:rgba(255,255,255,.78);font-size:1rem;line-height:1.65;max-width:420px}
.sub-card-form{display:flex;gap:10px;flex-wrap:wrap}
.sub-card-form input{
  flex:1;min-width:220px;padding:14px 22px;border-radius:999px;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);
  color:#fff;font-family:inherit;font-size:.95rem;outline:none;
}
.sub-card-form input::placeholder{color:rgba(255,255,255,.55)}
.sub-card-form input:focus{background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.35)}
.sub-card-form .btn-primary{background:#fff;color:var(--plum-deep)}
.sub-card-form .btn-primary:hover{background:var(--cream);color:var(--plum-deep)}

/* ============================================================
   ARTICLE SINGLE PAGE
   ============================================================ */
.reading-progress{
  position:fixed;top:0;left:0;right:0;height:3px;z-index:60;
  background:transparent;pointer-events:none;
}
.rp-fill{
  height:100%;width:0;
  background:linear-gradient(90deg,var(--pink),var(--wine));
  transition:width .08s linear;
}

.article-hero{position:relative;padding:140px 0 0;overflow:hidden}
.article-hero-bg{
  position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(900px 600px at 85% 10%,rgba(235,210,239,.32),transparent 60%),
    radial-gradient(700px 500px at 10% 90%,rgba(29,29,88,.08),transparent 60%),
    var(--cream);
}
/* Hero text + cover share the same width so they line up visually */
.article-hero-inner{max-width:1140px;margin:0 0 40px;text-align:left}
.article-hero-inner h1,
.article-hero-inner .article-deck{max-width:none}

/* Article body — link visibility + injected brand icons */
.article-main a{
  color:var(--plum);
  text-decoration:underline;
  text-decoration-color:rgba(95,18,66,.45);
  text-decoration-thickness:1.5px;
  text-underline-offset:3px;
  transition:color .2s, text-decoration-color .2s;
  font-weight:500;
}
.article-main a:hover{color:var(--plum-deep);text-decoration-color:var(--plum-deep)}
.article-main h1 a,
.article-main h2 a,
.article-main h3 a,
.article-main h4 a,
.article-main h5 a,
.article-main h6 a{
  color:inherit;text-decoration:none;border-bottom:0;font-weight:inherit;
}
.article-main h2 a:hover,
.article-main h3 a:hover{color:var(--plum)}

/* External-icon links injected by gfg_inject_platform_icons() */
.article-main a.ext-icon{
  display:inline-flex;align-items:center;gap:8px;
  text-decoration:none;font-weight:600;
}
.article-main a.ext-icon:hover{text-decoration:none}
.article-main a.ext-icon .ext-icon-svg{
  display:inline-flex;align-items:center;justify-content:center;
  width:24px;height:24px;border-radius:50%;
  background:rgba(95,18,66,.08);color:var(--plum);
  transition:background .2s, color .2s;
  flex:0 0 auto;
}
.article-main a.ext-icon:hover .ext-icon-svg{background:var(--plum);color:#fff}
.article-main a.ext-spotify .ext-icon-svg{color:#1DB954}
.article-main a.ext-youtube .ext-icon-svg{color:#FF0033}
.article-main a.ext-apple .ext-icon-svg{color:#7c4dff}
.article-main a.ext-globe .ext-icon-svg{color:var(--plum)}
.article-main a.ext-icon:hover .ext-icon-svg{color:#fff}
/* When the icon link sits on its own line, give it some breathing room */
.article-main p > a.ext-icon{margin:2px 0}
.article-hero-inner h1{
  font-size:clamp(2rem,4vw,3.2rem);line-height:1.15;margin:18px 0 22px;
  color:var(--plum-deep);
}
.article-hero-inner h1 .h1-with{
  display:block;font-style:italic;font-size:.6em;font-weight:400;
  color:var(--plum);margin-top:8px;line-height:1.25;
}
.article-meta-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.article-deck{
  font-family:'Fraunces',serif;font-size:1.25rem;line-height:1.55;
  color:var(--ink-soft);font-weight:400;margin-bottom:38px;max-width:740px;
}

.article-author-bar{
  display:flex;align-items:center;gap:14px;
  padding:14px 20px 14px 14px;background:#fff;border:1px solid var(--line);
  border-radius:999px;width:fit-content;max-width:100%;flex-wrap:wrap;
}
.author-avatar.lg{width:52px;height:52px;font-size:1.05rem}
.author-avatar.xl{width:84px;height:84px;font-size:1.6rem;flex-shrink:0}
.article-share-row{
  display:flex;gap:6px;margin-left:auto;padding-left:14px;
  border-left:1px solid var(--line);
}
.article-share-row a{
  width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:var(--cream);color:var(--plum-deep);
  font-size:.8rem;font-weight:600;transition:all .2s;
}
.article-share-row a:hover{background:var(--plum);color:#fff;transform:translateY(-2px)}

.article-cover{
  position:relative;width:100%;max-width:1140px;margin:0;
  aspect-ratio:16/7;border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:0 40px 80px -30px rgba(62,10,44,.4);
}
.article-cover::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 28% 28%,rgba(235,210,239,.28),transparent 55%),
    radial-gradient(circle at 80% 80%,rgba(29,29,88,.3),transparent 55%);
}
.article-cover-stamp{
  position:absolute;bottom:24px;right:24px;
  display:flex;flex-direction:column;gap:2px;
  padding:14px 22px;background:rgba(255,255,255,.92);border-radius:14px;
  backdrop-filter:blur(8px);
}
.stamp-label{
  font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:var(--plum);
}
.stamp-title{
  font-family:'Fraunces',serif;font-size:1rem;font-weight:500;color:var(--plum-deep);
}

/* ---------- floating share rail ---------- */
.share-rail{
  position:fixed;left:24px;top:50%;transform:translateY(-50%);
  display:flex;flex-direction:column;align-items:center;gap:10px;
  z-index:40;opacity:0;pointer-events:none;
  transition:opacity .35s ease;
}
.share-rail.visible{opacity:1;pointer-events:auto}
.share-rail-label{
  writing-mode:vertical-rl;transform:rotate(180deg);
  font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);margin-bottom:8px;
}
.sr-btn{
  width:40px;height:40px;border-radius:50%;
  background:#fff;border:1px solid var(--line);color:var(--plum-deep);
  display:grid;place-items:center;cursor:pointer;
  transition:all .2s;
}
.sr-btn:hover{background:var(--plum);color:#fff;border-color:var(--plum);transform:translateY(-2px)}
.sr-toast{
  position:absolute;left:54px;top:50%;transform:translateY(-50%);
  white-space:nowrap;padding:8px 14px;border-radius:8px;
  background:var(--plum-deep);color:#fff;font-size:.8rem;font-weight:500;
  opacity:0;pointer-events:none;transition:opacity .25s ease;
}
.sr-toast.show{opacity:1}

/* ---------- body ---------- */
.article-body{padding:80px 0 100px;background:var(--cream)}
.article-body-grid{
  display:grid;grid-template-columns:240px 1fr;gap:80px;align-items:start;
  max-width:1100px;margin:0 auto;
}
/* Posts without H2 headings have no TOC — drop to a single column so the
   article body doesn't get squeezed into the leftover narrow column. */
.article-body-grid.no-toc{grid-template-columns:1fr}
.article-body-grid.no-toc .article-main{max-width:820px;margin:0 auto}

/* TOC */
.article-toc{position:sticky;top:100px}
.toc-inner{padding:0 4px}
.toc-list{list-style:none;padding:0;margin:18px 0 32px;display:flex;flex-direction:column;gap:4px}
.toc-link{
  display:block;padding:8px 12px;border-radius:8px;
  font-size:.86rem;line-height:1.4;color:var(--muted);font-weight:500;
  border-left:2px solid transparent;
  transition:all .2s;cursor:pointer;
}
.toc-link:hover{color:var(--plum-deep);background:rgba(95,18,66,.05)}
.toc-link.active{
  color:var(--plum-deep);background:rgba(95,18,66,.08);
  border-left-color:var(--plum);font-weight:600;
}
.toc-share{padding-top:24px;border-top:1px solid var(--line)}
.toc-share .share-row{display:flex;gap:8px;margin-top:14px}
.toc-share .share-row a,
.toc-share .share-row button{
  width:36px;height:36px;border-radius:50%;display:grid;place-items:center;
  background:#fff;border:1px solid var(--line);color:var(--plum-deep);
  font-size:.82rem;font-weight:600;cursor:pointer;transition:all .2s;
  font-family:inherit;
}
.toc-share .share-row a:hover,
.toc-share .share-row button:hover{background:var(--plum);color:#fff;border-color:var(--plum);transform:translateY(-2px)}

/* ---------- prose ---------- */
.article-main{min-width:0;max-width:720px}
.article-main section{margin-bottom:54px;scroll-margin-top:100px}
.article-main h2{
  font-family:'Fraunces',serif;font-size:clamp(1.5rem,2.5vw,1.9rem);
  font-weight:500;line-height:1.2;color:var(--plum-deep);
  margin:0 0 22px;letter-spacing:-.01em;
}
.article-main h3{
  font-family:'Fraunces',serif;font-size:1.3rem;font-weight:500;
  color:var(--plum-deep);margin:24px 0 14px;
}
.article-main p{
  font-size:1.08rem;line-height:1.78;color:var(--ink-soft);margin-bottom:20px;
}
.article-main p strong{color:var(--plum-deep);font-weight:600}
.article-main p em{color:var(--plum);font-style:italic;font-weight:500}
.article-main > p:first-of-type::first-letter,
.article-main > section:first-of-type > p:first-of-type::first-letter{
  font-family:'Fraunces',serif;font-weight:500;font-size:3.4em;
  float:left;line-height:.85;padding:6px 10px 0 0;color:var(--plum);
}
/* Self-hosted video player inside posts */
.article-main .article-video{
  margin:28px 0;border-radius:var(--radius-lg);overflow:hidden;background:#000;
}
.article-main .article-video video{
  display:block;width:100%;height:auto;max-height:560px;
}
/* Reset any accidental drop-cap inheritance on nested elements */
.article-main li p::first-letter,
.article-main li::first-letter,
.article-main blockquote p::first-letter,
.article-main ol p::first-letter,
.article-main ul p::first-letter{all:unset}
.article-list{list-style:none;padding:0;margin:0 0 24px;display:flex;flex-direction:column;gap:14px}
.article-list li{
  position:relative;padding-left:32px;
  font-size:1.04rem;line-height:1.65;color:var(--ink-soft);
}
.article-list li::before{
  content:"";position:absolute;left:0;top:11px;
  width:12px;height:12px;border-radius:50%;
  background:radial-gradient(circle,var(--pink) 30%,transparent 32%);
  border:1.5px solid var(--pink);
}
.article-list li strong{color:var(--plum-deep);font-weight:600}

/* pull-quote */
.article-pullquote{
  position:relative;margin:36px 0;padding:36px 36px 30px 60px;
  background:#fff;border-radius:var(--radius);border:1px solid var(--line);
  border-left:4px solid var(--plum);
  box-shadow:0 24px 50px -28px rgba(62,10,44,.18);
}
.article-pullquote .pq-mark{
  display:block;position:absolute;top:8px;left:18px;
  font-family:'Fraunces',serif;font-size:5rem;line-height:1;
  color:var(--pink-light);
}
.article-pullquote p{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:1.3rem;line-height:1.5;color:var(--plum-deep);margin-bottom:16px;
}
.article-pullquote p:first-of-type::first-letter{all:unset}
.pq-source{font-size:.88rem;color:var(--muted);font-weight:500;letter-spacing:.04em}

/* 3-column inline cards */
.article-cards-row{
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:28px 0 24px;
}
.article-card{
  padding:24px 22px;background:#fff;border-radius:var(--radius);
  border:1px solid var(--line);display:flex;flex-direction:column;gap:10px;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.article-card:hover{
  transform:translateY(-3px);border-color:rgba(95,18,66,.25);
  box-shadow:0 18px 40px -22px rgba(62,10,44,.2);
}
.card-num{
  font-family:'Fraunces',serif;font-size:.9rem;font-weight:600;
  color:var(--pink);letter-spacing:.06em;
}
.article-card h4{
  font-family:'Fraunces',serif;font-size:1.02rem;font-weight:500;
  color:var(--plum-deep);line-height:1.3;margin:0;
}
.article-card p{font-size:.88rem;color:var(--ink-soft);line-height:1.55;margin:0}

/* CTA callout */
.cta-callout{
  padding:44px 44px;background:linear-gradient(135deg,#3e0a2c 0%,#511239 60%,#5f1242 100%);
  color:#fff;border-radius:var(--radius-lg);position:relative;overflow:hidden;
  margin:40px 0 50px;
}
.cta-callout::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(circle at 10% 20%,rgba(235,210,239,.2),transparent 50%),
    radial-gradient(circle at 90% 80%,rgba(29,29,88,.3),transparent 50%);
}
.cta-callout > *{position:relative;z-index:1}
.cta-callout .eyebrow{color:#ebd2ef}
.cta-callout .eyebrow::before{background:#ebd2ef}
.cta-callout h3{
  font-family:'Fraunces',serif;font-size:1.7rem;font-weight:500;
  color:#fff;margin:14px 0 16px;line-height:1.2;
}
.cta-callout p{
  color:rgba(255,255,255,.85);font-size:1.02rem;line-height:1.65;margin-bottom:12px;
}
.cta-callout p:first-of-type::first-letter{all:unset}
.cta-callout-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.cta-callout .btn-primary{background:#fff;color:var(--plum-deep)}
.cta-callout .btn-primary:hover{background:var(--cream)}
.cta-callout .btn-ghost{color:#fff;border-color:rgba(255,255,255,.4)}
.cta-callout .btn-ghost:hover{background:#fff;color:var(--plum-deep)}

/* end-of-article share */
.article-end-share{
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:24px 0;margin:40px 0 30px;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  flex-wrap:wrap;
}
.share-label{
  font-family:'Fraunces',serif;font-style:italic;font-size:1.02rem;
  color:var(--plum-deep);
}
.share-buttons{display:flex;flex-wrap:wrap;gap:8px}
.share-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 14px;border-radius:999px;
  background:#fff;border:1px solid var(--line);
  font-family:inherit;font-size:.82rem;font-weight:500;color:var(--plum-deep);
  cursor:pointer;transition:all .2s;
}
.share-btn:hover{background:var(--plum);color:#fff;border-color:var(--plum);transform:translateY(-1px)}

/* author card at end */
.article-author-card{
  display:flex;gap:24px;align-items:flex-start;
  padding:32px 32px;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius-lg);margin-top:30px;
}
.aac-meta{flex:1}
.aac-meta h3{
  font-family:'Fraunces',serif;font-size:1.35rem;font-weight:500;
  color:var(--plum-deep);margin:8px 0 12px;
}
.aac-meta p{font-size:.96rem;color:var(--ink-soft);line-height:1.65;margin-bottom:14px}
.aac-meta p:first-of-type::first-letter{all:unset}
.aac-links{display:flex;flex-wrap:wrap;gap:18px;font-size:.88rem;font-weight:600}
.aac-links a{color:var(--plum);transition:color .2s}
.aac-links a:hover{color:var(--wine)}

.related-articles{background:var(--sand)}

/* ---------- responsive ---------- */
@media (max-width:1280px){.share-rail{left:12px}}
@media (max-width:1100px){.share-rail{display:none}}
@media (max-width:960px){
  .article-body-grid{grid-template-columns:1fr;gap:40px}
  .article-toc{position:static;display:none}
  .article-main{max-width:none}
  .article-cards-row{grid-template-columns:1fr;gap:12px}
  .article-author-card{flex-direction:column;align-items:center;text-align:center}
  .article-cover{aspect-ratio:16/9;border-radius:var(--radius)}
}
@media (max-width:560px){
  .article-hero{padding:120px 0 0}
  .article-hero-inner{margin-bottom:34px}
  .article-deck{font-size:1.08rem}
  .article-author-bar{padding:12px 16px 12px 12px;flex-direction:column;align-items:flex-start}
  .article-share-row{margin-left:0;padding-left:0;border-left:0;padding-top:10px;border-top:1px solid var(--line);width:100%}
  .cta-callout{padding:32px 22px}
  .article-main p{font-size:1rem}
  .article-pullquote{padding:30px 22px 22px 50px}
  .article-pullquote p{font-size:1.1rem}
  .article-end-share{flex-direction:column;align-items:flex-start}
}

/* ============================================================
   FEMININE POWER RETREAT PAGE
   ============================================================ */
.fpr-page{background:var(--cream)}

/* ---- hero video ---- */
.fpr-hero{padding:130px 0 0;background:var(--cream)}
.fpr-video-frame{
  max-width:920px;margin:0 auto;
  position:relative;width:100%;aspect-ratio:16/9;
  border-radius:var(--radius-lg);overflow:hidden;background:#000;
  box-shadow:0 40px 80px -25px rgba(62,10,44,.4),0 0 0 1px rgba(95,18,66,.1);
}
.fpr-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ---- title section ---- */
.fpr-title-section{padding:50px 0 70px;text-align:center;background:var(--cream)}
.fpr-title-section h1{
  font-family:'Fraunces',serif;font-style:italic;font-weight:500;
  font-size:clamp(2.4rem,5.5vw,4.4rem);line-height:1.05;letter-spacing:-.02em;
  background:linear-gradient(180deg,#c67a54,#9c5436);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  margin-bottom:22px;
}
.fpr-intro{
  font-size:1.02rem;line-height:1.7;color:var(--ink-soft);
  max-width:760px;margin:0 auto 28px;
}
.fpr-location{display:flex;flex-direction:column;align-items:center;gap:4px}
.fpr-loc-eyebrow{
  font-family:'Fraunces',serif;font-size:1.1rem;color:var(--plum);font-style:italic;
}
.fpr-loc-title{
  font-family:'Fraunces',serif;font-size:1.4rem;font-weight:600;color:var(--plum-deep);
}
.fpr-loc-date{
  font-family:'Fraunces',serif;font-size:1.05rem;color:#c67a54;font-style:italic;margin-top:6px;
}

/* ---- invitation ---- */
.fpr-invitation{padding:60px 0;background:var(--cream)}
.fpr-invitation-grid{
  display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:center;
}
.fpr-inv-img{border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 30px 60px -25px rgba(62,10,44,.3)}
.fpr-inv-img img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:4/5}
.fpr-inv-content h2{
  font-family:'Fraunces',serif;font-size:clamp(1.3rem,2.2vw,1.7rem);
  font-weight:500;color:var(--plum-deep);line-height:1.35;margin-bottom:22px;
}
.fpr-inv-content h2 .accent{
  background:linear-gradient(120deg,#c67a54,#9c5436);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-style:italic;
}
.fpr-questions{list-style:none;padding:0;margin:0 0 22px;display:flex;flex-direction:column;gap:10px}
.fpr-questions li{
  position:relative;padding-left:24px;font-size:.96rem;line-height:1.6;color:var(--ink-soft);
}
.fpr-questions li::before{
  content:"";position:absolute;left:0;top:11px;width:8px;height:8px;border-radius:50%;
  background:#c67a54;
}
.fpr-callout{
  font-family:'Fraunces',serif;font-style:italic;font-size:1.02rem;line-height:1.55;
  color:var(--plum-deep);margin-bottom:20px;
}

/* ---- learn how to ---- */
.fpr-learn{padding:60px 0;background:var(--cream)}
.fpr-learn-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.fpr-learn-content h2{
  font-family:'Fraunces',serif;font-style:italic;font-size:clamp(1.5rem,2.4vw,2rem);
  font-weight:500;color:var(--plum-deep);margin-bottom:20px;
}
.fpr-checks{list-style:none;padding:0;margin:0 0 24px;display:flex;flex-direction:column;gap:12px}
.fpr-checks li{
  position:relative;padding-left:30px;font-size:1rem;line-height:1.55;color:var(--ink-soft);
}
.fpr-checks li::before{
  content:"✓";position:absolute;left:0;top:1px;
  width:20px;height:20px;border-radius:50%;
  background:#c67a54;color:#fff;display:grid;place-items:center;
  font-size:.7rem;font-weight:700;
}
.fpr-learn-img{border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 30px 60px -25px rgba(62,10,44,.3)}
.fpr-learn-img img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:4/3}

/* ---- luxury pink callout ---- */
.fpr-luxury{
  padding:90px 0;text-align:center;color:#fff;position:relative;overflow:hidden;
  background:linear-gradient(135deg,var(--plum) 0%,var(--wine) 100%);
}
.fpr-luxury::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 20% 30%,rgba(235,210,239,.16),transparent 55%),
    radial-gradient(circle at 80% 70%,rgba(11,15,61,.28),transparent 55%);
  pointer-events:none;
}
.fpr-luxury > .container{position:relative;z-index:1;max-width:820px}
.fpr-luxury h2{
  font-family:'Fraunces',serif;font-size:clamp(1.6rem,3vw,2.2rem);
  font-weight:500;color:#fff;line-height:1.25;margin-bottom:28px;letter-spacing:-.01em;
}
.fpr-luxury-body p{
  font-size:1rem;line-height:1.7;color:rgba(255,255,255,.92);margin-bottom:14px;
}
.fpr-luxury-body p strong{color:var(--pink-light);font-weight:600}
.fpr-luxury-italic{
  font-family:'Fraunces',serif;font-style:italic;font-size:1.5rem;
  color:var(--pink-light);margin:30px 0 24px;font-weight:500;
}
.fpr-luxury-cta{
  background:#fff;color:var(--plum-deep);font-weight:700;padding:14px 32px;
  border-radius:999px;font-size:.95rem;
  box-shadow:0 12px 28px -10px rgba(0,0,0,.3);
  transition:transform .2s,background .2s;
}
.fpr-luxury-cta:hover{background:var(--cream);color:var(--plum-deep);transform:translateY(-2px)}

/* ---- after this retreat ---- */
.fpr-after{padding:90px 0;background:var(--cream)}
.fpr-after-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:50px;align-items:start}
.fpr-testimonials{display:flex;flex-direction:column;gap:14px}
.fpr-test-video{
  position:relative;width:100%;aspect-ratio:16/9;
  border-radius:14px;overflow:hidden;background:#000;
  box-shadow:0 16px 32px -16px rgba(62,10,44,.3);
}
.fpr-test-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.fpr-test-link{
  text-align:center;font-size:.92rem;color:var(--plum);font-weight:500;
  text-decoration:underline;text-underline-offset:3px;margin-top:6px;
  transition:color .2s;
}
.fpr-test-link:hover{color:var(--wine)}
.fpr-after-content h2{
  font-family:'Fraunces',serif;font-style:italic;font-size:clamp(1.5rem,2.4vw,2rem);
  font-weight:500;color:var(--plum-deep);margin-bottom:20px;
}
.fpr-results{list-style:none;padding:0;margin:0 0 26px;display:flex;flex-direction:column;gap:12px}
.fpr-results li{
  position:relative;padding-left:24px;font-size:.96rem;line-height:1.6;color:var(--ink-soft);
}
.fpr-results li::before{
  content:"";position:absolute;left:0;top:11px;width:7px;height:7px;border-radius:50%;
  background:var(--pink);
}

/* ---- activities (cards on pink) ---- */
.fpr-activities{
  padding:110px 0 120px;text-align:center;position:relative;overflow:hidden;
  background:linear-gradient(135deg,var(--plum) 0%,var(--wine) 100%);
}
.fpr-activities::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 15% 20%,rgba(235,210,239,.18),transparent 50%),
    radial-gradient(circle at 85% 80%,rgba(11,15,61,.25),transparent 50%);
  pointer-events:none;
}
.fpr-activities > .container{position:relative;z-index:1}
.fpr-activities-head{max-width:620px;margin:0 auto 60px}
.fpr-activities-eyebrow{
  font-family:'Inter',sans-serif;font-size:.78rem;font-weight:600;
  letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.9);
  display:inline-flex;align-items:center;gap:12px;margin-bottom:14px;
}
.fpr-activities-eyebrow::before,.fpr-activities-eyebrow::after{
  content:"";width:32px;height:1px;background:rgba(255,255,255,.6);
}
.fpr-activities h2{
  font-family:'Fraunces',serif;font-style:italic;font-size:clamp(2rem,3.4vw,2.8rem);
  font-weight:500;color:#fff;margin-bottom:14px;letter-spacing:-.01em;line-height:1.15;
}
.fpr-activities-sub{
  color:rgba(255,255,255,.88);font-size:1rem;line-height:1.65;margin:0 auto;
}
.fpr-activities-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:28px;
  max-width:1180px;margin:0 auto;
}
.fpr-activity{
  background:var(--cream);
  border-radius:24px;overflow:hidden;
  box-shadow:0 30px 60px -28px rgba(11,15,61,.55),0 0 0 1px rgba(255,255,255,.06);
  display:flex;flex-direction:column;
  text-align:left;color:var(--ink);
  transition:transform .4s ease,box-shadow .4s ease;
}
.fpr-activity:hover{
  transform:translateY(-8px);
  box-shadow:0 44px 80px -28px rgba(11,15,61,.6),0 0 0 1px rgba(255,255,255,.1);
}
.fpr-activity-img{
  margin:0;aspect-ratio:4/3;overflow:hidden;
}
.fpr-activity-img img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .6s ease;
}
.fpr-activity:hover .fpr-activity-img img{transform:scale(1.05)}
.fpr-activity-body{
  padding:26px 28px 30px;
  display:flex;flex-direction:column;flex:1;
}
.fpr-activity-num{
  font-family:'Inter',sans-serif;font-size:.72rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--plum);
  margin-bottom:10px;
}
.fpr-activity h3{
  font-family:'Fraunces',serif;font-size:1.4rem;font-weight:600;
  text-align:left;margin-bottom:6px;color:var(--plum-deep);line-height:1.2;
}
.fpr-act-lead{
  text-align:left;font-family:'Fraunces',serif;font-style:italic;
  color:var(--plum);margin:0;font-size:.98rem;line-height:1.45;
}
.fpr-activity-divider{
  display:block;width:40px;height:1px;
  background:rgba(95,18,66,.4);
  margin:16px 0 14px;
}
.fpr-activity ul{
  list-style:none;padding:0;margin:0;
  display:flex;flex-direction:column;gap:10px;
}
.fpr-activity li{
  position:relative;padding-left:22px;font-size:.92rem;line-height:1.5;
  color:var(--ink-soft);text-align:left;
}
.fpr-activity li::before{
  content:"";position:absolute;left:0;top:8px;
  width:6px;height:6px;border-radius:50%;background:var(--plum);
}

/* ---- hosts ---- */
.fpr-hosts{padding:90px 0;background:var(--cream)}
.fpr-hosts-head{text-align:center;max-width:680px;margin:0 auto 50px}
.fpr-hosts-head h2{
  font-family:'Fraunces',serif;font-size:clamp(1.7rem,3vw,2.2rem);
  font-weight:500;color:var(--plum-deep);margin-bottom:16px;
}
.fpr-hosts-head p{font-size:1rem;color:var(--ink-soft);line-height:1.65}
.fpr-hosts-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;max-width:980px;margin:0 auto}
.fpr-host{
  text-align:center;background:#fff;padding:30px 30px 32px;
  border:1px solid var(--line);border-radius:var(--radius-lg);
  display:flex;flex-direction:column;align-items:center;
  transition:transform .25s,box-shadow .25s;
}
.fpr-host:hover{transform:translateY(-4px);box-shadow:0 24px 50px -25px rgba(62,10,44,.25)}
.fpr-host-photo{
  width:140px;height:140px;border-radius:50%;overflow:hidden;
  margin-bottom:20px;border:3px solid var(--cream);
  box-shadow:0 14px 30px -14px rgba(62,10,44,.3);background:var(--cream);
}
.fpr-host-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.fpr-host h3{
  font-family:'Fraunces',serif;font-size:1.3rem;font-weight:600;
  color:var(--plum-deep);margin-bottom:12px;
}
.fpr-host p{font-size:.92rem;color:var(--ink-soft);line-height:1.6;margin-bottom:18px;flex:1}
.fpr-host p em{color:var(--plum);font-style:italic;font-weight:500}
.fpr-host .btn{padding:10px 18px;font-size:.82rem}

/* ---- what's included (editorial collage) ---- */
.fpr-included{padding:110px 0;background:var(--cream);position:relative;overflow:hidden}
.fpr-included::before{
  content:"";position:absolute;top:-150px;right:-150px;
  width:500px;height:500px;border-radius:50%;
  background:radial-gradient(circle,rgba(198,122,84,.1),transparent 70%);
  pointer-events:none;z-index:0;
}
.fpr-included::after{
  content:"";position:absolute;bottom:-100px;left:-100px;
  width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle,rgba(95,18,66,.06),transparent 70%);
  pointer-events:none;z-index:0;
}
.fpr-included-grid{
  display:grid;grid-template-columns:1.05fr 1fr;gap:80px;align-items:center;
  position:relative;z-index:1;
}
.fpr-included-eyebrow{
  font-family:'Inter',sans-serif;font-size:.78rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:#c67a54;
  display:inline-flex;align-items:center;gap:10px;margin-bottom:14px;
}
.fpr-included-eyebrow::before{content:"";width:28px;height:1px;background:#c67a54}
.fpr-included-content h2{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:clamp(2rem,3.2vw,2.6rem);font-weight:500;
  color:var(--plum-deep);margin-bottom:18px;letter-spacing:-.01em;line-height:1.15;
}
.fpr-included-intro{
  font-size:1rem;color:var(--ink-soft);line-height:1.65;
  margin-bottom:30px;max-width:500px;
}
.fpr-included-list{
  list-style:none;padding:0 0 0 22px;margin:0 0 36px;
  display:flex;flex-direction:column;gap:13px;
  border-left:1px solid rgba(198,122,84,.35);
}
.fpr-included-list li{
  position:relative;font-size:.95rem;line-height:1.55;color:var(--ink-soft);
}
.fpr-included-list li::before{
  content:"";position:absolute;left:-26px;top:9px;
  width:6px;height:6px;border-radius:50%;background:#c67a54;
  box-shadow:0 0 0 4px rgba(198,122,84,.12);
}

.fpr-included-imgs{
  position:relative;aspect-ratio:4/4.6;
  max-width:520px;margin-left:auto;
}
.fpr-img-main{
  width:100%;height:100%;object-fit:cover;display:block;
  border-radius:24px;
  box-shadow:0 36px 70px -28px rgba(62,10,44,.45);
}
.fpr-img-accent{
  position:absolute;
  bottom:-40px;left:-50px;
  width:58%;aspect-ratio:3/4;object-fit:cover;display:block;
  border-radius:18px;
  border:8px solid var(--cream);
  box-shadow:0 28px 50px -20px rgba(62,10,44,.5);
  transform:rotate(-4deg);
  transition:transform .4s ease;
}
.fpr-img-accent:hover{transform:rotate(-2deg) translateY(-4px)}
.fpr-included-badge{
  position:absolute;top:24px;right:24px;
  background:rgba(255,255,255,.95);backdrop-filter:blur(8px);
  padding:14px 20px;border-radius:14px;
  box-shadow:0 14px 30px -12px rgba(62,10,44,.3);
  display:flex;flex-direction:column;gap:2px;text-align:right;
}
.fpr-badge-eyebrow{
  font-family:'Inter',sans-serif;font-size:.66rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:#c67a54;
}
.fpr-badge-title{
  font-family:'Fraunces',serif;font-size:1.05rem;font-weight:600;
  color:var(--plum-deep);font-style:italic;
}

/* ---- gallery (marquee) ---- */
.fpr-gallery-section{padding:80px 0 100px;background:var(--cream);overflow:hidden}
.fpr-gallery-head{text-align:center;max-width:640px;margin:0 auto 50px}
.fpr-gallery-eyebrow{
  font-family:'Inter',sans-serif;font-size:.78rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:#c67a54;
  display:inline-flex;align-items:center;gap:10px;margin-bottom:14px;
}
.fpr-gallery-eyebrow::before,.fpr-gallery-eyebrow::after{
  content:"";width:28px;height:1px;background:#c67a54;
}
.fpr-gallery-head h2{
  font-family:'Fraunces',serif;font-style:italic;font-size:clamp(1.8rem,3vw,2.4rem);
  font-weight:500;color:var(--plum-deep);margin-bottom:14px;
}
.fpr-gallery-head p{color:var(--ink-soft);font-size:1rem;line-height:1.6}

.fpr-marquee{
  width:100%;overflow:hidden;padding:14px 0;
  -webkit-mask:linear-gradient(90deg,transparent 0,#000 90px,#000 calc(100% - 90px),transparent 100%);
  mask:linear-gradient(90deg,transparent 0,#000 90px,#000 calc(100% - 90px),transparent 100%);
}
.fpr-marquee-track{
  display:flex;gap:18px;width:max-content;
  animation:fpr-marquee-scroll 60s linear infinite;
  will-change:transform;
}
.fpr-marquee-reverse .fpr-marquee-track{animation-direction:reverse}
.fpr-marquee-track img{
  height:280px;width:auto;display:block;
  border-radius:18px;object-fit:cover;flex-shrink:0;
  box-shadow:0 18px 36px -18px rgba(62,10,44,.3);
  transition:transform .4s ease,box-shadow .4s ease,filter .4s ease;
}
.fpr-marquee:hover .fpr-marquee-track{animation-play-state:paused}
.fpr-marquee-track img:hover{
  transform:translateY(-4px) scale(1.025);
  box-shadow:0 28px 50px -18px rgba(62,10,44,.42);
  filter:brightness(1.04) saturate(1.06);
}
@keyframes fpr-marquee-scroll{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
@media (prefers-reduced-motion:reduce){
  .fpr-marquee-track{animation:none}
}
@media (max-width:960px){
  .fpr-marquee-track img{height:220px;border-radius:14px}
  .fpr-marquee-track{gap:14px}
}
@media (max-width:640px){
  .fpr-gallery-section{padding:60px 0 70px}
  .fpr-marquee-track img{height:170px;border-radius:12px}
  .fpr-marquee-track{gap:10px;animation-duration:40s}
}

/* ---- responsive ---- */
@media (max-width:960px){
  .fpr-invitation-grid,
  .fpr-learn-grid,
  .fpr-after-grid,
  .fpr-included-grid,
  .fpr-hosts-grid{grid-template-columns:1fr;gap:60px}
  .fpr-activities-grid{grid-template-columns:1fr;gap:24px}
  .fpr-activities{padding:80px 0 90px}
  .fpr-activities-head{margin-bottom:40px}
  .fpr-luxury{padding:80px 0}
  .fpr-included{padding:80px 0 90px}
  .fpr-included-imgs{margin-left:0;max-width:none;aspect-ratio:4/3.4}
  .fpr-img-accent{width:42%;left:-16px;bottom:-26px}
}
@media (max-width:560px){
  .fpr-hero{padding:110px 0 0}
  .fpr-title-section{padding:36px 0 50px}
  .fpr-luxury,.fpr-after,.fpr-hosts{padding:60px 0}
  .fpr-activities{padding:60px 0 70px}
  .fpr-included{padding:60px 0 80px}
  .fpr-host-photo{width:120px;height:120px}
  .fpr-activity-body{padding:22px 22px 26px}
  .fpr-activity h3{font-size:1.25rem}
  .fpr-activities-eyebrow{font-size:.72rem;letter-spacing:.2em}
  .fpr-activities-eyebrow::before,.fpr-activities-eyebrow::after{width:20px}
  .fpr-luxury-italic{font-size:1.2rem;margin:24px 0 20px}
  .fpr-luxury-cta{padding:12px 26px;font-size:.9rem}
  .fpr-included-list{padding-left:18px;gap:11px}
  .fpr-included-list li{font-size:.92rem}
  .fpr-included-list li::before{left:-22px;top:8px}
  .fpr-included-intro{max-width:none;font-size:.95rem}
  .fpr-img-accent{width:48%;left:-8px;bottom:-22px;border-width:5px;transform:rotate(-3deg)}
  .fpr-included-badge{top:12px;right:12px;padding:9px 13px}
  .fpr-badge-title{font-size:.9rem}
  .fpr-badge-eyebrow{font-size:.6rem}
}

/* ============================================================
   LEGAL / PRIVACY PAGE
   ============================================================ */
.legal-page{background:#fff}
.legal-page-body{padding:140px 0 80px;background:#fff}
.legal-container{max-width:920px}
.legal-title{
  font-family:'Fraunces',serif;font-size:clamp(2rem,3.6vw,2.6rem);
  font-weight:500;color:var(--plum-deep);
  margin-bottom:30px;letter-spacing:-.01em;
}
.legal-doc h2{
  font-family:'Fraunces',serif;font-size:clamp(1.2rem,1.8vw,1.45rem);
  font-weight:500;color:var(--plum-deep);
  margin:28px 0 14px;line-height:1.3;letter-spacing:-.005em;
}
.legal-doc p{
  font-size:.98rem;line-height:1.65;color:var(--ink-soft);
  margin-bottom:14px;
}
.legal-doc a{
  color:var(--plum);text-decoration:underline;text-underline-offset:2px;
  transition:color .2s;
}
.legal-doc a:hover{color:var(--wine)}
.legal-doc strong{color:var(--plum-deep);font-weight:600}
.legal-last-update{margin-top:30px !important;color:var(--plum-deep) !important}

@media (max-width:560px){
  .legal-page-body{padding:120px 0 60px}
}

/* ============================================================
   WHAT WE DO PAGE
   ============================================================ */
.wwd-hero{
  position:relative;min-height:520px;display:flex;align-items:flex-end;
  overflow:hidden;color:#fff;padding:160px 0 60px;
}
.wwd-hero-photo{
  position:absolute;inset:0;z-index:0;
  background:url('img/wwd-jo-speaking.jpg') center 18%/cover no-repeat;
}
.wwd-hero-overlay{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(115deg,rgba(20,2,15,.78) 0%,rgba(62,10,44,.5) 40%,rgba(62,10,44,.25) 70%,rgba(95,18,66,.18) 100%),
    linear-gradient(180deg,rgba(20,2,15,.35) 0%,transparent 40%,rgba(20,2,15,.45) 100%);
}
.wwd-hero-inner{position:relative;z-index:2;max-width:680px}
.wwd-hero .hero-eyebrow{
  display:inline-block;font-size:.82rem;font-weight:600;letter-spacing:.3em;
  text-transform:uppercase;color:rgba(235,210,239,.95);margin-bottom:18px;
  padding-left:36px;position:relative;
}
.wwd-hero .hero-eyebrow::before{
  content:"";position:absolute;left:0;top:50%;width:24px;height:1px;background:#ebd2ef;
}
.wwd-hero h1{
  font-family:'Fraunces',serif;font-size:clamp(2.8rem,6vw,4.8rem);
  font-weight:500;line-height:1;letter-spacing:-.02em;color:#fff;margin-bottom:18px;
}
.wwd-hero-sub{
  font-size:1.1rem;line-height:1.55;color:rgba(255,255,255,.85);
  max-width:560px;font-weight:400;
}

/* dark hero — invert nav */
.wwd-page .nav:not(.scrolled) .nav-links{color:rgba(255,255,255,.92)}
.wwd-page .nav:not(.scrolled) .nav-links a:hover,
.wwd-page .nav:not(.scrolled) .nav-dropdown-toggle:hover,
.wwd-page .nav:not(.scrolled) .nav-dropdown-toggle.active{color:#ebd2ef}
.wwd-page .nav:not(.scrolled) .nav-dropdown-toggle{color:rgba(255,255,255,.92)}
.wwd-page .nav:not(.scrolled) .brand img{filter:brightness(0) invert(1);opacity:.95}
.wwd-page .nav:not(.scrolled) .cart{
  background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.22);color:#fff;
}

/* intro section */
.wwd-intro{padding:90px 0 70px;background:var(--cream)}
.wwd-section-head{margin-bottom:50px;max-width:780px}
.wwd-section-head .eyebrow{margin-bottom:14px}
.wwd-section-head h2{
  font-family:'Fraunces',serif;font-size:clamp(1.9rem,3.2vw,2.6rem);
  font-weight:500;color:var(--plum-deep);margin-bottom:18px;
  letter-spacing:-.01em;line-height:1.15;
}
.wwd-divider{height:1px;width:120px;background:linear-gradient(90deg,var(--plum),transparent)}

.wwd-video{
  max-width:920px;margin:0 auto 50px;
}
.wwd-video-frame{
  position:relative;width:100%;aspect-ratio:16/9;
  border-radius:var(--radius-lg);overflow:hidden;background:#000;
  box-shadow:0 30px 70px -25px rgba(62,10,44,.4),0 0 0 1px rgba(95,18,66,.1);
}
.wwd-video-frame iframe,
.wwd-video-frame video{
  position:absolute;inset:0;width:100%;height:100%;border:0;
  object-fit:cover;display:block;
}

.wwd-questions{max-width:780px;margin:0 auto 40px;text-align:center}
.wwd-q{font-size:1.05rem;line-height:1.6;color:var(--plum-deep);margin-bottom:10px}
.wwd-q strong{font-family:'Fraunces',serif;font-weight:500}
.wwd-q-italic{font-family:'Fraunces',serif;font-style:italic;color:var(--plum)}

.wwd-prose{max-width:780px;margin:0 auto}
.wwd-prose p{
  font-size:1rem;line-height:1.75;color:var(--ink-soft);margin-bottom:14px;
}
.wwd-closer{
  font-family:'Fraunces',serif;font-style:italic;font-size:1.08rem !important;
  color:var(--plum-deep) !important;margin-top:8px !important;
}

/* focus callout */
.wwd-focus{padding:70px 0 90px;background:var(--cream)}
.wwd-focus h3{
  font-family:'Fraunces',serif;font-size:clamp(1.5rem,2.6vw,2rem);
  font-weight:500;line-height:1.25;color:var(--plum-deep);
  max-width:880px;margin:0 auto 28px;letter-spacing:-.01em;
}
.wwd-focus-divider{
  height:1px;width:80px;background:var(--plum);margin:0 auto 32px;opacity:.4;
}
.wwd-focus-list{max-width:780px;margin:0 auto}
.wwd-focus-list p{
  font-size:1rem;line-height:1.7;color:var(--ink-soft);margin-bottom:14px;
}
.wwd-focus-list p strong{color:var(--plum-deep);font-weight:600}

/* service cards */
.wwd-services{padding:80px 0 100px;background:var(--sand)}
.wwd-cards-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:30px;
  max-width:1120px;margin:0 auto;
}
.wwd-card{
  background:#fff;border:1px solid var(--line);
  border-radius:var(--radius-lg);overflow:hidden;
  display:flex;flex-direction:column;
  transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;
}
.wwd-card:hover{
  transform:translateY(-5px);
  box-shadow:0 30px 60px -25px rgba(62,10,44,.25);
  border-color:rgba(95,18,66,.2);
}
.wwd-card-img{
  position:relative;aspect-ratio:16/9;
  overflow:hidden;background:#000;
}
.wwd-card-img img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .5s ease,filter .5s ease;
}
.wwd-card:hover .wwd-card-img img{transform:scale(1.05)}
.wwd-card-img::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 50%,rgba(62,10,44,.45) 100%);
}
.wwd-card-num{
  position:absolute;top:16px;left:16px;z-index:2;
  font-family:'Fraunces',serif;font-size:.85rem;font-weight:600;
  color:#fff;background:rgba(0,0,0,.5);backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.2);
  padding:6px 12px;border-radius:999px;letter-spacing:.06em;
}
.wwd-card-body{padding:32px 32px 36px;display:flex;flex-direction:column;flex:1}
.wwd-card-tag{
  font-size:.74rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);margin-bottom:14px;
}
.wwd-card-divider{height:1px;background:var(--line);margin-bottom:20px}
.wwd-card h3{
  font-family:'Fraunces',serif;font-size:1.3rem;font-weight:500;
  color:var(--plum-deep);line-height:1.25;margin-bottom:16px;
}
.wwd-card-lead{
  font-size:.98rem;color:var(--plum-deep);margin-bottom:14px;line-height:1.6;
}
.wwd-card-lead strong{font-weight:600}
.wwd-card-lead em{
  font-family:'Fraunces',serif;font-style:italic;color:var(--plum);font-weight:400;
}
.wwd-card-body p{
  font-size:.94rem;line-height:1.7;color:var(--ink-soft);margin-bottom:12px;
}
.wwd-card-body p strong{color:var(--plum-deep);font-weight:600}
.wwd-card-body p em{color:var(--plum);font-style:italic;font-weight:500}
.wwd-card-cta{
  align-self:flex-start;margin-top:auto;padding-top:18px;
  padding:11px 22px;font-size:.88rem;
}
.wwd-card-links{display:flex;flex-wrap:wrap;gap:18px;margin-top:auto;padding-top:14px}
.wwd-card-links a{
  font-size:.9rem;font-weight:600;color:var(--plum);
  transition:color .2s;
}
.wwd-card-links a:hover{color:var(--wine)}

/* closing tagline */
.wwd-tagline{
  padding:90px 0 110px;background:var(--cream);text-align:center;
  position:relative;
}
.wwd-tagline::before{
  content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:80px;height:1px;background:linear-gradient(90deg,transparent,var(--plum),transparent);
}
.wwd-tagline p{
  font-family:'Fraunces',serif;font-size:clamp(1.6rem,3vw,2.2rem);
  font-weight:500;color:var(--plum-deep);line-height:1.3;
  max-width:780px;margin:0 auto 32px;letter-spacing:-.01em;
}
.wwd-tagline .accent{
  background:linear-gradient(120deg,var(--pink) 0%,var(--wine) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-style:italic;
}

/* wwd responsive */
@media (max-width:960px){
  .wwd-hero{padding:130px 0 40px;min-height:340px}
  .wwd-cards-grid{grid-template-columns:1fr;gap:20px}
  .wwd-card-img{aspect-ratio:16/7}
}
@media (max-width:560px){
  .wwd-card-body{padding:26px 22px 30px}
  .wwd-tagline{padding:70px 0 80px}
}

/* ============================================================
   CONTACT PAGE
   ============================================================ */
.contact-hero{position:relative;overflow:hidden;padding:170px 0 80px}
.contact-hero-bg{
  position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(900px 600px at 85% 15%,rgba(235,210,239,.4),transparent 60%),
    radial-gradient(700px 500px at 10% 90%,rgba(29,29,88,.08),transparent 60%),
    radial-gradient(500px 400px at 50% 50%,rgba(138,58,120,.08),transparent 70%),
    var(--cream);
}
.contact-hero-grid{
  display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:center;
}
.contact-hero-text h1{
  font-family:'Fraunces',serif;font-size:clamp(2.4rem,5vw,4rem);
  font-weight:500;line-height:1.12;letter-spacing:-.02em;
  color:var(--plum-deep);margin:16px 0 22px;
}
.contact-hero-text h1 .accent{
  background:linear-gradient(120deg,var(--pink) 0%,var(--wine) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-style:italic;font-weight:500;
}
.contact-hero-text .lead{
  font-size:1.1rem;color:var(--ink-soft);line-height:1.65;
  margin-bottom:32px;max-width:520px;
}
.hero-quick{display:flex;flex-wrap:wrap;gap:12px;align-items:center}

/* hero info card */
.contact-hero-card{
  position:relative;
  background:#fff;border-radius:24px;padding:34px 32px;
  box-shadow:0 40px 80px -30px rgba(62,10,44,.25),0 0 0 1px rgba(95,18,66,.06);
  display:flex;flex-direction:column;gap:22px;
  overflow:hidden;
  z-index:1;
}
.contact-hero-card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,var(--pink),var(--wine),var(--pink));
}
.chc-blob{
  position:absolute;border-radius:50%;filter:blur(40px);
  pointer-events:none;z-index:0;
}
.chc-blob-1{
  width:200px;height:200px;top:-60px;right:-60px;
  background:radial-gradient(circle,rgba(235,210,239,.45),transparent 65%);
}
.chc-blob-2{
  width:180px;height:180px;bottom:-50px;left:-40px;
  background:radial-gradient(circle,rgba(138,58,120,.3),transparent 65%);
}
.chc-row{
  position:relative;z-index:1;
  display:grid;grid-template-columns:46px 1fr;gap:16px;align-items:flex-start;
}
.chc-icon{
  width:46px;height:46px;border-radius:14px;
  display:grid;place-items:center;
  background:linear-gradient(135deg,var(--plum),var(--wine));
  color:#fff;font-size:1.05rem;
  box-shadow:0 8px 20px -8px rgba(62,10,44,.4);
}
/* Force the contact-card icons white (defeats any override). The SVGs use
   stroke="currentColor", so set both color and stroke. */
.contact-hero-card .chc-icon,
.contact-hero-card .chc-icon svg{color:#fff!important;stroke:#fff!important}
.chc-row > div{display:flex;flex-direction:column;gap:3px;line-height:1.45}
.chc-row strong{
  font-family:'Fraunces',serif;font-size:1rem;font-weight:500;color:var(--plum-deep);
}
.chc-row a,
.chc-row span{font-size:.9rem;color:var(--ink-soft)}
.chc-row a{transition:color .2s}
.chc-row a:hover{color:var(--plum)}

/* main grid */
.contact-main{padding:90px 0 100px;background:var(--cream)}
.contact-main-grid{
  display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:stretch;
  max-width:1100px;margin:0 auto;
}

/* details card */
.contact-details{
  background:#fff;padding:36px 36px 32px;border-radius:var(--radius-lg);
  border:1px solid var(--line);
  box-shadow:0 30px 70px -30px rgba(62,10,44,.18);
  display:flex;flex-direction:column;
}
.cd-heading{
  font-family:'Fraunces',serif;font-size:1.6rem;font-weight:500;
  color:var(--plum-deep);margin-bottom:14px;
}
.cd-divider{height:1px;background:linear-gradient(90deg,var(--plum) 0%,transparent 100%);margin-bottom:24px}
.cd-list{list-style:none;padding:0;margin:0 0 28px;display:flex;flex-direction:column;gap:18px}
.cd-list li{
  display:grid;grid-template-columns:36px 1fr;gap:14px;align-items:flex-start;
  font-size:.96rem;line-height:1.5;color:var(--ink-soft);
}
.cd-icon{
  width:36px;height:36px;border-radius:50%;
  display:grid;place-items:center;
  background:rgba(95,18,66,.1);color:var(--plum);
  font-size:.9rem;
}
.cd-list a{color:var(--plum-deep);font-weight:500;transition:color .2s}
.cd-list a:hover{color:var(--plum)}
.cd-list a.underline{text-decoration:underline;text-underline-offset:3px}

.contact-map{
  position:relative;width:100%;flex:1;min-height:240px;
  border-radius:14px;overflow:hidden;
  border:1px solid var(--line);margin-bottom:24px;
  box-shadow:0 12px 24px -16px rgba(62,10,44,.18);
  background:linear-gradient(135deg,var(--sand),var(--cream));
}
.contact-map iframe{display:block;width:100%;height:100%;min-height:240px;filter:saturate(.9) hue-rotate(330deg)}

.cd-socials{display:flex;gap:10px;align-items:center}
.cd-socials a{
  width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  background:var(--cream);color:var(--plum-deep);
  font-size:.86rem;font-weight:600;transition:all .2s;
}
.cd-socials a:hover{background:var(--plum);color:#fff;transform:translateY(-2px)}

/* form */
.contact-form-wrap{
  background:#fff;padding:44px 44px;border-radius:var(--radius-lg);
  border:1px solid var(--line);
  box-shadow:0 30px 70px -30px rgba(62,10,44,.2);
  position:relative;overflow:hidden;
}
.contact-form-wrap::before{
  content:"";position:absolute;top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,var(--pink),var(--wine),var(--pink));
}
.cf-heading{
  font-family:'Fraunces',serif;font-size:1.9rem;font-weight:500;
  color:var(--plum-deep);margin-bottom:6px;line-height:1.15;
}
.cf-lede{
  font-family:'Fraunces',serif;font-size:1.15rem;font-style:italic;
  color:var(--plum);margin-bottom:10px;display:inline-flex;align-items:center;gap:8px;
}
.wave{display:inline-block;animation:wave 2.4s ease-in-out infinite;transform-origin:70% 70%}
@keyframes wave{0%,60%,100%{transform:rotate(0)}10%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(14deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}}
.cf-sub{font-size:.96rem;color:var(--ink-soft);line-height:1.6;margin-bottom:30px;max-width:520px}

.contact-form{display:flex;flex-direction:column;gap:22px}
.form-row.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:flex;flex-direction:column;gap:6px;position:relative}
.field label{
  font-size:.86rem;font-weight:600;color:var(--plum-deep);
}
.field .req{color:var(--pink)}
.field input,
.field textarea{
  width:100%;padding:14px 18px;border-radius:12px;
  background:var(--cream);border:1px solid var(--line);
  font-family:inherit;font-size:.95rem;color:var(--ink);outline:none;
  transition:border-color .2s,background .2s,box-shadow .2s;
  resize:vertical;
}
.field input::placeholder,
.field textarea::placeholder{color:var(--muted)}
.field input:focus,
.field textarea:focus{
  border-color:var(--plum);background:#fff;
  box-shadow:0 0 0 4px rgba(95,18,66,.08);
}
.field-hint{
  font-size:.74rem;color:var(--muted);font-weight:500;letter-spacing:.04em;
}
.visually-hidden{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

.form-actions{
  display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-top:6px;
}
.form-actions .btn{padding:14px 30px}
.form-privacy{
  font-size:.8rem;color:var(--muted);line-height:1.5;flex:1;min-width:200px;margin:0;
}
.form-privacy a{color:var(--plum);text-decoration:underline;text-underline-offset:2px}

.form-success{
  display:none;flex-direction:column;align-items:flex-start;gap:10px;
  padding:30px;border-radius:16px;
  background:rgba(95,18,66,.06);border:1px solid rgba(95,18,66,.18);
}
.contact-form.sent{display:none}
.contact-form.sent + .form-success{display:flex}
.fs-check{
  width:46px;height:46px;border-radius:50%;
  background:var(--plum);color:#fff;display:grid;place-items:center;
  font-size:1.2rem;font-weight:700;
}
.form-success h3{
  font-family:'Fraunces',serif;font-size:1.3rem;font-weight:500;color:var(--plum-deep);
}
.form-success p{font-size:.94rem;color:var(--ink-soft);line-height:1.5;margin:0}

/* ---- Formidable Forms: style the live contact form (id 1) to match the design ---- */
.contact-form-wrap .frm_forms,
.contact-form-wrap .frm_forms.with_frm_style{
  margin:0;padding:0;background:none;border:0;max-width:none;
}
.contact-form-wrap .frm_form_fields,
.contact-form-wrap .frm_form_fields > fieldset{
  margin:0;padding:0;border:0;min-width:0;
}
.contact-form-wrap .frm_form_fields > fieldset > legend{
  position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);
}
/* fields lay out in a wrapping row, honouring Formidable's width classes
   (frm_half / frm_third / frm_full …) so e.g. First + Last sit side by side */
.contact-form-wrap .frm_fields_container{
  display:flex;flex-wrap:wrap;align-items:flex-start;gap:20px 16px;
}
.contact-form-wrap .frm_form_field,
.contact-form-wrap .frm_submit{
  flex:1 1 100%;min-width:0;margin:0;
}
.contact-form-wrap .frm_form_field{
  display:flex;flex-direction:column;gap:6px;padding:0;
}
.contact-form-wrap .frm_form_field.frm_half{ flex-basis:calc(50% - 8px); }
.contact-form-wrap .frm_form_field.frm_third{ flex-basis:calc(33.333% - 11px); }
.contact-form-wrap .frm_form_field.frm_fourth{ flex-basis:calc(25% - 12px); }
.contact-form-wrap .frm_form_field.frm_two_thirds{ flex-basis:calc(66.666% - 6px); }
.contact-form-wrap .frm_form_field.frm_three_fourths{ flex-basis:calc(75% - 4px); }
.contact-form-wrap .frm_form_field.frm_full{ flex-basis:100%; }
/* Last's label is hidden (frm_hidden_container) — reserve its height so the
   First and Last inputs line up on the same row */
.contact-form-wrap .frm_form_field.frm_hidden_container > .frm_primary_label{
  display:block;visibility:hidden;
}
/* primary field label — matches .field label */
.contact-form-wrap .frm_primary_label{
  font-family:'Inter',sans-serif;font-size:.86rem;font-weight:600;
  color:var(--plum-deep);padding:0;margin:0;line-height:1.3;
}
.contact-form-wrap .frm_required{color:var(--pink);font-weight:600}
/* inputs + textarea — matches .field input/.field textarea */
.contact-form-wrap input[type=text],
.contact-form-wrap input[type=email],
.contact-form-wrap input[type=tel],
.contact-form-wrap input[type=url],
.contact-form-wrap input[type=number],
.contact-form-wrap textarea,
.contact-form-wrap select{
  width:100%;padding:14px 18px;border-radius:12px;
  background:var(--cream);border:1px solid var(--line);
  font-family:'Inter',sans-serif;font-size:.95rem;color:var(--ink);
  outline:none;box-shadow:none;line-height:1.4;
  transition:border-color .2s,background .2s,box-shadow .2s;
}
.contact-form-wrap textarea{resize:vertical;min-height:150px}
.contact-form-wrap input::placeholder,
.contact-form-wrap textarea::placeholder{color:var(--muted)}
.contact-form-wrap input[type=text]:focus,
.contact-form-wrap input[type=email]:focus,
.contact-form-wrap input[type=tel]:focus,
.contact-form-wrap input[type=url]:focus,
.contact-form-wrap input[type=number]:focus,
.contact-form-wrap textarea:focus,
.contact-form-wrap select:focus{
  border-color:var(--plum);background:#fff;box-shadow:0 0 0 4px rgba(95,18,66,.08);
}
/* Hide the "First" / "Last" sub-text under the Name field (covers both the
   Formidable description markup and the combo sub-labels). */
.contact-form-wrap .frm_description,
.contact-form-wrap .frm_combo_inputs_container label{display:none}
/* submit button — matches .btn.btn-primary */
.contact-form-wrap .frm_submit{margin:6px 0 0;padding:0;clear:none}
.contact-form-wrap .frm_button_submit,
.contact-form-wrap .frm_submit button,
.contact-form-wrap .frm_submit input[type=submit]{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:14px 30px;border-radius:999px;border:0;cursor:pointer;
  font-family:'Inter',sans-serif;font-weight:600;font-size:.92rem;
  /* !important beats Formidable's own .with_frm_style rule + any inline
     style colour, which otherwise leaves the button default blue. */
  background:var(--plum)!important;color:#fff!important;width:auto;
  box-shadow:0 8px 22px -8px rgba(95,18,66,.45);
  transition:transform .2s ease,box-shadow .2s ease,background .2s;
}
.contact-form-wrap .frm_button_submit:hover,
.contact-form-wrap .frm_submit button:hover,
.contact-form-wrap .frm_submit input[type=submit]:hover{
  background:var(--plum-deep)!important;transform:translateY(-1px);
  box-shadow:0 12px 26px -8px rgba(62,10,44,.55);
}
/* Formidable ships its own `.frm_forms.with_frm_style .frm_submit .frm_button_submit`
   rule (sometimes !important + high specificity) that keeps the button its
   default blue. Mirroring that exact selector with a leading `.contact-form-wrap`
   guarantees higher specificity, so our plum always wins — covers <button>,
   <input>, and the .frm_final_submit class regardless of Formidable version. */
.contact-form-wrap .frm_forms.with_frm_style .frm_submit .frm_button_submit,
.contact-form-wrap .frm_forms.with_frm_style .frm_submit button,
.contact-form-wrap .frm_forms.with_frm_style .frm_submit input[type=submit],
.contact-form-wrap .frm_forms .frm_submit button.frm_final_submit{
  background:var(--plum)!important;color:#fff!important;
  border:0!important;border-color:transparent!important;
}
.contact-form-wrap .frm_forms.with_frm_style .frm_submit .frm_button_submit:hover,
.contact-form-wrap .frm_forms.with_frm_style .frm_submit button:hover,
.contact-form-wrap .frm_forms.with_frm_style .frm_submit input[type=submit]:hover,
.contact-form-wrap .frm_forms .frm_submit button.frm_final_submit:hover{
  background:var(--plum-deep)!important;color:#fff!important;
}

/* standalone privacy note shown under the Formidable form */
.form-privacy--standalone{margin:16px 0 0}
/* validation + messages */
.contact-form-wrap .frm_error{
  color:#b3261e;font-size:.8rem;font-weight:500;margin:2px 0 0;
}
.contact-form-wrap .frm_blank_field input,
.contact-form-wrap .frm_blank_field textarea,
.contact-form-wrap .frm_blank_field select{
  border-color:#e0796b;background:#fff;
}
.contact-form-wrap .frm_error_style{
  background:rgba(179,38,30,.06);border:1px solid rgba(179,38,30,.22);
  border-radius:12px;padding:14px 16px;margin-bottom:18px;
  color:#b3261e;font-size:.9rem;
}
.contact-form-wrap .frm_message{
  background:rgba(95,18,66,.06);border:1px solid rgba(95,18,66,.18);
  border-radius:16px;padding:24px;color:var(--ink-soft);
}
.contact-form-wrap .frm_message h3,
.contact-form-wrap .frm_message p{color:var(--plum-deep)}

/* virtual coffee section */
.virtual-coffee{padding:100px 0 110px;background:var(--sand)}
.vc-head{text-align:center;max-width:760px;margin:0 auto 50px}
.vc-head h2{
  font-family:'Fraunces',serif;font-size:clamp(1.8rem,3.2vw,2.5rem);
  font-weight:500;color:var(--plum-deep);margin:14px 0 16px;line-height:1.15;
}
.vc-head p{font-size:1rem;color:var(--ink-soft);line-height:1.7}
.vc-grid{
  display:grid;grid-template-columns:1.05fr 1fr 1fr;gap:22px;align-items:stretch;
}
.vc-card{
  background:#fff;border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:34px 32px;display:flex;flex-direction:column;gap:14px;
  transition:transform .25s ease,box-shadow .25s ease;
}
.vc-card:not(.vc-photo):hover{
  transform:translateY(-4px);
  box-shadow:0 24px 50px -22px rgba(62,10,44,.25);
}
.vc-photo{
  position:relative;padding:0;overflow:hidden;
  background:#000;
  min-height:380px;
}
.vc-photo img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;
  transition:transform .5s ease;
}
.vc-photo:hover img{transform:scale(1.04)}
.vc-photo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 55%,rgba(62,10,44,.35) 100%);
  pointer-events:none;
}
.vc-photo-stamp{
  position:absolute;top:22px;left:22px;z-index:2;
  background:rgba(255,255,255,.95);color:var(--plum-deep);
  padding:8px 16px;border-radius:999px;
  font-family:'Fraunces',serif;font-size:.95rem;font-weight:500;
  box-shadow:0 8px 20px -8px rgba(0,0,0,.3);
}
.vc-step{
  font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  color:var(--plum);
}
.vc-card h3{
  font-family:'Fraunces',serif;font-size:1.3rem;font-weight:500;
  color:var(--plum-deep);line-height:1.25;
}
.vc-card p{font-size:.95rem;color:var(--ink-soft);line-height:1.65;flex:1}
.vc-action .btn{align-self:flex-start;margin-top:auto}
.vc-bullets ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:12px}
.vc-bullets li{
  display:flex;gap:10px;font-size:.94rem;line-height:1.5;color:var(--ink-soft);
}
.vc-bullets li span{color:var(--pink);font-size:.85rem;flex-shrink:0;margin-top:2px}

/* responsive */
@media (max-width:960px){
  .contact-hero{padding:130px 0 50px}
  .contact-hero-grid{grid-template-columns:1fr;gap:40px}
  .contact-main-grid{grid-template-columns:1fr;gap:32px}
  .vc-grid{grid-template-columns:1fr;gap:18px}
  .vc-photo{min-height:320px}
}
@media (max-width:560px){
  .contact-form-wrap{padding:32px 24px}
  .contact-details{padding:28px 24px}
  .contact-hero-card{padding:28px 24px}
  .form-row.two{grid-template-columns:1fr}
  .hero-quick{flex-direction:column;align-items:stretch}
  .hero-quick .btn{justify-content:center}
}

/* ============================================================
   BLOG PAGE
   ============================================================ */
.blog-hero{position:relative;padding:160px 0 70px;overflow:hidden}
.blog-hero-bg{
  position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(900px 600px at 85% 15%,rgba(235,210,239,.35),transparent 60%),
    radial-gradient(700px 500px at 10% 90%,rgba(29,29,88,.1),transparent 60%),
    var(--cream);
}
.blog-hero-inner{max-width:780px;margin:0 auto;text-align:center}
.blog-hero-inner h1{
  font-size:clamp(2.3rem,4.6vw,3.8rem);line-height:1.15;margin:18px 0 22px;
}
.blog-hero-inner h1 .accent{
  background:linear-gradient(120deg,var(--pink) 0%,var(--wine) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-style:italic;font-weight:500;
}
.blog-hero-inner .lead{
  font-size:1.08rem;color:var(--ink-soft);line-height:1.65;
  max-width:620px;margin:0 auto 36px;
}
.blog-search{
  display:flex;align-items:center;gap:8px;
  max-width:560px;margin:0 auto;
  padding:7px 7px 7px 22px;background:#fff;
  border:1px solid var(--line);border-radius:999px;
  box-shadow:0 12px 30px -18px rgba(62,10,44,.25);
  transition:border-color .2s,box-shadow .2s;
}
.blog-search:focus-within{
  border-color:rgba(95,18,66,.4);
  box-shadow:0 18px 40px -20px rgba(62,10,44,.3);
}
.search-ic{color:var(--muted);font-size:1.2rem;flex-shrink:0}
.blog-search input{
  flex:1;background:transparent;border:0;outline:none;
  font-family:inherit;font-size:.95rem;color:var(--ink);
  padding:10px 0;min-width:0;
}
.blog-search input::placeholder{color:var(--muted)}
.blog-search .btn{flex-shrink:0;padding:11px 22px;font-size:.88rem}

/* ---------- featured article ---------- */
.featured-article{padding:70px 0 40px;background:var(--cream)}
.featured-post{
  display:grid;grid-template-columns:1.05fr 1fr;gap:0;
  background:#fff;border-radius:var(--radius-lg);overflow:hidden;
  border:1px solid var(--line);
  box-shadow:0 30px 70px -30px rgba(62,10,44,.25);
}
.featured-post-img{
  position:relative;min-height:440px;overflow:hidden;display:block;
  transition:transform .4s ease;
}
.featured-post-img::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 28% 28%,rgba(235,210,239,.28),transparent 60%);
}
.featured-post:hover .featured-post-img{transform:scale(1.02)}
.post-tag-overlay{
  position:absolute;top:24px;left:24px;z-index:2;
  font-size:.72rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:#fff;background:rgba(255,255,255,.15);padding:6px 14px;border-radius:999px;
  border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(8px);
}
.post-read-time{
  position:absolute;bottom:24px;right:24px;z-index:2;
  font-size:.78rem;font-weight:500;color:rgba(255,255,255,.9);
  background:rgba(0,0,0,.4);padding:6px 14px;border-radius:999px;
  backdrop-filter:blur(8px);
}
.featured-post-body{
  padding:50px 50px;display:flex;flex-direction:column;justify-content:center;
}
.post-meta-date{
  font-size:.82rem;color:var(--muted);font-weight:500;
  letter-spacing:.04em;margin-bottom:14px;
}
.featured-post-body h2{
  font-family:'Fraunces',serif;font-size:clamp(1.5rem,2.4vw,2rem);
  font-weight:500;line-height:1.2;margin-bottom:18px;
}
.featured-post-body h2 a{color:var(--plum-deep);transition:color .2s}
.featured-post-body h2 a:hover{color:var(--plum)}
.featured-post-body p{
  color:var(--ink-soft);font-size:1.02rem;line-height:1.65;margin-bottom:26px;
}
.author-row{
  display:flex;align-items:center;gap:12px;margin-bottom:24px;
  padding-bottom:24px;border-bottom:1px solid var(--line);
}
.author-avatar{
  width:44px;height:44px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--plum),var(--wine));
  color:#fff;display:grid;place-items:center;
  font-family:'Fraunces',serif;font-weight:600;font-size:.9rem;
}
.author-meta{display:flex;flex-direction:column;line-height:1.3}
.author-meta strong{color:var(--plum-deep);font-size:.92rem}
.author-meta span{font-size:.8rem;color:var(--muted)}

/* ---------- post grid ---------- */
.all-posts{padding:80px 0 100px;background:var(--cream)}
.post-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:8px;
}
.post-card{
  display:flex;flex-direction:column;background:#fff;
  border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.post-card:hover{
  transform:translateY(-4px);
  box-shadow:0 24px 50px -22px rgba(62,10,44,.22);
  border-color:rgba(95,18,66,.22);
}
.post-card-img{
  position:relative;display:block;aspect-ratio:16/10;overflow:hidden;
}
.post-card-img::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 25% 25%,rgba(235,210,239,.25),transparent 60%);
}
.post-card-img .post-tag-overlay{
  top:18px;left:18px;font-size:.68rem;padding:5px 12px;
}
.post-card-body{padding:24px 26px 28px;display:flex;flex-direction:column;gap:10px;flex:1}
.post-card-body .post-meta-date{margin-bottom:4px;font-size:.78rem}
.post-card-body h3{
  font-family:'Fraunces',serif;font-size:1.18rem;font-weight:500;
  line-height:1.3;margin-bottom:4px;
}
.post-card-body h3 a{color:var(--plum-deep);transition:color .2s}
.post-card-body h3 a:hover{color:var(--plum)}
.post-card-body p{
  font-size:.93rem;color:var(--ink-soft);line-height:1.6;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
  margin-bottom:auto;
}
.post-card-author{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.84rem;color:var(--muted);font-weight:500;
  padding-top:14px;border-top:1px solid var(--line);
}
.post-card-author .dot{
  width:6px;height:6px;border-radius:50%;background:var(--pink);
  box-shadow:0 0 8px rgba(95,18,66,.4);
}

/* ---------- pagination ---------- */
.post-pagination{
  display:flex;align-items:center;justify-content:center;gap:18px;
  margin-top:60px;
}
.page-btn{
  background:transparent;border:1px solid var(--line);
  padding:10px 20px;border-radius:999px;
  font-family:inherit;font-size:.88rem;font-weight:500;color:var(--plum-deep);
  cursor:pointer;transition:all .2s;
}
.page-btn:not(:disabled):hover{
  background:var(--plum);color:#fff;border-color:var(--plum);
}
.page-btn:disabled{opacity:.4;cursor:not-allowed}
.page-numbers{display:flex;align-items:center;gap:6px}
.page-num{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;border-radius:50%;
  background:transparent;border:1px solid transparent;
  font-family:inherit;font-size:.88rem;font-weight:500;color:var(--plum-deep);
  text-decoration:none;cursor:pointer;transition:all .2s;
}
a.page-btn{display:inline-block;text-decoration:none;text-align:center}
.page-num:hover{background:rgba(95,18,66,.08)}
.page-num.active{background:var(--plum);color:#fff}
.page-dots{color:var(--muted);padding:0 4px}

/* ---------- blog responsive ---------- */
@media (max-width:960px){
  .blog-hero{padding:130px 0 50px}
  .featured-post{grid-template-columns:1fr}
  .featured-post-img{min-height:280px}
  .featured-post-body{padding:36px 30px}
  .post-grid{grid-template-columns:repeat(2,1fr);gap:22px}
}
@media (max-width:640px){
  .post-grid{grid-template-columns:1fr;gap:18px}
  .blog-search{flex-wrap:wrap;border-radius:24px;padding:14px}
  .blog-search input{width:100%;padding:6px 4px}
  .blog-search .btn{width:100%;justify-content:center}
  .post-pagination{gap:10px}
  .page-btn{padding:8px 14px;font-size:.82rem}
}

/* ============================================================
   EPISODE SINGLE PAGE
   ============================================================ */
.ep-hero{position:relative;padding:140px 0 50px;overflow:hidden}
.ep-hero-bg{
  position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(900px 600px at 80% 10%,rgba(95,18,66,.15),transparent 60%),
    radial-gradient(700px 500px at 5% 80%,rgba(29,29,88,.08),transparent 60%),
    var(--cream);
}
.ep-breadcrumb{margin-bottom:24px}
.ep-breadcrumb a{
  font-size:.88rem;color:var(--muted);font-weight:500;
  display:inline-flex;align-items:center;gap:6px;transition:color .2s;
}
.ep-breadcrumb a:hover{color:var(--plum)}

.ep-video-head{max-width:980px;margin:0 auto 24px;text-align:left}
.ep-video-head h1{
  font-size:clamp(1.8rem,3.6vw,2.8rem);line-height:1.18;margin-top:12px;
  color:var(--plum-deep);
}
.ep-meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.ep-meta-row .ep-tag{margin-bottom:0}
.ep-views{color:var(--plum);font-weight:500}

/* ---------- YouTube video frame ---------- */
.video-wrap{max-width:980px;margin:0 auto}
.video-frame{
  position:relative;width:100%;aspect-ratio:16/9;
  border-radius:var(--radius-lg);overflow:hidden;
  background:#000;
  box-shadow:0 40px 80px -30px rgba(62,10,44,.45),
             0 0 0 1px rgba(95,18,66,.15);
}
.video-frame iframe{
  position:absolute;inset:0;width:100%;height:100%;border:0;display:block;
}
.video-actions{
  display:flex;justify-content:space-between;align-items:center;
  gap:24px;margin-top:22px;flex-wrap:wrap;
}
.video-meta{display:flex;align-items:center;gap:14px}
.ep-host-bar{
  display:inline-flex;align-items:center;gap:14px;
  padding:10px 20px 10px 10px;background:#fff;border:1px solid var(--line);
  border-radius:999px;
}
.ep-host-bar.inline{margin-bottom:0}
.ep-host-avatar{
  width:46px;height:46px;border-radius:50%;
  background:linear-gradient(135deg,var(--plum),var(--wine));
  color:#fff;display:grid;place-items:center;
  font-family:'Fraunces',serif;font-weight:600;font-size:.95rem;
}
.ep-host-meta{display:flex;flex-direction:column;line-height:1.2}
.ep-host-meta strong{color:var(--plum-deep);font-size:.95rem}
.ep-host-meta span{font-size:.8rem;color:var(--muted)}

.video-buttons{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.video-buttons .btn span:first-child{margin-right:2px}
.icon-btn{
  width:44px;height:44px;border-radius:50%;
  background:#fff;border:1px solid var(--line);color:var(--plum-deep);
  font-size:.95rem;cursor:pointer;display:grid;place-items:center;
  transition:all .2s;
}
.icon-btn:hover{background:var(--plum);color:#fff;border-color:var(--plum)}
.icon-btn.sm{width:auto;height:auto;padding:7px 12px;border-radius:999px;font-size:.78rem;font-weight:600}

/* ---------- episode body ---------- */
.ep-body{padding:80px 0 100px;background:var(--cream)}
.ep-body-grid{
  display:grid;grid-template-columns:1fr 340px;gap:60px;align-items:start;
}
.ep-main{min-width:0}
.ep-section{margin-bottom:48px}
.ep-section h2{
  font-family:'Fraunces',serif;font-size:1.6rem;font-weight:500;
  color:var(--plum-deep);margin-bottom:18px;
}
.ep-section p{
  font-size:1.02rem;color:var(--ink-soft);line-height:1.75;margin-bottom:14px;
  overflow-wrap:anywhere;word-break:break-word;
}
.ep-section a{overflow-wrap:anywhere;word-break:break-word}
.ep-main{min-width:0}
.ep-section p em{color:var(--plum);font-style:italic;font-weight:500}
.ep-bullets{list-style:none;display:flex;flex-direction:column;gap:14px;margin:0;padding:0}
.ep-bullets li{
  position:relative;padding-left:32px;font-size:1rem;line-height:1.6;color:var(--ink-soft);
}
.ep-bullets li::before{
  content:"";position:absolute;left:0;top:9px;
  width:14px;height:14px;border-radius:50%;
  background:radial-gradient(circle,var(--pink) 30%,transparent 32%);
  border:1.5px solid var(--pink);
}
.ep-bullets li strong{color:var(--plum-deep)}

.h2-hint{
  display:inline-block;margin-left:12px;font-family:'Inter',sans-serif;
  font-size:.78rem;font-weight:500;color:var(--muted);letter-spacing:.04em;
  text-transform:none;font-style:italic;vertical-align:middle;
}
.ep-chapters{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.ep-chapters li{
  display:grid;grid-template-columns:80px 1fr;gap:18px;align-items:center;
  padding:14px 18px;background:#fff;border:1px solid var(--line);
  border-radius:14px;font-size:.96rem;cursor:pointer;transition:all .2s;
}
.ep-chapters.video-chapters li{grid-template-columns:72px 1fr 32px}
.ep-chapters li:hover{
  border-color:rgba(95,18,66,.3);transform:translateY(-2px);
  box-shadow:0 12px 28px -16px rgba(62,10,44,.25);
  background:#fff;
}
.ep-chapters li:hover .ch-play{background:var(--plum);color:#fff}
.ch-time{
  font-family:'Fraunces',serif;font-weight:600;color:var(--plum);
  font-variant-numeric:tabular-nums;font-size:.92rem;
  background:rgba(95,18,66,.1);padding:4px 10px;border-radius:6px;text-align:center;
}
.ch-title{color:var(--plum-deep)}
.ch-play{
  width:30px;height:30px;border-radius:50%;
  background:var(--cream);color:var(--plum);
  display:grid;place-items:center;font-size:.7rem;
  transition:all .2s;
}

/* YouTube channel side card */
.yt-card{
  display:flex;flex-direction:column;gap:8px;
  padding:24px 24px;background:linear-gradient(135deg,#3e0a2c,#5f1242);
  border-radius:var(--radius);color:#fff;border:0;
  transition:transform .25s ease,box-shadow .25s ease;
  position:relative;overflow:hidden;
}
.yt-card::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 80% 20%,rgba(255,255,255,.12),transparent 55%);
  pointer-events:none;
}
.yt-card:hover{transform:translateY(-3px);box-shadow:0 20px 40px -20px rgba(62,10,44,.45)}
.yt-card-label{
  font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:8px;color:rgba(255,255,255,.85);
}
.yt-dot{
  width:8px;height:8px;border-radius:2px;background:#ff0033;
  box-shadow:0 0 8px rgba(255,0,51,.7);
}
.yt-card strong{
  font-family:'Fraunces',serif;font-size:1.25rem;font-weight:500;
  color:#fff;line-height:1.2;margin-top:4px;
}
.yt-sub{font-size:.86rem;color:rgba(255,255,255,.75);line-height:1.5}
.yt-cta{
  margin-top:10px;font-size:.85rem;font-weight:600;color:#ebd2ef;
  display:inline-flex;align-items:center;gap:6px;
}

/* Video badges & overlays */
.video-badge{
  position:absolute;top:20px;right:20px;z-index:2;
  display:inline-flex;align-items:center;gap:7px;
  background:rgba(62,10,44,.62);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  color:#fff;font-size:.66rem;font-weight:700;
  letter-spacing:.16em;padding:7px 13px;border-radius:999px;
  text-transform:uppercase;
  border:1px solid rgba(255,255,255,.28);
  box-shadow:0 8px 20px -10px rgba(62,10,44,.6);
}
.duration-badge{
  position:absolute;bottom:14px;right:14px;z-index:2;
  background:rgba(0,0,0,.78);color:#fff;font-size:.78rem;font-weight:600;
  padding:4px 8px;border-radius:6px;font-variant-numeric:tabular-nums;
  backdrop-filter:blur(4px);
}
.duration-badge.featured-dur{font-size:.88rem;padding:6px 12px;bottom:20px;right:20px}
.video-play-overlay{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:56px;height:56px;border-radius:50%;
  background:rgba(255,255,255,.95);color:var(--plum-deep);
  display:grid;place-items:center;font-size:1.1rem;padding-left:3px;
  opacity:0;transition:opacity .25s ease,transform .25s ease;z-index:2;
  box-shadow:0 10px 30px -10px rgba(0,0,0,.5);
}
.related-card:hover .video-play-overlay,
.featured-cover:hover .video-play-overlay{opacity:1;transform:translate(-50%,-50%) scale(1.05)}

.h1-with{display:block;font-style:italic;font-size:.65em;font-weight:400;color:var(--plum);margin-top:6px}

.ep-quote-block{
  position:relative;padding:60px 50px 50px;background:#fff;
  border-radius:var(--radius-lg);border:1px solid var(--line);
  box-shadow:0 30px 60px -30px rgba(62,10,44,.15);
}
.ep-quote-block .quote-mark{
  position:absolute;top:6px;left:30px;font-family:'Fraunces',serif;
  font-size:7rem;color:var(--pink-light);line-height:1;
}
.ep-quote-block p{
  font-family:'Fraunces',serif;font-size:1.3rem;font-style:italic;
  color:var(--plum-deep);line-height:1.5;position:relative;margin-bottom:18px;
}
.quote-source{font-size:.88rem;color:var(--muted);font-weight:500;letter-spacing:.04em}

.resource-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.res-card{
  display:flex;flex-direction:column;gap:6px;
  padding:22px 20px;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);transition:all .2s;
}
.res-card:hover{
  transform:translateY(-3px);border-color:rgba(95,18,66,.3);
  box-shadow:0 18px 40px -20px rgba(62,10,44,.22);
}
.res-card-tag{
  font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--plum);align-self:flex-start;
  background:rgba(95,18,66,.1);padding:4px 10px;border-radius:999px;
}
.res-card strong{font-family:'Fraunces',serif;font-size:1.05rem;color:var(--plum-deep);font-weight:500;margin-top:8px}
.res-card-meta{font-size:.82rem;color:var(--muted)}

.ep-transcript{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:20px 24px;
}
.ep-transcript summary{
  cursor:pointer;font-weight:600;color:var(--plum-deep);font-size:.96rem;
  list-style:none;display:flex;align-items:center;gap:10px;
}
.ep-transcript summary::-webkit-details-marker{display:none}
.ep-transcript summary::before{content:"›";font-size:1.2rem;transition:transform .25s;color:var(--plum)}
.ep-transcript[open] summary::before{transform:rotate(90deg)}
.transcript-body{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.transcript-body p{font-size:.95rem;color:var(--ink-soft);line-height:1.7;margin-bottom:12px}
.transcript-body strong{color:var(--plum)}

/* ---------- sidebar ---------- */
.ep-side{display:flex;flex-direction:column;gap:20px;position:sticky;top:100px}
.side-card{
  padding:28px 26px;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);
}
.side-card .eyebrow{margin-bottom:14px}
.side-card h3{
  font-family:'Fraunces',serif;font-size:1.2rem;font-weight:500;
  color:var(--plum-deep);margin-bottom:10px;line-height:1.3;
}
.side-card p{font-size:.92rem;color:var(--ink-soft);line-height:1.6;margin-bottom:16px}

/* Re-apply yt-card styles AFTER .side-card so the plum gradient bg wins */
.side-card.yt-card{
  background:linear-gradient(135deg,#3e0a2c 0%, #5f1242 100%)!important;
  color:#fff!important;border:0!important;
  position:relative;overflow:hidden;
  text-decoration:none;display:flex;flex-direction:column;gap:8px;
  transition:transform .25s, box-shadow .25s;
}
.side-card.yt-card::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 80% 15%,rgba(255,255,255,.16),transparent 55%);
  pointer-events:none;
}
.side-card.yt-card:hover{transform:translateY(-3px);box-shadow:0 22px 50px -22px rgba(62,10,44,.55)}
.side-card.yt-card .yt-card-label,
.side-card.yt-card strong,
.side-card.yt-card .yt-sub,
.side-card.yt-card .yt-cta{position:relative;z-index:1}
.side-card.yt-card strong{color:#fff;font-family:'Fraunces',serif;font-size:1.3rem;font-weight:500;margin-top:6px}
.side-card.yt-card .yt-sub{color:rgba(255,255,255,.78);font-size:.86rem;line-height:1.55}
.side-card.yt-card .yt-cta{
  margin-top:12px;font-size:.85rem;font-weight:600;color:#ebd2ef;
  display:inline-flex;align-items:center;gap:6px;
}

/* Guest card — compact and centered when only a name is present */
.guest-card{text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}
.guest-card .eyebrow{margin-bottom:6px}
.guest-card .guest-avatar{margin:4px auto 6px}
.guest-card h3{margin:0 0 4px}
.guest-card p{font-size:.9rem;line-height:1.55;margin:0 0 8px}
.guest-card .guest-links{justify-content:center}
.guest-avatar{
  width:64px;height:64px;border-radius:50%;
  background:linear-gradient(135deg,var(--plum),var(--wine));
  color:#fff;display:grid;place-items:center;
  font-family:'Fraunces',serif;font-weight:600;font-size:1.2rem;
  margin-bottom:14px;
}
.guest-links{display:flex;gap:8px}
.guest-links a{
  width:36px;height:36px;border-radius:50%;display:grid;place-items:center;
  background:var(--cream);color:var(--plum-deep);font-size:.82rem;font-weight:600;
  transition:all .2s;
}
.guest-links a:hover{background:var(--plum);color:#fff}

.side-form{display:flex;flex-direction:column;gap:10px}
.side-form input{
  width:100%;padding:12px 18px;border-radius:999px;
  background:var(--cream);border:1px solid var(--line);
  font-family:inherit;font-size:.92rem;color:var(--ink);outline:none;
  transition:border-color .2s,background .2s;
}
.side-form input:focus{border-color:var(--plum);background:#fff}
.side-form .btn{justify-content:center}

.share-card .share-row{display:flex;gap:8px}
.share-card .share-row a{
  width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
  background:var(--cream);color:var(--plum-deep);font-size:.9rem;font-weight:600;
  transition:all .2s;
}
.share-card .share-row a:hover{background:var(--plum);color:#fff;transform:translateY(-2px)}

/* ---------- related episodes ---------- */
.related-eps{padding:80px 0 110px;background:var(--sand)}
.related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:36px}
.related-card{
  display:flex;flex-direction:column;background:#fff;
  border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.related-card:hover{
  transform:translateY(-4px);
  box-shadow:0 24px 50px -24px rgba(62,10,44,.25);
  border-color:rgba(95,18,66,.25);
}
.related-cover{
  position:relative;aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;
}
.related-cover::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 25% 25%,rgba(235,210,239,.25),transparent 60%);
}
.related-body{padding:22px 24px 26px;display:flex;flex-direction:column;gap:8px}
.related-body .ep-tag{margin-bottom:6px}
.related-body h3{
  font-family:'Fraunces',serif;font-size:1.15rem;font-weight:500;
  color:var(--plum-deep);line-height:1.3;
}
.related-meta{font-size:.84rem;color:var(--muted)}

/* ---------- episode responsive ---------- */
@media (max-width:960px){
  .ep-hero{padding:120px 0 40px}
  .ep-hero-grid{grid-template-columns:1fr;gap:36px}
  .ep-hero-cover{max-width:300px;margin:0 auto}
  .ep-player{grid-template-columns:auto 1fr;gap:14px;border-radius:24px;padding:18px}
  .player-bar,.player-actions{grid-column:1 / -1}
  .ep-body-grid{grid-template-columns:1fr;gap:40px}
  .ep-side{position:static}
  .resource-cards{grid-template-columns:1fr 1fr}
  .related-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .ep-chapters li{grid-template-columns:60px 1fr;gap:12px;padding:12px 14px}
  .ep-quote-block{padding:50px 24px 30px}
  .ep-quote-block p{font-size:1.1rem}
  .resource-cards,.related-grid{grid-template-columns:1fr}
  .ep-hero-cta .btn{padding:11px 18px;font-size:.85rem}
}

/* ---------------- PODCAST RESPONSIVE ---------------- */
@media (max-width:960px){
  .pod-hero{padding:140px 0 80px}
  .pod-hero-grid{grid-template-columns:1fr;gap:60px}
  .pod-hero-cover{margin:0 auto;max-width:420px}
  .featured-ep{grid-template-columns:1fr}
  .featured-cover{min-height:320px}
  .featured-body{padding:36px 30px}
  .about-show-grid{grid-template-columns:1fr;gap:40px}
  .sub-card{grid-template-columns:1fr;padding:44px 32px;gap:28px}
}
@media (max-width:640px){
  .ep-card{grid-template-columns:1fr;text-align:left}
  .ep-cover{width:100%;height:200px}
  .ep-arrow{display:none}
  .show-stats{grid-template-columns:1fr 1fr}
  .featured-body{padding:30px 24px}
  .section-head-row,.ep-head{flex-direction:column;align-items:flex-start}
}

/* ============================================================
   SCROLL TO TOP BUTTON
   ============================================================ */
.to-top{
  position:fixed;bottom:28px;right:28px;z-index:80;
  width:54px;height:54px;border-radius:50%;
  background:var(--plum);color:#fff;border:0;cursor:pointer;
  display:grid;place-items:center;
  box-shadow:0 14px 32px -10px rgba(62,10,44,.5);
  opacity:0;visibility:hidden;transform:translateY(16px) scale(.9);
  transition:opacity .3s ease,transform .3s ease,visibility .3s,background .25s ease;
}
.to-top.visible{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.to-top:hover{background:var(--wine);transform:translateY(-3px) scale(1.05)}
.tt-arrow{position:relative;z-index:2;font-size:1.1rem;font-weight:700;line-height:1}
.tt-ring{
  position:absolute;inset:0;width:100%;height:100%;
  fill:none;stroke:rgba(255,255,255,.5);stroke-width:2.2;
  transform:rotate(-90deg);transition:stroke-dashoffset .15s linear;
}

/* ============================================================
   COOKIE BANNER
   ============================================================ */
.cookie-banner{
  position:fixed;bottom:24px;left:24px;right:24px;z-index:90;
  max-width:920px;margin:0 auto;
  background:#fff;border-radius:18px;
  border:1px solid var(--line);
  box-shadow:0 30px 60px -20px rgba(11,15,61,.35);
  opacity:0;transform:translateY(20px);
  transition:opacity .35s ease,transform .35s ease;
}
.cookie-banner.show{opacity:1;transform:translateY(0)}
.cookie-inner{
  display:grid;grid-template-columns:auto 1fr auto;gap:22px;
  align-items:center;padding:20px 26px;
}
.cookie-icon{
  width:48px;height:48px;border-radius:50%;
  background:rgba(95,18,66,.1);display:grid;place-items:center;
  font-size:1.4rem;flex-shrink:0;
}
.cookie-text strong{
  display:block;font-family:'Fraunces',serif;font-size:1.05rem;
  color:var(--plum-deep);margin-bottom:4px;font-weight:500;
}
.cookie-text p{
  font-size:.88rem;color:var(--ink-soft);line-height:1.5;margin:0;
}
.cookie-text a{color:var(--plum);text-decoration:underline;text-underline-offset:2px}
.cookie-text a:hover{color:var(--wine)}
.cookie-actions{display:flex;gap:10px;flex-shrink:0}
.cookie-actions .btn{padding:10px 18px;font-size:.85rem}

@media (max-width:760px){
  .to-top{bottom:20px;right:20px;width:46px;height:46px}
  .cookie-banner{left:14px;right:14px;bottom:14px}
  .cookie-inner{grid-template-columns:auto 1fr;gap:14px;padding:18px 20px}
  .cookie-actions{grid-column:1 / -1;justify-content:flex-end}
  .cookie-text p{font-size:.82rem}
}

/* nudge scroll-to-top up when cookie banner is visible */
body.has-cookie-banner .to-top{bottom:130px}
@media (max-width:760px){body.has-cookie-banner .to-top{bottom:170px}}

/* ============================================================
   NEWSLETTER POPUP
   ============================================================ */
.newsletter-modal{
  position:fixed;inset:0;z-index:100;
  display:flex;align-items:center;justify-content:center;
  padding:24px;opacity:0;pointer-events:none;
  transition:opacity .35s ease;
}
.newsletter-modal.open{opacity:1;pointer-events:auto}
.nl-backdrop{
  position:absolute;inset:0;
  background:rgba(11,15,61,.55);backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}
.nl-card{
  position:relative;width:100%;max-width:880px;
  background:#fff;border-radius:24px;overflow:hidden;
  display:grid;grid-template-columns:1fr 1.05fr;
  box-shadow:0 50px 100px -20px rgba(11,15,61,.5);
  transform:translateY(20px) scale(.98);
  transition:transform .4s cubic-bezier(.18,.89,.32,1.28);
}
.newsletter-modal.open .nl-card{transform:translateY(0) scale(1)}
.nl-close{
  position:absolute;top:16px;right:16px;z-index:5;
  width:36px;height:36px;border-radius:50%;
  background:rgba(255,255,255,.9);border:1px solid var(--line);
  color:var(--plum-deep);font-size:.95rem;cursor:pointer;
  display:grid;place-items:center;
  transition:all .2s;
}
.nl-close:hover{background:var(--plum);color:#fff;border-color:var(--plum);transform:rotate(90deg)}

.nl-visual{
  background:linear-gradient(135deg,#3e0a2c 0%,#511239 100%);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
  min-height:380px;
}
.nl-visual img{
  width:100%;height:100%;object-fit:cover;display:block;
}

.nl-content{
  padding:46px 44px 38px;display:flex;flex-direction:column;justify-content:center;
}
.nl-tag{
  display:inline-flex;align-self:flex-start;
  font-size:.7rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:var(--plum);background:rgba(95,18,66,.1);
  padding:6px 12px;border-radius:999px;margin-bottom:18px;
}
.nl-content h3{
  font-family:'Fraunces',serif;font-size:clamp(1.4rem,2.3vw,1.85rem);
  font-weight:500;line-height:1.2;color:var(--plum-deep);margin-bottom:16px;
}
.nl-accent{
  background:linear-gradient(120deg,var(--pink) 0%,var(--wine) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-style:italic;
}
.nl-content p{
  font-size:.94rem;color:var(--ink-soft);line-height:1.6;margin-bottom:22px;
}
.nl-content em{color:var(--plum);font-style:italic;font-weight:500}

.nl-form{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}
.nl-form input{
  width:100%;padding:14px 22px;border-radius:999px;
  background:var(--cream);border:1px solid var(--line);
  font-family:inherit;font-size:.95rem;color:var(--ink);outline:none;
  transition:border-color .2s,background .2s;
}
.nl-form input::placeholder{color:var(--muted)}
.nl-form input:focus{border-color:var(--plum);background:#fff}
.nl-submit{justify-content:center;width:100%}

/* CF7-rendered popup form — match the native .nl-form look */
.nl-cf7-wrap{margin-bottom:22px}
.nl-cf7-wrap .wpcf7,
.nl-cf7-wrap form.wpcf7-form{margin:0}
.nl-cf7{display:flex;flex-direction:column;gap:10px}
.nl-cf7 .wpcf7-form-control-wrap{display:block}
.nl-cf7 input[type="email"]{
  width:100%;padding:14px 22px;border-radius:999px;
  background:var(--cream);border:1px solid var(--line);
  font-family:inherit;font-size:.95rem;color:var(--ink);outline:none;
  transition:border-color .2s,background .2s;
}
.nl-cf7 input[type="email"]::placeholder{color:var(--muted)}
.nl-cf7 input[type="email"]:focus{border-color:var(--plum);background:#fff}
/* Popup Subscribe button — force plum button + WHITE text in every state.
   Targets the submit by type too (not just .nl-submit) so it holds even if the
   CF7 button classes get edited. Beats the wrapper's .nl-form input rule and
   .btn-primary:hover, which otherwise leave dark text on the dark hover bg. */
.nl-cf7 input.nl-submit,
.nl-cf7 input[type="submit"],
.nl-cf7-wrap .wpcf7-submit{
  width:100%;justify-content:center;cursor:pointer;
  background:var(--plum);color:#fff;border:1px solid transparent;
}
.nl-cf7 input.nl-submit:hover, .nl-cf7 input.nl-submit:focus,
.nl-cf7 input[type="submit"]:hover, .nl-cf7 input[type="submit"]:focus,
.nl-cf7-wrap .wpcf7-submit:hover, .nl-cf7-wrap .wpcf7-submit:focus{
  background:var(--plum-deep);color:#fff;
}
.nl-cf7-wrap .wpcf7-response-output{
  margin:12px 0 0!important;padding:10px 16px!important;
  border-radius:10px;font-size:.85rem;line-height:1.4;
}
.nl-cf7-wrap .wpcf7-not-valid-tip{
  color:#c0392b;font-size:.8rem;margin-top:6px;padding-left:10px;display:block;
}
.nl-cf7-wrap .wpcf7-spinner{margin:10px auto 0;display:block}

.nl-success{
  display:none;flex-direction:column;align-items:flex-start;gap:8px;
  padding:18px 22px;border-radius:14px;
  background:rgba(95,18,66,.08);border:1px solid rgba(95,18,66,.18);
  margin-bottom:22px;
}
.newsletter-modal.success .nl-form{display:none}
.newsletter-modal.success .nl-success{display:flex}
.nl-check{
  width:34px;height:34px;border-radius:50%;
  background:var(--plum);color:#fff;display:grid;place-items:center;
  font-size:1rem;font-weight:700;
}
.nl-success strong{font-family:'Fraunces',serif;color:var(--plum-deep);font-size:1.1rem}
.nl-success p{font-size:.88rem;color:var(--ink-soft);margin:0}

.nl-socials{display:flex;gap:8px;align-items:center}
.nl-socials a{
  width:36px;height:36px;border-radius:50%;display:grid;place-items:center;
  background:var(--cream);color:var(--plum-deep);
  font-size:.82rem;font-weight:600;
  transition:all .2s;
}
.nl-socials a:hover{background:var(--plum);color:#fff;transform:translateY(-2px)}

@media (max-width:760px){
  .newsletter-modal{padding:16px}
  .nl-card{grid-template-columns:1fr;max-width:440px;max-height:92vh;overflow-y:auto}
  .nl-visual{min-height:200px;max-height:240px}
  .nl-visual img{object-position:center 30%}
  .nl-content{padding:30px 26px 28px}
}

/* ---------------- RESPONSIVE ---------------- */
/* Hamburger button — hidden on desktop, shown on mobile */
.nav-burger{
  display:none;
  flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;flex-shrink:0;
  padding:10px;border:0;background:none;cursor:pointer;
  z-index:210;
}
.nav-burger span{
  display:block;width:100%;height:2px;border-radius:2px;
  background:var(--plum-deep);
  transition:transform .3s ease,opacity .2s ease,background .35s ease;
}
.nav.scrolled .nav-burger span{background:#fff}
/* dark-hero pages: light bars while nav is transparent at top */
.book-page .nav:not(.scrolled) .nav-burger span,
.wwd-page .nav:not(.scrolled) .nav-burger span,
.ap-page .nav:not(.scrolled) .nav-burger span,
.ev-page .nav:not(.scrolled) .nav-burger span{background:#fff}
/* burger -> X when open (drawer is white, so force dark bars) */
.nav.nav-open .nav-burger span{background:var(--plum-deep)}
.nav.nav-open .nav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav.nav-open .nav-burger span:nth-child(2){opacity:0}
.nav.nav-open .nav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* dim overlay behind the drawer */
.nav-overlay{
  position:fixed;inset:0;z-index:199;
  background:rgba(11,15,61,.45);
  opacity:0;visibility:hidden;
  transition:opacity .3s ease,visibility .3s ease;
}
.nav-overlay.open{opacity:1;visibility:visible}
/* lift the whole nav (drawer + burger live inside it) above the overlay */
.nav.nav-open{z-index:201}

@media (max-width:1100px){
  .nav-burger{display:flex}
  .nav-inner{gap:14px}
  .brand{margin-right:auto}   /* push cart + burger together to the right */
  /* .nav-links becomes a slide-in drawer instead of disappearing */
  .nav-links{
    display:flex;
    position:fixed;top:0;right:0;
    width:min(84vw,360px);height:100vh;height:100dvh;
    flex-direction:column;align-items:stretch;justify-content:flex-start;
    gap:4px;flex:none;flex-wrap:nowrap;
    padding:96px 26px 40px;
    background:#fff;color:var(--ink);
    box-shadow:-24px 0 60px -24px rgba(11,15,61,.35);
    transform:translateX(100%);
    transition:transform .32s cubic-bezier(.4,0,.2,1);
    overflow-y:auto;overscroll-behavior:contain;
    z-index:200;
  }
  .nav.nav-open .nav-links{transform:translateX(0)}
  /* Force dark drawer text on ALL pages/scroll-states. The #id beats the
     page-specific `.xx-page .nav:not(.scrolled) .nav-links{color:#fff}` rules
     (which otherwise win by source order and make text invisible on white). */
  #nav-links,
  #nav-links a,
  #nav-links .nav-dropdown-toggle{color:var(--ink)}
  #nav-links a:hover,
  #nav-links .nav-dropdown-toggle:hover{color:var(--plum)}

  .nav-links > a,
  .nav-dropdown{width:100%}
  .nav-links > a{padding:12px 4px;border-bottom:1px solid var(--line);font-size:1rem}
  .nav-dropdown-toggle{
    width:100%;justify-content:space-between;
    padding:12px 4px;border-bottom:1px solid var(--line);
    font-size:1rem;
  }

  /* submenu becomes an inline accordion (toggled by existing .open JS) */
  .nav-dropdown-menu{
    position:static;transform:none;
    opacity:1;visibility:visible;
    min-width:0;width:100%;
    background:none;border:0;border-radius:0;box-shadow:none;
    padding:0 0 0 12px;margin:0;
    max-height:0;overflow:hidden;
    transition:max-height .3s ease;
  }
  .nav-dropdown-menu::before{display:none}
  .nav-dropdown.open .nav-dropdown-menu{
    max-height:600px;transform:none;
    padding:4px 0 8px 12px;
  }
  .nav-dropdown-menu a{padding:10px 12px}
}
@media (max-width:960px){
  .hero{padding:112px 0 70px} /* clear the fixed nav so the eyebrow no longer overlaps it */
  .hero-grid,.about-grid,.events-grid,.join-grid{grid-template-columns:1fr;gap:50px}
  .hero-visual{margin:0 auto}
  .service-grid,.blog-grid{grid-template-columns:1fr}
  .join-text{padding:60px 30px}
  .foot-grid{grid-template-columns:1fr 1fr;gap:40px}
  .about::after{display:none}
  .events-image{max-width:420px;margin:0 auto}
}
@media (max-width:560px){
  .container{padding:0 20px}
  .foot-grid{grid-template-columns:1fr}
  .foot-base{flex-direction:column;gap:12px;text-align:center}
}

/* ============================================================
   ABOUT PAGE
   ============================================================ */
.ap-page{background:var(--cream)}

/* nav on dark hero */
.ap-page .nav:not(.scrolled) .nav-links{color:rgba(255,255,255,.92)}
.ap-page .nav:not(.scrolled) .nav-links a:hover,
.ap-page .nav:not(.scrolled) .nav-dropdown-toggle:hover,
.ap-page .nav:not(.scrolled) .nav-dropdown-toggle.active{color:var(--pink-light)}
.ap-page .nav:not(.scrolled) .nav-dropdown-toggle{color:rgba(255,255,255,.92)}
.ap-page .nav:not(.scrolled) .brand img{filter:brightness(0) invert(1);opacity:.95}
.ap-page .nav:not(.scrolled) .cart{
  background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.2);color:#fff;
}
.ap-page .nav:not(.scrolled) .nav-links a.active{color:var(--pink-light)}

/* hero */
.ap-hero{
  position:relative;min-height:560px;display:flex;align-items:flex-end;
  overflow:hidden;color:#fff;padding:160px 0 80px;
}
.ap-hero-bg{
  position:absolute;inset:0;z-index:0;
  background:url('img/josephine-speaking.jpg') center 35%/cover no-repeat;
  filter:brightness(.72) saturate(1.05);
  transform:scale(1.03);
}
.ap-hero-overlay{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(90deg,rgba(11,15,61,.65) 0%,rgba(62,10,44,.55) 50%,rgba(62,10,44,.25) 100%),
    linear-gradient(180deg,transparent 50%,rgba(62,10,44,.5) 100%),
    radial-gradient(circle at 75% 30%,rgba(95,18,66,.28),transparent 60%);
}
.ap-hero-inner{position:relative;z-index:2;max-width:780px}
.ap-hero .hero-eyebrow{
  display:inline-flex;align-items:center;gap:12px;
  font-family:'Inter',sans-serif;font-size:.78rem;font-weight:600;
  letter-spacing:.24em;text-transform:uppercase;
  color:rgba(255,255,255,.88);margin-bottom:20px;
}
.ap-hero .hero-eyebrow::before{
  content:"";width:36px;height:1px;background:rgba(255,255,255,.7);
}
.ap-hero h1{
  color:#fff;font-size:clamp(2.6rem,5.4vw,4.2rem);
  letter-spacing:-.02em;line-height:1.08;margin-bottom:20px;font-weight:600;
}
.ap-hero h1 .accent{
  font-style:italic;font-weight:500;color:var(--pink-light);
}
.ap-hero-tag{
  font-family:'Inter',sans-serif;font-size:.92rem;font-weight:500;
  color:rgba(255,255,255,.85);letter-spacing:.16em;text-transform:uppercase;
}

/* story / editorial split */
.ap-story{padding:120px 0;background:var(--cream);position:relative;overflow:hidden}
.ap-story::before{
  content:"";position:absolute;top:-150px;left:-150px;
  width:500px;height:500px;border-radius:50%;
  background:radial-gradient(circle,rgba(95,18,66,.08),transparent 70%);
  pointer-events:none;
}
.ap-story-grid{
  display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:start;
  position:relative;z-index:1;
}
.ap-story-imgs{
  position:relative;aspect-ratio:4/5;max-width:480px;width:100%;
  margin-top:10px;
}
.ap-story-frame{
  width:100%;height:100%;border-radius:24px;overflow:hidden;
  box-shadow:0 36px 70px -28px rgba(62,10,44,.45);
  position:relative;
}
.ap-story-frame::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 60%,rgba(62,10,44,.18) 100%);
  pointer-events:none;
}
.ap-story-main{
  width:100%;height:100%;object-fit:cover;object-position:center top;
  display:block;transition:transform .6s ease;
}
.ap-story-frame:hover .ap-story-main{transform:scale(1.03)}
.ap-story-badge{
  position:absolute;bottom:24px;left:24px;
  background:rgba(255,255,255,.95);backdrop-filter:blur(10px);
  padding:14px 20px;border-radius:14px;
  box-shadow:0 18px 36px -14px rgba(62,10,44,.35);
  display:flex;flex-direction:column;gap:2px;z-index:2;
}
.ap-story-badge .badge-eyebrow{
  font-family:'Inter',sans-serif;font-size:.66rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:var(--plum);
}
.ap-story-badge .badge-title{
  font-family:'Fraunces',serif;font-size:1.05rem;font-weight:600;
  color:var(--plum-deep);font-style:italic;
}

.ap-eyebrow{
  font-family:'Inter',sans-serif;font-size:.78rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:var(--plum);
  display:inline-flex;align-items:center;gap:10px;margin-bottom:14px;
}
.ap-eyebrow::before{content:"";width:28px;height:1px;background:var(--plum)}

.ap-story-content h2{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:clamp(2rem,3.2vw,2.6rem);font-weight:500;
  color:var(--plum-deep);margin-bottom:22px;letter-spacing:-.01em;line-height:1.15;
}
.ap-lead{
  font-size:1.1rem;color:var(--plum-deep);font-weight:500;line-height:1.6;
  margin-bottom:18px;
}
.ap-story-content p{
  font-size:.98rem;color:var(--ink-soft);line-height:1.7;margin-bottom:16px;
}
.ap-story-content p strong{color:var(--plum-deep);font-weight:600}
.ap-story-content p em{color:var(--plum);font-style:italic;font-weight:500}
.ap-story-content .btn{margin-top:14px}
.ap-story-subhead{
  font-family:'Fraunces',serif;font-size:1.2rem;font-weight:600;
  color:var(--plum-deep);margin:14px 0 10px;letter-spacing:-.005em;
}
.ap-story-actions{
  display:flex;gap:12px;flex-wrap:wrap;margin-top:14px;
}
.ap-story-actions .btn{margin-top:0}

.ap-achievement-links{
  display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;
}
.ap-achievement-link{
  display:inline-flex;align-items:center;gap:6px;
  padding:7px 14px;border-radius:999px;
  background:rgba(95,18,66,.08);
  font-family:'Inter',sans-serif;font-size:.78rem;font-weight:600;
  color:var(--plum-deep);
  border:1px solid rgba(95,18,66,.18);
  transition:background .2s,border-color .2s,color .2s,transform .2s;
}
.ap-achievement-link .arrow{
  font-size:.85rem;transition:transform .2s ease;
}
.ap-achievement-link:hover{
  background:var(--plum);color:#fff;border-color:var(--plum);
  transform:translateY(-1px);
}
.ap-achievement-link:hover .arrow{transform:translateX(2px)}

/* ============================================================
   THANK YOU PAGE
   ============================================================ */
.ty-page{background:var(--cream)}
.ty-section{
  position:relative;overflow:hidden;
  min-height:100vh;display:flex;align-items:center;
  padding:160px 0 100px;background:var(--cream);
}
.ty-bg-blob{position:absolute;border-radius:50%;pointer-events:none;z-index:0}
.ty-blob-1{
  top:-140px;right:-140px;width:520px;height:520px;
  background:radial-gradient(circle,rgba(95,18,66,.16),transparent 70%);
}
.ty-blob-2{
  bottom:-120px;left:-120px;width:440px;height:440px;
  background:radial-gradient(circle,rgba(198,122,84,.14),transparent 70%);
}
.ty-grid{
  position:relative;z-index:1;
  display:grid;grid-template-columns:1.1fr 1fr;gap:80px;align-items:center;
}

.ty-check{
  display:inline-grid;place-items:center;
  width:64px;height:64px;border-radius:50%;
  background:linear-gradient(135deg,var(--plum),var(--wine));
  color:#fff;margin-bottom:20px;
  box-shadow:0 18px 40px -14px rgba(62,10,44,.5);
  animation:ty-pop .6s cubic-bezier(.34,1.56,.64,1) both;
}
@keyframes ty-pop{
  from{transform:scale(.4);opacity:0}
  to{transform:scale(1);opacity:1}
}
.ty-content h1{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:clamp(2.2rem,4.2vw,3.4rem);font-weight:500;
  color:var(--plum-deep);margin:6px 0 18px;
  line-height:1.1;letter-spacing:-.02em;
}
.ty-lead{
  font-size:1.08rem;color:var(--ink-soft);line-height:1.65;
  margin-bottom:30px;max-width:540px;
}
.ty-lead em{color:var(--plum);font-style:italic;font-weight:500}

.ty-actions{
  display:flex;gap:14px;flex-wrap:wrap;margin-bottom:26px;
}
.ty-download{padding:14px 26px}
.ty-dl-ic{
  display:inline-grid;place-items:center;
  margin-right:2px;
}
.ty-fineprint{
  font-size:.88rem;color:var(--muted);line-height:1.55;
  max-width:480px;font-style:italic;
}

.ty-socials{
  margin-top:36px;padding-top:24px;
  border-top:1px solid rgba(95,18,66,.18);
  display:flex;align-items:center;flex-wrap:wrap;gap:18px;
}
.ty-socials-label{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:.95rem;color:var(--plum-deep);
}
.ty-socials .socials{display:flex;gap:10px}
.ty-socials .socials a{
  width:38px;height:38px;display:grid;place-items:center;
  border-radius:50%;background:#fff;border:1px solid var(--line);
  color:var(--plum-deep);font-size:.85rem;font-weight:600;
  transition:background .2s,color .2s,transform .2s,border-color .2s;
}
.ty-socials .socials a:hover{
  background:var(--plum);color:#fff;border-color:var(--plum);transform:translateY(-2px);
}

/* visual / mockup */
.ty-visual{
  position:relative;aspect-ratio:4/5;
  max-width:440px;margin-left:auto;width:100%;
}
.ty-mockup{
  width:100%;height:100%;border-radius:24px;overflow:hidden;
  box-shadow:0 40px 80px -28px rgba(62,10,44,.45);
  position:relative;background:#fff;
  animation:ty-float 6s ease-in-out infinite;
}
@keyframes ty-float{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-12px)}
}
.ty-mockup img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.ty-mockup-badge{
  position:absolute;bottom:-22px;left:-22px;
  background:#fff;padding:14px 22px;border-radius:16px;
  box-shadow:0 20px 40px -16px rgba(62,10,44,.4);
  display:flex;flex-direction:column;gap:2px;
  border:1px solid var(--line);z-index:2;
}
.ty-mockup-badge .badge-eyebrow{
  font-family:'Inter',sans-serif;font-size:.66rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:var(--plum);
}
.ty-mockup-badge .badge-title{
  font-family:'Fraunces',serif;font-size:1.05rem;font-weight:600;
  color:var(--plum-deep);font-style:italic;
}

@media (max-width:960px){
  .ty-section{padding:130px 0 80px;min-height:auto}
  .ty-grid{grid-template-columns:1fr;gap:60px}
  .ty-visual{order:-1;margin:0 auto;max-width:360px;aspect-ratio:4/4.6}
}
@media (max-width:560px){
  .ty-section{padding:120px 0 70px}
  .ty-check{width:54px;height:54px}
  .ty-actions{flex-direction:column;align-items:stretch}
  .ty-actions .btn{width:100%;justify-content:center}
  .ty-socials{flex-direction:column;align-items:flex-start;gap:14px}
  .ty-mockup-badge{bottom:-14px;left:0;padding:10px 16px}
}

/* ============================================================
   SINGLE PRODUCT PAGE
   ============================================================ */
.sp-page{background:var(--cream)}

/* breadcrumb */
.sp-breadcrumb{padding:120px 0 16px;background:var(--cream)}
.sp-breadcrumb .container{display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  font-size:.85rem;color:var(--muted);
}
.sp-breadcrumb a{color:var(--muted);transition:color .2s}
.sp-breadcrumb a:hover{color:var(--plum)}
.sp-breadcrumb .sep{color:rgba(122,100,120,.5)}
.sp-breadcrumb .current{color:var(--plum-deep);font-weight:600}

/* product grid */
.sp-section{padding:30px 0 80px;background:var(--cream)}
.sp-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:70px;align-items:flex-start}

/* gallery */
.sp-gallery{position:sticky;top:110px}
.sp-main-img{
  position:relative;background:linear-gradient(135deg,var(--sand) 0%,var(--cream) 100%);
  border-radius:24px;overflow:hidden;
  aspect-ratio:1/1;display:grid;place-items:center;
  box-shadow:0 30px 60px -28px rgba(62,10,44,.3);
  border:1px solid var(--line);
}
.sp-main-img img{
  max-width:78%;max-height:84%;object-fit:contain;
  filter:drop-shadow(0 24px 30px rgba(62,10,44,.25));
  transition:transform .5s ease;
}
.sp-main-img:hover img{transform:scale(1.03)}
.sp-tag{
  position:absolute;top:18px;left:18px;
  background:var(--plum);color:#fff;
  padding:6px 12px;border-radius:999px;
  font-family:'Inter',sans-serif;font-size:.7rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;
}
/* Thumbnail strip — horizontal scroll (carousel-style) so a product with many
   images keeps ONE compact row instead of stacking into many rows. 4 thumbs show
   at a time; scroll/swipe for the rest (scroll-snap + a slim brand scrollbar). */
.sp-thumbs{
  display:flex;gap:12px;margin-top:14px;
  overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x proximity;
  padding-bottom:8px;-webkit-overflow-scrolling:touch;
  scrollbar-width:thin;scrollbar-color:rgba(95,18,66,.4) transparent;
}
.sp-thumbs::-webkit-scrollbar{height:6px}
.sp-thumbs::-webkit-scrollbar-thumb{background:rgba(95,18,66,.35);border-radius:999px}
.sp-thumbs::-webkit-scrollbar-thumb:hover{background:rgba(95,18,66,.55)}
.sp-thumbs::-webkit-scrollbar-track{background:transparent}
.sp-thumb{
  flex:0 0 calc(25% - 9px);scroll-snap-align:start;
  background:#fff;border:1.5px solid var(--line);border-radius:12px;
  padding:6px;cursor:pointer;overflow:hidden;aspect-ratio:1/1;
  display:grid;place-items:center;transition:border-color .2s,transform .2s;
}
.sp-thumb img{max-width:100%;max-height:100%;object-fit:cover;border-radius:6px}
.sp-thumb:hover{transform:translateY(-2px);border-color:var(--plum-soft)}
.sp-thumb.is-active{border-color:var(--plum)}

/* info side */
.sp-info{padding-top:10px}
.sp-eyebrow{
  font-family:'Inter',sans-serif;font-size:.72rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:var(--plum);
  display:inline-block;margin-bottom:12px;
}
.sp-info h1{
  font-family:'Fraunces',serif;font-size:clamp(2rem,3.4vw,2.8rem);
  font-weight:600;color:var(--plum-deep);
  line-height:1.1;letter-spacing:-.02em;margin-bottom:14px;
  display:flex;flex-direction:column;gap:4px;
}
.sp-info h1 .sub{
  font-family:'Fraunces',serif;font-style:italic;font-weight:500;
  font-size:.6em;color:var(--plum);
}

.sp-rating{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.sp-stars{display:inline-flex;gap:2px;color:#e8a838;font-size:1rem;letter-spacing:1px}
.sp-stars span{display:inline-block}
.sp-stars-sm{font-size:.9rem}
.sp-rating-text{font-size:.86rem;color:var(--muted);font-weight:500}

.sp-price{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:22px}
.sp-price-now{
  font-family:'Fraunces',serif;font-size:2rem;font-weight:600;
  color:var(--plum-deep);letter-spacing:-.01em;
}
.sp-price-was{
  font-size:1.1rem;color:var(--muted);text-decoration:line-through;font-weight:500;
}
.sp-price-save{
  background:rgba(198,122,84,.18);color:#9c5436;
  padding:4px 10px;border-radius:999px;
  font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
}

.sp-short{
  font-size:1rem;line-height:1.65;color:var(--ink-soft);
  margin-bottom:28px;padding-bottom:24px;
  border-bottom:1px solid var(--line);
}

/* options */
.sp-option{margin-bottom:22px}
.sp-option-label{
  display:block;font-family:'Inter',sans-serif;font-size:.78rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--plum-deep);
  margin-bottom:10px;
}
.sp-option-row{display:flex;gap:10px;flex-wrap:wrap}
.sp-chip{
  flex:1;min-width:120px;
  background:#fff;border:1.5px solid var(--line);border-radius:14px;
  padding:12px 16px;cursor:pointer;
  display:flex;flex-direction:column;gap:2px;
  transition:border-color .2s,background .2s,transform .15s;
  position:relative;
}
.sp-chip input{position:absolute;opacity:0;pointer-events:none}
.sp-chip:hover{border-color:var(--plum-soft)}
.sp-chip.is-checked{
  border-color:var(--plum);background:rgba(95,18,66,.05);
  box-shadow:0 0 0 3px rgba(95,18,66,.08);
}
.sp-chip-name{
  font-family:'Fraunces',serif;font-size:1rem;font-weight:600;color:var(--plum-deep);
}
.sp-chip-meta{font-size:.82rem;color:var(--muted);font-weight:500}

/* toggle */
.sp-toggle{
  display:inline-flex;align-items:center;gap:12px;cursor:pointer;user-select:none;
}
.sp-toggle input{position:absolute;opacity:0;pointer-events:none}
.sp-toggle-track{
  width:44px;height:24px;background:var(--line);border-radius:999px;
  position:relative;transition:background .25s;flex-shrink:0;
}
.sp-toggle-dot{
  position:absolute;top:2px;left:2px;
  width:20px;height:20px;border-radius:50%;background:#fff;
  transition:transform .25s;
  box-shadow:0 2px 6px rgba(11,15,61,.2);
}
.sp-toggle input:checked + .sp-toggle-track{background:var(--plum)}
.sp-toggle input:checked + .sp-toggle-track .sp-toggle-dot{transform:translateX(20px)}
.sp-toggle-text{font-size:.95rem;color:var(--ink);font-weight:500}
.sp-toggle-meta{color:var(--muted);font-style:italic;font-weight:400;margin-left:4px}

/* cart row */
.sp-cart-row{display:flex;gap:14px;margin-bottom:12px;align-items:stretch}
.sp-qty{
  display:flex;align-items:center;
  background:#fff;border:1.5px solid var(--line);border-radius:999px;
  padding:4px;
}
.sp-qty-btn{
  width:36px;height:36px;border-radius:50%;border:none;background:transparent;
  font-size:1.2rem;font-weight:600;color:var(--plum-deep);cursor:pointer;
  display:grid;place-items:center;
  transition:background .2s;
}
.sp-qty-btn:hover{background:var(--sand)}
.sp-qty-input{
  width:42px;border:none;text-align:center;background:transparent;
  font-family:'Fraunces',serif;font-size:1rem;font-weight:600;color:var(--plum-deep);
  -moz-appearance:textfield;
}
.sp-qty-input::-webkit-outer-spin-button,
.sp-qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.sp-add-cart{flex:1;justify-content:center;padding:14px 28px;font-size:.95rem}
.sp-buy-now{width:100%;justify-content:center;padding:13px 28px;margin-bottom:26px}

/* trust strip */
.sp-trust{
  list-style:none;padding:0;margin:0;
  display:flex;flex-direction:column;gap:10px;
  padding-top:20px;border-top:1px solid var(--line);
}
.sp-trust li{
  display:flex;align-items:center;gap:12px;
  font-size:.9rem;color:var(--ink-soft);
}
.sp-trust strong{color:var(--plum-deep);font-weight:600}
.sp-trust-ic{
  width:32px;height:32px;border-radius:50%;
  background:rgba(198,122,84,.15);color:#9c5436;
  display:grid;place-items:center;font-size:.95rem;flex-shrink:0;
}

/* tabs */
.sp-tabs-section{padding:40px 0 80px;background:var(--cream)}
.sp-tabs{
  display:flex;gap:6px;border-bottom:1px solid var(--line);
  margin-bottom:36px;overflow-x:auto;
}
.sp-tab{
  background:transparent;border:none;
  padding:14px 22px 16px;cursor:pointer;
  font-family:'Inter',sans-serif;font-size:.92rem;font-weight:600;
  color:var(--muted);
  border-bottom:2px solid transparent;margin-bottom:-1px;
  transition:color .2s,border-color .2s;white-space:nowrap;
}
.sp-tab:hover{color:var(--plum-deep)}
.sp-tab.is-active{color:var(--plum-deep);border-bottom-color:var(--plum)}
.sp-tab-panel{display:none}
.sp-tab-panel.is-active{display:block;animation:sp-fadein .35s ease}
@keyframes sp-fadein{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.sp-prose{max-width:760px}
.sp-prose p{font-size:1.02rem;line-height:1.75;color:var(--ink-soft);margin-bottom:18px}
.sp-prose p em{color:var(--plum);font-style:italic;font-weight:500}

/* what's inside list */
.sp-inside-list{
  list-style:none;padding:0;margin:0;
  display:grid;grid-template-columns:1fr 1fr;gap:18px;
  max-width:920px;
}
.sp-inside-list li{
  display:flex;gap:18px;align-items:flex-start;
  background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 22px;
  transition:transform .25s,box-shadow .25s,border-color .25s;
}
.sp-inside-list li:hover{
  transform:translateY(-3px);border-color:var(--plum-soft);
  box-shadow:0 18px 36px -18px rgba(62,10,44,.2);
}
.sp-inside-num{
  font-family:'Fraunces',serif;font-size:1.4rem;font-weight:600;font-style:italic;
  color:var(--plum);flex-shrink:0;line-height:1;padding-top:2px;
}
.sp-inside-list strong{
  display:block;font-family:'Fraunces',serif;font-size:1.05rem;font-weight:600;
  color:var(--plum-deep);margin-bottom:4px;
}
.sp-inside-list span{font-size:.9rem;color:var(--ink-soft);line-height:1.55}

/* shipping grid */
.sp-ship-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:30px;max-width:1020px;
}
.sp-ship-grid h4{
  font-family:'Fraunces',serif;font-size:1.05rem;font-weight:600;
  color:var(--plum-deep);margin-bottom:8px;
}
.sp-ship-grid p{font-size:.92rem;color:var(--ink-soft);line-height:1.65}

/* reviews */
.sp-reviews-head{
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding-bottom:24px;border-bottom:1px solid var(--line);margin-bottom:24px;flex-wrap:wrap;
}
.sp-reviews-score{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.sp-reviews-num{
  font-family:'Fraunces',serif;font-size:2.2rem;font-weight:600;color:var(--plum-deep);
}
.sp-reviews-count{font-size:.86rem;color:var(--muted)}
.sp-reviews-list{display:flex;flex-direction:column;gap:18px;max-width:840px}
.sp-review{
  background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 24px;
}
.sp-review header{display:flex;align-items:center;gap:14px;margin-bottom:10px;flex-wrap:wrap}
.sp-review header strong{
  font-family:'Fraunces',serif;font-size:1.05rem;color:var(--plum-deep);font-weight:600;
}
.sp-review p{font-size:.96rem;line-height:1.65;color:var(--ink-soft);margin-bottom:12px}
.sp-review p em{color:var(--plum);font-style:italic}
.sp-review-meta{font-size:.82rem;color:var(--muted)}

/* related */
.sp-related{padding:80px 0 110px;background:var(--sand)}
.sp-related-head{text-align:center;max-width:560px;margin:0 auto 40px}
.sp-related-head .ap-eyebrow{justify-content:center}
.sp-related-head h2{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:clamp(1.8rem,3vw,2.4rem);font-weight:500;color:var(--plum-deep);
  margin-bottom:10px;
}
.sp-related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.sp-related-card{
  background:#fff;border-radius:20px;overflow:hidden;
  border:1px solid var(--line);display:flex;flex-direction:column;
  box-shadow:0 18px 36px -22px rgba(62,10,44,.2);
  transition:transform .3s ease,box-shadow .3s ease;
}
.sp-related-card:hover{
  transform:translateY(-5px);
  box-shadow:0 30px 50px -22px rgba(62,10,44,.32);
}
.sp-related-img{
  width:100%;aspect-ratio:16/10;
  background-size:cover;background-position:center;
}
.sp-related-body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1;gap:8px}
.sp-related-tag{
  font-family:'Inter',sans-serif;font-size:.7rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--plum);
}
.sp-related-card h3{
  font-family:'Fraunces',serif;font-size:1.2rem;font-weight:600;
  color:var(--plum-deep);line-height:1.25;
}
.sp-related-card p{font-size:.92rem;color:var(--ink-soft);line-height:1.55;flex:1}
.sp-related-link{
  font-family:'Inter',sans-serif;font-size:.88rem;font-weight:600;
  color:var(--plum);margin-top:6px;
}

@media (max-width:960px){
  .sp-grid{grid-template-columns:1fr;gap:50px}
  .sp-gallery{position:static}
  .sp-main-img{max-width:520px;margin:0 auto}
  .sp-thumbs{max-width:520px;margin:14px auto 0}
  .sp-inside-list{grid-template-columns:1fr}
  .sp-ship-grid{grid-template-columns:1fr;gap:24px}
  .sp-related-grid{grid-template-columns:1fr 1fr}
  .sp-related-grid > a:nth-child(3){grid-column:span 2;max-width:520px;margin:0 auto}
}
@media (max-width:640px){
  .sp-breadcrumb{padding:110px 0 12px}
  .sp-section{padding:20px 0 60px}
  .sp-info h1{font-size:1.9rem}
  .sp-price-now{font-size:1.6rem}
  .sp-option-row{flex-direction:column}
  .sp-chip{min-width:0;width:100%;flex-direction:row;justify-content:space-between;align-items:center}
  .sp-cart-row{flex-direction:column}
  .sp-qty{align-self:center}
  .sp-tabs-section{padding:30px 0 60px}
  .sp-related{padding:60px 0 80px}
  .sp-related-grid{grid-template-columns:1fr}
  .sp-related-grid > a:nth-child(3){grid-column:auto;max-width:none}
}

/* ============================================================
   EVENTS PAGE
   ============================================================ */
.ev-page{background:var(--cream)}

/* nav on dark hero */
.ev-page .nav:not(.scrolled) .nav-links{color:rgba(255,255,255,.92)}
.ev-page .nav:not(.scrolled) .nav-links a:hover,
.ev-page .nav:not(.scrolled) .nav-dropdown-toggle:hover,
.ev-page .nav:not(.scrolled) .nav-dropdown-toggle.active{color:var(--pink-light)}
.ev-page .nav:not(.scrolled) .nav-dropdown-toggle{color:rgba(255,255,255,.92)}
.ev-page .nav:not(.scrolled) .brand img{filter:brightness(0) invert(1);opacity:.95}
.ev-page .nav:not(.scrolled) .cart{
  background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.2);color:#fff;
}

/* hero — matches about page hero pattern */
.ev-hero{
  position:relative;min-height:480px;display:flex;align-items:flex-end;
  overflow:hidden;color:#fff;padding:160px 0 70px;
}
.ev-hero-bg{
  position:absolute;inset:0;z-index:0;
  background:url('https://gearedforgrowth.biz/wp-content/uploads/2025/01/Jo-Palermo-personal-branding-by-Ksenia-Belova-64-scaled.jpg') center 20%/cover no-repeat;
  filter:brightness(.82) saturate(1.05);
  transform:scale(1.03);
}
.ev-hero-overlay{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(90deg,rgba(11,15,61,.65) 0%,rgba(62,10,44,.55) 50%,rgba(62,10,44,.25) 100%),
    linear-gradient(180deg,transparent 50%,rgba(62,10,44,.5) 100%),
    radial-gradient(circle at 75% 30%,rgba(95,18,66,.28),transparent 60%);
}
.ev-hero-inner{position:relative;z-index:2;max-width:780px}
.ev-hero .hero-eyebrow{
  display:inline-flex;align-items:center;gap:12px;
  font-family:'Inter',sans-serif;font-size:.78rem;font-weight:600;
  letter-spacing:.24em;text-transform:uppercase;
  color:rgba(255,255,255,.88);margin-bottom:18px;
}
.ev-hero .hero-eyebrow::before{
  content:"";width:36px;height:1px;background:rgba(255,255,255,.7);
}
.ev-hero h1{
  color:#fff;font-size:clamp(2.6rem,5.4vw,4.2rem);
  letter-spacing:-.02em;line-height:1.08;font-weight:600;
}

/* intro */
.ev-intro{padding:100px 0 30px;background:var(--cream);text-align:center}
.ev-intro-head{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:clamp(1.6rem,2.8vw,2.2rem);font-weight:500;
  color:var(--plum-deep);line-height:1.4;letter-spacing:-.005em;
  max-width:900px;margin:0 auto;
}

/* 3-column features — site card pattern */
.ev-features{padding:50px 0 100px;background:var(--cream)}
.ev-feat-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
  max-width:1180px;margin:0 auto 50px;
}
.ev-feat{
  background:#fff;border:1px solid var(--line);border-radius:20px;
  padding:32px 28px 30px;
  display:flex;flex-direction:column;gap:14px;
  transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;
  position:relative;overflow:hidden;
}
.ev-feat::before{
  content:"";position:absolute;top:0;left:0;width:0;height:3px;
  background:linear-gradient(90deg,var(--plum),var(--wine));
  transition:width .4s ease;
}
.ev-feat:hover{
  transform:translateY(-5px);
  border-color:rgba(95,18,66,.3);
  box-shadow:0 28px 50px -22px rgba(62,10,44,.25);
}
.ev-feat:hover::before{width:100%}
.ev-feat-title{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:1.5rem;font-weight:500;
  color:var(--plum-deep);margin-bottom:4px;letter-spacing:-.005em;
}
.ev-feat-strong{
  font-family:'Fraunces',serif;font-weight:600;font-style:normal;
  color:var(--plum-deep);font-size:1rem;line-height:1.45;
}
.ev-feat p{font-size:.94rem;color:var(--ink-soft);line-height:1.7;margin:0}
.ev-feat-subhead{
  font-family:'Fraunces',serif;font-size:1.05rem;font-weight:600;font-style:italic;
  color:var(--plum);margin-top:8px;letter-spacing:.02em;
  display:inline-flex;align-items:center;gap:10px;
}
.ev-feat-subhead::before{
  content:"";width:18px;height:1px;background:var(--plum);
}
.ev-feat-list{
  list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;
}
.ev-feat-list li{
  position:relative;padding-left:22px;font-size:.94rem;line-height:1.55;color:var(--ink-soft);
}
.ev-feat-list li::before{
  content:"";position:absolute;left:0;top:9px;
  width:6px;height:6px;border-radius:50%;background:var(--plum);
  box-shadow:0 0 0 4px rgba(95,18,66,.1);
}

/* centered CTA (site btn-primary) */
.ev-cta-center{display:flex;justify-content:center;margin-top:30px}
.ev-cta-btn{padding:14px 30px;font-size:.95rem}

/* learn section */
.ev-learn{padding:100px 0;background:var(--sand);position:relative;overflow:hidden}
.ev-learn::before{
  content:"";position:absolute;top:-150px;right:-150px;
  width:500px;height:500px;border-radius:50%;
  background:radial-gradient(circle,rgba(95,18,66,.1),transparent 70%);
  pointer-events:none;
}
.ev-learn > .container{position:relative;z-index:1}
.ev-learn-head{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:clamp(1.8rem,3vw,2.4rem);
  font-weight:500;color:var(--plum-deep);
  text-align:center;margin-bottom:50px;
  max-width:880px;margin-left:auto;margin-right:auto;line-height:1.25;
  letter-spacing:-.01em;
}
.ev-learn-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:50px;
  max-width:1040px;margin:0 auto;align-items:start;
  background:#fff;border:1px solid var(--line);border-radius:24px;
  padding:48px 44px;
  box-shadow:0 28px 56px -28px rgba(62,10,44,.25);
}
.ev-learn-strong{
  font-family:'Fraunces',serif;font-weight:600;color:var(--plum-deep);
  font-size:1.02rem;line-height:1.5;margin-bottom:14px;
}
.ev-learn-sub{
  font-family:'Inter',sans-serif;color:var(--plum);
  font-weight:600;margin-bottom:12px;font-size:.78rem;
  letter-spacing:.18em;text-transform:uppercase;
}
.ev-learn-list{
  list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:11px;
}
.ev-learn-list li{
  position:relative;padding-left:24px;font-size:.94rem;line-height:1.55;color:var(--ink-soft);
}
.ev-learn-list li::before{
  content:"✓";position:absolute;left:0;top:1px;
  width:18px;height:18px;border-radius:50%;
  background:var(--plum);color:#fff;display:grid;place-items:center;
  font-size:.65rem;font-weight:700;
}
.ev-learn-right p{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:1.1rem;line-height:1.6;color:var(--plum-deep);font-weight:400;
}

/* dotted divider */
.ev-dot-divider{
  height:6px;max-width:200px;margin:50px auto 36px;
  background-image:radial-gradient(circle,var(--plum-soft) 1.5px,transparent 2px);
  background-size:14px 6px;background-repeat:repeat-x;background-position:center;
  opacity:.7;
}

/* quote block — matches ap-pullquote inline */
.ev-quote-block{
  max-width:780px;margin:0 auto 40px;text-align:center;position:relative;
}
.ev-quote-block::before{
  content:"\201C";position:absolute;top:-60px;left:50%;transform:translateX(-50%);
  font-family:'Fraunces',serif;font-size:6rem;line-height:1;
  color:var(--plum-soft);opacity:.4;pointer-events:none;
}
.ev-quote-block blockquote{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:clamp(1.2rem,2vw,1.5rem);
  line-height:1.45;color:var(--plum-deep);font-weight:400;margin-bottom:22px;
  position:relative;
}
.ev-quote-source{
  display:inline-flex;align-items:center;gap:14px;
  padding:10px 18px;background:#fff;border-radius:14px;
  border:1px solid var(--line);
  box-shadow:0 12px 24px -14px rgba(62,10,44,.2);
}
.ev-book-ic{
  display:inline-grid;place-items:center;
  width:36px;height:36px;border-radius:10px;
  background:linear-gradient(135deg,var(--plum),var(--wine));color:#fff;
}
.ev-quote-meta{display:flex;flex-direction:column;text-align:left;line-height:1.3}
.ev-quote-meta span{font-size:.82rem;color:var(--ink-soft);font-weight:500}
.ev-quote-meta em{
  font-family:'Fraunces',serif;font-style:italic;font-size:.92rem;
  color:var(--plum-deep);font-weight:600;
}

/* promise — card pattern like coffee CTA */
.ev-promise{
  padding:90px 0 110px;background:var(--cream);
}
.ev-promise > .container{max-width:860px}
.ev-promise-card{
  background:#fff;border:1px solid var(--line);border-radius:28px;
  padding:48px 52px;
  box-shadow:0 36px 70px -28px rgba(62,10,44,.3);
  position:relative;overflow:hidden;
}
.ev-promise-card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:4px;
  background:linear-gradient(90deg,var(--plum),var(--wine));
}
.ev-promise h2{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:clamp(1.8rem,2.8vw,2.2rem);font-weight:500;
  color:var(--plum-deep);
  margin-bottom:22px;letter-spacing:-.005em;
  display:inline-flex;align-items:center;gap:14px;
}
.ev-promise h2::before{
  content:"";width:36px;height:1px;background:var(--plum);
}
.ev-promise p{
  font-size:1rem;color:var(--ink-soft);line-height:1.75;
  margin-bottom:18px;
}
.ev-promise p:last-child{
  margin-bottom:0;font-family:'Fraunces',serif;font-style:italic;
  color:var(--plum-deep);font-size:1.05rem;
}

/* featured course */
.ev-featured{padding:100px 0;background:var(--cream);position:relative;overflow:hidden}
.ev-featured::before{
  content:"";position:absolute;top:-150px;right:-150px;
  width:500px;height:500px;border-radius:50%;
  background:radial-gradient(circle,rgba(95,18,66,.08),transparent 70%);
  pointer-events:none;
}
.ev-featured-grid{
  display:grid;grid-template-columns:1.15fr 1fr;gap:70px;align-items:start;
  position:relative;z-index:1;
}
.ev-featured-content h2{
  font-family:'Fraunces',serif;font-size:clamp(2rem,3.4vw,2.8rem);
  font-weight:600;color:var(--plum-deep);
  line-height:1.1;letter-spacing:-.015em;margin-bottom:18px;
}
.ev-accent{
  font-style:italic;font-weight:500;
  background:linear-gradient(120deg,var(--plum) 0%,var(--wine) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.ev-lead{
  font-size:1.1rem;line-height:1.65;color:var(--plum-deep);font-weight:500;
  margin-bottom:18px;
}
.ev-featured-content p{
  font-size:.98rem;color:var(--ink-soft);line-height:1.7;margin-bottom:20px;
}
.ev-benefits{
  list-style:none;padding:0 0 0 22px;margin:0 0 28px;
  display:flex;flex-direction:column;gap:12px;
  border-left:1px solid rgba(95,18,66,.25);
}
.ev-benefits li{
  position:relative;font-size:.96rem;line-height:1.55;color:var(--ink-soft);
}
.ev-benefits li::before{
  content:"";position:absolute;left:-26px;top:9px;
  width:6px;height:6px;border-radius:50%;background:var(--plum);
  box-shadow:0 0 0 4px rgba(95,18,66,.12);
}
.ev-meta{
  display:flex;gap:20px;flex-wrap:wrap;margin-bottom:28px;
  padding:18px 22px;background:#fff;border:1px solid var(--line);
  border-radius:14px;
}
.ev-meta-item{
  font-size:.88rem;color:var(--ink-soft);
  display:flex;flex-direction:column;gap:2px;
}
.ev-meta-item strong{
  font-family:'Fraunces',serif;font-size:1.1rem;font-weight:600;color:var(--plum-deep);
}
.ev-cta-row{display:flex;gap:12px;flex-wrap:wrap}

/* featured card (right) */
.ev-featured-card{
  background:linear-gradient(160deg,#fff 0%,#f9f6fb 100%);
  border:1px solid rgba(95,18,66,.18);border-radius:24px;
  padding:36px 32px;position:relative;
  box-shadow:0 30px 60px -26px rgba(62,10,44,.32);
  display:flex;flex-direction:column;gap:14px;
  position:sticky;top:110px;
}
.ev-card-tag{
  position:absolute;top:-12px;right:24px;
  background:var(--plum);color:#fff;
  padding:6px 14px;border-radius:999px;
  font-family:'Inter',sans-serif;font-size:.7rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;
}
.ev-card-icon{
  width:54px;height:54px;border-radius:14px;
  background:linear-gradient(135deg,var(--plum),var(--wine));
  color:#fff;display:grid;place-items:center;
  box-shadow:0 14px 26px -12px rgba(62,10,44,.5);
}
.ev-featured-card h3{
  font-family:'Fraunces',serif;font-size:1.5rem;font-weight:600;
  color:var(--plum-deep);line-height:1.2;
}
.ev-card-sub{font-size:.96rem;line-height:1.6;color:var(--ink-soft)}
.ev-card-list{
  list-style:none;padding:14px 0;margin:0;
  display:flex;flex-direction:column;gap:10px;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.ev-card-list li{
  display:flex;justify-content:space-between;align-items:center;
  font-size:.88rem;color:var(--muted);
}
.ev-card-list li strong{
  font-family:'Inter',sans-serif;color:var(--plum-deep);font-weight:600;
}
.ev-card-cta{justify-content:center;margin-top:6px}

/* modules section */
.ev-modules{padding:100px 0;background:var(--sand);position:relative;overflow:hidden}
.ev-section-head{text-align:center;max-width:700px;margin:0 auto 50px}
.ev-section-head .ap-eyebrow{justify-content:center}
.ev-section-head h2{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:clamp(1.9rem,3vw,2.4rem);font-weight:500;
  color:var(--plum-deep);margin-bottom:14px;letter-spacing:-.01em;
}
.ev-section-sub{color:var(--ink-soft);font-size:1rem;line-height:1.65}
.ev-module-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:22px;
  max-width:1100px;margin:0 auto;
}
.ev-module{
  background:#fff;border:1px solid var(--line);border-radius:18px;
  padding:28px 26px 26px;
  display:flex;flex-direction:column;gap:8px;
  position:relative;overflow:hidden;
  transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;
}
.ev-module::before{
  content:"";position:absolute;top:0;left:0;width:0;height:3px;
  background:linear-gradient(90deg,var(--plum),var(--wine));
  transition:width .4s ease;
}
.ev-module:hover{
  transform:translateY(-4px);
  border-color:rgba(95,18,66,.3);
  box-shadow:0 22px 40px -18px rgba(62,10,44,.22);
}
.ev-module:hover::before{width:100%}
.ev-module-num{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:1.6rem;color:var(--plum);font-weight:500;line-height:1;
}
.ev-module h3{
  font-family:'Fraunces',serif;font-size:1.2rem;font-weight:600;
  color:var(--plum-deep);line-height:1.25;
}
.ev-module p{font-size:.92rem;color:var(--ink-soft);line-height:1.55}
.ev-module-wide{grid-column:span 3;flex-direction:row;align-items:center;gap:24px;padding:24px 30px}
.ev-module-wide .ev-module-num{font-size:2.4rem}
.ev-module-wide h3{font-size:1.3rem;margin-bottom:4px}
.ev-module-wide > div{flex:1}

/* bonus */
.ev-bonus{padding:60px 0;background:var(--cream)}
.ev-bonus-grid{
  display:grid;grid-template-columns:auto 1fr;gap:36px;align-items:center;
  background:linear-gradient(135deg,var(--plum) 0%,var(--wine) 100%);
  color:#fff;padding:40px 50px;border-radius:24px;
  box-shadow:0 30px 60px -28px rgba(62,10,44,.5);
  position:relative;overflow:hidden;
}
.ev-bonus-grid::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 20% 30%,rgba(235,210,239,.16),transparent 55%),
    radial-gradient(circle at 80% 70%,rgba(11,15,61,.25),transparent 55%);
  pointer-events:none;
}
.ev-bonus-tag{
  position:relative;z-index:1;
  display:flex;flex-direction:column;gap:4px;align-items:center;
  padding:18px 24px;background:rgba(255,255,255,.12);
  border-radius:18px;border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(8px);min-width:140px;
}
.ev-bonus-eyebrow{
  font-family:'Inter',sans-serif;font-size:.72rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:var(--pink-light);
}
.ev-bonus-value{
  font-family:'Fraunces',serif;font-size:1.4rem;font-weight:600;font-style:italic;
}
.ev-bonus-content{position:relative;z-index:1}
.ev-bonus-content h2{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:clamp(1.5rem,2.4vw,2rem);font-weight:500;
  color:#fff;line-height:1.2;margin-bottom:8px;
}
.ev-bonus-content p{color:rgba(255,255,255,.88);font-size:.98rem;line-height:1.6}

/* quote */
.ev-quote{padding:80px 0;background:var(--cream);text-align:center}
.ev-quote > .container{max-width:820px}
.ev-quote-mark{
  font-family:'Fraunces',serif;font-size:5rem;line-height:1;
  color:var(--plum-soft);display:block;margin-bottom:-20px;opacity:.7;
}
.ev-quote blockquote{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:clamp(1.2rem,2.2vw,1.7rem);
  line-height:1.45;color:var(--plum-deep);font-weight:400;margin-bottom:16px;
}
.ev-quote-attrib{
  font-family:'Inter',sans-serif;font-size:.82rem;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
}
.ev-quote-attrib em{color:var(--plum);font-style:italic;text-transform:none;letter-spacing:0}

/* register cta */
.ev-register{padding:100px 0;background:var(--sand);position:relative;overflow:hidden}
.ev-register-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;
}
.ev-register-content h2{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:clamp(2rem,3vw,2.6rem);font-weight:500;
  color:var(--plum-deep);margin-bottom:16px;letter-spacing:-.01em;line-height:1.15;
}
.ev-register-content p{
  font-size:1rem;color:var(--ink-soft);line-height:1.65;margin-bottom:22px;
}
.ev-register-list{
  list-style:none;padding:0;margin:0;
  display:flex;flex-direction:column;gap:10px;
}
.ev-register-list li{
  position:relative;padding-left:26px;font-size:.95rem;line-height:1.55;color:var(--ink-soft);
}
.ev-register-list li::before{
  content:"✓";position:absolute;left:0;top:0;
  width:18px;height:18px;border-radius:50%;
  background:var(--plum);color:#fff;display:grid;place-items:center;
  font-size:.65rem;font-weight:700;
}

.ev-register-form{
  background:#fff;border:1px solid var(--line);border-radius:22px;
  padding:34px 32px 30px;
  box-shadow:0 30px 60px -26px rgba(62,10,44,.3);
  display:flex;flex-direction:column;gap:14px;
}
.ev-register-form h3{
  font-family:'Fraunces',serif;font-size:1.3rem;font-weight:600;
  color:var(--plum-deep);margin-bottom:6px;
}
.ev-register-form label{
  display:flex;flex-direction:column;gap:6px;
  font-family:'Inter',sans-serif;font-size:.78rem;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--plum-deep);
}
.ev-register-form input,
.ev-register-form select{
  font-family:'Inter',sans-serif;font-size:.95rem;font-weight:400;
  letter-spacing:normal;text-transform:none;color:var(--ink);
  padding:12px 16px;border:1.5px solid var(--line);border-radius:12px;
  background:var(--cream);
  transition:border-color .2s,background .2s;
}
.ev-register-form input:focus,
.ev-register-form select:focus{
  outline:none;border-color:var(--plum);background:#fff;
}
.ev-register-submit{justify-content:center;margin-top:6px}
.ev-register-fine{
  font-size:.78rem;color:var(--muted);text-align:center;
  font-style:italic;margin-top:4px;font-weight:400;
  letter-spacing:normal;text-transform:none;
}

/* promise */
.ev-promise{
  padding:100px 0 110px;background:var(--cream);text-align:center;position:relative;
}
.ev-promise > .container{max-width:760px}
.ev-promise-mark{
  display:inline-grid;place-items:center;
  width:60px;height:60px;border-radius:50%;
  background:linear-gradient(135deg,var(--plum),var(--wine));
  color:#fff;margin-bottom:18px;
  box-shadow:0 16px 32px -12px rgba(62,10,44,.45);
}
.ev-promise .ap-eyebrow{justify-content:center;margin-bottom:14px}
.ev-promise h2{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:clamp(2rem,3.2vw,2.6rem);font-weight:500;
  color:var(--plum-deep);margin-bottom:18px;letter-spacing:-.01em;
}
.ev-promise p{
  font-size:1.05rem;line-height:1.7;color:var(--ink-soft);
  max-width:640px;margin:0 auto 16px;
}
.ev-promise-sign{
  font-family:'Fraunces',serif;font-style:italic;font-size:1.15rem;
  color:var(--plum);font-weight:500;margin-top:14px !important;
}

@media (max-width:960px){
  .ev-hero{min-height:460px;padding:140px 0 50px}
  .ev-intro{padding:60px 0 30px}
  .ev-features{padding:30px 0 70px}
  .ev-feat-grid{grid-template-columns:1fr;gap:40px;max-width:640px}
  .ev-feat-divider{width:120px}
  .ev-learn{padding:50px 0 80px}
  .ev-learn-grid{grid-template-columns:1fr;gap:30px}
  .ev-promise{padding:70px 0 90px}
}
@media (max-width:640px){
  .ev-hero{min-height:400px;padding:130px 0 40px}
  .ev-hero h1{font-size:3rem}
  .ev-intro{padding:50px 0 20px}
  .ev-intro-head{font-size:1.4rem}
  .ev-features{padding:20px 0 60px}
  .ev-feat-grid{gap:36px}
  .ev-cta-pill{width:100%;text-align:center}
  .ev-learn{padding:40px 0 60px}
  .ev-learn-head{margin-bottom:30px}
  .ev-quote-source{flex-direction:column;gap:8px;text-align:center}
  .ev-quote-meta{text-align:center}
  .ev-promise{padding:60px 0 80px}
}

/* stats strip */
.ap-stats{padding:60px 0 20px;background:var(--cream)}
.ap-stats-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:30px;
  padding:36px 40px;border-radius:24px;
  background:#fff;border:1px solid var(--line);
  box-shadow:0 24px 50px -22px rgba(62,10,44,.2);
  position:relative;
}
.ap-stat{
  display:flex;flex-direction:column;gap:6px;align-items:flex-start;
  padding-left:24px;border-left:1px solid rgba(95,18,66,.18);
}
.ap-stat:first-child{padding-left:0;border-left:none}
.ap-stat-num{
  font-family:'Fraunces',serif;font-size:clamp(2.2rem,3.6vw,3rem);
  font-weight:600;line-height:1;color:var(--plum-deep);
  letter-spacing:-.02em;
}
.ap-stat-num .plus{
  font-family:'Fraunces',serif;font-style:italic;font-weight:500;
  color:var(--plum);font-size:.7em;margin-left:2px;
}
.ap-stat-label{
  font-family:'Inter',sans-serif;font-size:.82rem;line-height:1.4;
  color:var(--ink-soft);font-weight:500;
}

/* pull quote pink banner */
.ap-pullquote{
  padding:100px 0;text-align:center;color:#fff;position:relative;overflow:hidden;
  background:linear-gradient(135deg,var(--plum) 0%,var(--wine) 100%);
}
.ap-pullquote::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 20% 30%,rgba(235,210,239,.18),transparent 55%),
    radial-gradient(circle at 80% 70%,rgba(11,15,61,.28),transparent 55%);
  pointer-events:none;
}
.ap-pullquote > .container{position:relative;z-index:1;max-width:880px}
.ap-quote-mark{
  font-family:'Fraunces',serif;font-size:6rem;line-height:1;
  color:var(--pink-light);display:block;margin-bottom:-30px;opacity:.9;
}
.ap-pullquote blockquote{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:clamp(1.3rem,2.3vw,1.85rem);
  line-height:1.45;color:#fff;font-weight:400;margin-bottom:22px;
}
.ap-quote-attrib{
  font-family:'Inter',sans-serif;font-size:.82rem;font-weight:500;
  letter-spacing:.18em;text-transform:uppercase;color:var(--pink-light);
}

/* achievements */
.ap-achievements{padding:110px 0;background:var(--cream)}
.ap-section-head{margin-bottom:50px;max-width:680px}
.ap-section-head-center{text-align:center;margin:0 auto 50px}
.ap-section-head-center .ap-eyebrow{justify-content:center}
.ap-section-head h2{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:clamp(1.9rem,3vw,2.5rem);font-weight:500;
  color:var(--plum-deep);margin-bottom:14px;letter-spacing:-.01em;line-height:1.15;
}
.ap-section-sub{color:var(--ink-soft);font-size:1rem;line-height:1.65}
.ap-achievement-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
}
.ap-achievement-feature{
  grid-column:span 3;
  background:linear-gradient(135deg,var(--plum) 0%,var(--wine) 100%) !important;
  color:#fff;border:none !important;
}
.ap-achievement-feature .ap-ach-year{color:var(--pink-light) !important}
.ap-achievement-feature h3{color:#fff !important}
.ap-achievement-feature p{color:rgba(255,255,255,.85) !important}
.ap-achievement-feature::before{display:none}
.ap-achievement-feature:hover{
  transform:translateY(-4px);
  box-shadow:0 30px 60px -22px rgba(62,10,44,.5) !important;
}
.ap-achievement{
  background:#fff;border:1px solid var(--line);border-radius:20px;
  padding:30px 28px 28px;
  display:flex;flex-direction:column;gap:10px;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
  position:relative;overflow:hidden;
}
.ap-achievement::before{
  content:"";position:absolute;top:0;left:0;width:4px;height:0;
  background:linear-gradient(180deg,var(--plum),var(--wine));
  transition:height .35s ease;
}
.ap-achievement:hover{
  transform:translateY(-4px);
  box-shadow:0 24px 44px -18px rgba(62,10,44,.25);
  border-color:rgba(95,18,66,.3);
}
.ap-achievement:hover::before{height:100%}
.ap-ach-year{
  font-family:'Inter',sans-serif;font-size:.72rem;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:var(--plum);
}
.ap-achievement h3{
  font-family:'Fraunces',serif;font-size:1.25rem;font-weight:600;
  color:var(--plum-deep);line-height:1.25;
}
.ap-achievement p{font-size:.92rem;color:var(--ink-soft);line-height:1.6}

/* testimonials */
.ap-testimonials{padding:110px 0;background:var(--sand);position:relative;overflow:hidden}
.ap-testimonials::before{
  content:"";position:absolute;top:-100px;right:-100px;
  width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle,rgba(95,18,66,.1),transparent 70%);
  pointer-events:none;
}
.ap-testimonials > .container{position:relative;z-index:1}
.ap-testimonial-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
  grid-auto-flow:dense;
}
.ap-testimonial-feature{
  grid-column:span 2;grid-row:span 2;
  background:linear-gradient(135deg,#fff 0%,#f9f6fb 100%) !important;
  border:1px solid rgba(95,18,66,.18) !important;
}
.ap-testimonial-feature p{
  font-size:1.1rem;line-height:1.65;color:var(--plum-deep);
  font-style:italic;font-family:'Fraunces',serif;font-weight:400;
}
.ap-testimonial-feature::before{font-size:7rem;top:-26px;left:24px;opacity:.7}
.ap-testimonial{
  background:#fff;border-radius:20px;padding:36px 28px 26px;
  display:flex;flex-direction:column;justify-content:space-between;
  box-shadow:0 16px 36px -18px rgba(62,10,44,.2);
  border:1px solid var(--line);
  position:relative;
  transition:transform .3s ease,box-shadow .3s ease;
  grid-column:span 2;
}
.ap-testimonial::before{
  content:'"';position:absolute;top:-18px;left:22px;
  font-family:'Fraunces',serif;font-size:5rem;line-height:1;
  color:var(--plum-soft);opacity:.6;font-style:italic;
}
.ap-testimonial:hover{
  transform:translateY(-5px);
  box-shadow:0 30px 50px -20px rgba(62,10,44,.3);
}
.ap-testimonial p{
  font-size:.96rem;line-height:1.65;color:var(--ink-soft);
  margin-bottom:22px;position:relative;z-index:1;
}
.ap-testimonial-meta{
  display:flex;flex-direction:column;gap:3px;
  border-top:1px solid var(--line);padding-top:16px;
  background:transparent;
}
.ap-testimonial-meta strong{
  font-family:'Fraunces',serif;font-size:1.02rem;
  color:var(--plum-deep);font-weight:600;
}
.ap-testimonial-meta span{font-size:.82rem;color:var(--muted)}
.ap-testimonial-foot{
  margin-top:36px;text-align:center;
  font-family:'Fraunces',serif;font-style:italic;font-size:1rem;
  color:var(--plum-deep);
}

/* gallery marquee */
.ap-gallery-section{padding:90px 0 100px;background:var(--cream);overflow:hidden}
.ap-gallery-head{text-align:center;max-width:640px;margin:0 auto 50px}
.ap-gallery-head .ap-eyebrow{justify-content:center}
.ap-gallery-head h2{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:clamp(1.9rem,3vw,2.5rem);font-weight:500;
  color:var(--plum-deep);margin-bottom:14px;
}
.ap-gallery-head p{color:var(--ink-soft);font-size:1rem;line-height:1.6}

.ap-marquee{
  width:100%;overflow:hidden;padding:14px 0;
  -webkit-mask:linear-gradient(90deg,transparent 0,#000 90px,#000 calc(100% - 90px),transparent 100%);
  mask:linear-gradient(90deg,transparent 0,#000 90px,#000 calc(100% - 90px),transparent 100%);
}
.ap-marquee-track{
  display:flex;gap:18px;width:max-content;
  animation:ap-marquee-scroll 55s linear infinite;
  will-change:transform;
}
.ap-marquee-track img{
  height:280px;width:auto;display:block;
  border-radius:18px;object-fit:cover;flex-shrink:0;
  box-shadow:0 18px 36px -18px rgba(62,10,44,.3);
  transition:transform .4s ease,box-shadow .4s ease,filter .4s ease;
}
.ap-marquee:hover .ap-marquee-track{animation-play-state:paused}
.ap-marquee-track img:hover{
  transform:translateY(-4px) scale(1.025);
  box-shadow:0 28px 50px -18px rgba(62,10,44,.42);
  filter:brightness(1.04) saturate(1.06);
}
@keyframes ap-marquee-scroll{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
@media (prefers-reduced-motion:reduce){
  .ap-marquee-track{animation:none}
}

/* coffee cta */
.ap-coffee-cta{padding:90px 0 110px;background:var(--cream)}
.ap-coffee-card{
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  background:#fff;border-radius:28px;overflow:hidden;
  box-shadow:0 36px 70px -28px rgba(62,10,44,.35);
  border:1px solid var(--line);
}
.ap-coffee-img{aspect-ratio:4/3;overflow:hidden}
.ap-coffee-img img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .6s ease;
}
.ap-coffee-card:hover .ap-coffee-img img{transform:scale(1.04)}
.ap-coffee-content{
  padding:50px;
  display:flex;flex-direction:column;justify-content:center;
}
.ap-coffee-content h2{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:clamp(1.8rem,2.8vw,2.3rem);font-weight:500;
  color:var(--plum-deep);margin-bottom:18px;letter-spacing:-.01em;
}
.ap-coffee-content p{
  font-size:1rem;color:var(--ink-soft);line-height:1.7;margin-bottom:28px;
}
.ap-coffee-content p strong{color:var(--plum-deep);font-weight:600}
.ap-coffee-actions{display:flex;gap:12px;flex-wrap:wrap}

/* responsive */
@media (max-width:960px){
  .ap-story{padding:90px 0}
  .ap-story-grid{grid-template-columns:1fr;gap:60px}
  .ap-story-imgs{max-width:none;margin:0 auto;aspect-ratio:4/4.2;max-width:520px}
  .ap-stats-grid{grid-template-columns:1fr 1fr;gap:24px;padding:30px}
  .ap-stat{padding-left:0;border-left:none}
  .ap-stat:nth-child(odd){padding-right:24px;border-right:1px solid rgba(95,18,66,.18)}
  .ap-pullquote,.ap-achievements,.ap-testimonials,.ap-gallery-section{padding:80px 0}
  .ap-achievement-grid{grid-template-columns:1fr 1fr}
  .ap-achievement-feature{grid-column:span 2}
  .ap-testimonial-grid{grid-template-columns:repeat(2,1fr);gap:20px}
  .ap-testimonial,.ap-testimonial-feature{grid-column:span 1;grid-row:auto}
  .ap-testimonial-feature{grid-column:span 2}
  .ap-coffee-card{grid-template-columns:1fr}
  .ap-coffee-img{aspect-ratio:16/9}
  .ap-coffee-content{padding:36px 32px 40px}
  .ap-marquee-track img{height:220px;border-radius:14px}
}
@media (max-width:640px){
  .ap-hero{min-height:480px;padding:140px 0 60px}
  .ap-story,.ap-pullquote,.ap-achievements,.ap-testimonials{padding:60px 0}
  .ap-stats{padding:40px 0 10px}
  .ap-stats-grid{grid-template-columns:1fr;gap:18px;padding:24px}
  .ap-stat{padding:0 !important;border:none !important;align-items:center;text-align:center}
  .ap-stat:not(:last-child){padding-bottom:18px !important;border-bottom:1px solid rgba(95,18,66,.15) !important}
  .ap-gallery-section{padding:60px 0 70px}
  .ap-coffee-cta{padding:60px 0 80px}
  .ap-story-grid{gap:50px}
  .ap-story-imgs{aspect-ratio:4/4.5}
  .ap-story-badge{bottom:14px;left:14px;padding:10px 14px}
  .ap-story-badge .badge-title{font-size:.95rem}
  .ap-achievement-grid{grid-template-columns:1fr}
  .ap-achievement-feature{grid-column:span 1}
  .ap-testimonial-grid{grid-template-columns:1fr;gap:16px}
  .ap-testimonial,.ap-testimonial-feature{grid-column:span 1}
  .ap-testimonial{padding:32px 22px 22px}
  .ap-testimonial-feature p{font-size:1rem}
  .ap-quote-mark{font-size:4.5rem;margin-bottom:-20px}
  .ap-marquee-track img{height:170px;border-radius:12px}
  .ap-marquee-track{gap:10px;animation-duration:40s}
  .ap-coffee-content{padding:30px 24px 32px}
  .ap-coffee-actions .btn{width:100%;justify-content:center}
}

/* ============================================================
   WooCommerce — brand pass over shop / cart / checkout / product
   ============================================================ */
.gfg-wc-wrap{font-family:'Inter',sans-serif;color:var(--ink-soft)}
/* Top/bottom clearance for cart/checkout/single-product (the fixed nav sits above).
   Longhand so the .container's left/right padding (page gutters) is preserved —
   the old inline `padding:140px 0 80px` zeroed the side padding, which made the
   content go edge-to-edge on mobile. */
.gfg-wc-wrap{padding-top:140px;padding-bottom:80px}
/* Single product opens with its own .sp-breadcrumb (120px top clears the nav), so
   the wrapper must not add a second big gap. */
.single-product .gfg-wc-wrap{padding-top:0}
.gfg-wc-wrap h1,
.gfg-wc-wrap h2{
  font-family:'Fraunces',serif;color:var(--plum-deep);font-weight:500;
}
.gfg-wc-wrap h1{font-size:clamp(1.8rem,3.4vw,2.6rem);line-height:1.18;margin:0 0 24px}
.gfg-wc-wrap h2{font-size:clamp(1.35rem,2.2vw,1.7rem);margin:32px 0 16px}
.gfg-wc-wrap p{font-size:.98rem;line-height:1.65}
.gfg-wc-wrap a{color:var(--plum)}
.gfg-wc-wrap a:hover{color:var(--plum-deep)}
/* Theme .btn links inside the WC wrapper must keep their own colours — the generic
   ".gfg-wc-wrap a" rule above is more specific than .btn-primary and was painting the
   filled "Browse the shop" button's label plum-on-plum (invisible). */
.gfg-wc-wrap a.btn-primary,
.gfg-wc-wrap a.btn-primary:hover{color:#fff}
.gfg-wc-wrap a.btn-ghost{color:var(--plum-deep)}
.gfg-wc-wrap a.btn-ghost:hover{color:#fff}

/* WooCommerce notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error{
  position:relative;border-radius:var(--radius);
  padding:16px 22px 16px 54px;border-top:0!important;
  background:#fff;border:1px solid var(--line);
  font-family:'Inter',sans-serif;
}
.woocommerce-message{border-left:4px solid var(--plum)}
.woocommerce-info{border-left:4px solid #4a90e2}
.woocommerce-error{border-left:4px solid #c0392b}
/* WooCommerce's checkmark icon is absolutely positioned at left:1.5em by default,
   which overlapped the text once we tightened the padding. Pin it into the 54px
   left gutter we now reserve, vertically centred — no overlap. */
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before{
  position:absolute;left:20px;top:16px;margin:0;line-height:1.5;
}
.woocommerce-message::before{color:var(--plum)}
.woocommerce-info::before{color:#4a90e2}
.woocommerce-error::before{color:#c0392b}

/* Buttons — pill shape, plum primary */
.woocommerce .button,
.woocommerce input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.gfg-wc-wrap .button{
  display:inline-flex;align-items:center;gap:8px;
  padding:12px 26px;border-radius:999px;
  background:var(--plum);color:#fff;border:0;
  font-family:inherit;font-size:.92rem;font-weight:600;
  cursor:pointer;text-decoration:none;transition:all .2s;
}
.woocommerce .button:hover,
.woocommerce input[type="submit"]:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover{background:var(--plum-deep);color:#fff}
.woocommerce .button.alt,
.woocommerce a.checkout-button,
.woocommerce button.button.alt{background:var(--plum-deep);color:#fff}
.woocommerce .button.alt:hover{background:var(--plum)}

/* Shop / product grid */
.woocommerce ul.products{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;list-style:none;padding:0;margin:0 0 50px}
.woocommerce ul.products li.product{margin:0;text-align:left}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-family:'Fraunces',serif;font-size:1.15rem;font-weight:500;color:var(--plum-deep);padding:14px 0 4px}
.woocommerce ul.products li.product .price{color:var(--plum);font-weight:600;font-size:1rem}
.woocommerce ul.products li.product img{border-radius:var(--radius)}
.woocommerce ul.products li.product .button{margin-top:10px}

/* Single product */
.single-product .product{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:start}
.single-product .product .images img{border-radius:var(--radius-lg)}
.single-product .summary .product_title{font-family:'Fraunces',serif;color:var(--plum-deep);font-weight:500}
.single-product .summary .price{color:var(--plum);font-size:1.5rem;font-weight:600;margin:8px 0 20px}
.single-product .quantity input{padding:10px 12px;border:1px solid var(--line);border-radius:10px;width:80px;text-align:center}
.single-product form.cart{display:flex;align-items:center;gap:12px;margin:20px 0 28px;background:none;border:0;border-radius:0;padding:0}
.woocommerce-tabs{margin-top:40px}
.woocommerce-tabs ul.tabs{padding:0;border-bottom:1px solid var(--line)}
.woocommerce-tabs ul.tabs li{background:transparent;border:0;margin:0 4px 0 0!important;padding:0!important;border-radius:0!important}
.woocommerce-tabs ul.tabs li a{padding:12px 18px;color:var(--ink-soft);font-weight:600;border-bottom:2px solid transparent}
.woocommerce-tabs ul.tabs li.active a{color:var(--plum);border-bottom-color:var(--plum)}

/* Cart + checkout tables */
.woocommerce table.shop_table{
  border:1px solid var(--line);border-radius:var(--radius);
  background:#fff;border-collapse:separate;border-spacing:0;
  font-family:'Inter',sans-serif;
}
.woocommerce table.shop_table th{
  background:transparent;color:var(--plum-deep);font-family:'Inter',sans-serif;
  font-weight:600;padding:14px 18px;border-bottom:1px solid var(--line);
}
.woocommerce table.shop_table td{padding:18px;border-bottom:1px solid var(--line)}
.woocommerce table.shop_table tr:last-child td{border-bottom:0}
.woocommerce .cart_totals h2{margin-top:0}
.woocommerce .cart-collaterals .cart_totals{padding:24px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}

/* Checkout form fields */
.woocommerce form .form-row label{font-size:.85rem;font-weight:600;color:var(--ink-soft);margin-bottom:6px;display:inline-block}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select{
  width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:10px;
  font-family:inherit;font-size:.95rem;background:#fff;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus{outline:0;border-color:var(--plum);box-shadow:0 0 0 3px rgba(95,18,66,.12)}
.woocommerce-checkout #payment{background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.woocommerce-checkout #payment ul.payment_methods{padding:18px;border-bottom:1px solid var(--line)}
.woocommerce-checkout #payment div.payment_box{background:var(--cream);border-radius:10px}

/* Cart count badge in nav */
.nav .cart .cart-total{font-weight:600;color:var(--plum-deep)}
/* White cart total when the nav sits on a dark/plum background (scrolled or
   dark-hero pages) — otherwise the $0.00 stays dark plum and is unreadable. */
.nav.scrolled .cart .cart-total,
.nav.scrolled .cart .cart-total *,
.book-page .nav:not(.scrolled) .cart .cart-total,
.wwd-page .nav:not(.scrolled) .cart .cart-total,
.ap-page .nav:not(.scrolled) .cart .cart-total,
.ev-page .nav:not(.scrolled) .cart .cart-total{color:#fff}
.nav .cart .cart-count{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:20px;height:20px;border-radius:999px;
  background:var(--plum);color:#fff!important;opacity:1!important;
  font-size:.72rem;font-weight:700;padding:0 6px;margin-left:6px;
}

/* Responsive */
@media (max-width:900px){
  .single-product .product{grid-template-columns:1fr;gap:24px}
  .woocommerce ul.products{grid-template-columns:repeat(2,1fr);gap:20px}
}
@media (max-width:560px){
  .woocommerce ul.products{grid-template-columns:1fr}
}

/* ============================================================
   Mini-cart dropdown + custom cart page
   ============================================================ */
.cart-wrap{position:relative}
.nav .cart{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 14px;border-radius:999px;
  background:#fff;border:1px solid var(--line);
  color:var(--plum-deep);font-weight:600;font-size:.88rem;
  cursor:pointer;transition:all .2s;text-decoration:none;
}
.nav .cart:hover{border-color:var(--plum);color:var(--plum)}
.nav .cart .ic{font-size:1rem}

.cart-dropdown{
  position:absolute;top:calc(100% + 14px);right:0;
  width:340px;max-width:90vw;
  background:#fff;border:1px solid var(--line);border-radius:18px;
  box-shadow:0 24px 60px -22px rgba(62,10,44,.28);
  padding:18px 18px 16px;z-index:60;
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .18s,transform .18s,visibility .18s;
}
.cart-wrap.open .cart-dropdown,
.cart-wrap:hover .cart-dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.cart-dropdown::before{
  content:"";position:absolute;top:-6px;right:24px;width:12px;height:12px;
  background:#fff;border-left:1px solid var(--line);border-top:1px solid var(--line);
  transform:rotate(45deg);
}
.cart-dropdown-head{padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:10px}
.cart-dropdown-head .eyebrow{display:inline-flex}

.mini-cart-items{list-style:none;padding:0;margin:0;max-height:300px;overflow-y:auto}
.mini-cart-items::-webkit-scrollbar{width:6px}
.mini-cart-items::-webkit-scrollbar-thumb{background:rgba(95,18,66,.25);border-radius:999px}
.mini-cart-item{
  display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;
  padding:10px 0;border-bottom:1px solid rgba(0,0,0,.04);
}
.mini-cart-item:last-child{border-bottom:0}
.mini-cart-thumb img{width:52px;height:52px;border-radius:10px;object-fit:cover;display:block}
.mini-cart-meta{display:flex;flex-direction:column;gap:2px;min-width:0}
.mini-cart-name{
  font-family:"Fraunces",serif;font-size:.95rem;color:var(--plum-deep);
  font-weight:500;line-height:1.25;text-decoration:none;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.mini-cart-name:hover{color:var(--plum)}
.mini-cart-qty{font-size:.78rem;color:var(--muted);font-weight:500}
.mini-cart-remove{
  width:22px;height:22px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  color:var(--muted);font-size:1rem;line-height:1;background:transparent;
  text-decoration:none;transition:all .2s;
}
.mini-cart-remove:hover{background:rgba(95,18,66,.08);color:var(--plum)}

.mini-cart-subtotal{
  display:flex;justify-content:space-between;align-items:center;
  margin-top:12px;padding-top:12px;border-top:1px solid var(--line);
  font-size:.92rem;
}
.mini-cart-subtotal strong{font-family:"Fraunces",serif;color:var(--plum-deep);font-size:1.05rem;font-weight:600}

.mini-cart-actions{display:flex;gap:8px;margin-top:14px}
.mini-cart-actions .btn{flex:1;justify-content:center;padding:10px 12px;font-size:.85rem}
.mini-cart-actions .mini-cart-view{background:transparent;color:var(--plum-deep);border:1px solid var(--line)}
.mini-cart-actions .mini-cart-view:hover{background:var(--cream);border-color:var(--plum);color:var(--plum)}

.mini-cart-empty{text-align:center;padding:18px 8px 6px}
.mini-cart-empty .ic{font-size:1.8rem;display:block;margin-bottom:8px;opacity:.55}
.mini-cart-empty p{font-size:.9rem;color:var(--muted);margin:0 0 14px}
.mini-cart-empty .btn{width:100%;justify-content:center}

/* ---- Cart page ---- */
.gfg-cart{max-width:1140px;margin:0 auto;font-family:"Inter",sans-serif}
.gfg-cart-head{margin-bottom:36px}
.gfg-cart-head h1{
  font-family:"Fraunces",serif;font-size:clamp(2rem,4vw,2.8rem);line-height:1.15;
  color:var(--plum-deep);font-weight:500;margin:8px 0 12px;
}
.gfg-cart-sub{color:var(--ink-soft);font-size:1rem;margin:0;max-width:580px}

.gfg-cart-grid{display:grid;grid-template-columns:1fr 360px;gap:40px;align-items:start}
.gfg-cart-items{display:flex;flex-direction:column;gap:14px}
.gfg-cart-item{
  display:grid;grid-template-columns:100px 1fr 140px 100px 32px;gap:18px;align-items:center;
  padding:18px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:0 6px 22px -16px rgba(62,10,44,.28);transition:box-shadow .2s,transform .2s,border-color .2s;
}
.gfg-cart-item:hover{box-shadow:0 14px 32px -18px rgba(62,10,44,.32);border-color:rgba(95,18,66,.25)}
.gci-thumb img{width:100px;height:100px;border-radius:14px;object-fit:cover;display:block}
.gci-meta{display:flex;flex-direction:column;gap:4px;min-width:0}
.gci-name{
  font-family:"Fraunces",serif;font-size:1.05rem;color:var(--plum-deep);
  font-weight:500;line-height:1.25;text-decoration:none;
}
.gci-name:hover{color:var(--plum)}
.gci-price{color:var(--muted);font-size:.88rem;font-weight:500}
.gci-qty .quantity{display:inline-flex;align-items:center}
.gci-qty input[type="number"]{
  width:62px;padding:8px 6px;border:1px solid var(--line);border-radius:10px;
  font-family:inherit;font-size:.92rem;text-align:center;background:#fff;
}
.gci-subtotal{font-family:"Fraunces",serif;color:var(--plum-deep);font-weight:600;font-size:1.05rem;text-align:right}
.gci-remove{
  width:30px;height:30px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  color:var(--muted);font-size:1.1rem;line-height:1;
  background:transparent;text-decoration:none;transition:all .2s;
}
.gci-remove:hover{background:rgba(95,18,66,.08);color:var(--plum)}

.gfg-cart-footer{
  display:flex;justify-content:space-between;align-items:center;gap:16px;
  flex-wrap:wrap;margin-top:18px;padding-top:18px;border-top:1px solid var(--line);
}
.gfg-cart-coupon{display:flex;gap:8px;align-items:center;flex:1;min-width:240px}
.gfg-coupon-input{
  padding:11px 14px;border:1px solid var(--line);border-radius:999px;
  background:#fff;font-family:inherit;font-size:.92rem;min-width:180px;
}
.gfg-coupon-input:focus{outline:0;border-color:var(--plum)}
.gfg-update-cart{margin-left:auto}

.gfg-cart-continue{margin:24px 0 0;font-size:.92rem}
.gfg-cart-continue a{color:var(--plum);font-weight:500;text-decoration:none}
.gfg-cart-continue a:hover{color:var(--plum-deep)}

.gfg-cart-totals{position:sticky;top:120px}
.gfg-totals-inner{
  padding:28px 26px 26px;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);box-shadow:0 18px 44px -26px rgba(62,10,44,.35);
}
.gfg-totals-inner h2{
  font-family:"Fraunces",serif;font-size:1.4rem;color:var(--plum-deep);
  font-weight:500;margin:6px 0 18px;
}
.cart_totals h2{display:none}
.cart_totals table.shop_table{
  width:100%;border:0;background:transparent;
}
.cart_totals table.shop_table th,
.cart_totals table.shop_table td{
  padding:10px 0!important;border:0!important;
  font-family:"Inter",sans-serif;font-size:.95rem;color:var(--ink-soft);
  vertical-align:top!important;
}
.cart_totals table.shop_table th{
  font-weight:500;color:var(--ink-soft);width:1%;white-space:nowrap;
  padding-right:18px!important;
}
.cart_totals table.shop_table td{padding-left:0!important}
.cart_totals table.shop_table tr.order-total th,
.cart_totals table.shop_table tr.order-total td{
  padding-top:14px!important;border-top:1px solid var(--line)!important;
  font-family:"Fraunces",serif;font-size:1.15rem;color:var(--plum-deep);font-weight:600;
}
.cart_totals .shipping-calculator-button{color:var(--plum);font-weight:600}

/* Compact shipping row — keep cost, address + change link tight on one
   line each so the totals box stays scannable */
.cart_totals .shipping td{line-height:1.45}
.cart_totals .shipping td > *{margin:0!important;padding:0}
.cart_totals .shipping ul#shipping_method{
  list-style:none!important;padding:0!important;margin:0!important;
}
.cart_totals .shipping ul#shipping_method li{
  margin:0!important;padding:0!important;display:flex;align-items:center;gap:6px;
}
.cart_totals .shipping ul#shipping_method li label{font-weight:500;color:var(--plum-deep);margin:0!important}
.cart_totals .shipping .woocommerce-shipping-destination{
  display:inline;font-size:.82rem;color:var(--muted);margin-top:2px!important;
}
.cart_totals .shipping .woocommerce-shipping-destination strong{font-weight:500;color:var(--ink-soft)}
.cart_totals .shipping .woocommerce-shipping-calculator{display:inline;margin:0 0 0 4px!important}
.cart_totals .shipping .woocommerce-shipping-calculator::before{content:" · ";color:var(--muted)}
.cart_totals .shipping .woocommerce-shipping-calculator a{font-size:.82rem;color:var(--plum);font-weight:500}
.cart_totals .shipping .woocommerce-shipping-calculator a:hover{color:var(--plum-deep)}
.cart_totals .wc-proceed-to-checkout{margin-top:18px;padding:0}
.cart_totals .checkout-button,
.woocommerce .cart_totals a.checkout-button,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button{
  display:block!important;width:100%!important;
  text-align:center!important;justify-content:center!important;
  padding:14px 22px!important;font-size:1rem!important;
  background:var(--plum)!important;color:#fff!important;
  border:0!important;border-radius:999px!important;
  font-family:'Inter',sans-serif!important;font-weight:600!important;
  text-decoration:none!important;transition:background .2s!important;
}
.cart_totals .checkout-button:hover,
.woocommerce .cart_totals a.checkout-button:hover,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover{
  background:var(--plum-deep)!important;color:#fff!important;
}

/* ---- Cross-sells ("You may be interested in…") — full-width row below the cart,
   overriding the cramped 3-col shop grid that broke product names into one word
   per line inside the old sidebar. ---- */
.gfg-cart .cross-sells{margin-top:54px;padding-top:40px;border-top:1px solid var(--line)}
.gfg-cart .cross-sells > h2{
  font-family:"Fraunces",serif;font-size:clamp(1.4rem,2.2vw,1.7rem);
  color:var(--plum-deep);font-weight:500;margin:0 0 24px;
}
.gfg-cart .cross-sells ul.products{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:26px;margin:0;padding:0;list-style:none;justify-content:start;
}
/* WooCommerce adds a clearfix ::before/::after on ul.products. Inside a grid these
   become phantom grid items that occupied column 1 and shoved the first card into
   column 2 (the left-gap you saw). Remove them so cards start flush-left. */
.gfg-cart .cross-sells ul.products::before,
.gfg-cart .cross-sells ul.products::after{display:none}
.gfg-cart .cross-sells ul.products li.product{
  /* override WooCommerce's default ul.products li.product width/float (48% +
     float:left for .columns-2) so the grid controls the card width — without this
     each card collapses to ~half a track and the text squishes vertically. */
  width:auto!important;float:none!important;clear:none!important;margin:0;
  padding:16px;background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);box-shadow:0 6px 22px -16px rgba(62,10,44,.28);
  transition:box-shadow .2s,transform .2s,border-color .2s;
}
.gfg-cart .cross-sells ul.products li.product:hover{
  box-shadow:0 16px 34px -18px rgba(62,10,44,.34);transform:translateY(-2px);
  border-color:rgba(95,18,66,.25);
}
.gfg-cart .cross-sells ul.products li.product a img{
  width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px;margin-bottom:6px;
}
.gfg-cart .cross-sells ul.products li.product .woocommerce-loop-product__title{
  font-size:1.05rem;line-height:1.3;padding:8px 0 4px;
}
.gfg-cart .cross-sells ul.products li.product .price{font-size:.95rem}
.gfg-cart .cross-sells ul.products li.product .button{margin-top:12px}

.gfg-cart-empty-page{text-align:center;padding:60px 20px}
.gfg-cart-empty-page .gfg-cart-head{margin-bottom:0}
/* Centre the max-width:580px subtext block on the empty-cart page (it stays
   left-aligned on the normal cart, where margin:0 is correct). */
.gfg-cart-empty-page .gfg-cart-sub{margin-left:auto;margin-right:auto}
.gfg-cart-empty-page .gfg-empty-actions{
  display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:24px;
}

@media (max-width:900px){
  .gfg-cart-grid{grid-template-columns:1fr}
  .gfg-cart-totals{position:static}
  .gfg-cart-item{grid-template-columns:80px 1fr 32px;grid-template-areas:"thumb meta remove" "thumb qty qty" "thumb sub sub";gap:10px 14px}
  .gci-thumb{grid-area:thumb}
  .gci-meta{grid-area:meta}
  .gci-qty{grid-area:qty}
  .gci-subtotal{grid-area:sub;text-align:left}
  .gci-remove{grid-area:remove;justify-self:end;align-self:start}
}


/* ============================================================
   Checkout page — brand-matched 2-col layout
   ============================================================ */
.gfg-checkout{max-width:1180px;margin:0 auto;font-family:"Inter",sans-serif}
.gfg-checkout .gfg-cart-head{margin-bottom:36px}

.gfg-checkout-grid{display:grid;grid-template-columns:1fr 380px;gap:40px;align-items:start}
.gfg-checkout-main{display:flex;flex-direction:column;gap:24px;min-width:0}

.gfg-co-section{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:28px 30px;
}
.gfg-co-section-head{margin-bottom:22px}
.gfg-co-section-head h2{
  font-family:"Fraunces",serif;font-size:1.5rem;color:var(--plum-deep);
  font-weight:500;margin:8px 0 0;line-height:1.15;
}

/* Form fields */
.gfg-checkout .form-row{display:flex;flex-direction:column;gap:6px;margin:0 0 16px}
.gfg-checkout .form-row label{
  font-size:.82rem;font-weight:600;color:var(--ink-soft);
  letter-spacing:.02em;
}
.gfg-checkout .form-row .required{color:var(--plum);text-decoration:none}
.gfg-checkout .form-row .optional{color:var(--muted);font-weight:400;font-size:.78rem;margin-left:4px}
.gfg-checkout .form-row .input-text,
.gfg-checkout .form-row textarea,
.gfg-checkout .form-row select{
  width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:12px;
  font-family:inherit;font-size:.95rem;color:var(--plum-deep);background:#fff;
  transition:border-color .2s,box-shadow .2s;box-sizing:border-box;
}
.gfg-checkout .form-row .input-text:focus,
.gfg-checkout .form-row textarea:focus,
.gfg-checkout .form-row select:focus{
  outline:0;border-color:var(--plum);
  box-shadow:0 0 0 3px rgba(95,18,66,.12);
}
.gfg-checkout .form-row textarea{min-height:90px;resize:vertical}
.gfg-checkout .col2-set{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.gfg-checkout .col2-set .col-1,
.gfg-checkout .col2-set .col-2{padding:0;float:none;width:auto}
.gfg-checkout .form-row-first,
.gfg-checkout .form-row-last,
.gfg-checkout .form-row-wide{width:100%!important}
.gfg-checkout #customer_details > .col2-set{
  display:grid;grid-template-columns:1fr 1fr;gap:30px;
}

.gfg-checkout h3{
  font-family:"Fraunces",serif;font-size:1.2rem;color:var(--plum-deep);
  font-weight:500;margin:18px 0 14px;
}

/* Select2 / styled selects */
.gfg-checkout .select2-container--default .select2-selection--single{
  height:46px;border:1px solid var(--line)!important;border-radius:12px!important;
  background:#fff!important;
}
.gfg-checkout .select2-container--default .select2-selection--single .select2-selection__rendered{
  line-height:44px!important;color:var(--plum-deep)!important;padding-left:14px!important;
}
.gfg-checkout .select2-container--default .select2-selection--single .select2-selection__arrow{height:44px!important}

/* Ship to different address */
.gfg-checkout #ship-to-different-address label{
  display:inline-flex;align-items:center;gap:8px;font-family:"Fraunces",serif;
  font-size:1.05rem;color:var(--plum-deep);font-weight:500;
}

/* Payment box */
.woocommerce-checkout #payment{
  background:var(--cream)!important;border:1px solid var(--line)!important;
  border-radius:var(--radius)!important;padding:6px;margin-top:6px;
}
.woocommerce-checkout #payment ul.payment_methods{
  padding:14px 18px!important;border-bottom:1px solid var(--line)!important;
  background:transparent!important;list-style:none;margin:0;
}
.woocommerce-checkout #payment ul.payment_methods li{
  padding:10px 0!important;border:0!important;background:transparent!important;
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
}
.woocommerce-checkout #payment ul.payment_methods li input[type="radio"]{margin:0 6px 0 0;accent-color:var(--plum)}
.woocommerce-checkout #payment ul.payment_methods li label{
  font-family:"Fraunces",serif!important;font-size:1.05rem;color:var(--plum-deep);font-weight:500;
  margin:0!important;display:inline-flex;align-items:center;gap:10px;
}
.woocommerce-checkout #payment ul.payment_methods li .payment_box{
  width:100%;background:#fff!important;border:1px solid var(--line)!important;
  border-radius:12px!important;padding:14px 16px!important;
  font-size:.9rem;color:var(--ink-soft);margin-top:10px;
}
.woocommerce-checkout #payment ul.payment_methods li .payment_box::before{display:none!important}
.woocommerce-checkout #payment .place-order{padding:18px;background:transparent;border-top:0}
.woocommerce-checkout #payment .terms{margin-bottom:14px;font-size:.85rem;color:var(--muted)}

#place_order{
  display:block!important;width:100%!important;
  background:var(--plum)!important;color:#fff!important;border:0!important;
  padding:16px 24px!important;border-radius:999px!important;
  font-family:"Inter",sans-serif!important;font-size:1.02rem!important;font-weight:600!important;
  cursor:pointer;transition:background .2s!important;letter-spacing:.01em;
}
#place_order:hover{background:var(--plum-deep)!important}

/* Right column: order summary */
.gfg-checkout-summary{position:sticky;top:100px}
.gfg-checkout-summary .gfg-totals-inner{padding:26px 24px 22px}
.gfg-checkout-summary h2{
  font-family:"Fraunces",serif;font-size:1.4rem;color:var(--plum-deep);
  font-weight:500;margin:6px 0 18px;
}
.gfg-summary-items{list-style:none;padding:0;margin:0 0 14px;display:flex;flex-direction:column;gap:10px}
.gfg-summary-items li{
  display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;
  padding-bottom:10px;border-bottom:1px solid rgba(0,0,0,.05);
}
.gfg-summary-items li:last-child{border-bottom:0}
.gsi-thumb img{width:48px;height:48px;border-radius:10px;object-fit:cover;display:block}
.gsi-meta{display:flex;flex-direction:column;gap:2px;min-width:0}
.gsi-name{
  font-family:"Fraunces",serif;font-size:.95rem;color:var(--plum-deep);font-weight:500;line-height:1.25;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.gsi-qty{font-size:.78rem;color:var(--muted);font-weight:500}
.gsi-sub{font-family:"Fraunces",serif;color:var(--plum-deep);font-weight:600;font-size:.92rem}

.gfg-summary-table{width:100%;border:0!important;background:transparent;margin:0!important}
.gfg-summary-table th,
.gfg-summary-table td{
  padding:10px 0!important;border:0!important;vertical-align:top!important;
  font-family:"Inter",sans-serif;font-size:.92rem;color:var(--ink-soft);
}
.gfg-summary-table th{
  font-weight:500;color:var(--ink-soft);width:1%;white-space:nowrap;padding-right:18px!important;
}
.gfg-summary-table td{padding-left:0!important;text-align:right}
.gfg-summary-table tr.order-total th,
.gfg-summary-table tr.order-total td{
  padding-top:14px!important;border-top:1px solid var(--line)!important;
  font-family:"Fraunces",serif;font-size:1.15rem;color:var(--plum-deep);font-weight:600;
}
.gfg-summary-table .shipping ul#shipping_method{list-style:none;margin:0;padding:0}
.gfg-summary-table .shipping ul#shipping_method li{margin:0;padding:0}

.gfg-checkout-secure{
  text-align:center;font-size:.78rem;color:var(--muted);margin:16px 0 0;
  letter-spacing:.04em;
}

/* Login + coupon prompts above the form */
.gfg-checkout .woocommerce-form-login-toggle,
.gfg-checkout .woocommerce-form-coupon-toggle{
  background:var(--cream)!important;border:1px solid var(--line)!important;
  border-radius:var(--radius)!important;padding:14px 20px!important;
  margin:0 0 18px!important;
}
.gfg-checkout .woocommerce-form-login-toggle .woocommerce-info,
.gfg-checkout .woocommerce-form-coupon-toggle .woocommerce-info{
  background:transparent!important;border:0!important;padding:0!important;margin:0!important;
  font-size:.92rem;color:var(--ink-soft);
}
/* Hide WC's default ::before info icon */
.gfg-checkout .woocommerce-form-login-toggle .woocommerce-info::before,
.gfg-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before{
  display:none!important;content:none!important;
}
.gfg-checkout .woocommerce-form-coupon-toggle .showcoupon,
.gfg-checkout .woocommerce-form-login-toggle .showlogin{color:var(--plum);font-weight:600;text-decoration:none}
.gfg-checkout .woocommerce-form-coupon-toggle .showcoupon:hover,
.gfg-checkout .woocommerce-form-login-toggle .showlogin:hover{color:var(--plum-deep)}
.woocommerce-form-coupon{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:18px;margin-bottom:18px;
}
.woocommerce-form-coupon .form-row{display:inline-block;width:auto;margin-right:8px}

/* Hide the WC review-order table inside the payment section — we render
   our own polished summary on the right column. */
.gfg-co-section #order_review .shop_table.woocommerce-checkout-review-order-table{display:none}

/* Responsive */
@media (max-width:980px){
  .gfg-checkout-grid{grid-template-columns:1fr}
  .gfg-checkout-summary{position:static}
}
@media (max-width:640px){
  .gfg-checkout #customer_details > .col2-set{grid-template-columns:1fr}
  .gfg-co-section{padding:22px 18px}
}


/* ============================================================
   Replace the `▶` unicode character with a SVG triangle via CSS mask
   so it never gets repainted as the system colour emoji (Windows
   defaults Segoe UI Emoji to a blue square).
   ============================================================ */
.play-mini, .ch-play, .video-play-overlay, .play-btn, .featured-cover .play-btn,
.related-cover .video-play-overlay{
  font-size:0!important;line-height:0;
  display:inline-flex;align-items:center;justify-content:center;
}
.play-mini::before, .ch-play::before, .video-play-overlay::before,
.play-btn::before, .featured-cover .play-btn::before{
  content:"";display:block;
  background-color:var(--plum);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E") center/contain no-repeat;
  transition:background-color .2s, transform .2s;
}
.play-mini::before{width:18px;height:18px;margin-left:2px}
.ch-play::before{width:12px;height:12px;margin-left:1px}
.video-play-overlay::before,
.related-cover .video-play-overlay::before{width:22px;height:22px;margin-left:3px}
.play-btn::before,
.featured-cover .play-btn::before{width:26px;height:26px;margin-left:4px}

/* Hover states — invert to white when parent has hover plum bg */
.ep-card:hover .play-mini::before{background-color:#fff}
.ep-chapters li:hover .ch-play::before{background-color:#fff}
/* Video play overlay: the circle stays white by default (purple triangle).
   On hover, fill the circle with plum AND turn the triangle white, so it
   never ends up white-on-white (was invisible on hover before). */
.related-card:hover .video-play-overlay,
.featured-cover:hover .video-play-overlay{background:var(--plum)}
.related-card:hover .video-play-overlay::before,
.featured-cover:hover .video-play-overlay::before{background-color:#fff}

/* YouTube chip icon + "▶ Video" badge: render the play triangle as a white
   SVG via mask so Windows doesn't repaint the ▶ glyph as a blue emoji —
   keeps them matching the other plum/white platform icons. */
.platform .p-icon.p-icon-play{font-size:0}
.platform .p-icon.p-icon-play::before{
  content:"";display:block;width:12px;height:12px;margin-left:1px;
  background-color:#fff;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E") center/contain no-repeat;
}
.video-badge .vb-play{
  display:inline-block;width:9px;height:9px;flex:0 0 auto;
  background-color:#fff;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E") center/contain no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* Same treatment for unicode glyphs used as inline icons elsewhere — render
   as text so the colour controlled by CSS sticks. */
.meta-ic, .nav .cart .ic, .sp-trust .sp-trust-ic, .stat-chip,
.listen-on .p-icon, .platform .p-icon,
.video-badge, .duration-badge, .featured-dur, .ep-cover-num,
.mini-cart-empty .ic,
.foot-brand .socials a, .nl-socials a,
/* Meta rows that have inline unicode glyphs as their first character */
.meta-item, .ep-meta-row .meta-item, .ep-meta-row .ep-tag,
.article-meta-row .meta-item, .article-meta-row .ep-tag,
.post-meta-date, .related-meta, .ep-meta .meta-item,
.gci-meta .gci-price, .mini-cart-qty, .gsi-qty{
  font-variant-emoji:text;
  font-family:"Inter","Segoe UI Symbol","Symbola","DejaVu Sans",sans-serif;
}
/* Explicit colour overrides so the icons don't get pulled to system blue */
.meta-item, .post-meta-date, .related-meta{color:var(--muted)}
.ep-meta-row .meta-item, .article-meta-row .meta-item{color:var(--ink-soft)}

/* Inline SVG icons inside meta rows — plum tint, vertical-centered */
.meta-item{display:inline-flex;align-items:center;gap:6px}
.meta-item svg.meta-ic{
  color:var(--plum);flex:0 0 auto;
  vertical-align:middle;
}

/* ============================================================
   Custom branded YouTube facade — thematic: plum/wine + cream/coral
   ============================================================ */
.video-wrap{
  margin:30px 0 0;border-radius:26px;overflow:hidden;
  background:#3e0a2c;
  box-shadow:
    0 40px 90px -30px rgba(62,10,44,.55),
    0 0 0 1px rgba(255,255,255,.04) inset;
}
.video-frame{position:relative;aspect-ratio:16/9;background:#3e0a2c;overflow:hidden}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}

/* Hide every facade layer once the iframe is in */
.yt-facade.has-played .yt-facade-poster,
.yt-facade.has-played .yt-facade-shade,
.yt-facade.has-played .yt-facade-grain,
.yt-facade.has-played .yt-facade-corners,
.yt-facade.has-played .yt-facade-play,
.yt-facade.has-played .yt-facade-meta-overlay{display:none}

.yt-facade-poster{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;display:block;
  transition:transform .8s cubic-bezier(.2,.7,.2,1), filter .4s;
}
.yt-facade:hover .yt-facade-poster{transform:scale(1.04);filter:brightness(.88) saturate(1.05)}

/* Layered shade — warm plum/cream wash + bottom gradient for legibility */
.yt-facade-shade{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(60% 80% at 50% 50%, rgba(62,10,44,0) 0%, rgba(62,10,44,.05) 55%, rgba(62,10,44,.55) 100%),
    radial-gradient(40% 50% at 50% 48%, rgba(235,210,239,.18) 0%, rgba(235,210,239,0) 70%),
    linear-gradient(180deg, rgba(62,10,44,.15) 0%, rgba(62,10,44,0) 22%, rgba(62,10,44,0) 50%, rgba(62,10,44,.78) 100%);
}
/* Subtle film-grain feel (pure CSS — repeating noise via SVG dataURI) */
.yt-facade-grain{
  position:absolute;inset:0;pointer-events:none;opacity:.22;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.85' numOctaves='2' seed='4'/%3E%3CfeColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .35 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Corner chips — frosted plum/cream */
.yt-facade-corners{
  position:absolute;inset:0;pointer-events:none;z-index:3;
}
.yt-chip{
  position:absolute;display:inline-flex;align-items:center;gap:6px;
  padding:7px 14px;border-radius:999px;
  font-family:"Inter",sans-serif;font-size:.74rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:#fff;
  background:rgba(62,10,44,.55);
  backdrop-filter:blur(10px) saturate(140%);
  -webkit-backdrop-filter:blur(10px) saturate(140%);
  border:1px solid rgba(235,210,239,.32);
  box-shadow:0 6px 18px -6px rgba(62,10,44,.5);
}
.yt-chip-tl{top:22px;left:24px}
.yt-chip-tr{top:22px;right:24px}
.yt-chip-dot{
  width:6px;height:6px;border-radius:50%;
  background:#ebd2ef;box-shadow:0 0 10px rgba(235,210,239,.85);
}

/* Bottom meta */
.yt-facade-meta-overlay{
  position:absolute;left:0;right:0;bottom:0;
  padding:30px 36px 32px;color:#fff;pointer-events:none;z-index:2;
  display:flex;flex-direction:column;gap:6px;
}
.yt-facade-eyebrow{
  font-family:"Inter",sans-serif;font-size:.72rem;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:#ebd2ef;
}
.yt-facade-title-overlay{
  font-family:"Fraunces",serif;font-size:clamp(1.2rem,2.2vw,1.8rem);
  font-weight:500;line-height:1.16;color:#fff;
  text-shadow:0 2px 22px rgba(62,10,44,.45);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}

/* Glassy plum play button — sits in centre, "Play episode" label below */
.yt-facade-play{
  position:absolute;top:50%;left:50%;transform:translate(-50%, -54%);
  width:104px;height:104px;border-radius:50%;
  background:radial-gradient(circle at 30% 28%, rgba(255,255,255,.22), rgba(255,255,255,0) 60%),
             linear-gradient(135deg, var(--plum) 0%, var(--plum-deep) 100%);
  color:#fff;border:0;cursor:pointer;z-index:4;
  display:inline-flex;align-items:center;justify-content:center;
  box-shadow:
    0 30px 70px -16px rgba(62,10,44,.6),
    0 0 0 1px rgba(235,210,239,.45) inset,
    0 0 0 8px rgba(235,210,239,.10),
    0 0 0 18px rgba(235,210,239,.06);
  transition:transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s;
}
.yt-facade-play::before{
  content:"";position:absolute;inset:-30px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle, rgba(235,210,239,.45) 0%, rgba(235,210,239,0) 65%);
  filter:blur(8px);opacity:.7;z-index:-1;
}
.yt-facade-play:hover{
  transform:translate(-50%, -54%) scale(1.07);
  box-shadow:
    0 36px 80px -14px rgba(62,10,44,.75),
    0 0 0 1px rgba(235,210,239,.7) inset,
    0 0 0 10px rgba(235,210,239,.14),
    0 0 0 22px rgba(235,210,239,.08);
}
.yt-facade-play:active{transform:translate(-50%, -54%) scale(.96)}

.yt-facade-play-inner{
  width:104px;height:104px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
}
.yt-facade-play-icon{margin-left:6px;filter:drop-shadow(0 2px 6px rgba(0,0,0,.28))}

.yt-facade-play-label{
  position:absolute;top:calc(100% + 16px);left:50%;transform:translateX(-50%);
  font-family:"Fraunces",serif;font-style:italic;font-size:.95rem;font-weight:400;
  color:#fff;white-space:nowrap;letter-spacing:.02em;opacity:.92;
  text-shadow:0 2px 14px rgba(62,10,44,.6);
}
.yt-facade-play-label::before{
  content:"";display:inline-block;width:14px;height:1px;background:#ebd2ef;
  vertical-align:middle;margin-right:10px;
}

/* Pulsing concentric rings */
.yt-facade-ring{
  position:absolute;inset:-10px;border-radius:50%;
  border:1.5px solid rgba(235,210,239,.55);
  animation:gfg-pulse 2.8s ease-out infinite;
  pointer-events:none;
}
.yt-facade-ring-2{animation-delay:.9s;border-color:rgba(235,210,239,.4)}
.yt-facade-ring-3{animation-delay:1.8s;border-color:rgba(235,210,239,.28)}
@keyframes gfg-pulse{
  0%   {transform:scale(.85);opacity:0}
  18%  {opacity:.75}
  100% {transform:scale(1.85);opacity:0}
}

@media (max-width:760px){
  .yt-facade-play{width:78px;height:78px;transform:translate(-50%, -56%)}
  .yt-facade-play-inner{width:78px;height:78px}
  .yt-facade-play-icon{width:26px;height:26px;margin-left:4px}
  .yt-facade-play:hover,.yt-facade-play:active{transform:translate(-50%, -56%) scale(1.05)}
  .yt-facade-meta-overlay{padding:18px 20px 22px}
  .yt-chip{padding:6px 10px;font-size:.7rem}
  .yt-chip-tl{top:14px;left:14px}
  .yt-chip-tr{top:14px;right:14px}
  .yt-facade-play-label{font-size:.85rem;top:calc(100% + 12px)}
}


/* ============================================================
   Episode hero action bar — "More ways to listen" + 3 buttons
   ============================================================ */
.gfg-vactions{
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:18px 22px;margin-top:0;
  background:linear-gradient(180deg, rgba(62,10,44,.88) 0%, rgba(62,10,44,.95) 100%);
  border-top:1px solid rgba(235,210,239,.18);
}
.gfg-vactions .video-meta{display:flex;align-items:center;gap:10px;min-width:0}
.vactions-label{
  font-family:"Fraunces",serif;font-style:italic;font-size:.95rem;
  color:#ebd2ef;letter-spacing:.01em;
}
.vactions-label::before{
  content:"";display:inline-block;width:18px;height:1px;background:#ebd2ef;
  vertical-align:middle;margin-right:10px;opacity:.7;
}
.gfg-vactions .video-buttons{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}

/* Pill action buttons inside the action bar */
.gfg-vbtn{
  display:inline-flex;align-items:center;gap:8px!important;
  padding:11px 22px!important;border-radius:999px!important;
  font-family:"Inter",sans-serif!important;font-size:.92rem;font-weight:600;
  text-decoration:none!important;line-height:1!important;
  transition:transform .2s, box-shadow .2s, background .2s;
  white-space:nowrap;
}
.gfg-vbtn svg{flex:0 0 auto;display:block}
.gfg-vbtn:hover{transform:translateY(-2px);box-shadow:0 14px 28px -14px rgba(62,10,44,.6)}

.gfg-vbtn.btn-primary{
  background:var(--plum)!important;color:#fff!important;border:0!important;
}
.gfg-vbtn.btn-primary:hover{background:var(--plum-deep)!important;color:#fff!important}

.gfg-vbtn.btn-light{
  background:#fff!important;color:var(--plum-deep)!important;border:1px solid rgba(235,210,239,.4)!important;
}
.gfg-vbtn.btn-light:hover{background:var(--cream)!important;border-color:var(--plum)!important;color:var(--plum)!important}

/* Round icon button (copy link) */
.gfg-icon-btn{
  position:relative;
  width:42px;height:42px;border-radius:50%;
  background:rgba(255,255,255,.08);border:1px solid rgba(235,210,239,.32);
  color:#fff;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  transition:background .2s, border-color .2s, transform .2s;
}
.gfg-icon-btn:hover{
  background:#fff;color:var(--plum);border-color:#fff;transform:translateY(-2px);
}
.gfg-icon-btn-tip{
  position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);
  background:#fff;color:var(--plum-deep);
  font-family:"Inter",sans-serif;font-size:.74rem;font-weight:600;
  padding:5px 10px;border-radius:6px;white-space:nowrap;
  opacity:0;pointer-events:none;transition:opacity .15s, transform .15s;
  box-shadow:0 8px 20px -8px rgba(62,10,44,.4);
}
.gfg-icon-btn-tip::after{
  content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);
  border:5px solid transparent;border-top-color:#fff;
}
.gfg-icon-btn:hover .gfg-icon-btn-tip,
.gfg-icon-btn:focus .gfg-icon-btn-tip{opacity:1;transform:translateX(-50%) translateY(-2px)}
.gfg-icon-btn.copied .gfg-icon-btn-tip{opacity:1;transform:translateX(-50%) translateY(-2px);background:var(--plum);color:#fff}
.gfg-icon-btn.copied .gfg-icon-btn-tip::after{border-top-color:var(--plum)}

@media (max-width:760px){
  .gfg-vactions{flex-direction:column;align-items:stretch;gap:12px;padding:16px}
  .gfg-vactions .video-meta{justify-content:center}
  .gfg-vactions .video-buttons{justify-content:center}
  .gfg-vbtn{padding:11px 16px!important;font-size:.86rem}
}

/* ============================================================
   SHOP ARCHIVE — custom WooCommerce shop design (template-parts/shop-archive.php)
   ============================================================ */
/* hero */
.sh-hero{
  position:relative;text-align:center;padding:48px 0 64px;
  background:
    radial-gradient(900px 520px at 85% 12%,rgba(235,210,239,.35),transparent 60%),
    radial-gradient(700px 500px at 10% 90%,rgba(29,29,88,.1),transparent 60%),
    var(--cream);
  border-bottom:1px solid var(--line);
}
.sh-hero h1{margin:16px 0 0}
.sh-hero h1 .accent{
  background:linear-gradient(120deg,var(--pink) 0%,var(--wine) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  font-style:italic;font-weight:500;
}
.sh-hero-lead{max-width:640px;margin:20px auto 0;font-size:1.08rem;color:var(--ink-soft)}

/* toolbar: filters + sort */
.sh-toolbar{
  position:sticky;top:74px;z-index:40;
  background:rgba(250,244,246,.9);backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--line);
}
.sh-toolbar-inner{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:16px 0;flex-wrap:wrap;
}
.sh-filters{display:flex;gap:10px;flex-wrap:wrap}
.sh-pill{
  font-family:'Inter',sans-serif;font-size:.85rem;font-weight:600;
  padding:9px 18px;border-radius:999px;border:1px solid var(--line);
  background:#fff;color:var(--ink-soft);cursor:pointer;transition:all .2s ease;
}
.sh-pill:hover{border-color:var(--plum);color:var(--plum)}
.sh-pill.is-active{
  background:var(--plum);border-color:var(--plum);color:#fff;
  box-shadow:0 8px 22px -8px rgba(95,18,66,.45);
}
.sh-sort{display:flex;align-items:center;gap:10px;font-size:.85rem;color:var(--muted)}
.sh-sort select{
  font-family:'Inter',sans-serif;font-size:.85rem;font-weight:600;color:var(--ink);
  padding:9px 36px 9px 16px;border-radius:999px;border:1px solid var(--line);
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235f1242' stroke-width='3'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center;
  appearance:none;-webkit-appearance:none;cursor:pointer;
}

/* product grid */
.sh-grid-section{padding:56px 0 90px;background:var(--cream)}
.sh-count{font-size:.85rem;color:var(--muted);margin:0 0 28px}
.sh-count strong{color:var(--plum-deep)}
.sh-empty{text-align:center;padding:40px 0}
.sh-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}

/* product card */
.sh-card{
  position:relative;display:flex;flex-direction:column;background:#fff;
  border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;
  box-shadow:var(--shadow-sm);transition:transform .35s ease, box-shadow .35s ease;
}
.sh-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)}
.sh-card-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--sand)}
.sh-card-media a{display:block;width:100%;height:100%}
.sh-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.sh-card:hover .sh-card-media img{transform:scale(1.06)}

.sh-badge{
  position:absolute;top:14px;left:14px;
  font-family:'Inter',sans-serif;font-size:.66rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;padding:6px 12px;border-radius:999px;
  background:var(--plum-deep);color:#fff;
}
.sh-badge.is-gold{background:var(--indigo)}
.sh-badge.is-berry{background:var(--plum)}

.sh-wish{
  position:absolute;top:12px;right:12px;width:38px;height:38px;
  display:grid;place-items:center;border-radius:50%;border:none;
  background:rgba(255,255,255,.9);backdrop-filter:blur(6px);
  color:var(--muted);font-size:1rem;cursor:pointer;
  opacity:0;transform:translateY(-4px);transition:all .25s ease;
}
.sh-card:hover .sh-wish{opacity:1;transform:translateY(0)}
.sh-wish:hover{color:var(--plum)}
.sh-wish.is-on{color:var(--plum)}

.sh-card-body{display:flex;flex-direction:column;flex:1;padding:24px 26px 28px}
.sh-card-tag{
  font-family:'Inter',sans-serif;font-size:.7rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--plum);font-weight:600;margin-bottom:10px;
}
.sh-card-body h3{margin:0 0 8px;font-size:1.2rem;color:var(--plum-deep)}
.sh-card-body h3 a{color:inherit;text-decoration:none;transition:color .2s}
.sh-card-body h3 a:hover{color:var(--plum)}
.sh-card-desc{margin:0 0 16px;font-size:.9rem;line-height:1.6;color:var(--ink-soft)}
.sh-card-rating{display:flex;align-items:center;gap:8px;margin-bottom:18px;font-size:.8rem;color:var(--muted)}
.sh-stars{color:var(--plum);letter-spacing:1px;font-size:.9rem}
.sh-card-foot{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  margin-top:auto;padding-top:18px;border-top:1px solid var(--line);
}
/* WooCommerce price HTML inside our pill price area */
.sh-price{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;
  font-family:'Fraunces',serif;font-weight:600;font-size:1.4rem;color:var(--plum-deep);line-height:1.1}
.sh-price del{font-family:'Inter',sans-serif;font-size:.92rem;font-weight:500;color:var(--muted);text-decoration:line-through;opacity:.8}
.sh-price ins{text-decoration:none;background:none;color:var(--plum-deep)}
.sh-price .woocommerce-Price-amount{white-space:nowrap}
.sh-price .from,.sh-price-from{font-family:'Inter',sans-serif;font-size:.78rem;font-weight:500;color:var(--muted);margin-right:2px}

/* compact add / view button (anchor) */
.sh-add{
  display:inline-flex;align-items:center;gap:7px;
  font-family:'Inter',sans-serif;font-size:.85rem;font-weight:600;
  padding:11px 18px;border-radius:999px;border:none;
  background:var(--plum);color:#fff;cursor:pointer;white-space:nowrap;text-decoration:none;
  box-shadow:0 8px 22px -8px rgba(95,18,66,.45);transition:all .25s ease;
}
.sh-add:hover{background:var(--plum-deep);color:#fff;transform:translateY(-2px);box-shadow:0 12px 26px -8px rgba(62,10,44,.55)}
.sh-add .arrow{transition:transform .25s ease}
.sh-add:hover .arrow{transform:translateX(3px)}
.sh-add.loading{opacity:.7;pointer-events:none}
/* WooCommerce appends its own "View cart" link after an ajax add — toast + header
   mini-cart are the feedback here, so keep the card footer clean. */
.sh-card-foot .added_to_cart{display:none!important}

/* free-guide banner */
.sh-feature{padding:0 0 90px;background:var(--cream)}
.sh-feature-card{
  display:grid;grid-template-columns:1.1fr 1fr;align-items:stretch;
  background:linear-gradient(135deg,var(--wine) 0%,var(--indigo) 100%);
  border-radius:var(--radius-lg);overflow:hidden;color:#fff;box-shadow:var(--shadow-md);
}
.sh-feature-text{padding:64px 56px}
.sh-feature-text .eyebrow{color:var(--pink-light)}
.sh-feature-text .eyebrow::before{background:var(--pink-soft)}
.sh-feature-text h2{color:#fff;margin:14px 0 16px}
.sh-feature-text p{color:rgba(255,255,255,.8);margin:0 0 28px;max-width:440px}
.sh-feature-media{background-size:cover;background-position:center;min-height:340px}

/* mini toast */
.sh-toast{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(140%);
  background:var(--plum-deep);color:#fff;padding:14px 24px;border-radius:999px;
  font-size:.9rem;font-weight:500;box-shadow:var(--shadow-lg);z-index:200;
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
}
.sh-toast.is-shown{transform:translateX(-50%) translateY(0)}

@media (max-width:980px){
  .sh-grid{grid-template-columns:repeat(2,1fr)}
  .sh-feature-card{grid-template-columns:1fr}
  .sh-feature-media{min-height:240px;order:-1}
  .sh-feature-text{padding:44px 32px}
}
@media (max-width:620px){
  .sh-hero{padding:32px 0 44px}
  .sh-grid{grid-template-columns:1fr}
  .sh-card-foot{flex-direction:column;align-items:stretch}
  .sh-add{justify-content:center}
}

/* ============================================================
   MOBILE POLISH — nav/logo, smooth sticky header, shop toolbar, cart
   ============================================================ */
@media (max-width:1100px){
  /* Logo: a touch smaller with breathing room on all sides (nav padding gives the
     top/bottom space, the container gutter gives the left, the burger gap the right). */
  .brand img{height:44px}
  /* Keep the nav the SAME height whether or not it's scrolled — the old height jump
     (14px → 10px padding) is what made the sticky header look jumpy on mobile. */
  .nav-inner{padding:12px 0}
  .nav.scrolled .nav-inner{padding:12px 0}
  /* Lighter blur = far less scroll jank on phones; the fade stays smooth via the
     existing background/border transition on .nav. */
  .nav.scrolled{backdrop-filter:saturate(160%) blur(8px)}
}

@media (max-width:768px){
  /* --- WooCommerce pages: less top gap on small screens (nav is shorter here) --- */
  .gfg-wc-wrap{padding-top:104px;padding-bottom:56px}
  .single-product .gfg-wc-wrap{padding-top:0}

  /* --- Shop toolbar: filters become a single swipeable row, sort sits below --- */
  .sh-toolbar{top:66px}
  .sh-toolbar-inner{flex-direction:column;align-items:stretch;gap:12px;padding:12px 0}
  .sh-filters{flex-wrap:wrap;justify-content:center;gap:8px}
  .sh-pill{flex:0 0 auto;font-size:.8rem;padding:8px 15px}
  .sh-sort{justify-content:center;gap:8px}
  .sh-sort select{flex:1;max-width:260px}

  /* --- Cart footer: stop Apply / Update cart overlapping; tighten the controls --- */
  .gfg-cart-footer{flex-direction:column;align-items:stretch;gap:12px}
  .gfg-cart-coupon{flex-wrap:nowrap;min-width:0;gap:8px}
  .gfg-coupon-input{flex:1;min-width:0;padding:10px 14px;font-size:.86rem}
  .gfg-cart-coupon .btn{flex:0 0 auto;padding:10px 18px;font-size:.85rem}
  .gfg-update-cart{margin-left:0;width:100%;justify-content:center;padding:11px 18px;font-size:.86rem}

  /* notice text a touch tighter on phones */
  .woocommerce-message,.woocommerce-info,.woocommerce-error{font-size:.92rem;padding:14px 18px 14px 48px}
  .woocommerce-message::before,.woocommerce-info::before,.woocommerce-error::before{left:18px}

  /* --- Header cart dropdown: anchor to the viewport (not the cart icon) so its
     left edge no longer runs off-screen and gets clipped on phones. --- */
  .cart-dropdown{
    position:fixed;top:74px;left:12px;right:12px;
    width:auto;max-width:none;
  }
  .cart-dropdown::before{display:none} /* arrow can't line up with a full-width panel */
}
