/* ============================================================
   MIKE HOLT MINISTRIES — SHARED STYLESHEET
   Single unified design system for all pages (slug: mike-holt-online)
   Merged + deduped from the three design exports (home / speaking /
   cultivate). Global design-system rules live at the top; page-specific
   rules are namespaced under a body class (.page-home, .page-speaking,
   .page-cultivate, .page-about, .page-coaching, .page-resources).
   ============================================================ */

/* ---------- TOKENS ---------- */
:root{
  --ink:#2f3d4c;        /* primary navy */
  --navy-deep:#12161d;  /* darkest navy (offer/ad sections) */
  --slate:#51657b;
  --dusty:#849ab2;
  --sky:#bbd0e6;
  --mist:#c8cccf;
  --paper:#ffffff;
  --stone:#f4f6f8;      /* light section wash */
  --gold:#e0b64a;       /* accent */
  --sage:#8f9d7a;       /* cultivate accent */
  --deepblue:#1c3f66;   /* cultivate form field bg */

  --font-body:'Work Sans', sans-serif;
  --font-head:'Jost', sans-serif;         /* uppercase display headings */
  --font-alt:'Montserrat', sans-serif;    /* uppercase buttons / labels */
  --font-cond:'Barlow Condensed', sans-serif; /* nav + eyebrows */
  --font-serif:'Fraunces', serif;         /* editorial hero display */
  --font-script:'Caveat', cursive;        /* "Cultivate the Call" wordmark */

  --wrap:1100px;
  --radius:3px;
  --radius-lg:4px;
}

/* ---------- RESET / BASE ---------- */
*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  font-family:var(--font-body);
  background:var(--paper);
  color:var(--ink);
  color-scheme:light;
}
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; }

/* ---------- LAYOUT HELPERS ---------- */
.wrap{
  max-width:var(--wrap);
  margin:0 auto;
  padding:0 24px;
}
.wrap--narrow{ max-width:780px; }
.center{ text-align:center; }

/* ---------- TYPE ---------- */
.eyebrow{
  display:block;
  font-family:var(--font-cond);
  font-weight:600;
  font-size:16px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--gold);
}
.h-display{
  font-family:var(--font-head);
  font-weight:700;
  text-transform:uppercase;
  color:var(--ink);
}
.section-title{
  font-family:var(--font-head);
  font-weight:700;
  text-transform:uppercase;
  font-size:clamp(30px, 3.6vw, 42px);
  color:var(--ink);
}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:12px;
  font-family:var(--font-alt);
  font-weight:700;
  text-transform:uppercase;
  font-size:18px;
  letter-spacing:0.03em;
  padding:18px 44px;
  border-radius:var(--radius);
  border:1px solid transparent;
  cursor:pointer;
  transition:background .25s ease, border-color .25s ease, color .25s ease, transform .25s ease;
}
.btn svg{ width:18px; height:18px; }
.btn--primary{ background:var(--ink); color:var(--paper); }
.btn--primary:hover{ background:var(--slate); transform:translateY(-2px); }
.btn--ghost{
  background:transparent; color:var(--ink); border-color:var(--mist);
}
.btn--ghost:hover{ background:var(--sky); border-color:var(--dusty); transform:translateY(-2px); }
.btn--gold{ background:var(--gold); color:var(--navy-deep); }
.btn--gold:hover{ filter:brightness(1.05); transform:translateY(-2px); }
.btn--full{ width:100%; justify-content:center; }

/* inline arrow text-link */
.textlink{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:var(--font-alt);
  font-weight:700;
  text-transform:uppercase;
  font-size:14px;
  letter-spacing:0.03em;
  color:var(--ink);
  border-bottom:1px solid var(--dusty);
  padding-bottom:3px;
  transition:color .2s ease, border-color .2s ease;
}
.textlink:hover{ color:var(--slate); border-color:var(--slate); }
.textlink svg{ width:15px; height:15px; }
.textlink--light{ color:var(--sky); border-color:rgba(187,208,230,0.4); }
.textlink--light:hover{ color:var(--paper); border-color:var(--paper); }

/* ---------- SECTIONS ---------- */
.sec{ padding:88px 0 96px; }
.sec--paper{ background:var(--paper); }
.sec--stone{ background:var(--stone); }
.sec--navy{ background:var(--ink); }
.sec--deep{ background:var(--navy-deep); }
.on-dark{ color:var(--paper); }
.on-dark .section-title,
.on-dark h2,
.on-dark h3{ color:var(--paper); }
.sec-head{ margin-bottom:36px; }
.sec-head--center{ text-align:center; }

@media (max-width:640px){
  .sec{ padding:56px 0 64px; }
}

/* ---------- QUOTE BLOCK ---------- */
.quote-block{
  margin-top:44px;
  padding-left:24px;
  border-left:3px solid var(--mist);
  max-width:56ch;
}
.quote-block p{
  font-family:var(--font-body);
  font-style:italic;
  font-size:21px;
  line-height:1.6;
  color:var(--slate);
}
.quote-block cite{
  display:block;
  margin-top:12px;
  font-style:normal;
  font-weight:600;
  font-size:15px;
  letter-spacing:0.03em;
  color:var(--dusty);
}
.quote-block.on-dark{ border-left-color:rgba(187,208,230,0.35); }
.quote-block.on-dark p{ color:var(--sky); }

/* ---------- CARDS (generic) ---------- */
.card{
  background:var(--paper);
  border:1px solid var(--mist);
  border-radius:var(--radius-lg);
  overflow:hidden;
}

/* ============================================================
   NAV (shared)
   ============================================================ */
.nav{
  background:var(--paper);
  border-bottom:1px solid var(--mist);
  padding:22px clamp(24px, 5vw, 64px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  position:relative;
}
.nav__logo{ display:flex; align-items:center; }
.nav__logo img{
  height:34px;
  width:auto;
  display:block;
  border-radius:var(--radius);
}
.nav__links{
  display:flex;
  align-items:center;
  gap:clamp(18px, 2.6vw, 32px);
  list-style:none;
}
.nav__links a{
  font-family:var(--font-cond);
  font-weight:600;
  font-size:16px;
  letter-spacing:0.02em;
  color:var(--slate);
  padding-bottom:3px;
  border-bottom:1px solid transparent;
  transition:color .2s ease, border-color .2s ease;
  white-space:nowrap;
}
.nav__links a:hover{ color:var(--ink); border-color:var(--dusty); }
.nav__links a.active{ color:var(--ink); border-color:var(--ink); }

/* "Cultivate the Call" — script gold accent link */
.nav__links a.cultivate{
  font-family:var(--font-script);
  font-weight:700;
  font-size:22px;
  letter-spacing:0;
  color:var(--gold);
  padding-bottom:0;
  border-bottom:0;
}
.nav__links a.cultivate:hover,
.nav__links a.cultivate.active{ color:var(--ink); }

/* Give — solid navy button link */
.nav__links a.give{
  color:var(--paper);
  background:var(--ink);
  padding:9px 22px;
  border-radius:var(--radius);
  border-bottom:0;
}
.nav__links a.give:hover{ background:var(--slate); border-color:transparent; }

/* mobile toggle */
.nav__burger{
  display:none;
  font-family:var(--font-alt);
  font-weight:700;
  text-transform:uppercase;
  font-size:15px;
  letter-spacing:0.04em;
  color:var(--ink);
  border:1px solid var(--mist);
  padding:8px 16px;
  border-radius:var(--radius);
  background:none;
  cursor:pointer;
}

@media (max-width:900px){
  .nav__links{
    display:none;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    flex-direction:column;
    align-items:flex-start;
    gap:0;
    background:var(--paper);
    border-bottom:1px solid var(--mist);
    padding:8px 24px 20px;
    box-shadow:0 18px 40px rgba(18,22,29,0.12);
    z-index:50;
  }
  .nav__links.is-open{ display:flex; }
  .nav__links li{ width:100%; }
  .nav__links a{
    display:block;
    width:100%;
    padding:14px 0;
    border-bottom:1px solid var(--mist) !important;
  }
  .nav__links a.give{
    display:inline-block;
    width:auto;
    margin-top:14px;
    padding:12px 24px;
    border-bottom:0 !important;
  }
  .nav__links a.cultivate{ font-size:24px; }
  .nav__burger{ display:block; }
}

/* ============================================================
   FOOTER (shared)
   ============================================================ */
.footer{
  background:var(--ink);
  color:var(--paper);
  padding:72px 0 40px;
}
.footer__grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:48px;
  padding-bottom:48px;
  border-bottom:1px solid rgba(187,208,230,0.18);
}
.footer__brand img{
  height:52px;
  width:auto;
  display:block;
  margin-bottom:20px;
}
.footer__blurb{
  font-size:15.5px;
  line-height:1.7;
  color:var(--sky);
  max-width:40ch;
}
.footer__col h4{
  font-family:var(--font-alt);
  font-weight:700;
  text-transform:uppercase;
  font-size:14px;
  letter-spacing:0.06em;
  color:var(--sky);
  margin-bottom:18px;
}
.footer__links{ list-style:none; display:flex; flex-direction:column; gap:12px; }
.footer__links a{
  font-family:var(--font-cond);
  font-weight:500;
  font-size:16px;
  color:var(--paper);
  transition:color .2s ease;
}
.footer__links a:hover{ color:var(--gold); }
.footer__social{ display:flex; gap:14px; margin-top:4px; }
.footer__social a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border:1px solid rgba(187,208,230,0.35);
  border-radius:50%;
  color:var(--sky);
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.footer__social a:hover{ background:var(--gold); color:var(--navy-deep); border-color:var(--gold); }
.footer__social svg{ width:18px; height:18px; fill:currentColor; }
.footer__base{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  padding-top:28px;
  font-size:14px;
  color:var(--dusty);
}
.footer__base .seenco{ color:var(--dusty); transition:color .2s ease; }
.footer__base .seenco:hover{ color:var(--paper); }
.footer__base .seenco em{ font-style:normal; font-weight:700; }

@media (max-width:780px){
  .footer__grid{ grid-template-columns:1fr; gap:36px; }
  .footer__base{ flex-direction:column; align-items:flex-start; }
}

/* ============================================================
   PAGE: HOME (.page-home)
   ============================================================ */
.page-home .hero{ background:var(--paper); padding:64px 0 72px; }
.page-home .hero-frame{ max-width:var(--wrap); margin:0 auto; padding:0 24px; }
.page-home .hero-image{
  position:relative;
  width:100%; border-radius:var(--radius-lg); overflow:hidden;
  box-shadow:0 24px 60px rgba(0,0,0,0.35);
}
.page-home .hero-image img{ display:block; width:100%; height:auto; }
/* Real overlay buttons, positioned over the (now button-free) collage bottom.
   Footprint matches the original baked-in buttons: %-based so it scales with the image. */
.page-home .hero-actions{
  position:absolute; left:28%; right:2.4%; top:76.7%; bottom:8.1%;
  display:flex; align-items:stretch; gap:2.4%;
}
.page-home .hero-btn{
  flex:1; display:flex; align-items:center; justify-content:center; text-align:center;
  background:var(--dusty); color:#fff; border-radius:12px;
  font-family:var(--font-head); font-weight:700; text-transform:uppercase; letter-spacing:0.02em;
  font-size:clamp(15px, 2.7vw, 30px); line-height:1.05;
  box-shadow:0 8px 20px rgba(0,0,0,0.22);
  transition:background .2s ease, transform .2s ease;
}
.page-home .hero-btn:hover{ background:var(--slate); transform:translateY(-2px); }

/* intro */
.page-home .intro{ background:var(--paper); padding:80px 0 96px; }
.page-home .intro-frame{
  max-width:var(--wrap); margin:0 auto; padding:0 24px;
  display:grid; grid-template-columns:minmax(280px, 420px) 1fr;
  gap:56px; align-items:start;
}
.page-home .intro-photo{ width:100%; border-radius:var(--radius-lg); overflow:hidden; }
.page-home .intro-photo img{ display:block; width:100%; height:auto; }
.page-home .intro-copy h2{
  font-family:var(--font-alt); font-weight:700; text-transform:uppercase;
  font-size:clamp(30px, 3.4vw, 40px); color:var(--ink); margin-bottom:22px;
}
.page-home .intro-copy p{ font-size:18px; line-height:1.7; color:var(--slate); max-width:62ch; }
.page-home .start-request{ margin-top:32px; }

/* offer mosaic */
.page-home .offer{ background:var(--navy-deep); padding:88px 0 96px; position:relative; }
.page-home .offer-frame{ max-width:var(--wrap); margin:0 auto; padding:0 24px; }
.page-home .offer-frame h2{
  font-family:var(--font-alt); font-weight:700; text-transform:uppercase;
  font-size:clamp(30px, 3.6vw, 42px); color:var(--paper); max-width:16ch; margin-bottom:52px;
}
.page-home .offer-mosaic{
  position:relative; display:grid; grid-template-columns:repeat(3, 1fr);
  grid-auto-rows:240px; gap:4px;
}
.page-home .offer-route{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:2; }
.page-home .offer-tile{
  position:relative; display:flex; align-items:flex-end; padding:24px 26px; overflow:hidden;
  cursor:pointer; transition:transform .3s ease, box-shadow .3s ease;
}
/* clickable-tile hover: lift + zoom photo + brighten + nudge label */
.page-home a.offer-tile:hover,
.page-home a.offer-tile:focus-visible{
  transform:translateY(-5px); box-shadow:0 18px 38px rgba(0,0,0,0.45); z-index:3; outline:none;
}
.page-home .offer-tile.has-photo img{ transition:transform .55s ease, filter .4s ease; }
.page-home a.offer-tile:hover img,
.page-home a.offer-tile:focus-visible img{ transform:scale(1.08); filter:grayscale(0.15) contrast(1.08); }
.page-home a.offer-tile:hover::after,
.page-home a.offer-tile:focus-visible::after{
  background:linear-gradient(180deg, rgba(31,60,90,0.2) 0%, rgba(18,22,29,0.72) 100%);
}
.page-home .offer-tile span{ transition:transform .3s ease; }
.page-home a.offer-tile:hover span,
.page-home a.offer-tile:focus-visible span{ transform:translateX(5px); }
.page-home a.offer-tile:hover::before,
.page-home a.offer-tile:focus-visible::before{ background:var(--gold); opacity:1; }
@media (prefers-reduced-motion:reduce){
  .page-home .offer-tile,
  .page-home .offer-tile.has-photo img,
  .page-home .offer-tile span{ transition:none; }
}
.page-home .offer-tile::before{
  content:""; position:absolute; top:16px; left:26px; width:7px; height:7px;
  border-radius:50%; background:var(--sky); opacity:0.85; z-index:2;
}
.page-home .offer-tile span{
  font-family:var(--font-alt); font-weight:700; text-transform:uppercase;
  font-size:22px; line-height:1.25; color:var(--paper); max-width:18ch; position:relative; z-index:2;
}
.page-home .offer-tile.has-photo img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  object-position:center 35%; filter:grayscale(1) contrast(1.05); z-index:0;
}
.page-home .offer-tile.t2.has-photo img{ object-position:center 60%; }
.page-home .offer-tile.t5.has-photo img{ object-position:center 40%; }
.page-home .offer-tile.t7.has-photo img{ object-position:center 45%; }
.page-home .offer-tile.t6.has-photo img{ object-position:center 42%; }
.page-home .offer-tile.has-photo::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(18,22,29,0.25) 0%, rgba(18,22,29,0.8) 100%); z-index:1;
}
.page-home .offer-tile.big{ grid-column:span 2; grid-row:span 2; }
.page-home .offer-tile.big span{ font-size:30px; max-width:12ch; }
.page-home .offer-tile.wide{ grid-column:span 3; grid-row:span 2; }
.page-home .offer-tile.t1{ background:linear-gradient(135deg, #1b222b 0%, #2f3d4c 55%, #3f5878 100%); }
.page-home .offer-tile.t2{ background:#2f3d4c; }
.page-home .offer-tile.t3{ background:#51657b; }
.page-home .offer-tile.t4{ background:#1b222b; }
.page-home .offer-tile.t5{ background:#2f3d4c; }
.page-home .offer-tile.t6{ background:linear-gradient(100deg, #2f3d4c 0%, #51657b 45%, #849ab2 100%); }
.page-home .offer-tile.t7{ background:#51657b; }
.page-home .offer-link{
  margin-top:28px; display:inline-flex; align-items:center; gap:10px;
  font-family:var(--font-alt); font-weight:700; text-transform:uppercase; font-size:18px;
  letter-spacing:0.02em; color:var(--sky);
  border-bottom:1px solid rgba(187,208,230,0.4); padding-bottom:3px;
  transition:color .2s ease, border-color .2s ease;
}
.page-home .offer-link:hover{ color:var(--paper); border-color:var(--paper); }
.page-home .offer-link svg{ width:16px; height:16px; }

/* action / promo video */
.page-home .action{ background:var(--paper); padding:88px 0 96px; }
.page-home .action-frame{ max-width:var(--wrap); margin:0 auto; padding:0 24px; }
.page-home .action-heading{
  display:flex; align-items:baseline; justify-content:space-between;
  gap:24px; margin-bottom:36px; flex-wrap:wrap;
}
.page-home .action-heading h2{
  font-family:var(--font-alt); font-weight:700; text-transform:uppercase;
  font-size:clamp(30px, 3.6vw, 42px); color:var(--ink);
}
.page-home .action-heading p{
  font-family:var(--font-body); text-transform:uppercase; font-size:16px;
  color:var(--slate); max-width:34ch;
}
.page-home .promo{
  position:relative; aspect-ratio:16 / 9; border-radius:var(--radius-lg);
  overflow:hidden; background:var(--ink); cursor:pointer;
}
.page-home .promo img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:grayscale(1) contrast(1.05);
}
.page-home .promo::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(18,22,29,0.15) 0%, rgba(18,22,29,0.55) 100%);
}
.page-home .promo-play{
  position:absolute; top:50%; left:50%; transform:translate(-50%, -50%);
  width:84px; height:84px; border-radius:50%; background:rgba(255,255,255,0.94);
  display:flex; align-items:center; justify-content:center; z-index:2;
  transition:transform .25s ease, background .25s ease;
}
.page-home .promo:hover .promo-play{ transform:translate(-50%, -50%) scale(1.06); background:var(--paper); }
.page-home .promo-play svg{ width:26px; height:26px; fill:var(--ink); margin-left:3px; }
.page-home .promo-tag{
  position:absolute; left:24px; bottom:22px; z-index:2;
  font-family:var(--font-body); font-weight:600; font-size:18px; letter-spacing:0.02em; color:var(--paper);
}
.page-home .promo-length{
  position:absolute; right:20px; bottom:20px; z-index:2;
  font-family:var(--font-body); font-size:13px; font-weight:500; color:var(--paper);
  background:rgba(18,22,29,0.55); padding:4px 9px; border-radius:var(--radius); letter-spacing:0.02em;
}

/* schedule list */
.page-home .schedule{ background:var(--paper); padding:88px 0 96px; }
.page-home .schedule-frame{ max-width:var(--wrap); margin:0 auto; padding:0 24px; }
.page-home .schedule-heading{
  display:flex; align-items:baseline; justify-content:space-between; gap:24px;
  margin-bottom:28px; padding-bottom:20px; border-bottom:1px solid var(--mist);
}
.page-home .schedule-heading h2{
  font-family:var(--font-alt); font-weight:700; text-transform:uppercase;
  font-size:clamp(26px, 3vw, 34px); color:var(--ink);
}
.page-home .schedule-link{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-body); font-weight:600; font-size:17px; letter-spacing:0.02em;
  text-transform:uppercase; color:var(--slate);
  border-bottom:1px solid var(--dusty); padding-bottom:3px;
  transition:color .2s ease, border-color .2s ease;
}
.page-home .schedule-link:hover{ color:var(--ink); border-color:var(--ink); }
.page-home .schedule-link svg{ width:15px; height:15px; }
/* upcoming events — photo cards (portal-editable list) */
.page-home .event-list{ display:flex; flex-direction:column; gap:18px; }
.page-home .event-empty{ padding:26px 2px; color:var(--slate); font-size:16px; }
.page-home .event-card{
  display:grid; grid-template-columns:230px 1fr; gap:26px; align-items:stretch;
  border:1px solid var(--mist); border-radius:var(--radius-lg); overflow:hidden; background:var(--paper);
  transition:box-shadow .25s ease, transform .25s ease;
}
.page-home .event-card:hover{ box-shadow:0 14px 32px rgba(18,22,29,0.10); transform:translateY(-2px); }
.page-home .event-card.no-photo{ grid-template-columns:1fr; }
.page-home .event-photo{ position:relative; overflow:hidden; background:var(--ink); min-height:170px; }
.page-home .event-photo img{ width:100%; height:100%; object-fit:cover; display:block; filter:grayscale(1) contrast(1.05); }
.page-home .event-body{ display:flex; flex-direction:column; gap:12px; padding:22px 24px 22px 0; }
.page-home .event-card.no-photo .event-body{ padding:22px 24px; }
.page-home .event-head{ display:flex; align-items:flex-start; gap:18px; }
.page-home .event-date{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  width:60px; flex-shrink:0; background:var(--ink); border-radius:var(--radius); padding:8px 0;
}
.page-home .event-date .month{
  font-family:var(--font-body); font-weight:600; font-size:12px; letter-spacing:0.06em; color:var(--sky); text-transform:uppercase;
}
.page-home .event-date .day{ font-family:var(--font-body); font-weight:500; font-size:22px; color:var(--paper); }
.page-home .event-headings{ flex:1; display:flex; flex-direction:column; gap:4px; }
.page-home .event-title{
  font-family:var(--font-alt); font-weight:700; text-transform:uppercase; font-size:19px; color:var(--ink);
}
.page-home .event-place{ font-size:15px; color:var(--slate); }
.page-home .event-type{
  flex-shrink:0; font-family:var(--font-body); font-weight:600; font-size:13px;
  letter-spacing:0.03em; color:var(--slate); border:1px solid var(--mist); padding:5px 13px; border-radius:20px;
}
.page-home .event-details{ font-size:15px; line-height:1.6; color:var(--slate); }
.page-home .event-link{
  align-self:flex-start; display:inline-flex; align-items:center; gap:7px; margin-top:2px;
  font-family:var(--font-body); font-weight:600; font-size:14px; text-transform:uppercase; letter-spacing:0.02em;
  color:var(--ink); border-bottom:1px solid var(--dusty); padding-bottom:2px;
  transition:color .2s ease, border-color .2s ease;
}
.page-home .event-link:hover{ color:var(--slate); border-color:var(--slate); }
.page-home .event-link svg{ width:14px; height:14px; }

/* blog signup cards */
.page-home .blogs{ background:var(--paper); padding:0 0 96px; }
.page-home .blogs-frame{
  max-width:var(--wrap); margin:0 auto; padding:0 24px;
  display:grid; grid-template-columns:1fr 1fr; gap:4px;
}
.page-home .blog-card{ display:flex; flex-direction:column; min-height:320px; overflow:hidden; }
.page-home .blog-card.overflow{ background:var(--sky); color:var(--ink); }
.page-home .blog-card.wtw{ background:var(--ink); color:var(--paper); }
.page-home .blog-banner{ width:100%; line-height:0; flex-shrink:0; }
.page-home .blog-banner img{ display:block; width:100%; height:auto; }
.page-home .blog-body{
  padding:40px 44px 48px; display:flex; flex-direction:column; gap:14px; flex:1; justify-content:center;
}
.page-home .blog-eyebrow{ font-family:var(--font-body); font-weight:600; font-size:14px; letter-spacing:0.04em; }
.page-home .blog-card.wtw .blog-body{ background:var(--sky); }
.page-home .blog-card.wtw .blog-eyebrow{ color:var(--ink); font-family:var(--font-alt); font-weight:700; text-transform:uppercase; }
.page-home .blog-card p{ font-size:15.5px; line-height:1.6; max-width:38ch; }
.page-home .blog-card.overflow p{ color:var(--slate); font-family:var(--font-alt); font-weight:400; }
.page-home .blog-card.wtw p{ color:var(--ink); font-family:var(--font-alt); font-weight:400; }
.page-home .blog-form{ margin-top:12px; display:flex; flex-wrap:wrap; gap:10px; max-width:380px; }
.page-home .blog-form input{
  flex:1; min-width:0; font-family:var(--font-head); font-size:15px; padding:13px 16px;
  border-radius:var(--radius); border:1px solid var(--mist); background:var(--paper); color:var(--ink);
}
.page-home .blog-card.wtw .blog-form input{ border-color:var(--dusty); }
.page-home .blog-card.wtw .blog-form input::placeholder{ color:var(--slate); }
.page-home .blog-form button{
  font-family:var(--font-alt); font-weight:700; text-transform:uppercase; font-size:15px;
  letter-spacing:0.03em; padding:0 24px; border-radius:var(--radius); border:none; cursor:pointer;
  background:var(--ink); color:var(--paper); transition:background .2s ease, transform .2s ease;
}
.page-home .blog-form button:hover{ background:var(--slate); transform:translateY(-1px); }
.page-home .blog-form button:disabled{ opacity:0.7; cursor:default; transform:none; }
.page-home .blog-form-note{ flex-basis:100%; margin:2px 0 0; font-size:13.5px; line-height:1.4; color:var(--slate); }
.page-home .blog-form-note.is-err{ color:#b0483f; }
.page-home .blog-form-thanks{ margin-top:12px; font-family:var(--font-alt); font-weight:700; font-size:15.5px; color:var(--ink); }

/* signature resources */
.page-home .signature{ background:var(--paper); padding:96px 0 110px; border-top:1px solid var(--mist); }
.page-home .signature-frame{ max-width:var(--wrap); margin:0 auto; padding:0 24px; }
.page-home .signature-frame > h2{
  font-family:var(--font-alt); font-weight:700; text-transform:uppercase;
  font-size:clamp(30px, 3.6vw, 42px); color:var(--ink); margin-bottom:48px;
}
.page-home .signature-grid{ display:grid; grid-template-columns:1fr 1fr; gap:48px; }
.page-home .signature-book{ display:grid; grid-template-columns:160px 1fr; gap:28px; align-items:start; }
.page-home .book-cover{
  aspect-ratio:2 / 3; border-radius:var(--radius); overflow:hidden;
  display:flex; align-items:center; justify-content:center; padding:18px; text-align:center;
}
.page-home .book-cover img{ width:100%; height:100%; object-fit:cover; display:block; }
.page-home .book-cover.alw{ background:linear-gradient(150deg, #2f3d4c 0%, #51657b 100%); padding:0; }
.page-home .book-cover.io{ background:linear-gradient(150deg, #12161d 0%, #2f3d4c 100%); padding:0; }
.page-home .signature-book h3{
  font-family:var(--font-alt); font-weight:700; text-transform:uppercase; font-size:22px;
  color:var(--ink); margin-bottom:10px;
}
.page-home .signature-book p{ font-size:15px; line-height:1.6; color:var(--slate); margin-bottom:16px; }
.page-home .signature-link{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-alt); font-weight:700; text-transform:uppercase; font-size:14px;
  letter-spacing:0.03em; color:var(--ink); border-bottom:1px solid var(--dusty); padding-bottom:3px;
  transition:color .2s ease, border-color .2s ease;
}
.page-home .signature-link:hover{ color:var(--slate); border-color:var(--slate); }
.page-home .signature-link svg{ width:15px; height:15px; }

@media (max-width:780px){
  .page-home .intro-frame{ grid-template-columns:1fr; }
  .page-home .intro-photo{ max-width:420px; }
  .page-home .offer-mosaic{ grid-template-columns:1fr; grid-auto-rows:170px; }
  .page-home .offer-tile.big,
  .page-home .offer-tile.wide{ grid-column:span 1; grid-row:span 1; }
  .page-home .offer-tile.big span{ font-size:22px; max-width:20ch; }
  .page-home .offer-route{ display:none; }
  .page-home .blogs-frame{ grid-template-columns:1fr; }
  .page-home .blog-form{ flex-direction:column; max-width:100%; }
  .page-home .signature-grid{ grid-template-columns:1fr; gap:40px; }
  .page-home .signature-book{ grid-template-columns:120px 1fr; }
}
@media (max-width:640px){
  .page-home .hero{ padding:40px 0 48px; }
  .page-home .action-heading{ flex-direction:column; align-items:flex-start; }
  .page-home .promo-play{ width:64px; height:64px; }
  .page-home .promo-play svg{ width:20px; height:20px; }
  .page-home .event-card{ grid-template-columns:1fr; }
  .page-home .event-photo{ min-height:190px; }
  .page-home .event-body{ padding:20px 22px; }
  .page-home .event-head{ flex-wrap:wrap; gap:14px; }
}

/* ============================================================
   PAGE: SPEAKING (.page-speaking)
   ============================================================ */
.page-speaking .speak-hero{ background:var(--ink); padding:0; }
.page-speaking .speak-collage{
  display:grid; grid-template-columns:repeat(4, 1fr); grid-auto-rows:210px; gap:3px;
}
.page-speaking .speak-tile{ position:relative; overflow:hidden; }
.page-speaking .speak-tile img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;
}
.page-speaking .speak-tile.t1 img{ object-position:center 33%; }
.page-speaking .speak-tile.t2 img{ object-position:center 25%; }
.page-speaking .speak-tile.t3 img{ object-position:center 20%; }
.page-speaking .speak-tile.t4 img{ object-position:center 3%; }
.page-speaking .speak-tile.t5 img{ object-position:center 0%; }
.page-speaking .speak-tile.t6 img{ object-position:center 12%; }
.page-speaking .speak-tile.t1{ grid-column:1 / 3; grid-row:1; }
.page-speaking .speak-tile.t2{ grid-column:3 / 4; grid-row:1; }
.page-speaking .speak-tile.t3{ grid-column:4 / 5; grid-row:1; }
.page-speaking .speak-tile.t4{ grid-column:1 / 3; grid-row:2; }
.page-speaking .speak-tile.t5{ grid-column:3 / 4; grid-row:2; }
.page-speaking .speak-tile.t6{ grid-column:4 / 5; grid-row:2; }

.page-speaking .speak-cta{ background:var(--paper); padding:48px 0; display:flex; justify-content:center; }
.page-speaking .speak-request-btn{
  display:inline-flex; align-items:center; gap:12px;
  background:var(--ink); color:var(--paper);
  font-family:var(--font-alt); font-weight:700; text-transform:uppercase;
  font-size:20px; letter-spacing:0.03em; padding:18px 44px; border-radius:var(--radius);
  transition:background .25s ease, transform .25s ease;
}
.page-speaking .speak-request-btn:hover{ background:var(--slate); transform:translateY(-2px); }
.page-speaking .speak-request-btn svg{ width:18px; height:18px; }

.page-speaking .speak-offer-heading{ background:var(--mist); padding:72px 24px; text-align:center; }
.page-speaking .speak-offer-heading h2{
  font-family:var(--font-head); font-weight:700; text-transform:uppercase;
  font-size:clamp(38px, 5vw, 56px); color:var(--ink); max-width:18ch; margin:0 auto;
}
.page-speaking .speak-offer{ background:var(--paper); padding:24px 0 0; }
.page-speaking .speak-offer-frame{ max-width:var(--wrap); margin:0 auto; padding:0 24px; }
.page-speaking .offer-item{ padding:56px 0; border-bottom:1px solid var(--mist); text-align:center; }
.page-speaking .offer-item:last-child{ border-bottom:none; }
.page-speaking .offer-item h3{
  font-family:var(--font-head); font-weight:700; text-transform:uppercase;
  font-size:clamp(34px, 4.4vw, 52px); line-height:1.15; color:var(--ink);
}
.page-speaking .offer-detail{
  margin-top:44px; display:grid; grid-template-columns:200px 1fr; gap:40px;
  align-items:center; text-align:left;
}
.page-speaking .offer-logo{
  width:100%; aspect-ratio:1 / 1; border-radius:var(--radius-lg);
  border:1px dashed var(--dusty); background:var(--paper);
  display:flex; align-items:center; justify-content:center; text-align:center; padding:16px; overflow:hidden;
}
.page-speaking .offer-logo.filled{ border-style:solid; border-color:var(--mist); padding:0; aspect-ratio:4 / 5; }
.page-speaking .offer-logo img{ width:100%; height:100%; object-fit:cover; display:block; }
.page-speaking .offer-logo span{
  font-family:var(--font-cond); font-weight:600; font-size:14px; letter-spacing:0.03em; color:var(--dusty);
}
.page-speaking .offer-detail p{ font-size:17px; line-height:1.7; color:var(--slate); max-width:60ch; }
.page-speaking .offer-item.reverse .offer-detail{ grid-template-columns:1fr 200px; }
.page-speaking .offer-item.reverse .offer-logo{ order:2; }
.page-speaking .offer-item.reverse .offer-detail p{ order:1; }

.page-speaking .campaign-row{ margin-top:36px; display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; }
.page-speaking .campaign-card{
  aspect-ratio:4 / 3; border-radius:var(--radius-lg); border:1px dashed var(--dusty);
  background:var(--paper); display:flex; align-items:center; justify-content:center;
  text-align:center; padding:20px; overflow:hidden;
}
.page-speaking .campaign-card.filled{ border-style:solid; border-color:var(--mist); }
.page-speaking .campaign-card img{ max-width:100%; max-height:100%; object-fit:contain; }
.page-speaking .campaign-card span{ font-family:var(--font-serif); font-weight:500; font-size:18px; color:var(--ink); }
.page-speaking .campaign-note{
  margin-top:20px; text-align:center; font-family:var(--font-cond); font-weight:600;
  font-size:17px; letter-spacing:0.02em; color:var(--slate);
}
.page-speaking .campaign-note a{
  color:var(--ink); border-bottom:1px solid var(--dusty); padding-bottom:2px;
  transition:color .2s ease, border-color .2s ease;
}
.page-speaking .campaign-note a:hover{ color:var(--slate); border-color:var(--slate); }

.page-speaking .conf-grid{ margin-top:44px; display:flex; flex-wrap:wrap; justify-content:center; gap:32px; }
.page-speaking .conf-card{ flex:0 1 calc(25% - 24px); display:flex; flex-direction:column; align-items:center; text-align:center; gap:14px; }
.page-speaking .conf-logo{
  width:100%; aspect-ratio:1 / 1; border-radius:var(--radius-lg); border:1px dashed var(--dusty);
  background:var(--paper); display:flex; align-items:center; justify-content:center; padding:14px; overflow:hidden;
}
.page-speaking .conf-logo.filled{ border-style:solid; border-color:var(--mist); padding:0; }
.page-speaking .conf-logo img{ width:100%; height:100%; object-fit:cover; }
.page-speaking .conf-logo svg{ width:100%; height:100%; display:block; }
.page-speaking .conf-logo span{ font-family:var(--font-cond); font-weight:600; font-size:13px; letter-spacing:0.02em; color:var(--dusty); }
.page-speaking .conf-card h4{
  font-family:var(--font-head); font-weight:700; text-transform:uppercase; font-size:19px; color:var(--ink);
}
.page-speaking .conf-card p{ font-size:14px; line-height:1.55; color:var(--slate); }

@media (max-width:780px){
  .page-speaking .speak-collage{ grid-template-columns:repeat(2, 1fr); grid-auto-rows:minmax(90px, 24vw); }
  .page-speaking .speak-tile.t1{ grid-column:1 / 3; grid-row:1 / 2; }
  .page-speaking .speak-tile.t2{ grid-column:1 / 2; grid-row:2 / 3; }
  .page-speaking .speak-tile.t3{ grid-column:2 / 3; grid-row:2 / 3; }
  .page-speaking .speak-tile.t4{ grid-column:1 / 3; grid-row:3 / 4; }
  .page-speaking .speak-tile.t5{ grid-column:1 / 2; grid-row:4 / 5; }
  .page-speaking .speak-tile.t6{ grid-column:2 / 3; grid-row:4 / 5; }
  .page-speaking .conf-card{ flex-basis:calc(50% - 16px); }
}
@media (max-width:640px){
  .page-speaking .campaign-row{ grid-template-columns:1fr; }
  .page-speaking .offer-detail{ grid-template-columns:1fr; justify-items:center; text-align:center; }
  .page-speaking .offer-logo{ max-width:160px; }
  .page-speaking .offer-item.reverse .offer-detail{ grid-template-columns:1fr; }
}
@media (max-width:480px){
  .page-speaking .conf-card{ flex-basis:100%; }
}

/* ============================================================
   SHARED COMPONENTS (page-agnostic)
   ============================================================ */

/* About · "How Mike Serves" feature cards (self-contained; does not
   depend on the page-speaking scope the way the old markup did). */
.serve-grid{ margin-top:44px; display:flex; flex-wrap:wrap; justify-content:center; gap:32px; }
.serve-card{ flex:0 1 calc(25% - 24px); display:flex; flex-direction:column; align-items:center; text-align:center; gap:16px; }
.serve-icon{
  width:66px; height:66px; border-radius:50%; background:var(--stone);
  border:1px solid var(--mist); display:flex; align-items:center; justify-content:center; color:var(--ink);
}
.serve-icon svg{ width:30px; height:30px; }
.serve-card h4{ font-family:var(--font-head); font-weight:700; text-transform:uppercase; font-size:19px; color:var(--ink); }
.serve-card p{ font-size:14px; line-height:1.55; color:var(--slate); }
@media (max-width:780px){ .serve-card{ flex-basis:calc(50% - 16px); } }
@media (max-width:480px){ .serve-card{ flex-basis:100%; } }

/* Signature books grid — used on Home AND Resources. The .page-home
   rules are more specific and still win on the home page; these
   un-prefixed rules give the same look wherever page-home is absent
   (e.g. Resources), fixing the previously-unsized giant arrow SVGs. */
.signature-grid{ display:grid; grid-template-columns:1fr 1fr; gap:48px; }
.signature-book{ display:grid; grid-template-columns:150px 1fr; gap:28px; align-items:start; }
.book-cover{ aspect-ratio:2 / 3; border-radius:var(--radius); overflow:hidden; display:flex; align-items:center; justify-content:center; }
.book-cover img{ width:100%; height:100%; object-fit:cover; display:block; }
.book-cover.alw{ background:linear-gradient(150deg,#2f3d4c 0%,#51657b 100%); }
.book-cover.io{ background:linear-gradient(150deg,#12161d 0%,#2f3d4c 100%); }
.signature-book h3{ font-family:var(--font-alt); font-weight:700; text-transform:uppercase; font-size:22px; color:var(--ink); margin-bottom:10px; }
.signature-book p{ font-size:15px; line-height:1.6; color:var(--slate); margin-bottom:16px; }
.signature-link{
  display:inline-flex; align-items:center; gap:8px; font-family:var(--font-alt); font-weight:700;
  text-transform:uppercase; font-size:14px; letter-spacing:.03em; color:var(--ink);
  border-bottom:1px solid var(--dusty); padding-bottom:3px; transition:color .2s ease, border-color .2s ease;
}
.signature-link:hover{ color:var(--slate); border-color:var(--slate); }
.signature-link svg{ width:15px; height:15px; }
@media (max-width:780px){ .signature-grid{ grid-template-columns:1fr; gap:40px; } }
@media (max-width:560px){ .signature-book{ grid-template-columns:120px 1fr; gap:20px; } }

/* ============================================================
   PAGE: CULTIVATE (.page-cultivate)
   ============================================================ */
.page-cultivate .cultivate-hero{
  position:relative; min-height:480px; display:flex; align-items:center;
  justify-content:center; overflow:hidden;
}
.page-cultivate .cultivate-hero img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 42%;
}
.page-cultivate .cultivate-hero-content{ position:relative; z-index:2; text-align:center; padding:24px; }
.page-cultivate .cultivate-eyebrow{
  font-family:var(--font-cond); font-weight:600; font-size:16px; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--gold); margin-bottom:18px;
}
.page-cultivate .cultivate-hero h1{
  font-family:var(--font-serif); font-weight:600; font-size:clamp(56px, 10vw, 130px);
  line-height:1; color:var(--paper); text-shadow:0 4px 24px rgba(0,0,0,0.35);
}

.page-cultivate .ad{ background:var(--ink); padding:96px 24px 110px; text-align:center; }
.page-cultivate .ad-frame{ max-width:780px; margin:0 auto; }
.page-cultivate .ad-badge{
  display:inline-block; font-family:var(--font-alt); font-weight:800; text-transform:uppercase;
  font-size:clamp(28px, 4vw, 44px); letter-spacing:0.03em; color:var(--sage);
  border:2px solid var(--sage); border-radius:var(--radius-lg); padding:14px 32px; margin-bottom:40px;
}
.page-cultivate .ad-frame p{ font-size:19px; line-height:1.75; color:var(--sky); margin-bottom:22px; }
.page-cultivate .ad-frame p.lead{
  font-family:var(--font-alt); font-weight:500; font-style:italic; text-transform:uppercase;
  font-size:24px; color:var(--paper); margin-bottom:32px;
}
.page-cultivate .ad-frame p strong{ color:var(--paper); }
.page-cultivate .ad-frame .cta-line{
  font-family:var(--font-alt); font-weight:500; text-transform:uppercase; font-size:22px;
  color:var(--sage); margin-top:40px; margin-bottom:0;
}

.page-cultivate .interest{ background:var(--stone); padding:88px 24px; }
.page-cultivate .interest-frame{
  max-width:560px; margin:0 auto; background:var(--paper); border:1px solid var(--mist);
  border-radius:var(--radius-lg); padding:48px 44px; text-align:center;
}
.page-cultivate .interest-frame h2{
  font-family:var(--font-alt); font-weight:700; text-transform:uppercase;
  font-size:clamp(24px, 2.8vw, 30px); color:var(--ink); margin-bottom:12px;
}
.page-cultivate .interest-frame > p{ font-size:15px; color:var(--slate); margin-bottom:32px; }
.page-cultivate .interest-form{ text-align:left; }
.page-cultivate .interest-form label{
  display:block; font-family:var(--font-head); font-weight:600; font-size:14px;
  letter-spacing:0.02em; color:var(--slate); margin-bottom:6px;
}
.page-cultivate .interest-form input,
.page-cultivate .interest-form textarea{
  width:100%; font-family:var(--font-body); font-size:15px; padding:13px 16px;
  border-radius:var(--radius); border:1px solid var(--deepblue); background:var(--deepblue);
  color:var(--paper); margin-bottom:18px; resize:vertical;
}
.page-cultivate .interest-form input::placeholder,
.page-cultivate .interest-form textarea::placeholder{ color:var(--sky); opacity:1; }
.page-cultivate .interest-form textarea{ min-height:90px; }
.page-cultivate .interest-form button{
  width:100%; font-family:var(--font-alt); font-weight:700; text-transform:uppercase;
  font-size:18px; letter-spacing:0.02em; padding:15px 0; border-radius:var(--radius);
  border:none; background:var(--ink); color:var(--paper); cursor:pointer;
  transition:background .2s ease, transform .2s ease;
}
.page-cultivate .interest-form button:hover{ background:var(--slate); transform:translateY(-1px); }
.page-cultivate .interest-form button:disabled{ opacity:0.7; cursor:default; transform:none; }
.page-cultivate .interest-note{ margin-top:14px; font-size:15px; color:var(--slate); }
.page-cultivate .interest-note.is-err{ color:#c0563f; }
.page-cultivate .interest-thanks{
  margin:8px 0; padding:22px 24px; text-align:center;
  font-family:var(--font-alt); font-weight:600; font-size:18px; line-height:1.5;
  color:var(--ink); background:var(--stone); border-radius:var(--radius-lg);
}

/* ============================================================
   ACCESSIBILITY
   ============================================================ */
.hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}
