:root{
  --bg: #fbf7f1;
  --surface: #ffffff;
  --text: #121212;
  --muted: #4b4b4b;
  --border: rgba(18,18,18,0.12);
  --accent: #b08b2e; /* gold */
  --ink: #0f2a4a;    /* deep navy */
  --shadow: 0 12px 28px rgba(18,18,18,0.08);
  --radius: 18px;
  --max: 1120px;
  --serif: ui-serif, "Georgia", "Times New Roman", serif;
  --sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

  /* Fluid type scale */
  --step--1: clamp(0.95rem, 0.92rem + 0.2vw, 1.02rem);
  --step-0:  clamp(1.05rem, 1.0rem + 0.35vw, 1.15rem);
  --step-1:  clamp(1.3rem, 1.18rem + 0.75vw, 1.6rem);
  --step-2:  clamp(1.7rem, 1.45rem + 1.2vw, 2.25rem);
  --step-3:  clamp(2.2rem, 1.8rem + 1.9vw, 3.1rem);
}

html{ scroll-behavior: smooth; }
section[id]{ scroll-margin-top: 96px; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *, *::before, *::after{
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

html, body{ height:100%; }
body{
  margin:0;
  font-family: var(--sans);
  color: var(--text);
  background: radial-gradient(1200px 600px at 10% -10%, rgba(176,139,46,0.10), transparent 55%),
              radial-gradient(900px 500px at 95% 10%, rgba(15,42,74,0.08), transparent 60%),
              var(--bg);
  line-height: 1.62;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

img{ max-width:100%; height:auto; display:block; }
a:focus-visible{ outline: 3px solid rgba(176,139,46,0.45); outline-offset: 3px; border-radius: 10px; }
a{ color: inherit; text-decoration-thickness: 2px; text-underline-offset: 3px; }
a:hover{ text-decoration-thickness: 3px; }

.container{ width: min(var(--max), calc(100% - 2rem)); margin: 0 auto; }

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

.skip-link{ position:absolute; left:-999px; top:0; }
.skip-link:focus{
  left: 1rem; top: 1rem;
  background: var(--surface);
  border: 2px solid var(--accent);
  padding: .7rem 1rem;
  border-radius: 12px;
  z-index: 9999;
}

.site-header{
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(251,247,241,0.88);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border);
}

.header-inner{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: .9rem;
  padding: .85rem 0;
}

.brand{ text-decoration:none; font-weight: 700; letter-spacing: .2px; }

.brand{ display:flex; flex-direction: column; gap: .15rem; }
.brand-sub{ font-size: .86rem; color: rgba(18,18,18,0.62); letter-spacing: .02em; text-decoration: none; }

.btn-ghost{
  background: transparent;
  border-color: transparent;
  color: rgba(15,42,74,0.92);
  padding-left: .65rem;
  padding-right: .65rem;
}
.btn-ghost:hover{
  background: rgba(15,42,74,0.06);
}
.hero-note{ margin-top: .4rem; }

.hero-links{
  margin: .15rem 0 0;
  color: rgba(18,18,18,0.74);
  font-size: .95rem;
}
.hero-links a{
  text-decoration-thickness: 2px;
}
.hero-links a:hover{
  text-decoration-thickness: 3px;
}

.brand-title{ font-family: var(--serif); font-size: var(--step-1); }

.site-nav{
  flex: 1;
  display:flex;
  justify-content: center;
}
.site-nav ul{
  display:flex;
  list-style:none;
  gap: 1rem;
  margin:0;
  padding:0;
}
.site-nav a{ text-decoration:none; padding: .5rem .6rem; border-radius: 10px; }
.site-nav a:focus-visible, .site-nav a:hover{ background: rgba(15,42,74,0.06); }

.nav-toggle{
  display:none;
  border: 1px solid var(--border);
  background: var(--surface);
  border-radius: 12px;
  padding: .55rem .7rem;
}
.nav-toggle-bars{
  display:block; width: 22px; height: 2px; background: var(--text); position:relative;
}
.nav-toggle-bars:before, .nav-toggle-bars:after{
  content:""; position:absolute; left:0; width:22px; height:2px; background: var(--text);
}
.nav-toggle-bars:before{ top:-7px; }
.nav-toggle-bars:after{ top:7px; }

.header-cta{ display:flex; align-items:center; }

/* Header display toggles (High contrast / Large text)
   Visible at the top on all devices for accessibility. */
.header-tools{
  display:flex;
  align-items:center;
  gap: .85rem;
}
.header-tools .linklike{
  font-weight: 650;
  text-decoration: none;
  border-bottom: 1px solid rgba(18,18,18,0.35);
  padding: .2rem 0;
}
.header-tools .linklike:hover{ border-bottom-color: rgba(18,18,18,0.7); }

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding: .85rem 1.05rem;
  border-radius: 999px;
  border: 1px solid transparent;
  text-decoration:none;
  font-weight: 650;
  letter-spacing: .1px;
  transition: transform .06s ease, box-shadow .18s ease, background .18s ease;
  line-height: 1;
  white-space: nowrap;
}

/* WhatsApp CTA (brand-aligned: same shape + navy/white system as Email button) */
.btn-whatsapp{
  background: var(--ink);
  color: #fff;
  border-color: transparent;
  border-radius: 999px;
  text-transform: none;
  letter-spacing: .1px;
  font-weight: 650;
  padding: .85rem 1.05rem;
  box-shadow: 0 10px 22px rgba(15,42,74,0.18);
}
.btn-whatsapp:hover{ box-shadow: 0 14px 28px rgba(15,42,74,0.16); }
.btn-icon{ display:inline-flex; align-items:center; justify-content:center; }

.contact-cta{ margin: 1rem 0 1.35rem; }
.btn:focus-visible{
  outline: 3px solid rgba(176,139,46,0.45);
  outline-offset: 3px;
}
.btn:active{ transform: translateY(1px); }

.btn-primary{
  background: var(--ink);
  color: #fff;
  box-shadow: 0 10px 22px rgba(15,42,74,0.18);
}

.btn-dark{
  background: var(--ink);
  color: #fff;
  box-shadow: 0 10px 22px rgba(15,42,74,0.18);
}

.btn-outline{
  background: transparent;
  border-color: rgba(15,42,74,0.28);
  color: var(--ink);
}

.btn:hover{ box-shadow: 0 14px 28px rgba(15,42,74,0.16); }
.btn-outline:hover{ background: rgba(15,42,74,0.06); }

.btn[aria-disabled="true"]{
  opacity: .55;
  pointer-events:none;
}

.hero{
  padding: clamp(2.2rem, 2rem + 2vw, 3.2rem) 0 1.25rem;
}
.hero-grid{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap: clamp(1.6rem, 2vw, 2.4rem);
  align-items: start;
}

.kicker{
  margin: 0 0 .6rem;
  font-size: var(--step--1);
  color: var(--muted);
  letter-spacing: .12em;
  text-transform: uppercase;
}

h1{
  margin: 0 0 .6rem;
  font-family: var(--serif);
  font-size: var(--step-3);
  line-height: 1.05;
}
.hero-hook{
  margin: 0 0 1rem;
  font-size: var(--step-1);
  font-weight: 750;
  color: var(--ink);
}
.lead{
  margin: 0 0 1.3rem;
  font-size: var(--step-0);
  color: rgba(18,18,18,0.92);
  max-width: 55ch;
}

.cta-row{
  display:flex;
  flex-wrap: wrap;
  gap: .8rem;
  margin-bottom: 1.15rem;
}

.proof-strip{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .9rem;
  margin: 0;
  padding: 0;
}
.proof-item{
  background: rgba(255,255,255,0.72);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: .85rem .9rem;
  box-shadow: 0 1px 0 rgba(18,18,18,0.04);
}

/* Premium micro-interactions (subtle, not gimmicky) */
.value-card, .speak-tile, .proof-item, .kit-box, .contact-card, .trusted-strip, .testimonial-card{
  transition: transform .12s ease, box-shadow .2s ease, border-color .2s ease;
}
.value-card:hover, .speak-tile:hover, .proof-item:hover, .testimonial-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(18,18,18,0.10);
  border-color: rgba(18,18,18,0.18);
}
.proof-item strong{
  display:block;
  font-size: .98rem;
  color: var(--ink);
}
.proof-item span{
  display:block;
  font-size: .92rem;
  color: rgba(18,18,18,0.78);
  margin-top: .2rem;
}

.hero-media{
  position: relative;
}
.hero-figure{
  margin:0;
  border-radius: 22px;
  overflow:hidden;
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  background: transparent;
  padding: 0;
  aspect-ratio: 16 / 9;
}
.hero-figure picture,
.hero-figure img{
  display:block;
  width:100%;
  height:100%;
  object-fit: cover;
}

/* Subtle brand watermark (desktop only). Kept intentionally restrained. */
@media (min-width: 981px){
  .hero-figure::after{
    content: "";
    position: absolute;
    inset: 0;
    background-image: url('assets/lion-logo.webp');
    background-repeat: no-repeat;
    background-position: 8% 85%;
    background-size: 52%;
    opacity: 0.035;
    pointer-events: none;
    z-index: 2;
    filter: grayscale(100%);
    mix-blend-mode: multiply;
  }
}

.section{
  padding: clamp(2.2rem, 2rem + 2vw, 3.2rem) 0;
}

/* Speed: allow the browser to skip rendering below the fold until needed */
@supports (content-visibility: auto){
  .section{ content-visibility: auto; contain-intrinsic-size: 1px 800px; }
}
.section-title{
  font-family: var(--serif);
  font-size: var(--step-2);
  line-height: 1.1;
  margin: 0 0 1.3rem;
}

.two-col{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1.6rem, 2vw, 2.2rem);
  align-items: start;
}
.two-col.flip .media{ order: 2; }
.two-col.flip .copy{ order: 1; }

.media img{
  border-radius: 22px;
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  background: #fff;
}

.round{ border-radius: 999px !important; }

.copy h2{
  font-family: var(--serif);
  font-size: var(--step-2);
  margin: 0 0 .8rem;
}
.copy p{ margin: 0 0 1rem; color: rgba(18,18,18,0.92); }
.small{ font-size: .98rem; color: rgba(18,18,18,0.78); }
.fine{ font-size: .92rem; color: rgba(18,18,18,0.70); margin-top: .6rem; }

/* Utility: tighter measure for single-column sections */
.narrow{ max-width: 720px; }

.value-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.testimonials-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}

.testimonial-card{
  background: rgba(255,255,255,0.78);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 1.1rem 1.1rem 1rem;
  box-shadow: 0 1px 0 rgba(18,18,18,0.04);
}

.testimonial-card h3{
  margin: 0 0 .45rem;
  font-size: 1.05rem;
  color: var(--ink);
  line-height: 1.25;
}

.testimonial-card p{ margin: 0 0 .65rem; color: rgba(18,18,18,0.84); }

@media (max-width: 860px){
  .testimonials-grid{ grid-template-columns: 1fr; }
}

.value-card{
  background: rgba(255,255,255,0.78);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 1.1rem 1.1rem 1rem;
  box-shadow: 0 1px 0 rgba(18,18,18,0.04);
}
.value-card h3{
  margin: 0 0 .4rem;
  font-size: 1.05rem;
  color: var(--ink);
}
.value-card p{ margin: 0; color: rgba(18,18,18,0.84); }

.bullets h3, .buy-block h3{
  margin: 1.2rem 0 .5rem;
  font-size: 1.05rem;
  color: var(--ink);
}
.bullets ul{
  margin: 0;
  padding-left: 1.1rem;
}
.bullets li{ margin: .35rem 0; }

.buy-block{
  margin-top: 1.15rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}

.quote-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
.quote-card{
  margin:0;
  background: rgba(255,255,255,0.78);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 1.1rem 1.1rem 1rem;
}
.quote-card blockquote{
  margin: 0 0 .75rem;
  font-size: 1.02rem;
  line-height: 1.5;
}
.quote-card figcaption{
  font-size: .92rem;
  color: rgba(18,18,18,0.72);
}

.speak-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin: 1.1rem 0 1.2rem;
}
.speak-tile{
  background: rgba(255,255,255,0.78);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 1rem 1.05rem .95rem;
}
.speak-tile h3{
  margin: 0 0 .35rem;
  font-size: 1.05rem;
  color: var(--ink);
}
.speak-tile p{ margin: 0; color: rgba(18,18,18,0.84); }

.section-break{
  padding: 0 0 clamp(2.2rem, 2rem + 2vw, 3.2rem);
}
.break-media img{
  width:100%;
  border-radius: 22px;
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
}

.topic-list{
  margin: 0 0 1.1rem;
  padding-left: 1.1rem;
}
.topic-list li{ margin: .35rem 0; }

.kit-box{
  margin-top: 1.05rem;
  background: rgba(255,255,255,0.82);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 1.1rem;
}


.contact-card{
  background: rgba(255,255,255,0.82);
  border: 1px solid var(--border);
  border-radius: 22px;
  padding: 1.25rem 1.25rem;
  box-shadow: 0 1px 0 rgba(18,18,18,0.04);
}

.site-footer{
  border-top: 1px solid var(--border);
  padding: 1.6rem 0 2rem;
  background: rgba(255,255,255,0.65);
}
.footer-grid{
  display:grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 1rem;
  align-items: start;
}
.footer-links{
  display:flex;
  flex-direction: column;
  gap: .5rem;
}
.footer-links a{ text-decoration:none; }
.footer-links a:hover{ text-decoration: underline; }

.footer-tools{
  display:flex;
  flex-direction: column;
  gap: .5rem;
  align-items: flex-start;
}
.linklike{
  appearance:none;
  border: none;
  background: none;
  padding: 0;
  color: var(--ink);
  cursor:pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 650;
}
.linklike:focus-visible{
  outline: 3px solid rgba(176,139,46,0.45);
  outline-offset: 3px;
  border-radius: 6px;
}


.section-audio{
  background:
    radial-gradient(circle at top right, rgba(201,168,106,0.16), transparent 32%),
    linear-gradient(180deg, rgba(255,255,255,0.96), rgba(248,244,235,0.92));
}

.audio-shell{
  display:grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: clamp(1.2rem, 2vw, 2rem);
  align-items: start;
}

.audio-intro h2{
  margin: 0 0 .85rem;
  font-family: var(--serif);
  font-size: var(--step-2);
  line-height: 1.08;
}

.audio-intro p{
  margin: 0 0 1rem;
  color: rgba(18,18,18,0.90);
  max-width: 58ch;
}

.audio-points{
  display:flex;
  flex-wrap: wrap;
  gap: .65rem;
}

.audio-points span{
  display:inline-flex;
  align-items:center;
  gap: .35rem;
  padding: .55rem .78rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,0.78);
  color: rgba(18,18,18,0.84);
  font-size: .94rem;
  box-shadow: 0 1px 0 rgba(18,18,18,0.04);
}

.audio-card{
  padding: clamp(1rem, 1rem + .6vw, 1.35rem);
  border-radius: 22px;
  border: 1px solid rgba(18,18,18,0.10);
  background: linear-gradient(180deg, rgba(11,19,32,0.98), rgba(23,33,48,0.96));
  box-shadow: 0 20px 40px rgba(11,19,32,0.18);
  color: #fff;
}

.audio-card-top{
  display:flex;
  gap: 1rem;
  justify-content: space-between;
  align-items: start;
  margin-bottom: 1rem;
}

.audio-label{
  margin: 0 0 .35rem;
  color: rgba(255,255,255,0.72);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: .78rem;
}

.audio-card h3{
  margin: 0 0 .4rem;
  font-size: clamp(1.2rem, 1rem + .8vw, 1.5rem);
  line-height: 1.15;
  color: #fff;
}

.audio-card .small,
.audio-note{
  color: rgba(255,255,255,0.76);
}

.audio-card .btn-outline{
  border-color: rgba(255,255,255,0.26);
  color: #fff;
  background: rgba(255,255,255,0.04);
}

.audio-card .btn-outline:hover{
  background: rgba(255,255,255,0.10);
}

.audio-player{
  width: 100%;
  min-height: 56px;
  margin: .15rem 0 .8rem;
  border-radius: 14px;
}

.audio-note{
  margin: 0;
}

@media (max-width: 980px){
  .hero-figure{ aspect-ratio: 4 / 5; }
  .hero-grid{ grid-template-columns: 1fr; }
  
  .two-col{ grid-template-columns: 1fr; }
  .two-col.flip .media, .two-col.flip .copy{ order: initial; }
  .proof-strip{ grid-template-columns: 1fr; }
  .value-grid{ grid-template-columns: 1fr; }
  .quote-grid{ grid-template-columns: 1fr; }
  .speak-grid{ grid-template-columns: 1fr; }
  .footer-grid{ grid-template-columns: 1fr; }
    .how-grid{ grid-template-columns: 1fr; }
}

@media (max-width: 760px){
  .site-nav{ display:none; }
  .nav-toggle{ display:inline-flex; }
  .header-cta{ display:none; } /* remove to keep mobile header clean */
  .header-tools{ gap: .65rem; }
  .header-tools .linklike{ font-size: .9rem; }
  .fab{ display: inline-flex; }
  .site-nav.open{ 
    display:block;
    position:absolute;
    left: 0;
    right: 0;
    top: 64px;
    background: rgba(251,247,241,0.98);
    border-bottom: 1px solid var(--border);
    padding: .8rem 0 1rem;
  }
  .site-nav.open ul{
    flex-direction: column;
    gap: .2rem;
    padding: 0 1rem;
  }
  .site-nav.open a{ padding: .7rem .8rem; }
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  .btn{ transition: none; }
}

/* Accessibility toggles */
:root[data-text="large"]{
  font-size: 125%;
}
:root[data-text="large"] body{
  line-height: 1.75;
}
:root[data-contrast="high"]{
  --bg: #ffffff;
  --surface: #ffffff;
  --text: #000000;
  --muted: #000000;
  --border: rgba(0,0,0,0.35);
  --accent: #000000;
  --ink: #000000;
}
:root[data-contrast="high"] a{ text-decoration: underline; }
:root[data-contrast="high"] .btn-outline{ border-color: #000; color: #000; }

.newsletter-lead{ margin:0 0 1rem; font-size: var(--step-0); color: rgba(18,18,18,0.92); max-width: 58ch; }
.value-bullets ul{ margin: 0 0 1.2rem; padding-left: 1.1rem; }
.value-bullets li{ margin: .5rem 0; }

.start-here{
  margin-top: 1.1rem;
  background: rgba(255,255,255,0.82);
  border: 1px solid var(--border);
  border-radius: 22px;
  padding: 1.05rem;
  box-shadow: 0 1px 0 rgba(18,18,18,0.04);
}
.start-title{
  margin:0 0 .35rem;
  font-size: .92rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--muted);
}
.start-text{ margin:0 0 .85rem; color: rgba(18,18,18,0.86); }


/* How-to-book block */
.how-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin-top: 1.1rem;
}
.how-step{
  background: rgba(251,247,241,0.9);
  border: 1px solid rgba(15,42,74,0.14);
  border-radius: 18px;
  padding: 1rem 1.05rem;
}
.how-kicker{
  margin: 0 0 .35rem;
  font-size: .86rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(18,18,18,0.62);
}
.how-text{ margin: 0; color: rgba(18,18,18,0.88); }

/* FAQ accordion */
.faq{
  margin-top: 1.1rem;
  border: 1px solid rgba(15,42,74,0.14);
  border-radius: 18px;
  background: rgba(251,247,241,0.9);
  padding: .15rem 1rem;
}
.faq summary{
  cursor: pointer;
  padding: .9rem 0;
  font-weight: 750;
  color: var(--ink);
  list-style: none;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq[open]{ box-shadow: 0 14px 28px rgba(18,18,18,0.08); }
.faq-body{ padding: 0 0 1rem; }
.faq-body p{ margin: .55rem 0; }

/* Embedded booking / calendar / registration */
.embed-wrap{
  border: 1px solid rgba(15,42,74,0.14);
  border-radius: 18px;
  overflow: hidden;
  background: rgba(251,247,241,0.9);
  box-shadow: 0 1px 0 rgba(18,18,18,0.04);
}
.embed-frame{
  width: 100%;
  border: 0;
  display: block;
  background: transparent;
}

/* Lightweight skeleton while lazy embeds load */
.embed-frame[src="about:blank"]{
  background: linear-gradient(90deg, rgba(15,42,74,0.03), rgba(176,139,46,0.06), rgba(15,42,74,0.03));
  background-size: 200% 100%;
  animation: shimmer 1.2s infinite linear;
}
@keyframes shimmer{ from{ background-position: 200% 0; } to{ background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce){
  .embed-frame[src="about:blank"]{ animation: none; }
}
.embed-frame--booking{ min-height: 740px; }
.embed-frame--workshop{ min-height: 640px; }

/* Keep header usable when nav grows */
@media (max-width: 1180px){
  .site-nav ul{
    flex-wrap: wrap;
    justify-content: center;
    gap: .35rem .8rem;
  }
  .site-nav a{
    padding: .4rem .5rem;
    font-size: .95rem;
  }
}

/* Floating CTA (mobile only) */
.fab{
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 60;
  display: none;
  padding: .85rem 1.05rem;
  border-radius: 999px;
  background: var(--ink);
  color: #fff;
  text-decoration: none;
  font-weight: 750;
  box-shadow: 0 18px 34px rgba(15,42,74,0.22);
}
.fab-whatsapp{
  bottom: 72px; /* stacks above the Book FAB */
  background: var(--ink);
  color: #fff;
}
.fab-whatsapp:hover{ filter: brightness(0.98); }
.fab:focus-visible{ outline: 3px solid rgba(176,139,46,0.55); outline-offset: 4px; }

/* --- Premium polish: tighten About + newsletter layout (spine-aligned, no clutter) --- */
#about .two-col{ align-items: center; }
#about .media{ display:flex; justify-content:center; }
#about .media img.round{
  width: clamp(220px, 28vw, 360px);
  height: auto;
  aspect-ratio: 1 / 1;
}

/* Center narrow content blocks */
.copy.narrow{ margin-inline: auto; }

/* Ensure sticky-nav anchor jumps don't hide section headings */
section{ scroll-margin-top: 90px; }

/* Brand logo */
.brand{ flex-direction: row; align-items: center; gap: .65rem; }
.brand-text{ display:flex; flex-direction: column; gap: .15rem; line-height: 1.1; }
.brand-logo{ width: 40px; height: 40px; flex: 0 0 auto; }
@media (max-width: 520px){
  .brand-logo{ width: 34px; height: 34px; }
  .brand-sub{ font-size: .82rem; }
}
.footer-logo{ width: 8px; height: 8px; margin-right: .45rem; vertical-align: middle; display:inline-block; }

/* Logo mark (lion) scales correctly */
.brand-logo picture, .footer-logo picture{ width:100%; height:100%; display:block; }
.brand-logo img, .footer-logo img{ width:100%; height:100%; object-fit:contain; display:block; }
/* Brand photo (nav) */
.brand-logo img.brand-photo{
  object-fit: cover;
  border-radius: 999px;
  border: 1px solid rgba(205,170,70,0.55);
  box-shadow: 0 10px 22px rgba(0,0,0,0.18);
}

.brand-logo svg, .footer-logo svg{ width:100%; height:100%; display:block; }

/* Footer logo: subtle + blended so it doesn't dominate */
.footer-logo img{
  opacity: .55;
  filter: saturate(.65) brightness(.95) contrast(.95);
}

/* Kit embed: make it feel native to the site (premium, restrained) */
.kit-box .formkit-form[data-uid="fcf04b3239"]{
  box-shadow: none !important;
  background: transparent !important;
  max-width: 560px;
  margin: 12px 0 0;
}
.kit-box .formkit-form[data-uid="fcf04b3239"] .formkit-column{padding:0 !important;}
.kit-box .formkit-form[data-uid="fcf04b3239"] .formkit-column:first-child{display:none !important;}
.kit-box .formkit-form[data-uid="fcf04b3239"] .formkit-column:nth-child(2){border-top:none !important;}
.kit-box .formkit-form[data-uid="fcf04b3239"] .formkit-field{margin:0 0 10px 0 !important;}
.kit-box .formkit-form[data-uid="fcf04b3239"] .formkit-input{
  border-radius: 14px !important;
  padding: 14px 14px !important;
  font-size: 16px !important;
  border-color: var(--border) !important;
  color: var(--ink) !important;
}
.kit-box .formkit-form[data-uid="fcf04b3239"] .formkit-input:focus{
  border-color: var(--ink) !important;
  box-shadow: 0 0 0 3px rgba(15, 42, 74, 0.12) !important;
}
.kit-box .formkit-form[data-uid="fcf04b3239"] .formkit-submit{
  border-radius: 999px !important;
  background-color: var(--ink) !important;
}
.kit-box .formkit-form[data-uid="fcf04b3239"] .formkit-submit > span{
  padding: 13px 18px !important;
  letter-spacing: .01em;
}
.kit-box .formkit-form[data-uid="fcf04b3239"] .formkit-guarantee{
  color: var(--muted) !important;
  margin: 6px 0 8px 0 !important;
}
.kit-box .formkit-form[data-uid="fcf04b3239"] .formkit-powered-by-convertkit-container{
  opacity: 0.55;
  transform: scale(0.92);
  transform-origin: left;
}

/* =========================
   Mobile rendering fixes (iPhone-first)
   ========================= */

/* Keep the hero visual strong on phones: image first, tighter type, better CTA stacking */
@media (max-width: 760px){
  .hero-media{ order: -1; }
  .audio-card-top{ flex-direction: column; }
  .hero-figure{ aspect-ratio: 16 / 10; } /* less vertical takeover than 4:5 */

  h1{
    font-size: clamp(2.1rem, 8.2vw, 2.65rem);
    line-height: 1.03;
  }
  .hero-hook{
    font-size: clamp(1.1rem, 4.6vw, 1.35rem);
    line-height: 1.2;
  }
  .lead{ max-width: 42ch; }

  .cta-row{
    flex-direction: column;
    align-items: stretch;
    gap: .65rem;
    max-width: 360px;
  }
  .cta-row .btn{
    width: 100%;
    justify-content: center;
    white-space: normal;
  }
}

/* Header: prevent cramped controls on very small phones.
   Buttons remain available inside the mobile menu. */
.nav-divider,
.nav-tool-item{ display:none; }

.nav-tool{
  appearance:none;
  width: 100%;
  border: 1px solid rgba(15,42,74,0.18);
  background: rgba(255,255,255,0.65);
  color: var(--ink);
  font-weight: 650;
  padding: .7rem .8rem;
  border-radius: 12px;
  cursor: pointer;
  text-align: left;
}
.nav-tool:hover{ background: rgba(15,42,74,0.06); }
.nav-tool:focus-visible{
  outline: 3px solid rgba(176,139,46,0.45);
  outline-offset: 3px;
}

@media (max-width: 760px){
  .site-nav.open .nav-divider{
    margin-top: .6rem;
    padding-top: .6rem;
    border-top: 1px solid var(--border);
  }
}

@media (max-width: 420px){
  .header-tools{ display:none; }
  .nav-divider,
  .nav-tool-item{ display:block; }
}



.modal{ position: fixed; inset: 0; display: grid; place-items: center; padding: 1.2rem; z-index: 80; }
.modal[hidden]{ display:none; }
.modal-backdrop{ position:absolute; inset:0; background: rgba(18,18,18,0.58); }
.modal-dialog{
  position: relative;
  width: min(960px, 100%);
  background: var(--surface);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 20px;
  box-shadow: var(--shadow);
  padding: 1.1rem 1.1rem 1rem;
  transform: translateY(8px);
  opacity: 0;
  transition: opacity .16s ease, transform .18s ease;
}
.modal.is-open .modal-dialog{ transform: translateY(0); opacity: 1; }
.modal-head{ display:flex; align-items:center; justify-content:space-between; gap: 1rem; margin-bottom: .5rem; }
.modal-close{
  width: 42px; height: 42px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: rgba(15,42,74,0.04);
  color: var(--ink);
  font-size: 1.6rem;
  line-height: 1;
  cursor: pointer;
}
.modal-close:hover{ background: rgba(15,42,74,0.08); }
.modal-body{ margin-top: .75rem; }
.modal-actions{ display:flex; flex-wrap: wrap; gap: .75rem; margin-top: .9rem; }

body.modal-open{ overflow:hidden; }

@media (prefers-reduced-motion: reduce){
  .modal-dialog{ transition: none; transform:none; opacity: 1; }
}



@media (max-width: 860px){
  .trusted-strip--logos{
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px){
  .trusted-logo-grid{
    grid-template-columns: 1fr;
  }
  .trusted-logo-card{
    min-height: 104px;
  }
}



.section-trusted{ padding-top: 0; }

.trusted-minimal{
  width: min(100%, 980px);
  margin: 0 auto;
  padding: .2rem 0;
  text-align: center;
}
.trusted-minimal-divider{
  height: 1px;
  background: linear-gradient(90deg, rgba(15,42,74,0), rgba(15,42,74,0.12), rgba(176,139,46,0.16), rgba(15,42,74,0.12), rgba(15,42,74,0));
}
.trusted-minimal-label{
  margin: .95rem 0 1rem;
  font-size: .76rem;
  letter-spacing: .24em;
  text-transform: uppercase;
  font-weight: 700;
  color: rgba(15,42,74,0.66);
}
.trusted-minimal-logos{
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.5rem;
  flex-wrap: wrap;
  padding: 0 1rem 1rem;
}
.trusted-minimal-link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  text-decoration: none;
  border-radius: 14px;
  padding: .2rem .45rem;
}
.trusted-minimal-logo{
  max-width: 100%;
  object-fit: contain;
  opacity: .82;
  transition: opacity .25s ease, transform .25s ease, filter .25s ease;
}
.trusted-minimal-logo--yumchop{
  height: 44px;
  width: auto;
  border-radius: 10px;
  filter: saturate(.88) contrast(.98);
}
.trusted-minimal-logo--hh{
  height: 48px;
  width: auto;
  filter: brightness(.12) saturate(.85) opacity(.92);
}
.trusted-minimal-link:hover .trusted-minimal-logo,
.trusted-minimal-link:focus-visible .trusted-minimal-logo{
  opacity: 1;
  transform: translateY(-1px);
}
.trusted-minimal-link:hover .trusted-minimal-logo--hh,
.trusted-minimal-link:focus-visible .trusted-minimal-logo--hh{
  filter: brightness(.08) saturate(.95) opacity(1);
}

@media (max-width: 760px){
  .trusted-minimal{ width: min(100%, 920px); }
  .trusted-minimal-logos{ gap: 1.6rem; padding: 0 .5rem .9rem; }
  .trusted-minimal-logo--yumchop{ height: 38px; }
  .trusted-minimal-logo--hh{ height: 42px; }
}

@media (max-width: 480px){
  .trusted-minimal-label{ margin: .85rem 0 .85rem; font-size: .72rem; }
  .trusted-minimal-logos{ gap: 1.2rem; }
  .trusted-minimal-logo--yumchop{ height: 34px; }
  .trusted-minimal-logo--hh{ height: 38px; }
}



/* Trusted by strip v58: smaller, quieter, and more supportive */
.section-newsletter + .container .trusted-minimal{
  max-width: 420px;
  margin: 12px auto 2px;
  text-align: center;
}
.section-newsletter + .container .trusted-minimal-divider{
  display: none;
}
.section-newsletter + .container .trusted-minimal-label{
  margin: 0 0 7px;
  font-size: .56rem;
  letter-spacing: .14em;
  color: rgba(15,42,74,.52);
  text-transform: uppercase;
}
.section-newsletter + .container .trusted-minimal-logos{
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1.1rem;
  flex-wrap: wrap;
  padding: 0;
}
.section-newsletter + .container .trusted-minimal-link{
  padding: 0;
  min-height: 0;
}
.section-newsletter + .container .trusted-minimal-logo{
  opacity: .62;
  filter: grayscale(64%);
  transition: opacity .16s ease;
}
.section-newsletter + .container .trusted-minimal-logo--yumchop{
  height: 18px;
  width: auto;
}
.section-newsletter + .container .trusted-minimal-logo--hh{
  height: 20px;
  width: auto;
}
.section-newsletter + .container .trusted-minimal-link:hover .trusted-minimal-logo,
.section-newsletter + .container .trusted-minimal-link:focus-visible .trusted-minimal-logo{
  opacity: .82;
  filter: grayscale(48%);
  transform: none;
}
@media (max-width: 700px){
  .section-newsletter + .container .trusted-minimal{
    max-width: 360px;
    margin: 10px auto 0;
  }
  .section-newsletter + .container .trusted-minimal-label{
    margin-bottom: 6px;
    font-size: .52rem;
  }
  .section-newsletter + .container .trusted-minimal-logos{
    gap: .9rem;
  }
  .section-newsletter + .container .trusted-minimal-logo--yumchop{
    height: 16px;
  }
  .section-newsletter + .container .trusted-minimal-logo--hh{
    height: 18px;
  }
}


/* v60 excellence pass */
.cta-row-tight{
  gap: .65rem;
  align-items: center;
}
@media (max-width: 760px){
  .cta-row-tight{
    max-width: none;
  }
}

.testimonials-grid{
  margin-top: 1.2rem;
}

.audio-card .cta-row{
  margin: .35rem 0 .15rem;
}

.hero-links a{
  text-underline-offset: .18em;
}

.site-nav a,
.footer-links a{
  text-underline-offset: .16em;
}


/* v61 dominance pass */
.btn-outline-gold{
  border-color: rgba(205,170,70,0.72);
  color: #8a6a11;
  background: rgba(205,170,70,0.08);
}
.btn-outline-gold:hover{
  background: rgba(205,170,70,0.14);
  border-color: rgba(205,170,70,0.9);
}
.hero-speaker{
  padding-top: clamp(2.4rem, 2rem + 2vw, 3.8rem);
}
.hero-speaker h1{
  font-size: clamp(2.55rem, 5vw, 4.4rem);
  max-width: 11ch;
  letter-spacing: -0.03em;
}
.hero-speaker .hero-hook{
  font-size: clamp(1.2rem, 1rem + 1vw, 1.7rem);
  max-width: 22ch;
}
.hero-speaker .lead{
  max-width: 52ch;
}
.section-trusted-dominance{
  padding-top: .6rem;
}
.trusted-minimal--early{
  background: rgba(255,255,255,0.88);
  box-shadow: 0 12px 30px rgba(15,42,74,0.08);
}
.section-audio .audio-shell{
  align-items: center;
}
.section-audio .audio-card{
  position: relative;
}
.section-audio .audio-card::before{
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 22px;
  border: 1px solid rgba(205,170,70,0.24);
  pointer-events: none;
}
.section-testimonials{
  padding-top: 1.2rem;
}
.section-testimonials .section-title,
.section-testimonials h2{
  max-width: 14ch;
}
.section-book .copy > p:first-of-type{
  font-size: var(--step-0);
  color: rgba(18,18,18,0.95);
  max-width: 38ch;
}
.dominance-grid .speak-tile{
  background: rgba(255,255,255,0.84);
}
.site-nav a,
.hero-links a,
.small a,
.fine a{
  text-underline-offset: 3px;
}
@media (max-width: 980px){
  .section-trusted-dominance{ padding-top: 0; }
}
@media (max-width: 760px){
  .hero-speaker h1{ max-width: 9.5ch; }
  .hero-speaker .hero-hook{ max-width: 18ch; }
}


/* v62 clean build */
.site-nav ul{
  gap: .35rem;
  flex-wrap: nowrap;
}
.site-nav a{
  white-space: nowrap;
  font-size: .98rem;
}
.hero-grid{
  align-items: center;
}
.hero-copy{
  position: relative;
  z-index: 2;
}
.hero-media{
  min-width: 0;
}
.hero-figure{
  aspect-ratio: 16 / 10;
  background: #f7f2e8;
}
.hero-figure picture,
.hero-figure img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 18%;
}
@media (max-width: 1199px){
  .site-nav a{
    font-size: .93rem;
    padding: .5rem .4rem;
  }
  .brand-title{
    font-size: clamp(1.8rem, 1.5rem + 1vw, 2.35rem);
  }
  .brand-sub{
    font-size: .78rem;
  }
  .hero-grid{
    grid-template-columns: minmax(0, 1fr) minmax(360px, .95fr);
    gap: 1.4rem;
  }
  .hero-figure{
    aspect-ratio: 4 / 5;
  }
  .hero-figure picture,
  .hero-figure img{
    object-position: center 12%;
  }
}
@media (max-width: 980px){
  .hero-grid{
    grid-template-columns: 1fr;
    gap: 1.1rem;
  }
  .hero-media{
    order: -1;
  }
  .hero-figure{
    width: min(100%, 620px);
    margin-inline: auto;
    aspect-ratio: 4 / 5;
  }
}
@media (max-width: 760px){
  .hero-figure{
    width: 100%;
    aspect-ratio: 4 / 5;
  }
  .hero-links{
    display: flex;
    flex-wrap: wrap;
    gap: .55rem .9rem;
  }
}
