/* Heart To Mission, 2026 refresh. Shared by every page. */
  /* ===== Homepage, 2026 refresh: sentence case, warm, photo-led ===== */
  .hp { --ink:#161616; --body:#3a3a3a; --soft:#f3f4f5; }
  .hp .wrap { max-width:1240px; margin:0 auto; padding:0 24px; }
  .hp h1, .hp h2, .hp h3 { font-family:var(--font-display); font-weight:700; letter-spacing:-0.02em; color:var(--ink); margin:0; }
  .hp h1 { font-size:clamp(40px,5vw,68px); line-height:1.04; }
  .hp h2 { font-size:clamp(32px,3.6vw,50px); line-height:1.08; }
  .hp h3 { font-size:22px; line-height:1.2; }
  .hp p { font-family:var(--font-body); font-size:18px; line-height:1.7; color:var(--body); margin:0; }
  .hp .lead { font-size:20px; line-height:1.6; }
  .hp .kicker { font-family:var(--font-display); font-weight:600; font-size:16px; color:var(--htm-copper); margin-bottom:14px; }
  .hp .btn { display:inline-block; font-family:var(--font-ui); font-weight:600; font-size:16px; padding:17px 28px; border-radius:4px; line-height:1; transition:background .2s, color .2s, border-color .2s; }
  .hp .btn-cop { background:var(--htm-copper); color:#fff; }
  .hp .btn-cop:hover { background:var(--htm-copper-hi); }
  .hp .btn-line { border:2px solid var(--ink); color:var(--ink); padding:15px 26px; }
  .hp .btn-line:hover { background:var(--ink); color:#fff; }
  .hp .btn-dark { background:var(--ink); color:#fff; }
  .hp .btn-dark:hover { background:#000; }
  .hp .btns { display:flex; gap:14px; flex-wrap:wrap; margin-top:36px; }
  .hp .textlink { font-family:var(--font-ui); font-weight:600; font-size:16px; color:var(--ink); border-bottom:2px solid var(--htm-copper); padding-bottom:3px; }
  .hp section { padding:112px 0; }
  .hp .split { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; }
  .hp .photo { width:100%; height:100%; min-height:460px; object-fit:cover; border-radius:6px; display:block; }

  /* Hero */
  .hp .hero { padding:56px 0 96px; }
  .hp .hero .split { grid-template-columns:1fr 1.05fr; gap:64px; }
  .hp .hero .photo { min-height:580px; object-position:center 30%; }

  /* Book */
  .hp .book { background:var(--soft); }
  .hp .book .split { grid-template-columns:0.8fr 1.2fr; }
  .hp .book-cover { display:flex; justify-content:center; }
  .hp .book-cover img { width:100%; max-width:340px; box-shadow:0 24px 50px rgba(0,0,0,0.25); border-radius:2px; }

  /* Pathway */
  .hp .steps { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:56px; }
  .hp .step { background:#fff; border:1px solid #e3e4e6; border-radius:6px; padding:28px 24px; }
  .hp .step h3 { font-size:20px; margin-bottom:8px; }
  .hp .step p { font-size:16px; line-height:1.55; }
  .hp .step.more { background:var(--ink); border-color:var(--ink); display:flex; flex-direction:column; justify-content:space-between; }
  .hp .step.more h3, .hp .step.more p { color:#fff; }

  /* Quote */
  .hp .quote { position:relative; color:#fff; padding:140px 0; overflow:hidden; background:#111; }
  .hp .quote > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0.18; }
  .hp .quote blockquote { position:relative; max-width:900px; margin:0 auto; padding:0 24px; text-align:center; }
  .hp .quote blockquote p { font-family:var(--font-display); font-weight:600; font-size:clamp(26px,3vw,40px); line-height:1.3; color:#fff; }
  .hp .quote cite { display:block; margin-top:28px; font-style:normal; font-family:var(--font-ui); font-size:16px; color:rgba(255,255,255,0.8); }

  /* Heart Check */
  .hp .check { background:var(--htm-copper); }
  .hp .check h2, .hp .check p { color:#fff; }
  .hp .check .photo { min-height:420px; }

  /* Josh */
  .hp .josh .split { grid-template-columns:0.75fr 1.25fr; }
  .hp .josh .photo { min-height:560px; object-position:center 20%; }

  /* Podcast */
  .hp .pod { background:var(--soft); }
  .hp .video { position:relative; aspect-ratio:16/9; background:#000; border-radius:6px; overflow:hidden; margin-top:48px; }
  .hp .video iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }

  /* Newsletter */
  .hp .news { background:var(--ink); }
  .hp .news .box { padding:0; display:grid; grid-template-columns:1.1fr 0.9fr; gap:56px; align-items:center; }
  .hp .news h2, .hp .news p { color:#fff; }
  .hp .news p { color:rgba(255,255,255,0.78); }
  .hp .news form { display:flex; gap:10px; flex-wrap:wrap; }
  .hp .news input[type=email] { flex:1; min-width:220px; padding:17px 18px; border-radius:4px; border:0; font-family:var(--font-body); font-size:16px; }
  .hp .news .hp-field { position:absolute; left:-9999px; }
  .hp .news .msg { margin-top:14px; font-family:var(--font-ui); font-size:15px; color:rgba(255,255,255,0.85); min-height:20px; }

  /* Instagram */
  .hp .ig .row { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; margin-bottom:36px; }

  @media (max-width: 900px) {
    .hp section { padding:72px 0; }
    .hp .hero { padding:24px 0 64px; }
    .hp .split, .hp .hero .split, .hp .book .split, .hp .josh .split { grid-template-columns:1fr !important; gap:40px; }
    .hp .photo, .hp .hero .photo, .hp .josh .photo, .hp .check .photo { min-height:300px; max-height:420px; }
    .hp .hero .photo { order:-1; }
    .hp .book-cover img { max-width:230px; }
    .hp .steps { grid-template-columns:1fr 1fr; }
    .hp .news .box { grid-template-columns:1fr; gap:28px; }
    .hp .quote { padding:96px 0; }
  }
  @media (max-width: 560px) {
    .hp .steps { gap:12px; }
    .hp .step { padding:20px 16px; }
    .hp .step h3 { font-size:18px; }
    .hp .step p { font-size:15px; }
  }

  /* v3: Table Group hero, Simon "why", offerings cards, testimonial slider */
  .hp .tg-hero { position:relative; padding:0; min-height:78vh; display:flex; align-items:center; justify-content:center; text-align:center; background:#111; overflow:hidden; }
  .hp .tg-hero .bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 40%; }
  .hp .tg-hero::after { content:''; position:absolute; inset:0; background:rgba(14,18,24,0.62); }
  .hp .tg-hero .inner { position:relative; z-index:1; max-width:980px; padding:96px 24px; }
  .hp .tg-hero h1 { color:#fff; font-size:clamp(34px,4.6vw,62px); line-height:1.14; }
  .hp .tg-hero .rule { width:72px; height:3px; background:var(--htm-copper); margin:34px auto; }
  .hp .tg-hero p { color:rgba(255,255,255,0.9); font-size:21px; }
  .hp .tg-hero .btns { justify-content:center; }
  .hp .tg-hero .btn-line { border-color:#fff; color:#fff; }
  .hp .tg-hero .btn-line:hover { background:#fff; color:var(--ink); }
  .hp .why { padding:120px 0 104px; }
  .hp .why .lbl { font-family:var(--font-display); font-weight:700; font-size:22px; color:var(--htm-copper); margin-bottom:18px; }
  .hp .why blockquote { margin:0; font-family:var(--font-serif); font-size:clamp(28px,3.4vw,46px); line-height:1.32; color:var(--ink); max-width:24em; }
  .hp .why cite { display:block; margin-top:26px; font-style:normal; font-family:var(--font-ui); font-size:16px; color:#555; }
  .hp .ways { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:48px; }
  .hp .way { border-top:4px solid var(--htm-copper); background:#fff; border-radius:0 0 6px 6px; box-shadow:0 1px 0 #e3e4e6, 0 0 0 1px #e3e4e6 inset; padding:30px 26px; display:flex; flex-direction:column; }
  .hp .way h3 { margin-bottom:12px; }
  .hp .way p { font-size:16px; line-height:1.6; flex:1; }
  .hp .way a { margin-top:22px; align-self:flex-start; }
  .hp .slider { position:relative; max-width:920px; margin:0 auto; padding:0 64px; text-align:center; }
  .hp .slide { display:none; }
  .hp .slide.on { display:block; }
  .hp .slide p { font-family:var(--font-display); font-weight:600; font-size:clamp(24px,2.8vw,36px); line-height:1.32; color:#fff; }
  .hp .slide cite { display:block; margin-top:26px; font-style:normal; font-family:var(--font-ui); font-size:16px; color:rgba(255,255,255,0.82); }
  .hp .arrow { position:absolute; top:50%; transform:translateY(-50%); width:46px; height:46px; border-radius:50%; border:1px solid rgba(255,255,255,0.5); background:transparent; color:#fff; font-size:20px; cursor:pointer; }
  .hp .arrow:hover { background:#fff; color:var(--ink); }
  .hp .arrow.prev { left:0; } .hp .arrow.next { right:0; }
  .hp .dots { display:flex; justify-content:center; gap:10px; margin-top:34px; }
  .hp .dots button { width:10px; height:10px; border-radius:50%; border:0; background:rgba(255,255,255,0.35); cursor:pointer; padding:0; }
  .hp .dots button.on { background:var(--htm-copper); }
  @media (max-width: 900px) {
    .hp .tg-hero { min-height:72vh; }
    .hp .ways { grid-template-columns:1fr 1fr; }
    .hp .why { padding:80px 0 64px; }
    .hp .slider { padding:0 8px 0; }
    .hp .arrow { display:none; }
  }
  @media (max-width: 560px) { .hp .ways { grid-template-columns:1fr; } }
  /* Living background: slow zoom + crossfade of real photos (24s loop, 6s each) */
  .hp .tg-hero .kb { opacity:0; transform-origin:center; animation:kb 24s linear infinite; will-change:opacity, transform; }
  @keyframes kb {
    0%   { opacity:0; transform:scale(1); }
    4%   { opacity:1; }
    25%  { opacity:1; }
    30%  { opacity:0; transform:scale(1.12); }
    100% { opacity:0; transform:scale(1.12); }
  }
  @media (prefers-reduced-motion: reduce) {
    .hp .tg-hero .kb { animation:none; }
    .hp .tg-hero .kb:first-of-type { opacity:1; }
  }

  /* ===== Inner pages ===== */
  .hp .page-hero { padding:72px 0 88px; }
  .hp .page-hero .split { grid-template-columns:1.05fr 0.95fr; }
  .hp .page-hero .photo { min-height:480px; }
  .hp .page-hero.plain { padding:88px 0 40px; }
  .hp .page-hero.plain h1 { max-width:18ch; }
  .hp .rows { display:flex; flex-direction:column; gap:96px; }
  .hp .row-split { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; }
  .hp .row-split.flip > :first-child { order:2; }
  .hp .big-quote { font-family:var(--font-serif); font-size:clamp(26px,3vw,40px); line-height:1.35; color:var(--ink); max-width:26em; margin:0; }
  .hp .cta-band { background:var(--htm-copper); padding:96px 0; }
  .hp .cta-band .wrap { display:flex; justify-content:space-between; align-items:center; gap:32px; flex-wrap:wrap; }
  .hp .cta-band h2, .hp .cta-band p { color:#fff; }
  .hp .book-band { background:var(--soft); padding:72px 0; }
  .hp .book-band .wrap { display:grid; grid-template-columns:160px 1fr auto; gap:40px; align-items:center; }
  .hp .book-band img { width:160px; box-shadow:0 16px 34px rgba(0,0,0,0.22); border-radius:2px; }
  .hp .step-cards { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
  .hp .step-card { background:#fff; border:1px solid #e3e4e6; border-radius:6px; padding:36px; }
  .hp .step-card h3 { font-size:26px; margin-bottom:12px; }
  .hp .step-card .tag { font-family:var(--font-ui); font-size:15px; font-weight:600; color:var(--htm-copper); margin-bottom:10px; }
  .hp .person { display:grid; grid-template-columns:0.9fr 1.1fr; gap:72px; align-items:center; }
  .hp .person.flip > :first-child { order:2; }
  .hp .person .photo { min-height:600px; object-position:center 20%; }
  .hp .role { font-family:var(--font-ui); font-weight:600; font-size:16px; color:var(--htm-copper); margin-bottom:10px; }
  .hp .contact-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:48px; }
  .hp .contact-cards .c { background:#fff; border:1px solid #e3e4e6; border-radius:6px; padding:30px; }
  .hp .contact-cards .c h3 { font-size:20px; margin-bottom:10px; }
  .hp .contact-cards a { font-family:var(--font-ui); font-size:17px; color:var(--ink); border-bottom:2px solid var(--htm-copper); }
  .hp .ep-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:32px; margin-top:28px; }
  .hp .ep-grid a { display:block; }
  .hp .ep-grid .thumb { position:relative; aspect-ratio:16/9; background:#000; border-radius:6px; overflow:hidden; }
  .hp .ep-grid .thumb img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .hp .ep-grid .t { font-family:var(--font-display); font-weight:600; font-size:19px; line-height:1.3; color:var(--ink); margin-top:14px; }
  .hp .nav-book { position:relative; }
  @media (max-width: 900px) {
    .hp .page-hero { padding:24px 0 56px; }
    .hp .page-hero .split, .hp .row-split, .hp .person { grid-template-columns:1fr !important; gap:36px; }
    .hp .page-hero .photo { order:-1; min-height:280px; max-height:380px; }
    .hp .row-split.flip > :first-child, .hp .person.flip > :first-child { order:0; }
    .hp .rows { gap:64px; }
    .hp .person .photo { min-height:340px; max-height:440px; }
    .hp .book-band .wrap { grid-template-columns:110px 1fr; gap:24px; }
    .hp .book-band img { width:110px; }
    .hp .book-band .wrap > :last-child { grid-column:1 / -1; }
    .hp .step-cards, .hp .contact-cards, .hp .ep-grid { grid-template-columns:1fr; }
    .hp .step-card { padding:26px 22px; }
    .hp .cta-band { padding:64px 0; }
  }

  /* Sitewide book announcement bar */
  .ann { display:block; background:#161616; color:#fff; text-align:center; padding:11px 24px; font-family:var(--font-ui); font-size:14px; line-height:1.4; }
  .ann strong { color:var(--htm-copper-hi); font-weight:600; }
  .ann span { margin-left:10px; border-bottom:1px solid rgba(255,255,255,0.6); padding-bottom:1px; white-space:nowrap; }
  .ann:hover span { border-color:#fff; }

  /* Book page: steps, team offer */
  .hp .learn { display:grid; grid-template-columns:repeat(2,1fr); gap:14px 40px; margin-top:40px; }
  .hp .learn div { display:flex; gap:14px; align-items:baseline; font-family:var(--font-body); font-size:18px; color:var(--ink); padding:14px 0; border-bottom:1px solid #e3e4e6; }
  .hp .learn b { font-family:var(--font-display); font-weight:700; min-width:9.5em; }
  @media (max-width: 900px) { .hp .learn { grid-template-columns:1fr; } .hp .learn div { flex-direction:column; gap:4px; } }

  /* Anything marked hidden stays hidden, even if a class sets display */
  [hidden] { display:none !important; }


  /* ===== Phone fixes (2026-10-08) ===== */
  @media (max-width: 900px) {
    /* 2. footer links: comfortable thumb targets */
    footer ul { gap:0 !important; }
    footer ul li a { display:inline-block; padding:11px 0; }
    /* 3. text links: taller tap area without changing the look */
    .hp .textlink { display:inline-block; padding:10px 0 6px; }
    .hp .contact-cards a { display:inline-block; padding:8px 0; }
    /* 5. homepage Pathway cards: one per row on phones */
    .hp .steps { grid-template-columns:1fr !important; gap:12px; }
    .hp .step { padding:20px 20px; }
    /* 4. testimonial slider: arrows shown under the quote */
    .hp .slider { padding:0 0 64px; }
    .hp .arrow { display:block !important; top:auto; bottom:0; transform:none; width:44px; height:44px; }
    .hp .arrow.prev { left:calc(50% - 56px); } .hp .arrow.next { right:calc(50% - 56px); }
    .hp .dots { margin-top:18px; }
    .hp .dots button { width:12px; height:12px; }
    /* 6. book stack panel without the empty space */
    .hp .stack { min-height:0 !important; padding:28px 20px !important; }
  }
