/*
Theme Name: True Strength Warrior — Static Template
Theme URI: https://truestrengthwarrior.com/
Author: ChatGPT
Description: Static-first WordPress theme. Home is frozen; Writings lists posts. Content editing is for posts only.
Version: 1.0.29.2
License: GPLv2 or later
Text Domain: tsw
*/

:root{
  --bg: #0b0d10;
  --paper: #14171c;
  --paper-2:#0f1216;
  --ink: #e9e3d6;
  --muted: rgba(233,227,214,.72);
  --meta: rgba(233,227,214,.58);
  --gold:#d9b35f;
  --crimson:#8b1e2d;
  --stone:#b7b0a2;
  --line: rgba(233,227,214,.14);
  --shadow: rgba(0,0,0,.45);
  --maxw: 980px;
  --radius: 18px;
}

*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0;
  font-family: ui-serif, "Iowan Old Style", "Palatino Linotype", Palatino, Garamond, Georgia, serif;
  /* Background lives on a fixed pseudo-element.
     This avoids visible "stepping" on mobile when the browser UI collapses/expands during scroll. */
  background: var(--bg);
  color: var(--ink);
  line-height: 1.7;
  letter-spacing: .2px;
  overflow-x: hidden;
}

/* Ensure form controls inherit site typography (iOS/Safari defaults to a system UI font otherwise) */
button,
input,
select,
textarea{
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

/* Site background (static across scroll) */
body::before{
  content:"";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(1200px 700px at 20% 0%, #151a22 0%, var(--bg) 55%, #06070a 100%);
  transform: translateZ(0);
  will-change: transform;
}

a{ color: var(--gold); text-decoration:none; }
a:hover{ text-decoration: underline; text-underline-offset: 4px; }

.container{ max-width: var(--maxw); margin: 0 auto; padding: 0 20px; }
.nav{
  position: sticky;
  top: 0;
  z-index: 50;
  background: linear-gradient(to bottom, rgba(11,13,16,.92), rgba(11,13,16,.70));
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.nav-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding: 14px 0;
}
.brand{
  display:flex;
  align-items:baseline;
  gap:12px;
}
.brand .name{
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: 3.2px;
  font-weight: 600;
  color: var(--ink);
}
.brand .mark{
  width: 10px; height: 10px;
  border-radius: 999px;
  background: var(--gold);
  box-shadow: 0 0 0 6px rgba(217,179,95,.10);
}
.nav-links{
  display:flex;
  justify-content:flex-end;
}
.nav-links-list{
  display:flex;
  gap:14px;
  flex-wrap: wrap;
  justify-content:flex-end;
  list-style:none;
  padding:0;
  margin:0;
}
.nav-links a{
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 2.2px;
  color: var(--muted);
  padding: 8px 10px;
  border-radius: 10px;
}
.nav-links a.active,
.nav-links a:hover{
  color: var(--ink);
  background: rgba(233,227,214,.06);
}

/* Hide mobile-only browse control on desktop */
.nav-browse{ display:none; }

.hero{
  position: relative;
  min-height: 88vh;
  display:flex;
  align-items:center;
  overflow:hidden;
}
.hero-bg{
  position:absolute;
  inset:-30px;
  background-image: var(--hero);
  background-size: cover;
  background-position: center;
  filter: saturate(1.05) contrast(1.02);
  transform: translate3d(0,0,0);
  will-change: transform;
}
.hero-overlay{
  position:absolute; inset:0;
  background:
    linear-gradient(to bottom, rgba(11,13,16,.35) 0%, rgba(11,13,16,.74) 55%, rgba(11,13,16,.95) 100%),
    radial-gradient(900px 560px at 50% 35%, rgba(217,179,95,.13) 0%, rgba(217,179,95,0) 60%),
    radial-gradient(900px 560px at 30% 55%, rgba(139,30,45,.12) 0%, rgba(139,30,45,0) 65%);
}
.hero-content{
  position:relative;
  padding: 96px 0 64px;
}

/* Main title style (used across templates) */
.axiom{
  font-size: clamp(34px, 4vw, 70px);
  line-height: 1.0 !important;
  letter-spacing: 1px;
  margin: 0 0 18px;
  text-align:center;
  text-transform: uppercase;
}

/* One definitive title shadow for titles over imagery (applies to WRITINGS and any hero titles that remain) */
.hero .axiom{
  text-shadow:
    0 18px 52px rgba(0,0,0,.72),
    0 6px 16px rgba(0,0,0,.62),
    0 2px 6px rgba(0,0,0,.55);
}

.axiom span{
  display: inline;
  padding: 0;
  border-radius: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

/* Optional sizing class used in some templates */
.axiom--hero{
  font-size: clamp(22px, 2.6vw, 40px);
}

/* Hide TRUE STRENGTH WARRIOR everywhere (desktop + mobile) without affecting WRITINGS */
.hero .axiom--hero{
  display: none;
}

.subaction{
  text-align:center;
  color: var(--muted);
  font-size: 15px;
  margin: 0 0 22px;
}
.capture{
  display:flex;
  gap:10px;
  justify-content:center;
  flex-wrap: wrap;
  margin: 18px auto 0;
  max-width: 560px;
}

/* Subscribe CTA button (Substack) */
.capture--cta{
  display:flex;
  justify-content:center;
}

.btn--substack{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  /* Match the sizing rhythm of other site buttons */
  min-width: 0;
  text-align:center;
}

/* Substack embedded subscribe */
.capture--embed{
  display: block;
  max-width: 560px;
  margin: 18px auto 0;
  border-radius: 14px;
  border: 1px solid rgba(233,227,214,.14);
  background: rgba(15,18,22,.72);
  box-shadow: 0 18px 50px rgba(0,0,0,.16);
  overflow: hidden;
}
.capture--embed iframe{
  display:block;
  width: 100%;
  height: 170px;
  border: 0;
  background: transparent;
}
.capture input{
  width: 100%;
  max-width: 520px;
  padding: 14px 16px;
  border-radius: 14px;
  border: 1px solid rgba(233,227,214,.14);
  background: rgba(15,18,22,.72);
  color: var(--ink);
  outline: none;
  box-shadow: 0 18px 50px rgba(0,0,0,.16);
}
.capture input::placeholder{ color: var(--meta); }
.capture button{
  padding: 14px 18px;
  border-radius: 14px;
  border: 1px solid rgba(233,227,214,.14);
  background: linear-gradient(180deg, rgba(217,179,95,.22), rgba(217,179,95,.10));
  color: var(--ink);
  cursor:pointer;
  text-transform: uppercase;
  letter-spacing: 2.2px;
  font-size: 12px;
}
.capture button:hover{
  border-color: rgba(233,227,214,.14);
  background: linear-gradient(180deg, rgba(217,179,95,.30), rgba(217,179,95,.12));
}

.hero-down{
  margin-top: 40px;
  display:flex;
  justify-content:center;
  color: var(--meta);
  font-size: 12px;
  letter-spacing: 2.2px;
  text-transform: uppercase;
}
.hero-down .line{
  width: 84px;
  height: 1px;
  background: rgba(233,227,214,.18);
  margin: 10px auto 0;
}

.section{
  padding: 70px 0;
  border-top: 1px solid var(--line);
}

/* Image-less subscription band (keeps rhythm after hero) */
.subscribe-band{
  position: relative;
  /* Equal spacing above/below subscribe section (match Writings rhythm) */
  padding: 48px 0;
  border-top: 1px solid var(--line);
  background:
    radial-gradient(900px 560px at 50% 10%, rgba(217,179,95,.12) 0%, rgba(217,179,95,0) 60%),
    radial-gradient(900px 560px at 30% 60%, rgba(139,30,45,.10) 0%, rgba(139,30,45,0) 65%),
    linear-gradient(180deg, rgba(12,14,17,.80), rgba(12,14,17,.96));
}

/* Sales page: keep the subscribe band on the site’s default background (match FAQ section) */
.subscribe-band--sales{
  background: none;
}
.subscribe-band .hero-content{ padding: 0; }

/* Home subscribe band: centered width without a card box */
.subscribe-band .subscribe-inner{
  max-width: 860px;
  margin: 0 auto;
  padding: 44px 28px;
}

/* Normalize vertical rhythm inside subscribe bands so Home + Writings match
   (first/last child margins frequently create the illusion of uneven padding) */
.subscribe-band .subscribe-inner > :first-child,
.subscribe-band .subscribe-box > :first-child{ margin-top: 0; }
.subscribe-band .subscribe-inner > :last-child,
.subscribe-band .subscribe-box > :last-child{ margin-bottom: 0; }

/* Dedicated status line under the subscribe form (keeps bottom spacing consistent) */
.subscribe-band .capture-msg{
  margin: 14px 0 0;
  font-size: 13px;
  text-align: center;
  color: var(--muted);
}

/* If there is no message, remove the element entirely so spacing matches Home */
.subscribe-band .capture-msg:empty{ display: none; }

/* Subscribe container box: consistent padding across Home and Writings */
.subscribe-band .subscribe-box{
  max-width: 860px;
  margin: 0 auto;
  padding: 44px 28px;
  border-radius: var(--radius);
  border: 1px solid rgba(233,227,214,.14);
  background: linear-gradient(180deg, rgba(20,23,28,.86), rgba(15,18,22,.88));
  box-shadow: 0 30px 90px rgba(0,0,0,.28);
}

/* Subscribe headings: hard-center alignment on all devices */
.subscribe-band .axiom--motto,
.subscribe-band .axiom--subscribe{
  width: 100%;
  text-align: center;
}

/* Motto: force exactly two lines (no additional wrapping) */
.axiom--motto .motto-line{
  display:block;
  white-space: nowrap;
}

/* Subaction spacing (subtitle under the subscribe headline) */
.subscribe-band .subaction{
  margin: 0 0 20px;
}

/* Never allow subscribe components to exceed viewport width */
.subscribe-band,
.subscribe-band *{
  max-width: 100%;
}
.subscribe-band{
  overflow-x: clip;
}

/* Remove underlines for buttons only (keep normal link hover underlines elsewhere) */
.btn, .btn:hover, .btn:focus, .btn:active,
.capture button, .capture button:hover, .capture button:focus, .capture button:active{
  text-decoration: none !important;
}

/* Two-up section cards for Home (desktop), stacked on mobile */
.home-grid{
  display:grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 18px;
}
.home-grid .span-6{ grid-column: span 6; }
.home-grid .span-12{ grid-column: span 12; }
@media (max-width: 900px){
  .home-grid .span-6,
  .home-grid .span-12{ grid-column: span 12; }
}
.card{
  background: linear-gradient(180deg, rgba(20,23,28,.88), rgba(15,18,22,.88));
  border: 1px solid rgba(233,227,214,.14);
  border-radius: var(--radius);
  box-shadow: 0 30px 90px rgba(0,0,0,.28);
  overflow:hidden;
}
.card-inner{ padding: 34px 28px; }
.kicker{
  color: var(--gold);
  text-transform: uppercase;
  letter-spacing: 2.6px;
  font-size: 12px;
  margin: 0 0 10px;
}
.h2{
  font-size: 30px;
  margin: 0 0 14px;
  letter-spacing: .5px;
}
.p{
  margin: 0 0 12px;
  color: var(--muted);
  font-size: 17px;
}
.divider{
  margin: 22px 0;
  height: 1px;
  background: linear-gradient(90deg, rgba(233,227,214,0), rgba(233,227,214,.22), rgba(233,227,214,0));
}
.actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

/* Writings: browse (auto categories + tags) */
.browse{
  /* Space below the subscribe button */
  /* Increased so it visibly drops below the button */
  margin-top: 34px;
  display:flex;
  flex-direction: column;
  gap: 14px;
  align-items: center;
  text-align: center;
}

/* Ensure the browse block centers even if parent flex rules change */
.hero .browse,
.hero-right .browse{
  align-items: center;
}
.browse-group{
  width: 100%;
  max-width: 760px;
  text-align: center;
  /* Force true centering regardless of parent/inherited alignment */
  display:flex;
  flex-direction: column;
  align-items: center;
}
.browse-label{
  color: var(--meta);
  text-transform: uppercase;
  letter-spacing: 2.1px;
  font-size: 11px;
  margin: 0 0 10px;
}
.browse-links{
  display:flex;
  flex-wrap:wrap;
  gap: 10px;
  justify-content: center;
  width: 100%;
}
.browse-pill{
  display:inline-flex;
  align-items:center;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(233,227,214,.14);
  background: rgba(233,227,214,.03);
  color: var(--ink);
  text-decoration:none;
  font-size: 12px;
  letter-spacing: .3px;
}
.browse-pill:hover{
  background: rgba(233,227,214,.07);
  text-decoration:none;
}
.browse-pill:focus{
  outline: 2px solid rgba(217,179,95,.45);
  outline-offset: 2px;
}

.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(233,227,214,.14);
  background: rgba(233,227,214,.04);
  color: var(--ink);
  text-transform: uppercase;
  letter-spacing: 2.2px;
  font-size: 12px;
}
.btn:hover{ background: rgba(233,227,214,.07); }
.btn.primary{
  border-color: rgba(233,227,214,.14);
  background: rgba(217,179,95,.10);
}
.btn.primary:hover{ background: rgba(217,179,95,.16); }

.grid{
  display:grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 16px;
}
.col-7{ grid-column: span 7; }
.col-5{ grid-column: span 5; }
@media (max-width: 900px){
  .col-7,.col-5{ grid-column: span 12; }
}

.gallery{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.gallery img{
  width:100%;
  height: 260px;
  object-fit: cover;
  border-radius: 16px;
  border: 1px solid rgba(233,227,214,.14);
  filter: saturate(1.05) contrast(1.02);
}
@media (max-width: 700px){
  .gallery{ grid-template-columns: 1fr; }
  .gallery img{ height: 220px; }
}

.reader{
  max-width: 760px;
  margin: 0 auto;
}
.reader h1{
  font-size: 40px;
  line-height: 1.12;
  margin: 26px 0 8px;
}
.meta{
  color: var(--meta);
  font-size: 13px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  margin-bottom: 24px;
}
.reader h2{
  font-size: 26px;
  margin: 30px 0 10px;
}
.reader p{
  font-size: 18px;
  color: var(--muted);
  margin: 0 0 14px;
}
.reader blockquote,
.reader .entry-content blockquote,
.reader .entry-content .wp-block-quote{
  margin: 22px 0;
  padding: 16px 18px;
  border-left: 3px solid rgba(233,227,214,.14);
  background: rgba(80,120,200,.16);
  border-radius: 12px;
  color: var(--ink);
}

.hr-art{
  margin: 34px 0;
  border: 0;
  height: 1px;
  background: linear-gradient(90deg, rgba(233,227,214,0), rgba(217,179,95,.35), rgba(233,227,214,0));
}

.footer{
  border-top: 1px solid var(--line);
  padding: 40px 0;
  color: var(--meta);
  font-size: 13px;
}
.footer .foot-inner{
  display:flex;
  gap: 14px;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap:wrap;
}
.smallcaps{
  text-transform: uppercase;
  letter-spacing: 2.6px;
}
.badge{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(233,227,214,.14);
  background: rgba(233,227,214,.04);
}
.badge i{
  width:8px; height:8px; border-radius:999px;
  background: var(--crimson);
  box-shadow: 0 0 0 6px rgba(139,30,45,.10);
}

/* Mobile nav button */
.burger{
  display:none;
  border: 1px solid rgba(233,227,214,.14);
  background: rgba(233,227,214,.04);
  color: var(--ink);
  border-radius: 12px;
  padding: 10px 12px;
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 12px;
  cursor:pointer;
}
@media (max-width: 760px){
  /* Protocol: ensure CTA buttons render with identical type sizing on mobile */
  .actions .btn,
  .actions .btn.primary{
    font-size: 12px;
    letter-spacing: 2.2px;
  }

  .burger{ display:inline-flex; }
  .nav-links{
    display:none;
    width:100%;
    padding: 8px 0 4px;
  }
  .nav-links.open{ display:block; }
  .nav-links-list{
    width:100%;
    flex-direction: column;
    gap: 8px;
    padding: 10px 0 4px;
  }
  .nav-links a{ width:100%; }
}

/* Extra-small phones: prevent the header from overflowing (brand title can push MENU off-screen). */
@media (max-width: 360px){
  .nav-inner{ gap: 10px; }
  .brand{ flex: 1; min-width: 0; gap: 10px; }
  .brand .name{
    font-size: 13px;
    letter-spacing: 2.6px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .burger{ flex: 0 0 auto; }
}

/* Mobile: move category/tag browsing into the Menu (keeps hero composition clean) */
@media (max-width: 760px){
  /* Hide the on-page browse pills on phone */
  .browse{ display:none; }

  .nav-browse{ display:block; margin-top: 8px; }
  .nav-browse-toggle{
    width: 100%;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    border: 1px solid rgba(233,227,214,.14);
    background: rgba(233,227,214,.03);
    color: var(--ink);
    border-radius: 12px;
    padding: 12px 12px;
    text-transform: uppercase;
    letter-spacing: 2.2px;
    font-size: 12px;
    cursor: pointer;
  }
  .nav-browse-toggle::after{
    content: "▾";
    opacity: .8;
    transform: translateY(-1px);
  }
  .nav-browse-toggle[aria-expanded="true"]::after{ content: "▴"; }

  .nav-browse-panel{
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(233,227,214,.14);
  }
  .nav-browse-section{ margin: 0 0 12px; }
  .nav-browse-title{
    color: var(--meta);
    text-transform: uppercase;
    letter-spacing: 2.1px;
    font-size: 11px;
    margin: 0 0 8px;
  }
  .nav-browse-list{
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }
  .nav-browse-list a{
    display: inline-flex;
    align-items: center;
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid rgba(233,227,214,.14);
    background: rgba(233,227,214,.03);
    color: var(--ink);
    text-decoration: none;
    font-size: 12px;
    letter-spacing: .3px;
  }
  .nav-browse-list a:hover{ background: rgba(233,227,214,.06); }
}

/* Prevent underline on buttons */
.btn,
.btn:visited{
  text-decoration:none;
}

/* Accessibility */
@media (prefers-reduced-motion: reduce){
  .hero-bg{ transform: none !important; }
}

/* WordPress adjustments */
.entry-content{ margin:0; }
.wp-block-image img{ border-radius: 16px; }

/* Buttons: remove underline in all states */
.btn, .btn:hover, .btn:focus, .btn:active, .btn:visited{
  text-decoration: none !important;
}
.nav-links a, .nav-links a:hover, .nav-links a:focus, .nav-links a:active{
  text-decoration: none !important;
}

/* Typography sizing tweaks */
.axiom--motto{
  font-size: clamp(24px, 3vw, 40px);
}
.axiom--subscribe{
  font-size: clamp(24px, 3vw, 40px);
}

@media (max-width: 760px){
  .capture{ flex-direction: column; align-items: stretch; gap: 14px; }
  .capture input{ max-width: none; margin-bottom: 0; width: 100%; }
  .capture button{ width: 100%; }
  /* Keep the Substack CTA sized like other buttons on mobile */
  .capture--cta{ align-items: center; }
  .btn--substack{ align-self: center; width: auto; }
  .axiom--motto,
  .axiom--subscribe{ font-size: clamp(17px, 4.8vw, 25px); }
  /* Reduce tracking on smaller screens to avoid visual "off-centering" from overflow */
  .subscribe-band .axiom{ letter-spacing: .35px; }
  .axiom--motto .motto-line{ white-space: nowrap; }
  .subscribe-band .subscribe-box,
  .subscribe-band .subscribe-inner{ padding: 28px 20px; }
}

@media (max-width: 760px){
  .nav-inner{ position: relative; }
  .brand .name{ white-space: nowrap; }
  .nav-links{
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 6px);
    background: linear-gradient(to bottom, rgba(11,13,16,.96), rgba(11,13,16,.88));
    border: 1px solid rgba(233,227,214,.14);
    border-radius: 14px;
    padding: 10px 12px;
    box-shadow: 0 24px 70px rgba(0,0,0,.35);
  }
}

@media (max-width: 760px){
  .footer .badge{ display:none; }
}

.reader .entry-content .wp-block-quote cite{ color: var(--meta); font-size: 13px; }

/* Ensure manual line breaks render in hero subtitles */
.hero .subaction{ white-space: normal; }
.hero .subaction br{ display:block; }


/* Tighter multi-line spacing for post preview titles (mobile)
   Listings use <h2 class="h2"> inside .card/.card-inner on:
   - Writings page (page template)
   - Archives (category/tag/date/author)
*/
@media (max-width: 768px){
  body.page-template-page-writings .card .h2,
  body.archive .card .h2{
    line-height: 1.0 !important;
  }
}


/*────────────────────────────────────────*/
/* Mobile: unify 2-line post preview titles (tight line gap) */
/* Bulletproof selector: any headings inside .card */
/*────────────────────────────────────────*/
@media (max-width: 768px){
  .card h1,
  .card h2,
  .card h3{
    line-height: 1.02 !important;
  }
}


/*────────────────────────────────────────*/
/* Mobile: tighten heading line spacing on single posts */
/* Matches the tighter preview-title rhythm, keeps desktop unchanged */
/*────────────────────────────────────────*/
@media (max-width: 768px){
  /* Post title */
  body.single .reader > h1{
    line-height: 1.02 !important;
  }

  /* Headings inside post content */
  body.single .reader .entry-content h1,
  body.single .reader .entry-content h2,
  body.single .reader .entry-content h3,
  body.single .reader .entry-content h4,
  body.single .reader .entry-content h5,
  body.single .reader .entry-content h6{
    line-height: 1.10 !important;
  }
}

/* ─────────────────────────────────────────
   Sales Page (Book)
   ───────────────────────────────────────── */
.sales-what-title{
  font-size: var(--p-size);
  font-weight: 400;
  margin: 0;
  line-height: var(--p-line);
}

/* Mobile: match the tighter multi-line title rhythm used across the site */
@media (max-width: 768px){
  .sales-what-title{
  font-size: var(--p-size);
  font-weight: 400;
  margin: 0;
  line-height: var(--p-line);
}
}

.sales-subtitle{
  max-width: 860px;
  margin-left: auto;
  margin-right: auto;
}

/* Sales hero title: desktop includes “THE”, mobile removes it */
.title-desktop{ display: inline !important; }
.title-mobile{ display: none !important; }

@media (max-width: 768px){
  .title-desktop{ display: none !important; }
  .title-mobile{ display: inline !important; }
  .title-mobile .m-line{
    display: block;
    line-height: 1.0;
  }
}

/* Desktop-only line break in sales hero subtitle */
.subtitle-break{ display: none !important; }
@media (min-width: 901px){
  .subtitle-break{ display: inline !important; }
}

/* Hide small helper text only used on desktop */
.desktop-only{ display: inline; }
@media (max-width: 768px){
  .desktop-only{ display: none; }
}

/* Titles: keep the title block height consistent between Pricing and FAQ
   so the perceived title-to-card spacing matches on desktop and mobile. */
@media (max-width: 768px){
  .sales-pricing-section .h2,
  .sales #faq .h2{
    line-height: 1.08 !important;
  }
}

.sales-pricing-section .h2,
.sales #faq .h2{
  line-height: 1.08;
}

@media (max-width: 768px){
  .sales-pricing-section .sales-section-bg{
    /* Keep the hero image clearly present on phones */
    opacity: .30;
  }
}

/* Mobile: ensure the pricing section itself also carries the hero image (fallback for iOS/mobile rendering) */
@media (max-width: 768px){
  .sales-pricing-section{
    background-image: var(--pricingbg);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
  }
}

/* Pricing section: keep the title-to-card spacing consistent with FAQ */
.sales-pricing-section .sales-pricing{
  margin-top: 18px !important;
}

/* Match the FAQ rhythm: keep the standard title bottom margin so the title-to-card gap matches FAQ */
.sales-pricing-section .h2,
.sales #faq .h2{
  margin-bottom: 14px !important;
}



/* Purchase CTA
   - Desktop: keep the subscribe-band styling
   - Mobile: render a dedicated section that reuses the FAQ card + typography scale */
.purchase-cta--mobile{ display: none; }

/* Substack subscribe bands
   - Desktop keeps the existing hero-style subscribe bands
   - Mobile reuses the Protocol purchase CTA card + typography scale (FAQ-consistent) */
.substack-mobile-card{ display: none; }

/* Mobile-only Subscribe button swaps
   - Desktop uses in-page subscribe section
   - Mobile jumps directly to Substack subscribe URL */
.btn-subscribe-mobile{ display: none; }

@media (max-width: 768px){
  /* Remove the Substack subscribe bands entirely on phone, per design */
  .subscribe-band--substack{ display: none; }

  .btn-subscribe-desktop{ display: none; }
  .btn-subscribe-mobile{ display: inline-flex; }
}

@media (max-width: 768px){
  .purchase-cta--desktop{ display: none; }
  .purchase-cta--mobile{ display: block; }

  /* Match the FAQ title rhythm on mobile */
  .purchase-cta--mobile .h2{
    line-height: 1.08 !important;
    margin-bottom: 14px !important;
  }
}

/* Mobile: slightly lighter overlay so the reused hero image reads clearly */
@media (max-width: 768px){
  .sales-pricing-section::before{
    /* Lighter overlay on phones so the background image is unmistakable */
    background: linear-gradient(180deg, rgba(10,12,16,.74), rgba(10,12,16,.66), rgba(10,12,16,.78));
  }
}

/* Pricing section: reuse hero background for a subtle title band */
.sales-pricing-section{ position: relative; overflow: hidden; }
.sales-pricing-section .container{ position: relative; z-index: 1; }
.sales-section-bg{
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: .16;
  filter: saturate(1.05) contrast(1.02);
}
.sales-pricing-section::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10,12,16,.92), rgba(10,12,16,.82), rgba(10,12,16,.94));
  z-index: 0;
}
.sales-proof{
  margin-top: 26px;
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.sales-proof-item{
  border: 1px solid rgba(233,227,214,.14);
  background: rgba(20,23,28,.62);
  border-radius: 16px;
  padding: 14px 14px;
  text-align:center;
}
.sales-proof-strong{
  font-size: 13px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: 6px;
}
.sales-proof-muted{
  font-size: 14px;
  color: var(--muted);
  line-height: 1.55;
}
@media (max-width: 900px){
  .sales-proof{ grid-template-columns: 1fr; }
}

.sales-list{
  margin: 0;
  padding-left: 18px;
  color: var(--muted);
  font-size: 16px;
}
.sales-list li{ margin: 10px 0; }

.sales-mini{
  margin: 0;
  padding-left: 18px;
  color: var(--muted);
  font-size: 16px;
}
.sales-mini li{ margin: 10px 0; }

.sales-card-sticky{
  position: sticky;
  top: 96px;
}
@media (max-width: 900px){
  .sales-card-sticky{ position: static; }
}

.sales-feature-grid{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin-top: 14px;
}
.sales-feature{
  border: 1px solid rgba(233,227,214,.14);
  background: rgba(15,18,22,.62);
  border-radius: 16px;
  padding: 16px 16px;
}
.sales-feature-title{
  font-size: 13px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 8px;
}
@media (max-width: 800px){
  .sales-feature-grid{ grid-template-columns: 1fr; }
}

.sales-pricing{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
@media (max-width: 1000px){
  .sales-pricing{ grid-template-columns: 1fr; }
}

.sales-price-card{
  position: relative;
  border-radius: var(--radius);
  border: 1px solid rgba(233,227,214,.14);
  background: linear-gradient(180deg, rgba(20,23,28,.88), rgba(15,18,22,.88));
  box-shadow: 0 30px 90px rgba(0,0,0,.26);
  padding: 22px 20px;
}
.sales-price-card.featured{
  border-color: rgba(233,227,214,.14);
  background: linear-gradient(180deg, rgba(20,23,28,.92), rgba(15,18,22,.92));
}
.sales-badge{
  position:absolute;
  top: 14px;
  right: 14px;
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(11,13,16,.95);
  background: rgba(217,179,95,.92);
  padding: 7px 10px;
  border-radius: 999px;
  box-shadow: 0 18px 44px rgba(0,0,0,.35);
}
.sales-price-top{
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(233,227,214,.14);
  margin-bottom: 14px;
}
.sales-price-name{
  font-size: 12px;
  letter-spacing: 2.6px;
  text-transform: uppercase;
  color: var(--muted);
}
.sales-price{
  font-size: 44px;
  line-height: 1.05;
  margin-top: 6px;
  color: var(--ink);
}
.sales-price-note{
  margin-top: 8px;
  font-size: 14px;
  color: var(--muted);
}

.sales-faq details{
  border: 1px solid rgba(233,227,214,.14);
  border-radius: 16px;
  padding: 14px 14px;
  margin: 10px 0;
  background: rgba(15,18,22,.50);
}
.sales-faq summary{
  cursor: pointer;
  font-size: 14px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--ink);
  list-style: none;
}
.sales-faq summary::-webkit-details-marker{ display:none; }
.sales-faq details[open] summary{ color: var(--gold); }
.sales-faq details p{ margin-top: 10px; }




/* Protocol page desktop-only title sizing */
@media (min-width: 901px){
  .sales #pricing .h2,
  .sales #faq .h2,
  .sales .cta-title{
    font-size: 38px;
  }
}

/* Desktop CTA button color matched to mobile */

.btn--substack{
  border-color: rgba(233,227,214,.14);
  background: rgba(217,179,95,.10);
}

/* Mobile-only: make Substack subscribe titles match the mobile CTA title sizing */
@media (max-width: 720px){
  .axiom--motto{
    font-size: 38px; /* match .cta-title */
    line-height: 1.08;
    letter-spacing: .06em;
  }
}



/* Mobile-only: Substack subscription titles match FAQ title size */
@media (max-width: 768px){
  h2.axiom.axiom--motto,
  h2.axiom.axiom--subscribe{
    font-size: 36px !important;
    line-height: 1.1 !important;
  }
}



/* Mobile-only: hide Substack subscribe bands on Home + Writings (phone) */
@media (max-width: 768px){
  .subscribe-band{
    display: none !important;
  }
}


/* Price card spacing: add a single line gap between price and edition label */
.sales-price-gap{ height: 12px; }

/*────────────────────────────────────────
  Coaching-first homepage update
────────────────────────────────────────*/
.brand--coach .name{
  display:flex;
  flex-direction:column;
  gap:2px;
  line-height:1.05;
  letter-spacing:0;
}
.brand--coach .coach-name{
  font-size:14px;
  letter-spacing:2.6px;
  text-transform:uppercase;
  color:var(--ink);
}
.brand--coach .coach-brand{
  font-size:10px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--gold);
}
.tsw-home .section-title,
.tsw-page .section-title{
  font-size:clamp(28px, 3vw, 42px);
  line-height:1.15;
  letter-spacing:.3px;
  margin:8px 0 14px;
  color:var(--ink);
}
.eyebrow{
  margin:0 0 8px;
  color:var(--gold);
  letter-spacing:3px;
  text-transform:uppercase;
  font-size:13px;
  font-weight:700;
}
.brand-line{
  margin:10px 0 0;
  color:var(--gold);
  letter-spacing:3.5px;
  text-transform:uppercase;
  font-size:13px;
  font-weight:700;
}
.coach-lead{
  max-width:680px;
  color:var(--muted);
  font-size:clamp(18px, 2vw, 22px);
  line-height:1.55;
  margin:22px 0 0;
}
.coach-hero{
  position:relative;
  overflow:hidden;
  padding:92px 0 66px;
  border-bottom:1px solid rgba(233,227,214,.14);
}
.coach-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(800px 420px at 18% 12%, rgba(217,179,95,.10), transparent 62%),
    radial-gradient(700px 420px at 85% 24%, rgba(139,30,45,.13), transparent 62%);
  pointer-events:none;
}
.coach-hero-grid,
.coaching-hero-grid{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(280px,.75fr);
  gap:34px;
  align-items:center;
}
.coach-hero h1,
.tsw-page .page-hero h1{
  font-size:clamp(38px, 5vw, 70px);
  line-height:1.02;
  margin:0;
  max-width:760px;
  letter-spacing:.2px;
}
.coach-hero-visual{
  border:1px solid rgba(233,227,214,.14);
  border-radius:26px;
  background:rgba(15,18,22,.58);
  box-shadow:0 28px 90px rgba(0,0,0,.38);
  overflow:hidden;
}
.coach-hero-visual img{
  display:block;
  width:100%;
  height:auto;
}
.coach-hero-visual.small{
  max-width:420px;
  justify-self:end;
}
.coach-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
  margin-top:26px;
}
.coach-actions.centered{ justify-content:center; }
.trust-row{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:26px;
}
.trust-row span{
  border:1px solid rgba(233,227,214,.14);
  background:rgba(233,227,214,.045);
  color:var(--muted);
  padding:8px 10px;
  border-radius:999px;
  font-size:12px;
  letter-spacing:1.5px;
  text-transform:uppercase;
}
.section-head.compact{ max-width:850px; margin-bottom:22px; }
.method-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:14px;
}
.method-card{
  border:1px solid rgba(233,227,214,.14);
  border-radius:20px;
  background:linear-gradient(180deg, rgba(20,23,28,.78), rgba(12,14,17,.82));
  overflow:hidden;
  box-shadow:0 18px 46px rgba(0,0,0,.28);
}
.method-card img{ width:100%; display:block; border-bottom:1px solid rgba(233,227,214,.14); }
.method-card div{ padding:18px; }
.method-card h3,
.program-grid h3,
.report-card span,
.mini-title{
  margin:0 0 8px;
  color:var(--ink);
  font-size:20px;
  line-height:1.2;
}
.method-card p,
.program-grid p{
  margin:0;
  color:var(--muted);
  font-size:15px;
  line-height:1.55;
}
.assessment-section{ padding-top:58px; }
.assessment-shell{
  border:1px solid rgba(233,227,214,.14);
  border-radius:28px;
  background:
    radial-gradient(900px 420px at 0% 0%, rgba(217,179,95,.10), transparent 65%),
    linear-gradient(180deg, rgba(20,23,28,.90), rgba(9,11,14,.92));
  padding:28px;
  box-shadow:0 30px 90px rgba(0,0,0,.42);
}
.assessment-intro{ max-width:820px; }
.assessment-form{
  display:grid;
  gap:16px;
  margin-top:24px;
}
.assessment-form fieldset{
  border:1px solid rgba(233,227,214,.14);
  background:rgba(233,227,214,.035);
  border-radius:18px;
  padding:18px;
  margin:0;
}
.assessment-form legend{
  color:var(--gold);
  letter-spacing:1.2px;
  font-weight:700;
  padding:0 8px;
}
.assessment-form label{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:10px 0;
  color:var(--muted);
  cursor:pointer;
}
.assessment-form input[type="radio"]{
  accent-color:var(--gold);
  margin-top:7px;
}
.assessment-submit{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  align-items:center;
  justify-content:space-between;
  padding-top:6px;
}
.microcopy{
  margin:0;
  color:var(--meta);
  font-size:14px;
  max-width:500px;
}
.assessment-result{
  margin-top:24px;
  padding-top:20px;
  border-top:1px solid rgba(233,227,214,.14);
}
.result-topline{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
}
.result-reset{
  border:1px solid rgba(233,227,214,.14);
  background:rgba(233,227,214,.05);
  color:var(--muted);
  border-radius:999px;
  padding:8px 12px;
  cursor:pointer;
}
.assessment-result h3{
  font-size:clamp(28px, 3vw, 40px);
  line-height:1.15;
  margin:6px 0 12px;
}
.result-summary{
  color:var(--muted);
  font-size:18px;
  line-height:1.6;
  max-width:860px;
}
.report-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:12px;
  margin-top:18px;
}
.report-card{
  border:1px solid rgba(233,227,214,.14);
  background:rgba(10,12,15,.55);
  border-radius:18px;
  padding:16px;
}
.report-card span{
  display:block;
  color:var(--gold);
  font-size:13px;
  letter-spacing:1.8px;
  text-transform:uppercase;
}
.report-card p,
.start-box li,
.recommendation-box p,
.coach-steps li{
  color:var(--muted);
  line-height:1.55;
}
.start-box,
.recommendation-box{
  margin-top:14px;
  border:1px solid rgba(233,227,214,.14);
  background:rgba(217,179,95,.055);
  border-radius:18px;
  padding:18px;
}
.start-box h4,
.recommendation-box h4{
  margin:0 0 10px;
  color:var(--ink);
  font-size:20px;
}
.start-box ul{ margin:0; padding-left:20px; }
.coaching-preview-grid,
.coaching-columns{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  align-items:start;
}
.coach-steps ol{ margin:0; padding-left:22px; }
.coach-steps li{ margin:0 0 10px; }
.program-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:14px;
}
.program-grid article{
  border:1px solid rgba(233,227,214,.14);
  border-radius:20px;
  background:rgba(20,23,28,.70);
  padding:18px;
}
.program-grid span{
  color:var(--gold);
  font-size:12px;
  letter-spacing:2px;
}
.philosophy-inner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:22px;
}
.compact-hero{
  padding:76px 0 42px;
  border-bottom:1px solid rgba(233,227,214,.14);
  background:
    radial-gradient(780px 420px at 18% 0%, rgba(217,179,95,.10), transparent 66%),
    radial-gradient(720px 420px at 88% 20%, rgba(139,30,45,.12), transparent 66%);
}
.clean-list{ margin:16px 0 0; padding-left:20px; color:var(--muted); }
.clean-list li{ margin-bottom:8px; }
.notice-success{
  border:1px solid rgba(233,227,214,.14);
  background:rgba(217,179,95,.08);
  color:var(--ink);
  border-radius:14px;
  padding:12px 14px;
  margin:16px 0;
}
.tsw-apply-form{ display:grid; gap:14px; margin-top:20px; }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.tsw-apply-form label{
  display:grid;
  gap:7px;
  color:var(--muted);
  font-size:14px;
  letter-spacing:1px;
  text-transform:uppercase;
}
.tsw-apply-form input,
.tsw-apply-form textarea{
  width:100%;
  border:1px solid rgba(233,227,214,.14);
  background:rgba(5,7,9,.45);
  color:var(--ink);
  border-radius:14px;
  padding:12px 13px;
  text-transform:none;
  letter-spacing:.2px;
}
.program-page-grid{ display:grid; gap:16px; }
.program-offer-card{
  display:grid;
  grid-template-columns:220px 1fr;
  gap:20px;
  border:1px solid rgba(233,227,214,.14);
  border-radius:22px;
  overflow:hidden;
  background:rgba(20,23,28,.72);
}
.program-offer-card img{ width:100%; height:100%; object-fit:cover; }
.program-offer-card div{ padding:22px; }
.program-offer-card span{
  color:var(--gold);
  text-transform:uppercase;
  letter-spacing:2px;
  font-size:12px;
}
.program-offer-card h2{ margin:6px 0 10px; font-size:26px; line-height:1.15; }
.program-offer-card p{ color:var(--muted); line-height:1.58; }

@media (max-width: 900px){
  .coach-hero-grid,
  .coaching-hero-grid,
  .coaching-preview-grid,
  .coaching-columns{
    grid-template-columns:1fr;
  }
  .coach-hero-visual.small{ justify-self:start; }
  .method-grid,
  .report-grid,
  .program-grid{
    grid-template-columns:1fr 1fr;
  }
}
@media (max-width: 720px){
  .brand--coach .coach-name{ font-size:12px; letter-spacing:1.8px; }
  .brand--coach .coach-brand{ font-size:9px; letter-spacing:1.5px; }
  .coach-hero{ padding:64px 0 42px; }
  .coach-hero h1,
  .tsw-page .page-hero h1{ font-size:40px; }
  .coach-lead{ font-size:17px; }
  .method-grid,
  .report-grid,
  .program-grid,
  .form-grid{
    grid-template-columns:1fr;
  }
  .assessment-shell{ padding:18px; border-radius:22px; }
  .assessment-form fieldset{ padding:14px; }
  .philosophy-inner{ flex-direction:column; align-items:flex-start; }
  .program-offer-card{ grid-template-columns:1fr; }
  .program-offer-card img{ max-height:220px; }
  .coach-actions .btn{ width:100%; justify-content:center; text-align:center; }
}


/*────────────────────────────────────────
  Coaching homepage edits — v1.0.28.0
────────────────────────────────────────*/
.brand .name:hover,
.brand .name:focus,
.brand--coach .name:hover,
.brand--coach .name:focus{
  text-decoration: none !important;
}

.assessment-form{
  display:block;
}

.assessment-progress{
  display:grid;
  gap:10px;
  margin:22px 0 16px;
  color:var(--meta);
  font-size:13px;
  letter-spacing:1.4px;
  text-transform:uppercase;
}

.assessment-progress-track{
  height:6px;
  border-radius:999px;
  overflow:hidden;
  background:rgba(233,227,214,.10);
  border:1px solid rgba(233,227,214,.14);
}

.assessment-progress-track i{
  display:block;
  height:100%;
  width:16.666%;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(217,179,95,.72), rgba(217,179,95,.96));
  transition:width .24s ease;
}

.assessment-step{
  display:none;
  min-height:290px;
}

.assessment-step.active{
  display:block;
}

.assessment-step label{
  border:1px solid rgba(233,227,214,.14);
  border-radius:14px;
  padding:12px 13px;
  margin:10px 0;
  background:rgba(5,7,9,.24);
  transition:background .18s ease, border-color .18s ease, transform .18s ease;
}

.assessment-step label:hover{
  background:rgba(217,179,95,.06);
  border-color:rgba(233,227,214,.14);
  transform:translateY(-1px);
}

.assessment-nav{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  margin-top:16px;
}

.assessment-step-message{
  margin:10px 0 0;
  color:var(--gold);
  font-size:14px;
}

.assessment-form .microcopy{
  margin-top:14px;
}

.program-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  margin:10px 0 0 !important;
  padding:8px 12px;
  border:1px solid rgba(233,227,214,.14);
  border-radius:999px;
  color:var(--gold) !important;
  background:rgba(217,179,95,.06);
  letter-spacing:1.5px;
  text-transform:uppercase;
  font-size:12px !important;
  line-height:1.2 !important;
}

.featured-program{
  border-color:rgba(233,227,214,.14);
  background:
    radial-gradient(600px 220px at 0% 0%, rgba(217,179,95,.12), transparent 62%),
    rgba(20,23,28,.72);
}

.text-link{
  display:inline-flex;
  margin-top:12px;
  color:var(--gold);
  letter-spacing:1px;
  text-transform:uppercase;
  font-size:13px;
}

.text-link:hover{
  text-decoration:none;
  color:var(--ink);
}

@media (max-width:720px){
  .assessment-shell{ padding:22px; }
  .assessment-step{ min-height:330px; }
  .assessment-nav .btn{ flex:1 1 140px; }
}

/* Homepage Instagram hero media */
.instagram-hero-card{
  position:relative;
  width:min(100%, 520px);
  margin-inline:auto;
  padding:14px;
  border:1px solid var(--line);
  border-radius:28px;
  background:linear-gradient(180deg, rgba(217,179,95,.10), rgba(11,13,16,.72));
  box-shadow:0 24px 70px rgba(0,0,0,.42);
}
.instagram-hero-label{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0 0 10px;
  padding:7px 10px;
  border:1px solid rgba(233,227,214,.14);
  border-radius:999px;
  color:var(--gold);
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.instagram-fallback-link{
  display:inline-flex;
  margin:12px 0 0;
  color:var(--gold);
  text-decoration:none;
  font-size:.9rem;
}
.instagram-fallback-link:hover{ text-decoration:none; color:var(--ink); }
.instagram-admin-note{
  margin:12px auto 0;
  max-width:420px;
  padding:12px 14px;
  border:1px dashed rgba(233,227,214,.14);
  border-radius:16px;
  color:var(--muted);
  font-size:.88rem;
  line-height:1.5;
  background:rgba(0,0,0,.22);
}


/*────────────────────────────────────────
  Header identity update — v1.0.29.0
────────────────────────────────────────*/
.brand--coach{
  align-items:center;
  gap:14px;
}
.brand .mark.brand-logo{
  width:44px;
  height:44px;
  min-width:44px;
  border-radius:999px;
  background:transparent;
  box-shadow:0 0 0 6px rgba(217,179,95,.08), 0 14px 34px rgba(0,0,0,.28);
  display:block;
}
.brand--coach .coach-name{
  font-size:19px;
  letter-spacing:2.8px;
  line-height:1.02;
}
.brand--coach .coach-brand{
  font-size:12px;
  letter-spacing:2.4px;
  line-height:1.08;
}
.nav-inner{
  padding:16px 0;
}
@media (max-width:900px){
  .brand--coach .coach-name{ font-size:16px; letter-spacing:2px; }
  .brand--coach .coach-brand{ font-size:10px; letter-spacing:1.7px; }
  .brand .mark.brand-logo{ width:38px; height:38px; min-width:38px; }
}
@media (max-width:520px){
  .brand--coach{ gap:10px; }
  .brand--coach .coach-name{ font-size:14px; letter-spacing:1.4px; }
  .brand--coach .coach-brand{ font-size:8.5px; letter-spacing:1.2px; }
  .brand .mark.brand-logo{ width:34px; height:34px; min-width:34px; }
}

/* v7 refinements */
.brand .mark.brand-logo{
  width:56px;
  height:56px;
  min-width:56px;
  border-radius:50%;
  background:transparent;
  box-shadow:none;
  object-fit:contain;
}
.brand .name{
  display:flex;
  flex-direction:column;
  gap:3px;
  text-decoration:none !important;
}
.brand .name:hover,
.brand .name:focus,
.brand .name:active{
  text-decoration:none !important;
}
.brand .coach-name{
  font-size:20px;
  letter-spacing:1.3px;
  font-weight:700;
  line-height:1.05;
}
.brand .coach-brand{
  font-size:13px;
  letter-spacing:3.2px;
  font-weight:600;
  color:var(--gold);
  line-height:1.05;
}

.coach-hero-visual img,
.coach-hero-visual.small img{
  width:100%;
  max-width:440px;
  border-radius:22px;
  border:1px solid rgba(233,227,214,.14);
  box-shadow:0 24px 64px rgba(0,0,0,.35);
}
.instagram-admin-note,
.instagram-hero-card,
.instagram-fallback-link,
.instagram-hero-label{ display:none !important; }

.program-grid--visual{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.program-grid--visual article,
.program-offer-card{
  overflow:hidden;
}

.program-image-link{
  display:block;
  border-radius:14px;
}
.program-image-link:hover,
.program-image-link:focus{
  text-decoration:none;
}
.program-image-link:focus-visible{
  outline:2px solid rgba(217,179,95,.85);
  outline-offset:4px;
}
.program-offer-card[id]{
  scroll-margin-top:96px;
}

.program-grid--visual article img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
  display:block;
  border-radius:14px;
  margin-bottom:16px;
}
.program-grid--visual article span,
.program-offer-card span{
  display:inline-flex;
}
.program-offer-card img{
  aspect-ratio:4/3;
  min-height:240px;
  object-fit:cover;
}
.featured-program{
  border-color:rgba(233,227,214,.14);
  box-shadow:0 14px 40px rgba(0,0,0,.22);
}

.assessment-nav--minimal{
  display:flex;
  justify-content:flex-start;
  margin-top:8px;
}
.assessment-nav--minimal .assessment-back{
  min-width:110px;
}

.philosophy-inner .btn{
  white-space:nowrap;
}

@media (max-width: 900px){
  .program-grid--visual{ grid-template-columns:1fr; }
}
@media (max-width: 700px){
  .brand .mark.brand-logo{
    width:42px;
    height:42px;
    min-width:42px;
  }
  .brand .coach-name{ font-size:16px; }
  .brand .coach-brand{ font-size:11px; letter-spacing:2.6px; }
}


/* v13 header branding adjustment */
.brand .coach-brand{
  font-size: 10px !important;
  letter-spacing: 2.15px !important;
  max-width: max-content;
}
@media (max-width: 700px){
  .brand .coach-brand{
    font-size: 9px !important;
    letter-spacing: 1.65px !important;
  }
}


/* v14 header alignment, hero transparency, and hero CTA order */
.brand .coach-brand{
  font-size: 13.5px !important;
  letter-spacing: 2.15px !important;
  line-height: 1.05 !important;
}
.brand .coach-name{
  line-height: 1.02 !important;
}

.coach-hero-visual{
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
  padding: 0 !important;
}
.coach-hero-visual img{
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  max-width: 100% !important;
  object-fit: contain !important;
}
.coach-hero-visual.small img{
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
}

@media (max-width: 700px){
  .brand .coach-brand{
    font-size: 10.5px !important;
    letter-spacing: 1.65px !important;
  }
}


/* v15 writings page origin sections */
.writings-origin-section{
  padding-top: 34px;
}
.writings-origin-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.writings-origin-card .card-inner{
  min-height: 100%;
}
.writings-origin-card .p{
  font-size: 1.02rem;
  line-height: 1.72;
}
.writings-purpose-card{
  grid-column: 1 / -1;
  background:
    radial-gradient(700px 240px at 50% 0%, rgba(217,179,95,.12), transparent 64%),
    rgba(20,23,28,.82);
}
.writings-purpose-card .card-inner{
  text-align: center;
  padding-top: 42px;
  padding-bottom: 42px;
}
.writings-purpose-lines{
  margin: 0 auto;
  max-width: 680px;
  font-size: clamp(20px, 2.4vw, 31px);
  line-height: 1.48;
  color: var(--ink);
}
.writings-purpose-card .actions{
  justify-content: center;
}
.writings-archive-section{
  padding-top: 38px;
}
.axiom--motto .motto-line{
  display: block;
}

@media (max-width: 800px){
  .writings-origin-grid{
    grid-template-columns: 1fr;
  }
  .writings-purpose-card{
    grid-column: auto;
  }
  .writings-purpose-card .card-inner{
    text-align: left;
  }
  .writings-purpose-card .actions{
    justify-content: flex-start;
  }
}


/* v16 requested refinements */
.coaching-model-grid--two{
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.writings-origin-section{
  padding-top: 52px;
}
.writings-origin-grid{
  align-items: stretch;
}
.writings-origin-card .card-inner{
  min-height: 100%;
}
@media (max-width: 800px){
  .coaching-model-grid--two{
    grid-template-columns: 1fr;
  }
}


/* v17 coaching page hero image */
.coaching-page .coach-hero-visual,
.coaching-page .coach-hero-visual.small{
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
  padding: 0 !important;
}
.coaching-page .coach-hero-visual img,
.coaching-page .coach-hero-visual.small img{
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  object-fit: contain !important;
}

/* Protocol page restored from v1.0.26.47: page-specific support */
@media (max-width: 768px){
  body.page-template-page-protocol .purchase-cta--mobile .subaction{
    font-size: 15px;
    line-height: 1.45;
    color: var(--muted);
  }
}

.purchase-cta{ position: relative; overflow: hidden; }
.purchase-cta::before{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, rgba(10,12,16,.92), rgba(10,12,16,.82), rgba(10,12,16,.94)) !important;
  z-index: 0;
}
.purchase-cta .wrap,
.purchase-cta .container{ position: relative; z-index: 1; }
.purchase-cta{
  background-image: none !important;
}
@media (max-width: 768px){
  .purchase-cta{
    background-image: var(--purchasebg) !important;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
  }
}
.purchase-cta .sales-section-bg{ opacity: .16 !important; }
@media (max-width: 768px){
  .purchase-cta .sales-section-bg{ opacity: .30 !important; }
}

.sales-price-note-sub{
  display: block;
  margin-top: 4px;
  font-size: 12px;
  line-height: 1.2;
  color: var(--meta);
  text-decoration: line-through;
}

.sales .sales-hero { min-height: 78vh; }
.sales .sales-hero .hero-content { padding: 96px 0 54px; }
@media (max-width: 768px){
  .sales .sales-hero { min-height: 92vh; }
  .sales .sales-hero .hero-content { padding: 96px 0 56px; }
}


/* Programs page: mobile-only image swaps. Desktop and home-page images remain unchanged. */
.programs-page .program-offer-card picture{
  display:block;
  width:100%;
  height:100%;
}
.programs-page .program-offer-card picture img{
  display:block;
}
@media (max-width: 720px){
  .programs-page .program-offer-card picture{
    height:auto;
  }
  .programs-page .program-offer-card picture img{
    aspect-ratio:16/9;
    width:100%;
    height:auto !important;
    max-height:none !important;
    min-height:0 !important;
    object-fit:cover;
  }
}


/* Coach bio */
.coach-bio-card{ border-color: rgba(233,227,214,.14); }
.coach-bio-inner{ position: relative; }
.coach-bio-body::after{ content:""; display:block; clear:both; }
.coach-bio-photo{
  float:right;
  width:240px;
  max-width:38%;
  aspect-ratio:1/1;
  object-fit:cover;
  object-position:center center;
  border-radius:50%;
  margin:0 0 16px 28px;
  border:1px solid rgba(233,227,214,.14);
  background: rgba(15,18,22,.88);
  box-shadow:0 20px 60px rgba(0,0,0,.28);
}
.coach-bio-body .p{
  margin:0 0 14px;
  line-height:1.72;
}
.coach-bio-body strong{
  color:var(--ink);
}

.coach-brand-line{
  white-space:nowrap;
}

@media (max-width: 800px){
  .coach-bio-section .kicker{
    text-align:center;
  }
}

.coach-bio-separator{
  border:0;
  border-top:1px solid rgba(233,227,214,.14);
  margin:20px 0 18px;
}
@media (max-width: 800px){
  .coach-bio-photo{
    float:none;
    display:block;
    width:min(220px, 62vw);
    max-width:none;
    margin:0 auto 18px;
  }
}


/* v8 mobile hero logo sizing: home + coaching */
@media (max-width: 800px){
  .tsw-home .coach-hero-visual,
  .coaching-page .coach-hero-visual,
  .coaching-page .coach-hero-visual.small{
    max-width:270px !important;
    width:66vw !important;
    margin:30px auto 0 !important;
    justify-self:center !important;
  }
  .tsw-home .coach-hero-visual img,
  .coaching-page .coach-hero-visual img,
  .coaching-page .coach-hero-visual.small img{
    width:100% !important;
    height:auto !important;
    max-width:100% !important;
  }
}
@media (min-width: 390px) and (max-width: 800px){
  .tsw-home .coach-hero-visual,
  .coaching-page .coach-hero-visual,
  .coaching-page .coach-hero-visual.small{
    max-width:285px !important;
    width:68vw !important;
  }
}

/* Protocol hero book-title image */
.protocol-title-page-image{
  display:block;
  width:min(100%, 820px);
  height:auto;
  margin:0 auto;
  border-radius:18px;
  border:1px solid rgba(233,227,214,.14);
  box-shadow:0 26px 74px rgba(0,0,0,.46);
}
/* Desktop: match the title image to the standard content/card width used by the page boxes. */
@media (min-width: 769px){
  body.page-template-page-protocol .sales-hero .protocol-title-page-image{
    width:100%;
    max-width:100%;
  }
}
@media (max-width: 768px){
  .protocol-title-page-image{
    width:min(100%, 520px);
    border-radius:14px;
  }
}

/* Protocol page mobile title section: title image starts the phone page alone; buttons remain in the custom-background hero. */
.protocol-mobile-title-section{
  display:none;
}
@media (max-width: 768px){
  body.page-template-page-protocol .protocol-mobile-title-section{
    display:block;
    background:#08090b;
    padding:0;
    margin:0;
    line-height:0;
  }
  body.page-template-page-protocol .protocol-mobile-title-image{
    display:block;
    width:100%;
    height:auto;
    margin:0;
    border:0;
    border-radius:0;
    box-shadow:none;
  }
  body.page-template-page-protocol .sales-hero .protocol-title-page-image{
    display:none;
  }
  body.page-template-page-protocol .sales .sales-hero{
    min-height:auto;
    align-items:flex-start;
  }
  body.page-template-page-protocol .sales .sales-hero .hero-content{
    padding:28px 0 46px;
  }
  body.page-template-page-protocol .sales .sales-hero .actions:first-of-type{
    margin-top:0 !important;
  }
}

/* Protocol phone cleanup: remove the duplicate desktop title image from the custom-background section after the standalone mobile title page. */
@media (max-width: 768px){
  .sales-hero .protocol-title-page-image--desktop,
  .sales-hero .protocol-title-page-image{
    display:none !important;
  }
}

/* Protocol phone refinement: after the standalone mobile title page, restore the button/intro hero section to the normal site background. Desktop remains unchanged. */
@media (max-width: 768px){
  body.page-template-page-protocol .sales .sales-hero{
    background: transparent !important;
  }
  body.page-template-page-protocol .sales .sales-hero .hero-bg,
  body.page-template-page-protocol .sales .sales-hero .hero-overlay{
    display: none !important;
  }
}


/* Protocol page: corrected section rhythm.
   The mobile title image is a flush image panel, not a padded content section.
   All actual content sections use the same 70px top/bottom padding as the site-wide .section rhythm. */
body.page-template-page-protocol .protocol-mobile-title-section{
  padding: 0 !important;
  margin: 0 !important;
  border-top: 0 !important;
  line-height: 0 !important;
}

body.page-template-page-protocol .sales > .sales-hero,
body.page-template-page-protocol .sales > section.section,
body.page-template-page-protocol .sales > .purchase-cta--desktop{
  padding-top: 70px !important;
  padding-bottom: 70px !important;
}

body.page-template-page-protocol .sales > .sales-hero{
  min-height: auto !important;
  align-items: flex-start !important;
}

body.page-template-page-protocol .sales .sales-hero .hero-content{
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

@media (max-width: 768px){
  body.page-template-page-protocol .protocol-mobile-title-section{
    padding: 0 !important;
    margin: 0 !important;
    border-top: 0 !important;
    line-height: 0 !important;
  }

  body.page-template-page-protocol .sales > .sales-hero,
  body.page-template-page-protocol .sales > section.section,
  body.page-template-page-protocol .sales > .purchase-cta--mobile{
    padding-top: 70px !important;
    padding-bottom: 70px !important;
  }

  body.page-template-page-protocol .sales > .sales-hero{
    min-height: auto !important;
    align-items: flex-start !important;
  }

  body.page-template-page-protocol .sales .sales-hero .hero-content{
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}


/* Protocol page spacing correction: keep actual sections on the site rhythm, remove lower-section top-heavy internal gaps, and balance the desktop hero buttons. */
body.page-template-page-protocol .sales > .sales-hero,
body.page-template-page-protocol .sales > section.section,
body.page-template-page-protocol .sales > .purchase-cta--desktop,
body.page-template-page-protocol .sales > .purchase-cta--mobile{
  padding-top:70px !important;
  padding-bottom:70px !important;
}

body.page-template-page-protocol .protocol-mobile-title-section{
  padding:0 !important;
  margin:0 !important;
  line-height:0 !important;
  border-top:0 !important;
}

body.page-template-page-protocol #pricing .h2,
body.page-template-page-protocol #faq .h2{
  margin-top:0 !important;
  margin-bottom:18px !important;
}

body.page-template-page-protocol #pricing .sales-pricing,
body.page-template-page-protocol #faq .card{
  margin-top:0 !important;
}

body.page-template-page-protocol .purchase-cta--desktop .axiom{
  margin-top:0 !important;
  margin-bottom:18px !important;
}

body.page-template-page-protocol .purchase-cta--desktop .subaction{
  margin-top:0 !important;
  margin-bottom:18px !important;
}

body.page-template-page-protocol .purchase-cta--desktop .capture,
body.page-template-page-protocol .purchase-cta--desktop .capture--cta{
  margin-top:0 !important;
  margin-bottom:0 !important;
}

body.page-template-page-protocol .purchase-cta--mobile .reader > div{
  margin-top:0 !important;
}

body.page-template-page-protocol .purchase-cta--mobile .subaction{
  margin-top:0 !important;
  margin-bottom:0 !important;
}

body.page-template-page-protocol .purchase-cta--mobile .actions{
  margin-top:18px !important;
  margin-bottom:0 !important;
}

@media (min-width:769px){
  body.page-template-page-protocol .sales .sales-hero .actions:first-of-type{
    margin-top:18px !important;
  }
  body.page-template-page-protocol .sales .sales-hero .sales-proof{
    margin-top:18px !important;
  }
}

@media (max-width:768px){
  body.page-template-page-protocol .protocol-mobile-title-section{
    padding:0 !important;
    margin:0 !important;
    line-height:0 !important;
    border-top:0 !important;
  }
  body.page-template-page-protocol .sales > .sales-hero,
  body.page-template-page-protocol .sales > section.section,
  body.page-template-page-protocol .sales > .purchase-cta--mobile{
    padding-top:70px !important;
    padding-bottom:70px !important;
  }
}

/* v8 page-start tint refinement: desktop restores gold + red; phone uses black + black. */
@media (min-width:769px){
  .tsw-home .coach-hero::before{
    background:
      radial-gradient(800px 420px at 18% 12%, rgba(217,179,95,.10), transparent 62%),
      radial-gradient(700px 420px at 85% 24%, rgba(139,30,45,.13), transparent 62%);
  }
  .coaching-page .compact-hero,
  .programs-page .compact-hero{
    background:
      radial-gradient(780px 420px at 18% 0%, rgba(217,179,95,.10), transparent 66%),
      radial-gradient(720px 420px at 88% 20%, rgba(139,30,45,.12), transparent 66%);
  }
}
@media (max-width:768px){
  .tsw-home .coach-hero::before{
    background:
      radial-gradient(800px 420px at 18% 12%, rgba(0,0,0,.34), transparent 62%),
      radial-gradient(700px 420px at 85% 24%, rgba(0,0,0,.28), transparent 62%);
  }
  .coaching-page .compact-hero,
  .programs-page .compact-hero{
    background:
      radial-gradient(780px 420px at 18% 0%, rgba(0,0,0,.34), transparent 66%),
      radial-gradient(720px 420px at 88% 20%, rgba(0,0,0,.28), transparent 66%);
  }
}

/* Protocol page: keep “What You'll Learn” attached to the preceding section. */
body.page-template-page-protocol .protocol-learn-card{
  margin-top:16px;
}

/* v8 first-section transition cleanup: remove separator line between hero and first content section on Home, Coaching, and Programs, while keeping the vertical rhythm even on desktop and phone. */
.tsw-home .coach-hero,
.coaching-page .compact-hero,
.programs-page .compact-hero{
  border-bottom:0 !important;
}

.tsw-home .coach-hero + .section,
.coaching-page .compact-hero + .section,
.programs-page .compact-hero + .section{
  border-top:0 !important;
  padding-top:70px !important;
}

@media (min-width:769px){
  .tsw-home .coach-hero,
  .coaching-page .compact-hero,
  .programs-page .compact-hero{
    padding-bottom:70px !important;
  }
}

@media (max-width:768px){
  .tsw-home .coach-hero,
  .coaching-page .compact-hero,
  .programs-page .compact-hero{
    padding-bottom:70px !important;
  }

  .tsw-home .coach-hero + .section,
  .coaching-page .compact-hero + .section,
  .programs-page .compact-hero + .section{
    padding-top:70px !important;
  }
}

/* v8 correction: balanced transition from opening hero to first content area.
   Home + Coaching: the gap after the hero image matches the opening top gap.
   Programs: the gap after the last program matches the gap from hero buttons to first program. */
.tsw-home .coach-hero,
.coaching-page .compact-hero,
.programs-page .compact-hero{
  border-bottom:0 !important;
}

.tsw-home .coach-hero + .section,
.coaching-page .compact-hero + .section,
.programs-page .compact-hero + .section{
  border-top:0 !important;
  padding-top:0 !important;
}

@media (min-width:769px){
  .tsw-home .coach-hero{
    padding-top:92px !important;
    padding-bottom:92px !important;
  }

  .coaching-page .compact-hero,
  .programs-page .compact-hero{
    padding-top:76px !important;
    padding-bottom:76px !important;
  }

  .programs-page .compact-hero + .section{
    padding-bottom:76px !important;
  }
}

@media (max-width:768px){
  .tsw-home .coach-hero{
    padding-top:64px !important;
    padding-bottom:64px !important;
  }

  .coaching-page .compact-hero,
  .programs-page .compact-hero{
    padding-top:76px !important;
    padding-bottom:76px !important;
  }

  .programs-page .compact-hero + .section{
    padding-bottom:76px !important;
  }
}

/* v8 hero transition correction: image-governed spacing and matching mobile title offset.
   Desktop Home + Coaching: the visible hero image governs the opening block. The left copy is centered against it, and the gap below the image equals the gap above it.
   Mobile Home + Coaching: the title begins at the same distance from the header on both pages. */
@media (min-width: 769px){
  .tsw-home .coach-hero,
  .coaching-page .compact-hero{
    border-bottom:0 !important;
  }

  .tsw-home .coach-hero{
    padding-top:92px !important;
    padding-bottom:92px !important;
  }

  .coaching-page .compact-hero{
    padding-top:76px !important;
    padding-bottom:76px !important;
  }

  .tsw-home .coach-hero + .section,
  .coaching-page .compact-hero + .section{
    border-top:0 !important;
    padding-top:0 !important;
  }

  .tsw-home .coach-hero-grid,
  .coaching-page .coaching-hero-grid{
    align-items:center !important;
  }

  .tsw-home .coach-hero-copy,
  .coaching-page .coaching-hero-grid > div:first-child{
    align-self:center !important;
  }
}

@media (max-width: 768px){
  .tsw-home .coach-hero,
  .coaching-page .compact-hero{
    padding-top:64px !important;
    border-bottom:0 !important;
  }

  .tsw-home .coach-hero + .section,
  .coaching-page .compact-hero + .section{
    border-top:0 !important;
  }
}

/* v8 definitive correction: Home + Coaching hero spacing and vertical text centering.
   Desktop uses one shared image-governed rhythm on both pages: equal space above and below the hero image,
   and the text block is centered against the image rather than aligned by title start. */
@media (min-width: 769px){
  .tsw-home .coach-hero,
  .coaching-page .compact-hero{
    padding-top:72px !important;
    padding-bottom:72px !important;
    border-bottom:0 !important;
  }

  .tsw-home .coach-hero + .section,
  .coaching-page .compact-hero + .section{
    padding-top:0 !important;
    border-top:0 !important;
  }

  .tsw-home .coach-hero-grid,
  .coaching-page .coaching-hero-grid{
    align-items:center !important;
  }

  .tsw-home .coach-hero-copy,
  .coaching-page .coaching-hero-grid > div:first-child{
    align-self:center !important;
    margin-top:0 !important;
    margin-bottom:0 !important;
  }
}

/* Mobile: keep the Home and Coaching page title start at the same distance from the header. */
@media (max-width: 768px){
  .tsw-home .coach-hero,
  .coaching-page .compact-hero{
    padding-top:64px !important;
    border-bottom:0 !important;
  }

  .tsw-home .coach-hero + .section,
  .coaching-page .compact-hero + .section{
    border-top:0 !important;
  }
}

/* v8 PC hero correction: image-governed spacing for Home + Coaching.
   Desktop only: the hero image starts 70px below the header and ends 70px above the next content.
   Text is centered to the image instead of dictating the hero's vertical position. */
@media (min-width: 769px){
  .tsw-home .coach-hero,
  .coaching-page .compact-hero{
    padding-top:0 !important;
    padding-bottom:0 !important;
    border-bottom:0 !important;
  }

  .tsw-home .coach-hero-grid,
  .coaching-page .coaching-hero-grid{
    padding-top:70px !important;
    padding-bottom:70px !important;
    align-items:start !important;
  }

  .tsw-home .coach-hero-visual,
  .coaching-page .coach-hero-visual,
  .coaching-page .coach-hero-visual.small{
    align-self:start !important;
  }

  .tsw-home .coach-hero-copy,
  .coaching-page .coaching-hero-grid > div:first-child{
    align-self:center !important;
    margin-top:0 !important;
    margin-bottom:0 !important;
  }

  .tsw-home .coach-hero + .section,
  .coaching-page .compact-hero + .section{
    padding-top:0 !important;
    margin-top:0 !important;
    border-top:0 !important;
  }
}


/* v8 logo home link: make the header mark behave as a clean clickable logo. */
.brand-mark-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  border-radius:999px;
  text-decoration:none !important;
}
.brand-mark-link:hover,
.brand-mark-link:focus,
.brand-mark-link:active{
  text-decoration:none !important;
}
.brand-mark-link:focus-visible{
  outline:1px solid rgba(217,179,95,.75);
  outline-offset:4px;
}


/* v8 floating scroll menu: regular header at top, compact fixed menu after scroll. */
.nav{
  position: relative !important;
  top: auto !important;
  z-index: 50;
}

.tsw-floating-menu{
  position: fixed;
  top: 18px;
  right: 18px;
  z-index: 120;
  opacity: 0;
  transform: translateY(-8px);
  pointer-events: none;
  transition: opacity .22s ease, transform .22s ease;
}
body.tsw-floating-menu-visible .tsw-floating-menu{
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.tsw-floating-menu__button{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 44px;
  padding: 9px 14px 9px 11px;
  border-radius: 999px;
  border: 1px solid rgba(233,227,214,.14);
  background:
    linear-gradient(135deg, rgba(16,18,22,.96), rgba(6,7,9,.90)),
    radial-gradient(120px 80px at 20% 0%, rgba(217,179,95,.16), transparent 70%);
  color: var(--ink);
  box-shadow: 0 18px 44px rgba(0,0,0,.42), inset 0 0 0 1px rgba(255,255,255,.03);
  backdrop-filter: blur(14px);
  cursor: pointer;
  text-transform: uppercase;
  letter-spacing: 2.2px;
  font-size: 12px;
  line-height: 1;
}
.tsw-floating-menu__button:hover,
.tsw-floating-menu__button:focus-visible{
  border-color: rgba(233,227,214,.14);
  box-shadow: 0 20px 50px rgba(0,0,0,.48), 0 0 0 1px rgba(217,179,95,.12) inset;
}
.tsw-floating-menu__button:focus-visible{
  outline: 1px solid rgba(217,179,95,.72);
  outline-offset: 4px;
}
.tsw-floating-menu__mark{
  width: 19px;
  height: 19px;
  border-radius: 999px;
  background:
    radial-gradient(circle at 50% 50%, rgba(217,179,95,.98) 0 26%, transparent 27% 100%),
    radial-gradient(circle at 50% 50%, rgba(217,179,95,.24) 0 62%, transparent 63% 100%);
  box-shadow: 0 0 0 1px rgba(217,179,95,.38), 0 0 18px rgba(217,179,95,.18);
}
.tsw-floating-menu__panel{
  position: absolute;
  top: calc(100% + 12px);
  right: 0;
  width: min(340px, calc(100vw - 28px));
  max-height: min(72vh, 640px);
  overflow: auto;
  padding: 16px;
  border-radius: 18px;
  border: 1px solid rgba(233,227,214,.14);
  background:
    linear-gradient(145deg, rgba(14,16,20,.97), rgba(5,6,8,.94)),
    radial-gradient(420px 260px at 100% 0%, rgba(139,30,45,.16), transparent 68%);
  box-shadow: 0 28px 80px rgba(0,0,0,.55), inset 0 0 0 1px rgba(255,255,255,.025);
  backdrop-filter: blur(18px);
}
.tsw-floating-menu__head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 0 0 12px;
  margin: 0 0 12px;
  border-bottom: 1px solid rgba(233,227,214,.14);
  color: var(--gold);
  text-transform: uppercase;
  letter-spacing: 2.4px;
  font-size: 14px;
  line-height: 1.3;
}
.tsw-floating-menu__close{
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1px solid rgba(233,227,214,.14);
  background: rgba(233,227,214,.04);
  color: var(--ink);
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
}
.tsw-floating-menu__list,
.tsw-floating-menu__chips{
  list-style: none;
  margin: 0;
  padding: 0;
}
.tsw-floating-menu__list{
  display: grid;
  gap: 6px;
}
.tsw-floating-menu__list a{
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 11px;
  border-radius: 12px;
  color: var(--ink);
  border: 1px solid transparent;
  background: rgba(233,227,214,.035);
  text-transform: uppercase;
  letter-spacing: 2px;
  font-size: 12px;
  line-height: 1.3;
}
.tsw-floating-menu__list a:hover,
.tsw-floating-menu__list a:focus-visible{
  text-decoration: none;
  background: rgba(233,227,214,.07);
  border-color: rgba(233,227,214,.14);
}
.tsw-floating-menu__browse{
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid rgba(233,227,214,.14);
}
.tsw-floating-menu__section + .tsw-floating-menu__section{
  margin-top: 14px;
}
.tsw-floating-menu__title{
  margin: 0 0 8px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 2.2px;
  font-size: 11px;
}
.tsw-floating-menu__chips{
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.tsw-floating-menu__chips a{
  display: inline-flex;
  align-items: center;
  padding: 5px 8px;
  border-radius: 999px;
  border: 1px solid rgba(233,227,214,.14);
  background: rgba(233,227,214,.035);
  color: var(--muted);
  font-size: 11px;
  letter-spacing: .7px;
  line-height: 1.25;
}
.tsw-floating-menu__chips a:hover,
.tsw-floating-menu__chips a:focus-visible{
  text-decoration: none;
  color: var(--ink);
  border-color: rgba(233,227,214,.14);
  background: rgba(233,227,214,.07);
}
body.tsw-floating-menu-open .tsw-floating-menu__button{
  border-color: rgba(233,227,214,.14);
}

@media (max-width:760px){
  .tsw-floating-menu{
    top: 12px;
    right: 12px;
  }
  .tsw-floating-menu__button{
    min-height: 40px;
    padding: 8px 12px 8px 10px;
    gap: 8px;
    font-size: 11px;
    letter-spacing: 1.8px;
  }
  .tsw-floating-menu__mark{
    width: 16px;
    height: 16px;
  }
  .tsw-floating-menu__panel{
    width: calc(100vw - 24px);
    max-height: calc(100vh - 74px);
    top: calc(100% + 10px);
    right: 0;
    padding: 14px;
    border-radius: 16px;
  }
}

@media (prefers-reduced-motion: reduce){
  .tsw-floating-menu{
    transition:none !important;
  }
}

body.admin-bar .tsw-floating-menu{
  top: 50px;
}
@media (max-width: 782px){
  body.admin-bar .tsw-floating-menu{
    top: 58px;
  }
}

/* v8 refinement: unified premium mobile menu button + content-edge floating menu alignment. */
:root{
  --tsw-menu-button-height: 42px;
}

.nav-mobile-browse{
  display:none;
}

/* Phone header Menu button: same visual language as the floating Menu button, with the original header-button height. */
.burger{
  align-items:center;
  justify-content:center;
  gap:8px;
  height:var(--tsw-menu-button-height);
  min-height:var(--tsw-menu-button-height);
  padding:0 13px 0 11px;
  border-radius:999px;
  border:1px solid rgba(233,227,214,.14);
  background:
    linear-gradient(135deg, rgba(16,18,22,.96), rgba(6,7,9,.90)),
    radial-gradient(120px 80px at 20% 0%, rgba(217,179,95,.16), transparent 70%);
  color:var(--ink);
  box-shadow:0 14px 34px rgba(0,0,0,.34), inset 0 0 0 1px rgba(255,255,255,.03);
  backdrop-filter:blur(14px);
  cursor:pointer;
  text-transform:uppercase;
  letter-spacing:1.8px;
  font-size:11px;
  line-height:1;
  text-decoration:none !important;
}
.burger::before{
  content:"";
  width:16px;
  height:16px;
  flex:0 0 16px;
  border-radius:999px;
  background:
    radial-gradient(circle at 50% 50%, rgba(217,179,95,.98) 0 26%, transparent 27% 100%),
    radial-gradient(circle at 50% 50%, rgba(217,179,95,.24) 0 62%, transparent 63% 100%);
  box-shadow:0 0 0 1px rgba(217,179,95,.38), 0 0 18px rgba(217,179,95,.18);
}
.burger:hover,
.burger:focus-visible,
.burger[aria-expanded="true"]{
  border-color:rgba(233,227,214,.14);
  box-shadow:0 16px 40px rgba(0,0,0,.42), 0 0 0 1px rgba(217,179,95,.12) inset;
  text-decoration:none !important;
}
.burger:focus-visible{
  outline:1px solid rgba(217,179,95,.72);
  outline-offset:4px;
}

/* Floating Menu: align with the site container edge rather than the viewport edge. */
.tsw-floating-menu{
  right:max(20px, calc((100% - var(--maxw)) / 2));
}
.tsw-floating-menu__button{
  height:var(--tsw-menu-button-height);
  min-height:var(--tsw-menu-button-height);
  padding:0 14px 0 11px;
}

@media (max-width:760px){
  .burger{
    display:inline-flex;
    flex:0 0 auto;
  }

  /* Header dropdown: use the cleaner floating-panel aesthetic, without repeating the site title. */
  .nav-inner{
    position:relative;
  }
  .nav-links{
    position:absolute;
    left:auto;
    right:0;
    top:calc(100% + 10px);
    width:min(340px, calc(100vw - 40px));
    max-height:calc(100vh - 94px);
    overflow:auto;
    padding:14px;
    border-radius:16px;
    border:1px solid rgba(233,227,214,.14);
    background:
      linear-gradient(145deg, rgba(14,16,20,.97), rgba(5,6,8,.94)),
      radial-gradient(420px 260px at 100% 0%, rgba(139,30,45,.16), transparent 68%);
    box-shadow:0 28px 80px rgba(0,0,0,.55), inset 0 0 0 1px rgba(255,255,255,.025);
    backdrop-filter:blur(18px);
  }
  .nav-links.open{
    display:block;
  }
  .nav-links-list{
    display:grid;
    width:100%;
    gap:6px;
    padding:0;
    margin:0;
    list-style:none;
  }
  .nav-links-list a,
  .nav-links a{
    display:flex;
    align-items:center;
    justify-content:space-between;
    width:100%;
    padding:10px 11px;
    border-radius:12px;
    color:var(--ink);
    border:1px solid transparent;
    background:rgba(233,227,214,.035);
    text-transform:uppercase;
    letter-spacing:2px;
    font-size:12px;
    line-height:1.3;
  }
  .nav-links-list a:hover,
  .nav-links-list a:focus-visible,
  .nav-links a:hover,
  .nav-links a:focus-visible{
    text-decoration:none !important;
    background:rgba(233,227,214,.07);
    border-color:rgba(233,227,214,.14);
  }

  /* Replace the old nested Browse dropdown with visible chip sections inside the opened header menu. */
  .nav-browse{
    display:none !important;
  }
  .nav-mobile-browse{
    display:block;
    margin-top:16px;
    padding-top:14px;
    border-top:1px solid rgba(233,227,214,.14);
  }
  .nav-mobile-browse__section + .nav-mobile-browse__section{
    margin-top:14px;
  }
  .nav-mobile-browse__title{
    margin:0 0 8px;
    color:var(--muted);
    text-transform:uppercase;
    letter-spacing:2.2px;
    font-size:11px;
    line-height:1.3;
  }
  .nav-mobile-browse__chips{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    list-style:none;
    margin:0;
    padding:0;
  }
  .nav-mobile-browse__chips a{
    display:inline-flex;
    align-items:center;
    width:auto;
    padding:5px 8px;
    border-radius:999px;
    border:1px solid rgba(233,227,214,.14);
    background:rgba(233,227,214,.035);
    color:var(--muted);
    font-size:11px;
    letter-spacing:.7px;
    line-height:1.25;
    text-transform:none;
  }
  .nav-mobile-browse__chips a:hover,
  .nav-mobile-browse__chips a:focus-visible{
    color:var(--ink);
    border-color:rgba(233,227,214,.14);
    background:rgba(233,227,214,.07);
    text-decoration:none !important;
  }

  .tsw-floating-menu{
    top:12px;
    right:20px;
  }
  .tsw-floating-menu__button{
    height:var(--tsw-menu-button-height);
    min-height:var(--tsw-menu-button-height);
    padding:0 13px 0 11px;
    gap:8px;
    font-size:11px;
    letter-spacing:1.8px;
  }
  .tsw-floating-menu__mark{
    width:16px;
    height:16px;
  }
  .tsw-floating-menu__panel{
    width:calc(100vw - 40px);
    max-height:calc(100vh - 82px);
    right:0;
  }
}

@media (max-width:360px){
  .burger{
    padding-right:11px;
    padding-left:10px;
    letter-spacing:1.5px;
  }
  .burger::before{
    width:15px;
    height:15px;
    flex-basis:15px;
  }
}

/* v8 menu alignment correction: match menu button height to site CTA buttons and align panels to content edges. */
:root{
  --tsw-menu-button-height:40px;
  --tsw-container-gutter:20px;
  --tsw-floating-menu-right:max(var(--tsw-container-gutter), calc((100vw - var(--maxw)) / 2 + var(--tsw-container-gutter)));
}

.burger,
.tsw-floating-menu__button{
  height:var(--tsw-menu-button-height) !important;
  min-height:var(--tsw-menu-button-height) !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  font-size:12px !important;
  letter-spacing:2.2px !important;
  line-height:1 !important;
}

.burger::before,
.tsw-floating-menu__mark{
  width:16px !important;
  height:16px !important;
  flex:0 0 16px !important;
}

.tsw-floating-menu{
  right:var(--tsw-floating-menu-right) !important;
}

@media (max-width:760px){
  .tsw-floating-menu{
    right:20px !important;
  }

  .burger,
  .tsw-floating-menu__button{
    height:var(--tsw-menu-button-height) !important;
    min-height:var(--tsw-menu-button-height) !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
    font-size:12px !important;
    letter-spacing:2.2px !important;
  }

  .nav-links,
  .tsw-floating-menu__panel{
    width:calc(100vw - 40px) !important;
    max-width:calc(100vw - 40px) !important;
    padding:14px !important;
    border-radius:16px !important;
    border:1px solid rgba(233,227,214,.14) !important;
    background:
      linear-gradient(145deg, rgba(14,16,20,.97), rgba(5,6,8,.94)),
      radial-gradient(420px 260px at 100% 0%, rgba(139,30,45,.16), transparent 68%) !important;
    box-shadow:0 28px 80px rgba(0,0,0,.55), inset 0 0 0 1px rgba(255,255,255,.025) !important;
    backdrop-filter:blur(18px) !important;
  }

  .nav-links{
    right:0 !important;
    left:auto !important;
    top:calc(100% + 10px) !important;
    max-height:calc(100vh - 94px) !important;
    overflow:auto !important;
  }

  .tsw-floating-menu__panel{
    right:0 !important;
    left:auto !important;
    max-height:calc(100vh - 82px) !important;
  }
}

/* v8 final menu correction: align menu panels/controls and match CTA button height. */
:root{
  /* Matches the standard .btn rhythm: 12px text, 1.7 line-height, 12px vertical padding, 1px border. */
  --tsw-menu-button-height:46px;
  --tsw-floating-menu-right:max(20px, calc((100vw - var(--maxw)) / 2));
}

.burger,
.tsw-floating-menu__button{
  height:var(--tsw-menu-button-height) !important;
  min-height:var(--tsw-menu-button-height) !important;
  padding-top:12px !important;
  padding-bottom:12px !important;
  font-size:12px !important;
  letter-spacing:2.2px !important;
  line-height:1.7 !important;
}

.burger{
  padding-left:11px !important;
  padding-right:14px !important;
}

.tsw-floating-menu__button{
  padding-left:11px !important;
  padding-right:14px !important;
}

.tsw-floating-menu{
  right:var(--tsw-floating-menu-right) !important;
}

@media (max-width:760px){
  .tsw-floating-menu{
    right:20px !important;
  }

  .burger,
  .tsw-floating-menu__button{
    height:var(--tsw-menu-button-height) !important;
    min-height:var(--tsw-menu-button-height) !important;
    padding-top:12px !important;
    padding-bottom:12px !important;
    font-size:12px !important;
    letter-spacing:2.2px !important;
    line-height:1.7 !important;
  }

  /* Header menu opens with the same left-aligned layout as the floating menu. */
  .nav-links{
    left:0 !important;
    right:auto !important;
    width:calc(100vw - 40px) !important;
    max-width:calc(100vw - 40px) !important;
    text-align:left !important;
  }

  .nav-links-list{
    display:grid !important;
    grid-template-columns:1fr !important;
    justify-items:stretch !important;
    align-items:stretch !important;
    justify-content:stretch !important;
    width:100% !important;
    max-width:none !important;
  }

  .nav-links-list li{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
  }

  .nav-links-list a,
  .nav-links a{
    width:100% !important;
    max-width:none !important;
    justify-content:flex-start !important;
    text-align:left !important;
  }

  .nav-mobile-browse,
  .nav-mobile-browse__section,
  .nav-mobile-browse__chips{
    text-align:left !important;
    justify-content:flex-start !important;
  }
}

/* v8 menu edge + subtle inactive border correction.
   PC: align the floating Menu button to the same right edge as full-width content cards.
   All viewports: keep Menu button border subtle until the menu is open. */
:root{
  --tsw-menu-button-height:46px;
  --tsw-menu-border-rest:rgba(233,227,214,.14);
  --tsw-menu-border-hover:rgba(233,227,214,.14);
  --tsw-menu-border-active:rgba(233,227,214,.14);
  --tsw-floating-menu-right:max(20px, calc((100vw - var(--maxw)) / 2 + 20px));
}

.burger,
.tsw-floating-menu__button{
  height:var(--tsw-menu-button-height) !important;
  min-height:var(--tsw-menu-button-height) !important;
  padding:12px 14px 12px 11px !important;
  border-color:var(--tsw-menu-border-rest) !important;
  font-size:12px !important;
  letter-spacing:2.2px !important;
  line-height:1.7 !important;
}

.burger:hover,
.burger:focus-visible,
.tsw-floating-menu__button:hover,
.tsw-floating-menu__button:focus-visible{
  border-color:var(--tsw-menu-border-hover) !important;
}

.burger[aria-expanded="true"],
.tsw-floating-menu__button[aria-expanded="true"]{
  border-color:var(--tsw-menu-border-active) !important;
}

.burger:focus-visible,
.tsw-floating-menu__button:focus-visible{
  outline-color:rgba(217,179,95,.55) !important;
}

.tsw-floating-menu{
  right:var(--tsw-floating-menu-right) !important;
}

@media (max-width:760px){
  .tsw-floating-menu{
    right:20px !important;
  }

  .burger,
  .tsw-floating-menu__button{
    height:var(--tsw-menu-button-height) !important;
    min-height:var(--tsw-menu-button-height) !important;
    padding:12px 14px 12px 11px !important;
    border-color:var(--tsw-menu-border-rest) !important;
    font-size:12px !important;
    letter-spacing:2.2px !important;
    line-height:1.7 !important;
  }

  .burger:hover,
  .burger:focus-visible,
  .tsw-floating-menu__button:hover,
  .tsw-floating-menu__button:focus-visible{
    border-color:var(--tsw-menu-border-hover) !important;
  }

  .burger[aria-expanded="true"],
  .tsw-floating-menu__button[aria-expanded="true"]{
    border-color:var(--tsw-menu-border-active) !important;
  }
}

/* v8 refinement: desktop floating menu to screen edge, phone floating title typography, and unified container-box radius. */
:root{
  --tsw-box-radius:21px;
  --radius:var(--tsw-box-radius);
}

@media (min-width:761px){
  .tsw-floating-menu{
    right:20px !important;
  }
}

.tsw-floating-menu__head span{
  font-family:inherit;
  font-size:inherit !important;
  line-height:1.05;
  font-weight:600;
  letter-spacing:2.15px;
  color:var(--gold);
  text-transform:uppercase;
}

/* Container/card boxes only. Buttons, pills, logos, images, form fields, and round portraits are intentionally excluded. */
.card,
.subscribe-band .subscribe-box,
.capture--embed,
.reader blockquote,
.reader .entry-content blockquote,
.reader .entry-content .wp-block-quote,
.sales-proof-item,
.sales-feature,
.sales-price-card,
.sales-faq details,
.method-card,
.assessment-shell,
.assessment-form fieldset,
.assessment-step,
.report-card,
.result-card,
.start-box,
.recommendation-box,
.program-grid article,
.program-offer-card,
.notice-success,
.application-card,
.writings-origin-card,
.writings-purpose-card,
.protocol-learn-card,
.instagram-hero-card,
.instagram-admin-note,
.protocol-title-page-image,
.nav-links,
.tsw-floating-menu__panel{
  border-radius:var(--tsw-box-radius) !important;
}

@media (max-width:760px){
  .nav-links,
  .tsw-floating-menu__panel{
    border-radius:var(--tsw-box-radius) !important;
  }
}

/* v8 correction: menu buttons use the same 21px visible corner system as the container boxes. */
.burger,
.tsw-floating-menu__button{
  border-radius:21px !important;
}


/* v8 correction: unify all non-button border colors to the site neutral border.
   Standard CTA buttons and menu buttons keep their existing button border behavior. */
:root{ --line: rgba(233,227,214,.14); }

/* Non-button container, content, menu-panel, form, chip, and divider borders. */
.card,
.subscribe-band .subscribe-box,
.capture--embed,
.capture input,
.reader blockquote,
.reader .entry-content blockquote,
.reader .entry-content .wp-block-quote,
.sales-proof-item,
.sales-feature,
.sales-price-card,
.sales-price-card.featured,
.sales-price-top,
.sales-faq details,
.method-card,
.method-card img,
.coach-hero,
.coach-hero-visual,
.trust-row span,
.assessment-shell,
.assessment-form fieldset,
.assessment-step,
.assessment-option,
.report-card,
.result-card,
.start-box,
.recommendation-box,
.program-grid article,
.program-offer-card,
.notice-success,
.application-card,
.writings-origin-card,
.writings-purpose-card,
.protocol-learn-card,
.coach-bio-card,
.coach-photo,
.coach-separator,
.tsw-floating-menu__panel,
.tsw-floating-menu__chips a,
.nav-links,
.nav-mobile-browse,
.nav-mobile-browse__chips a,
.nav,
.section,
.subscribe-band,
.footer,
.site-footer{
  border-color: rgba(233,227,214,.14) !important;
}

/* Secondary buttons now use the same neutral border as the container system. */
.btn{ border-color: rgba(233,227,214,.14) !important; }
.btn.primary,
.btn--substack,
.capture button{ border-color: rgba(217,179,95,.55) !important; }
.btn.primary:hover,
.btn--substack:hover,
.capture button:hover{ border-color: rgba(217,179,95,.85) !important; }

/* Preserve Menu button border behavior. */
:root{
  --tsw-menu-border-rest:rgba(233,227,214,.14);
  --tsw-menu-border-hover:rgba(233,227,214,.14);
  --tsw-menu-border-active:rgba(217,179,95,.55);
}
.burger,
.tsw-floating-menu__button{ border-color:var(--tsw-menu-border-rest) !important; }
.burger:hover,
.burger:focus-visible,
.tsw-floating-menu__button:hover,
.tsw-floating-menu__button:focus-visible{ border-color:var(--tsw-menu-border-hover) !important; }
.burger[aria-expanded="true"],
.tsw-floating-menu__button[aria-expanded="true"]{ border-color:var(--tsw-menu-border-active) !important; }

/* v8 refinement: floating menu brand lockup + right-aligned category group. */
.tsw-floating-menu__head{
  font-size:13.5px;
}
.tsw-floating-menu__brand{
  display:inline-flex;
  align-items:center;
  min-width:0;
  gap:9px;
}
.tsw-floating-menu__logo{
  display:block;
  width:24px;
  height:24px;
  flex:0 0 24px;
  object-fit:contain;
}
.tsw-floating-menu__brand-title{
  display:block;
  min-width:0;
  font-family:inherit;
  font-size:13.5px !important;
  line-height:1.05;
  font-weight:600;
  letter-spacing:2.15px;
  color:var(--gold);
  text-transform:uppercase;
  white-space:nowrap;
}
.tsw-floating-menu__section--categories .tsw-floating-menu__title{
  text-align:right;
}
.tsw-floating-menu__section--categories .tsw-floating-menu__chips{
  justify-content:flex-end;
}
.nav-mobile-browse__section--categories .nav-mobile-browse__title{
  text-align:right;
}
.nav-mobile-browse__section--categories .nav-mobile-browse__chips{
  justify-content:flex-end;
}

/* v8 refinement: center category/theme browse groups in both floating and header menus. */
.tsw-floating-menu__title,
.nav-mobile-browse__title{
  text-align:center !important;
}
.tsw-floating-menu__chips,
.nav-mobile-browse__chips{
  justify-content:center !important;
}

/* Programs page: make the protocol visual itself open the Protocol page. */
.programs-page .program-offer-card__media-link{
  display:block;
  width:100%;
  height:100%;
  color:inherit;
  text-decoration:none;
}
.programs-page .program-offer-card__media-link:hover,
.programs-page .program-offer-card__media-link:focus-visible{
  text-decoration:none;
}
.programs-page .program-offer-card__media-link:focus-visible{
  outline:2px solid rgba(217,179,95,.85);
  outline-offset:-4px;
}
@media (max-width:720px){
  .programs-page .program-offer-card__media-link{
    height:auto;
  }
}


/* v8 writings/category hero image update.
   Use the same samurai stained-glass visual for Writings and category/theme archives.
   On phones, category/theme archive hero height matches the active Writings/posts hero height. */
@media (max-width:760px){
  body.archive .writings-taxonomy-hero{
    min-height:92vh !important;
  }
}

/* v8 Writings mobile browse: categories/themes directly under the Writings title. */
.writings-mobile-browse{
  display:none;
}

@media (max-width:760px){
  .writings-hero .hero-content{
    text-align:center;
  }

  .writings-mobile-browse{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:18px;
    width:100%;
    max-width:640px;
    margin:24px auto 0;
  }

  .writings-mobile-browse__group{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    width:100%;
    gap:10px;
  }

  .writings-mobile-browse__label{
    color:var(--meta);
    text-transform:uppercase;
    letter-spacing:2.1px;
    font-size:11px;
    line-height:1.2;
    margin:0;
  }

  .writings-mobile-browse__links{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:center;
    gap:10px;
    width:100%;
  }

  .writings-mobile-browse__button.btn{
    min-height:46px;
    justify-content:center;
    padding:12px 14px;
    border-radius:14px;
    border-color:rgba(233,227,214,.14) !important;
    background:rgba(233,227,214,.04);
    color:var(--ink);
    font-size:12px;
    letter-spacing:2.2px;
    line-height:1.7;
    text-align:center;
  }

  .writings-mobile-browse__button.btn:hover,
  .writings-mobile-browse__button.btn:focus-visible{
    background:rgba(233,227,214,.07);
    border-color:rgba(233,227,214,.14) !important;
    color:var(--ink);
    text-decoration:none;
  }
}


/* v8 social icon links: footer, menus, and Writings Substack marker. */
.tsw-social-icons{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px;
}
.tsw-social-icons__link{
  width:42px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(233,227,214,.14);
  border-radius:21px;
  background:
    linear-gradient(135deg, rgba(233,227,214,.045), rgba(233,227,214,.018)),
    rgba(10,12,16,.34);
  color:var(--ink);
  text-decoration:none !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.018);
  transition: background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.tsw-social-icons__link:hover,
.tsw-social-icons__link:focus-visible{
  color:var(--gold);
  border-color:rgba(217,179,95,.38);
  background:
    radial-gradient(70px 48px at 50% 10%, rgba(217,179,95,.14), transparent 70%),
    rgba(233,227,214,.055);
  box-shadow:0 14px 34px rgba(0,0,0,.28), inset 0 0 0 1px rgba(217,179,95,.08);
  transform:translateY(-1px);
}
.tsw-social-icons__link:focus-visible{
  outline:1px solid rgba(217,179,95,.65);
  outline-offset:4px;
}
.tsw-social-icons__link svg{
  width:18px;
  height:18px;
  display:block;
  stroke:currentColor;
  fill:none;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.tsw-social-icons__link--youtube svg path:last-child{
  fill:currentColor;
  stroke:none;
}
.tsw-social-icons__link--substack svg path:last-child{
  fill:none;
}
.footer .foot-inner{
  align-items:center;
}
.footer .tsw-social-icons--footer{
  margin-left:auto;
}
.nav-menu-social{
  display:none;
}
.tsw-floating-menu-social{
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid rgba(233,227,214,.14);
}
.tsw-floating-menu-social .tsw-social-icons{
  justify-content:center;
}
.writings-substack-icon,
.tsw-social-icons--writings-substack{
  margin-top:12px;
}
.tsw-social-icons--writings-substack .tsw-social-icons__link{
  width:42px;
  height:42px;
}
@media (max-width:760px){
  .nav-menu-social{
    display:block;
    margin-top:16px;
    padding-top:14px;
    border-top:1px solid rgba(233,227,214,.14);
  }
  .nav-menu-social .tsw-social-icons{
    justify-content:center;
  }
  .footer .foot-inner{
    justify-content:center;
    text-align:center;
  }
  .footer .tsw-social-icons--footer{
    width:100%;
    margin:8px 0 0;
  }
}

.screen-reader-text{
  position:absolute !important;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* v8 correction: Writings mobile hero composition + menu-consistent browse chips. */
@media (max-width:760px){
  .writings-hero{
    align-items:stretch !important;
  }
  .writings-hero .container{
    position:relative;
    z-index:1;
    min-height:inherit;
    display:block;
  }
  .writings-hero .hero-content{
    min-height:inherit;
    width:100%;
    padding:0 !important;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
  }
  .writings-hero .axiom,
  .writings-hero .subaction{
    text-align:center;
  }

  .writings-mobile-browse{
    position:absolute;
    left:0;
    right:0;
    bottom:clamp(22px, 6vh, 54px);
    z-index:2;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:14px;
    width:100%;
    max-width:640px;
    margin:0 auto;
    padding:0 20px;
  }
  .writings-mobile-browse__group{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    width:100%;
    gap:8px;
  }
  .writings-mobile-browse__label{
    margin:0;
    color:var(--muted);
    text-transform:uppercase;
    letter-spacing:2.2px;
    font-size:11px;
    line-height:1.3;
  }
  .writings-mobile-browse__links{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:center;
    gap:7px;
    width:100%;
  }
  .writings-mobile-browse__button.btn{
    width:auto;
    min-height:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:5px 8px;
    border-radius:999px;
    border:1px solid rgba(233,227,214,.14) !important;
    background:rgba(233,227,214,.035);
    color:var(--muted);
    font-size:11px;
    letter-spacing:.7px;
    line-height:1.25;
    text-transform:none;
    text-align:center;
    box-shadow:none;
  }
  .writings-mobile-browse__button.btn:hover,
  .writings-mobile-browse__button.btn:focus-visible{
    color:var(--ink);
    border-color:rgba(233,227,214,.14) !important;
    background:rgba(233,227,214,.07);
    text-decoration:none !important;
  }
}

/* v8 correction: make phone header menu social icons match the floating menu icons exactly. */
@media (max-width:760px){
  .nav-links .nav-menu-social .tsw-social-icons{
    justify-content:center;
    gap:10px;
  }
  .nav-links .nav-menu-social .tsw-social-icons__link{
    width:42px;
    height:42px;
    padding:0 !important;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(233,227,214,.14);
    border-radius:21px;
    background:
      linear-gradient(135deg, rgba(233,227,214,.045), rgba(233,227,214,.018)),
      rgba(10,12,16,.34);
    color:var(--ink);
    font-size:inherit;
    letter-spacing:normal;
    line-height:normal;
    text-transform:none;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.018);
  }
  .nav-links .nav-menu-social .tsw-social-icons__link:hover,
  .nav-links .nav-menu-social .tsw-social-icons__link:focus-visible{
    color:var(--gold);
    border-color:rgba(217,179,95,.38);
    background:
      radial-gradient(70px 48px at 50% 10%, rgba(217,179,95,.14), transparent 70%),
      rgba(233,227,214,.055);
    box-shadow:0 14px 34px rgba(0,0,0,.28), inset 0 0 0 1px rgba(217,179,95,.08);
    transform:translateY(-1px);
    text-decoration:none !important;
  }
  .nav-links .nav-menu-social .tsw-social-icons__link svg{
    width:18px;
    height:18px;
  }
}

/* v8 correction: Writings Substack link should read as an obvious labeled button. */
.tsw-social-icons--writings-substack{
  margin-top:12px;
}
.tsw-social-icons--writings-substack .tsw-social-icons__link{
  width:auto;
  min-width:0;
  height:42px;
  padding:0 14px;
  gap:9px;
  border-radius:21px;
  text-transform:uppercase;
  letter-spacing:2.2px;
  font-size:12px;
  line-height:1.2;
}
.tsw-social-icons--writings-substack .tsw-social-icons__link::after{
  content:"SUBSTACK";
}
.tsw-social-icons--writings-substack .tsw-social-icons__link svg{
  width:17px;
  height:17px;
}

/* Writings title remains visible when the page template uses the axiom--hero class. */
.writings-hero .axiom--hero{
  display:block;
}

/* v8 correction: phone Writings browse spacing, phone header social icons, and Substack spacing. */
@media (max-width:760px){
  /* Keep the Writings title/subtitle centered while moving browse controls lower and wider. */
  .writings-hero .hero-content{
    position:relative !important;
    justify-content:center !important;
    text-align:center !important;
  }
  .writings-hero .axiom,
  .writings-hero .axiom--hero,
  .writings-hero .subaction{
    text-align:center !important;
  }
  .writings-mobile-browse{
    left:50% !important;
    right:auto !important;
    bottom:clamp(14px, 2.8vh, 30px) !important;
    width:calc(100vw - 24px) !important;
    max-width:none !important;
    transform:translateX(-50%) !important;
    padding:0 12px !important;
    gap:12px !important;
    margin:0 !important;
  }
  .writings-mobile-browse__group{
    gap:6px !important;
  }
  .writings-mobile-browse__label{
    margin:0 !important;
    font-size:11px !important;
    line-height:1.2 !important;
  }
  .writings-mobile-browse__links{
    width:100% !important;
    max-width:none !important;
    justify-content:center !important;
    gap:6px !important;
  }
  .writings-mobile-browse__button.btn{
    padding:4px 8px !important;
    font-size:11px !important;
    line-height:1.2 !important;
    letter-spacing:.7px !important;
    border-radius:999px !important;
    min-height:0 !important;
  }

  /* Header-menu social icons must match the floating-menu icons, not full-width nav buttons. */
  .nav-links .nav-menu-social .tsw-social-icons{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:center !important;
    flex-wrap:wrap !important;
    gap:10px !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
  }
  .nav-links .nav-menu-social .tsw-social-icons__link,
  .nav-links.open .nav-menu-social .tsw-social-icons__link,
  .nav-links .nav-menu-social a.tsw-social-icons__link{
    width:42px !important;
    min-width:42px !important;
    max-width:42px !important;
    height:42px !important;
    min-height:42px !important;
    max-height:42px !important;
    flex:0 0 42px !important;
    padding:0 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    border:1px solid rgba(233,227,214,.14) !important;
    border-radius:21px !important;
    background:
      linear-gradient(135deg, rgba(233,227,214,.045), rgba(233,227,214,.018)),
      rgba(10,12,16,.34) !important;
    color:var(--ink) !important;
    text-transform:none !important;
    letter-spacing:normal !important;
    line-height:1 !important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.018) !important;
  }
  .nav-links .nav-menu-social .tsw-social-icons__link:hover,
  .nav-links .nav-menu-social .tsw-social-icons__link:focus-visible{
    color:var(--gold) !important;
    border-color:rgba(217,179,95,.38) !important;
    background:
      radial-gradient(70px 48px at 50% 10%, rgba(217,179,95,.14), transparent 70%),
      rgba(233,227,214,.055) !important;
    box-shadow:0 14px 34px rgba(0,0,0,.28), inset 0 0 0 1px rgba(217,179,95,.08) !important;
    transform:translateY(-1px) !important;
  }
}

/* Give the Writings Substack CTA a deliberate gap from the final theme row on desktop and phone. */
.writings-substack-icon,
.tsw-social-icons--writings-substack{
  margin-top:28px !important;
}

/* v8 correction: phone Writings hero uses a compact Explore dropdown instead of exposed category/theme chips. */
.writings-mobile-actions{
  display:none;
}

@media (max-width:760px){
  .writings-hero .hero-content{
    position:relative !important;
    min-height:inherit;
    justify-content:center !important;
    text-align:center !important;
  }
  .writings-hero .axiom,
  .writings-hero .axiom--hero,
  .writings-hero .subaction{
    text-align:center !important;
  }
  .writings-mobile-browse{
    display:none !important;
  }
  .writings-mobile-actions{
    position:absolute;
    left:50%;
    top:calc(50% + clamp(104px, 15vh, 138px));
    z-index:4;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
    width:calc(100vw - 40px);
    max-width:640px;
    transform:translateX(-50%);
    margin:0;
    padding:0;
    text-align:center;
  }
  .writings-explore{
    position:static;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    width:auto;
    margin:0;
    padding:0;
  }
  .writings-explore__button.btn{
    min-width:190px;
    min-height:46px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:12px 16px;
    border-radius:21px;
    border:1px solid rgba(233,227,214,.14) !important;
    background:
      linear-gradient(135deg, rgba(233,227,214,.045), rgba(233,227,214,.018)),
      rgba(10,12,16,.34);
    color:var(--ink);
    font-size:12px;
    line-height:1.7;
    letter-spacing:2.2px;
    text-transform:uppercase;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.018);
    cursor:pointer;
    user-select:none;
    text-decoration:none !important;
  }
  .writings-explore__button::-webkit-details-marker{
    display:none;
  }
  .writings-explore__button::marker{
    content:"";
  }
  .writings-explore[open] .writings-explore__button.btn,
  .writings-explore__button.btn:hover,
  .writings-explore__button.btn:focus-visible{
    color:var(--ink);
    border-color:rgba(217,179,95,.55) !important;
    background:
      radial-gradient(70px 48px at 50% 10%, rgba(217,179,95,.12), transparent 70%),
      rgba(233,227,214,.055);
    box-shadow:0 14px 34px rgba(0,0,0,.28), inset 0 0 0 1px rgba(217,179,95,.08);
    text-decoration:none !important;
  }
  .writings-mobile-actions .tsw-social-icons--writings-substack{
    margin:0 !important;
    padding:0 !important;
  }
  .writings-mobile-actions .tsw-social-icons--writings-substack .tsw-social-icons__link{
    min-width:190px;
    height:46px;
    justify-content:center;
  }
  .writings-explore__panel{
    position:absolute;
    left:50%;
    top:calc(100% + 12px);
    width:calc(100vw - 40px);
    max-width:640px;
    transform:translateX(-50%);
    padding:22px 22px 24px;
    border:1px solid rgba(233,227,214,.14);
    border-radius:21px;
    background:
      linear-gradient(180deg, rgba(16,18,23,.94), rgba(8,10,14,.90)),
      rgba(8,10,14,.92);
    box-shadow:0 26px 70px rgba(0,0,0,.56), inset 0 0 0 1px rgba(255,255,255,.018);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    text-align:center;
  }
  .writings-explore__section + .writings-explore__section{
    margin-top:20px;
    padding-top:18px;
    border-top:1px solid rgba(233,227,214,.14);
  }
  .writings-explore__title{
    margin:0 0 12px;
    color:var(--meta);
    text-transform:uppercase;
    letter-spacing:2.2px;
    font-size:12px;
    line-height:1.2;
    text-align:center;
  }
  .writings-explore__chips{
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:10px;
  }
  .writings-explore__chips a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:7px 12px;
    border:1px solid rgba(233,227,214,.14);
    border-radius:21px;
    background:rgba(233,227,214,.035);
    color:var(--muted);
    font-size:13px;
    line-height:1.2;
    letter-spacing:.35px;
    text-decoration:none !important;
  }
  .writings-explore__chips a:hover,
  .writings-explore__chips a:focus-visible{
    color:var(--ink);
    background:rgba(233,227,214,.07);
    border-color:rgba(233,227,214,.14);
    text-decoration:none !important;
  }
}

/* v8 correction: allow the phone Writings Explore panel to extend past the hero image boundary instead of being clipped. */
@media (max-width:760px){
  .writings-hero{
    overflow:visible;
    z-index:2;
  }
  .writings-hero .container,
  .writings-hero .hero-content,
  .writings-mobile-actions,
  .writings-explore{
    overflow:visible;
  }
  .writings-hero .hero-bg{
    inset:0;
  }
  .writings-explore__panel{
    z-index:30;
  }
  .writings-hero + .section{
    position:relative;
    z-index:1;
  }
}


/* v8 correction: Archive label + phone Writings Explore order/styling. */
.burger,
.tsw-floating-menu__label{
  text-transform:uppercase;
}

@media (max-width:760px){
  /* SUBSTACK now sits above EXPLORE, both with a consistent button gap. */
  .writings-mobile-actions{
    gap:10px !important;
  }

  /* Match the Explore panel's category/theme typography and chip styling to the site menus. */
  .writings-explore__section + .writings-explore__section{
    margin-top:14px !important;
    padding-top:0 !important;
    border-top:0 !important;
  }
  .writings-explore__title{
    margin:0 0 8px !important;
    color:var(--muted) !important;
    text-transform:uppercase !important;
    letter-spacing:2.2px !important;
    font-size:11px !important;
    line-height:1.3 !important;
    text-align:center !important;
  }
  .writings-explore__chips{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    justify-content:center !important;
    gap:7px !important;
    list-style:none !important;
    margin:0 !important;
    padding:0 !important;
  }
  .writings-explore__chips a{
    display:inline-flex !important;
    align-items:center !important;
    width:auto !important;
    min-height:0 !important;
    padding:5px 8px !important;
    border-radius:999px !important;
    border:1px solid rgba(233,227,214,.14) !important;
    background:rgba(233,227,214,.035) !important;
    color:var(--muted) !important;
    font-size:11px !important;
    letter-spacing:.7px !important;
    line-height:1.25 !important;
    text-transform:none !important;
    box-shadow:none !important;
    text-decoration:none !important;
  }
  .writings-explore__chips a:hover,
  .writings-explore__chips a:focus-visible{
    color:var(--ink) !important;
    border-color:rgba(233,227,214,.14) !important;
    background:rgba(233,227,214,.07) !important;
    box-shadow:none !important;
    text-decoration:none !important;
  }
}

/* v8 archive pages: phone Explore/Back controls and unified Writings hero button rhythm. */
.writings-hero-button.btn,
.writings-explore__button.btn,
.tsw-social-icons--writings-substack .tsw-social-icons__link{
  height:var(--tsw-menu-button-height, 46px) !important;
  min-height:var(--tsw-menu-button-height, 46px) !important;
  border-radius:21px !important;
  border-color:rgba(233,227,214,.14) !important;
}

.writings-hero-button.btn,
.writings-explore__button.btn{
  min-width:190px;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:12px 16px !important;
  background:
    linear-gradient(135deg, rgba(233,227,214,.045), rgba(233,227,214,.018)),
    rgba(10,12,16,.34) !important;
  color:var(--ink) !important;
  font-size:12px !important;
  line-height:1.7 !important;
  letter-spacing:2.2px !important;
  text-transform:uppercase !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.018) !important;
  text-decoration:none !important;
}

.writings-hero-button.btn:hover,
.writings-hero-button.btn:focus-visible,
.writings-explore[open] .writings-explore__button.btn,
.writings-explore__button.btn:hover,
.writings-explore__button.btn:focus-visible{
  color:var(--ink) !important;
  border-color:rgba(217,179,95,.55) !important;
  background:
    radial-gradient(70px 48px at 50% 10%, rgba(217,179,95,.12), transparent 70%),
    rgba(233,227,214,.055) !important;
  box-shadow:0 14px 34px rgba(0,0,0,.28), inset 0 0 0 1px rgba(217,179,95,.08) !important;
  text-decoration:none !important;
}

.archive-mobile-actions{
  display:none;
}

.tsw-social-icons--writings-substack .tsw-social-icons__link{
  min-width:190px !important;
  padding:0 16px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:9px !important;
  font-size:12px !important;
  line-height:1.7 !important;
  letter-spacing:2.2px !important;
}

@media (max-width:760px){
  .archive-desktop-actions{
    display:none !important;
  }
  .archive-mobile-actions{
    display:flex !important;
  }
  body.archive .writings-mobile-actions.archive-mobile-actions{
    top:calc(50% + clamp(104px, 15vh, 138px));
  }
  .archive-mobile-actions .writings-hero-button.btn,
  .archive-mobile-actions .writings-explore__button.btn,
  .writings-mobile-actions .tsw-social-icons--writings-substack .tsw-social-icons__link{
    width:auto !important;
    min-width:190px !important;
    height:var(--tsw-menu-button-height, 46px) !important;
    min-height:var(--tsw-menu-button-height, 46px) !important;
    padding:12px 16px !important;
    line-height:1.7 !important;
  }
}

/* v8 section rhythm audit: restore the site-standard 70px vertical padding on content sections.
   Deliberate hero-transition exceptions are preserved where prior layout work made the hero image govern the first gap. */
:root{
  --tsw-section-padding-y:70px;
}

.section,
.writings-origin-section,
.writings-archive-section,
.assessment-section,
body.archive main > section.section,
body.blog main > section.section,
body.page-template-page-writings main > section.section,
body.single main > section.section,
body.page main > section.section{
  padding-top:var(--tsw-section-padding-y) !important;
  padding-bottom:var(--tsw-section-padding-y) !important;
}

body.page-template-page-protocol .sales > .sales-hero,
body.page-template-page-protocol .sales > section.section,
body.page-template-page-protocol .sales > .purchase-cta--desktop,
body.page-template-page-protocol .sales > .purchase-cta--mobile{
  padding-top:var(--tsw-section-padding-y) !important;
  padding-bottom:var(--tsw-section-padding-y) !important;
}

body.page-template-page-protocol .protocol-mobile-title-section{
  padding:0 !important;
}

.tsw-home .coach-hero + .section,
.coaching-page .compact-hero + .section,
.programs-page .compact-hero + .section{
  padding-top:0 !important;
}

.programs-page .compact-hero + .section{
  padding-bottom:var(--tsw-section-padding-y) !important;
}

/* v8 Programs spacing correction: bring Programs hero/title rhythm to the site 70px standard. */
.programs-page .compact-hero{
  padding-top:var(--tsw-section-padding-y) !important;
  padding-bottom:var(--tsw-section-padding-y) !important;
}

.programs-page .compact-hero + .section{
  padding-bottom:var(--tsw-section-padding-y) !important;
}

/* v8 refinement: more inviting post archive cards without per-post artwork.
   Card backgrounds alternate, and every post carries the same faint hero
   figure centered behind the copy. */
.tsw-post-list{
  display:block;
}
.tsw-post-card{
  position:relative;
  margin-bottom:16px;
}
.tsw-post-card .card-inner{
  position:relative;
  overflow:hidden;
}
.tsw-post-card .card-inner > *{
  position:relative;
  z-index:1;
}
.tsw-post-card:nth-child(even){
  background:
    linear-gradient(135deg, rgba(16,18,22,.96), rgba(6,7,9,.90)),
    radial-gradient(220px 150px at 100% 0%, rgba(217,179,95,.08), transparent 72%) !important;
}
.tsw-post-card .card-inner::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:220px;
  height:220px;
  background:url("assets/hero-performance-longevity-v13.png") center / contain no-repeat;
  opacity:.055;
  transform:translate(-50%, -50%);
  filter:saturate(.9) contrast(1.02);
  pointer-events:none;
  z-index:0;
}
@media (max-width:760px){
  .tsw-post-card .card-inner::after{
    width:176px;
    height:176px;
    opacity:.048;
  }
}

/* v8 spacing normalization: unify core card-to-card gaps to 16px. */
.method-grid,
.program-grid,
.writings-origin-grid{
  gap:16px !important;
}

/* v8 writings post refinement: keep the hero watermark only on the normal blue posts. */
.tsw-post-card:nth-child(even) .card-inner::after{
  content:none !important;
}


/* v8 spacing refinement: Writings mobile action buttons follow the standard 12px CTA gap. */
@media (max-width:760px){
  .writings-mobile-actions,
  .archive-mobile-actions,
  body.archive .writings-mobile-actions.archive-mobile-actions{
    gap:12px !important;
  }
}


/* v8 blog interaction: the entire post card opens the post, not only the title. */
.tsw-post-card__link{
  display:block;
  color:inherit;
  text-decoration:none;
  border-radius:inherit;
}
.tsw-post-card__link:hover,
.tsw-post-card__link:focus{
  color:inherit;
  text-decoration:none;
}
.tsw-post-card__link:focus-visible{
  outline:2px solid rgba(217,179,95,.85);
  outline-offset:4px;
}
.tsw-post-card__link .h2,
.tsw-post-card__link .h2 *{
  color:var(--ink);
}
.tsw-post-card__link:hover .h2{
  color:var(--gold);
}

/* v8 spacing refinement: main paired/stacked action buttons use the tighter 10px rhythm. */
.actions,
.coach-actions,
.assessment-submit{
  gap:10px !important;
}

@media (max-width:760px){
  .writings-mobile-actions,
  .archive-mobile-actions,
  body.archive .writings-mobile-actions.archive-mobile-actions{
    gap:10px !important;
  }
}


/* v8 typography refinement: Writings and archive term titles use title case like the rest of the site. */
.writings-hero .axiom,
.writings-taxonomy-hero .axiom{
  text-transform:none !important;
}
.writings-taxonomy-hero .archive-label{
  text-transform:uppercase !important;
}


/* v8 mobile title correction: Writings and taxonomy/archive hero titles match the main site phone title size. */
@media (max-width:760px){
  .writings-hero .axiom,
  .writings-hero .axiom--hero,
  .writings-taxonomy-hero .axiom{
    font-size:40px !important;
    line-height:1.0 !important;
  }

  .writings-taxonomy-hero .archive-label{
    font-size:14px !important;
  }
}


/* v8 desktop title correction: Writings, taxonomy archive titles, and opened post titles match the main 60px PC title scale. */
@media (min-width:901px){
  .writings-hero .axiom,
  .writings-hero .axiom--hero,
  .writings-taxonomy-hero .axiom,
  body.single .reader > h1{
    font-size:60px !important;
    line-height:1.0 !important;
  }

  .writings-taxonomy-hero .archive-label{
    font-size:14px !important;
    line-height:1.3 !important;
  }
}


/* v8 vertical title alignment: opened posts and Programs begin titles at the 70px page-start reference. */
body.single main > section.section{
  padding-top:var(--tsw-section-padding-y, 70px) !important;
}
body.single .reader > h1{
  margin-top:0 !important;
}
.programs-page .compact-hero{
  padding-top:var(--tsw-section-padding-y, 70px) !important;
}
.programs-page .compact-hero h1{
  margin-top:0 !important;
}

/* v8 taxonomy title refinement: bring CATEGORY/THEME labels closer to the archive title. */
.writings-taxonomy-hero .archive-label{
  margin-bottom:6px !important;
}


/* v8 mobile title alignment: match Home and Coaching phone title start to the 70px page-start reference.
   Desktop remains untouched. Programs already keeps the 70px reference. */
@media (max-width:768px){
  .tsw-home .coach-hero,
  .coaching-page .compact-hero{
    padding-top:var(--tsw-section-padding-y, 70px) !important;
  }

  .tsw-home .coach-hero h1,
  .coaching-page .compact-hero h1{
    margin-top:0 !important;
  }
}


/* Desktop title standard: main visible page titles use a consistent 60px on PC only.
   Applies to Home, Coaching, Programs, Writings, taxonomy/category/theme pages, and opened posts.
   Protocol and mobile title sizing are intentionally untouched. Titles are allowed to wrap naturally. */
@media (min-width: 901px){
  .tsw-home .coach-hero h1,
  .coaching-page .compact-hero h1,
  .programs-page .compact-hero h1,
  .writings-hero .axiom,
  .writings-hero .axiom--hero,
  .writings-taxonomy-hero .axiom,
  body.single .reader > h1{
    font-size:60px !important;
    line-height:1.0 !important;
  }

  /* Desktop only: make the Coaching hero image use the same grid footprint as the Home hero image.
     This removes the earlier narrower/smaller coaching image treatment without changing mobile. */
  .coaching-page .coach-hero-visual.small{
    max-width:none !important;
    width:100% !important;
    justify-self:stretch !important;
  }
}
