:root {
    /* SHIFT design system */
    --ink: #413F39;
    --warm-gray: #888478;
    /* Body copy. --warm-gray sits at 3.5:1 on cream, under the 4.5:1 AA
       threshold for normal text. Same warm family, darkened to 6.3:1.
       Captions, labels, meta and eyebrows stay on --warm-gray, where
       size, weight and letter-spacing carry them instead. */
    --body-gray: #5F5B51;
    --rust: #C9432D;
    --burnt-orange: #D36731;
    --sky-blue: #AFD6E0;
    --gold: #D8932E;
    --yellow: #DDB91D;
    --white: #FFFFFF;
    --deep-red: #992222;
    --navy: #192235;
    --coral: #C15342;
    --cream: #F4EFE3;
    --cream-light: #F8F6F2;

    --font-display: Cambria, Georgia, 'Times New Roman', serif;
    --font-bold: 'Lato', -apple-system, sans-serif;
    --font-condensed: 'Roboto Condensed', 'Arial Narrow', sans-serif;
    --font-body: 'Lora', Georgia, serif;
  }

  * { margin: 0; padding: 0; box-sizing: border-box; }

  /* The native hidden attribute must always win: a module hidden for V1
     has to occupy no space and expose no focusable controls, even where an
     author rule sets display on the same element. */
  [hidden] { display: none !important; }

  body {
    background: var(--cream-light);
    color: var(--ink);
    font-family: var(--font-body);
    -webkit-font-smoothing: antialiased;
  }

  img { max-width: 100%; display: block; }

  a { text-decoration: none; color: inherit; }

  .wrap {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 48px;
  }

  /* ============ NAV ============ */
  .nav {
    padding: 32px 0 20px;
  }

  .nav .wrap {
    display: flex;
    align-items: center;
  }

  .nav-toggle,
  .mobile-menu {
    display: none;
  }

  .nav-logo {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-right: auto;
  }

  .nav-logo .mark {
    height: 55px;
    width: auto;
  }

  .nav-logo .wordmark {
    height: 31px;
    width: auto;
  }

  .nav-links {
    display: flex;
    align-items: center;
    list-style: none;
    font-family: var(--font-bold);
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-right: 48px;
  }

  .nav-links li + li {
    margin-left: 40px;
  }

  .nav-links a {
    transition: color 0.2s ease;
  }

  .nav-links a:hover {
    color: var(--rust);
  }

  .btn-cta {
    background: var(--burnt-orange);
    color: var(--white);
    font-family: var(--font-bold);
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 14px 24px;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
    transition: background 0.2s ease, transform 0.2s ease;
  }

  .btn-cta:hover {
    background: var(--deep-red);
    transform: translateY(-1px);
  }

  /* Shared micro-animation: any arrow/chevron inside a link or button
     nudges forward on hover. Applies across all CTA styles site-wide. */
  .btn-cta .arrow,
  .btn-simple .arrow,
  .btn-book .arrow,
  .btn-schedule .arrow,
  .help-card-link .arrow,
  .btn-secondary-link .arrow {
    display: inline-block;
    transition: transform 0.25s ease;
  }

  .btn-cta:hover .arrow,
  .btn-simple:hover .arrow,
  .btn-book:hover .arrow,
  .btn-schedule:hover .arrow,
  .help-card-link:hover .arrow,
  .btn-secondary-link:hover .arrow {
    transform: translateX(4px);
  }

  /* Reusable site-wide secondary CTA: burnt-orange, underlined, chevron
     arrow. Use for any "secondary" action alongside a primary button. */
  .btn-secondary-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-family: var(--font-bold);
    font-weight: 700;
    font-size: 14px;
    color: var(--burnt-orange);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
    transition: color 0.2s ease;
  }

  .btn-secondary-link:hover {
    color: var(--deep-red);
  }

  /* ============ HERO (simple 2-column grid) ============ */
  .hero-flow {
    min-height: calc(100vh - 100px);
    display: flex;
    align-items: center;
    padding: 60px 0;
    box-sizing: border-box;
  }

  .hero-grid {
    display: flex;
    align-items: center;
    gap: 48px;
  }

  .hero-text-col {
    flex: 0 0 38%;
    max-width: 38%;
  }

  .hero-image-col {
    flex: 1 1 auto;
    min-width: 0;
  }

  .hero-rotator {
    position: relative;
    width: 112%;
    max-width: 112%;
    will-change: transform;
  }

  /* Establishes the rotator's real height via normal document flow
     (identical to a plain single image), just invisible. The
     crossfade slides then overlay this exact box. */
  .hero-size-ref {
    width: 100%;
    height: auto;
    display: block;
    visibility: hidden;
  }

  .hero-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    opacity: 0;
    transition: opacity 1.2s ease;
  }

  .hero-slide.is-active {
    opacity: 1;
  }

  .hero-eyebrow {
    font-family: var(--font-body);
    font-style: italic;
    font-size: 20px;
    color: var(--ink);
    line-height: 1.4;
    margin-bottom: 16px;
  }

  .hero-headline-big {
    margin-bottom: 20px;
  }

  .hero-headline-big .tier1 {
    display: block;
    font-family: var(--font-bold);
    font-weight: 900;
    font-style: normal;
    font-size: 34px;
    line-height: 1.15;
    letter-spacing: -0.005em;
    color: var(--ink);
  }

  .hero-headline-big .tier2 {
    display: block;
    font-family: var(--font-bold);
    font-weight: 900;
    font-style: normal;
    font-size: 52px;
    line-height: 1.08;
    letter-spacing: -0.01em;
    color: var(--ink);
    margin-top: 4px;
  }

  .hero-headline-big .circle {
    position: relative;
    white-space: nowrap;
  }

  .hero-headline-big .circle::after {
    content: '';
    position: absolute;
    left: -6px;
    right: -6px;
    top: -4px;
    bottom: 0;
    border: 3px solid var(--yellow);
    border-radius: 50% / 60%;
    z-index: 0;
    transform: rotate(-2deg);
  }

  .hero-sub {
    font-family: var(--font-body);
    font-size: 20px;
    line-height: 1.55;
    color: var(--ink);
    max-width: 460px;
    margin-bottom: 28px;
  }

  .hero-sub strong {
    font-weight: 600;
    font-style: italic;
  }

  /* First line under an interior-page headline: same size and colour as
     .hero-sub, tighter to the paragraph that follows it. */
  .hero-sub--lead {
    margin-bottom: 12px;
  }

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

  .cta-calendar {
    height: 64px;
    width: auto;
    margin-right: -14px;
    position: relative;
    z-index: 2;
  }

  .btn-simple {
    display: inline-flex;
    align-items: center;
    background: var(--burnt-orange);
    color: var(--white);
    font-family: var(--font-bold);
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.04em;
    padding: 17px 26px 17px 34px;
    border-radius: 6px;
    white-space: nowrap;
    transition: background 0.2s ease, transform 0.2s ease;
  }

  .btn-simple:hover {
    background: var(--deep-red);
    transform: translateY(-1px);
  }

  .btn-simple .arrow {
    font-size: 15px;
    margin-left: 10px;
  }

  /* ============ IT'S THE THING (image left / text right) ============ */
  .thing-flow {
    padding: 100px 0 120px;
  }

  .thing-grid {
    display: flex;
    align-items: center;
    gap: 48px;
  }

  .thing-flow .wrap {
    max-width: 1500px;
  }

  .thing-image-col {
    flex: 0 0 755px;
    max-width: 755px;
    margin-left: -80px;
    will-change: transform;
  }

  .thing-image-col img {
    width: 100%;
    height: auto;
  }

  .thing-text-col {
    flex: 1 1 auto;
    min-width: 0;
  }

  .thing-eyebrow {
    font-family: var(--font-body);
    font-style: italic;
    font-size: 20px;
    color: var(--ink);
    line-height: 1.4;
    margin-bottom: 14px;
  }

  .thing-eyebrow em {
    font-style: italic;
    font-weight: 600;
  }

  .thing-headline {
    margin-bottom: 20px;
  }

  .thing-headline .tier1 {
    display: block;
    font-family: var(--font-bold);
    font-weight: 900;
    font-style: normal;
    font-size: 34px;
    line-height: 1.15;
    letter-spacing: -0.005em;
    color: var(--ink);
  }

  .thing-headline .tier2 {
    display: block;
    font-family: var(--font-bold);
    font-weight: 900;
    font-style: normal;
    font-size: 52px;
    line-height: 1.08;
    letter-spacing: -0.01em;
    color: var(--ink);
    margin-top: 4px;
  }

  .thing-headline .circle {
    position: relative;
    white-space: nowrap;
  }

  .thing-headline .circle::after {
    content: '';
    position: absolute;
    left: -6px;
    right: -6px;
    top: -6px;
    bottom: -2px;
    border: 3px solid var(--yellow);
    border-radius: 50% / 60%;
    z-index: 0;
    transform: rotate(-2deg);
  }

  .thing-body {
    font-family: var(--font-body);
    font-size: 20px;
    line-height: 1.6;
    color: var(--body-gray);
    max-width: 460px;
  }

  /* ============ HOW WE HELP INTRO ============ */
  .help-intro {
    position: relative;
    padding: 90px 0 60px;
    text-align: center;
    background: var(--cream);
  }

  .help-label {
    font-family: var(--font-bold);
    font-weight: 700;
    font-size: 14px;
    letter-spacing: 0.1em;
    color: #C9432D;
    margin-bottom: 18px;
  }

  .help-intro h2 {
    font-family: var(--font-bold);
    font-style: normal;
    font-weight: 400;
    font-size: 40px;
    color: var(--ink);
  }

  .circle-inline {
    position: relative;
    font-style: italic;
    font-weight: 700;
    white-space: nowrap;
  }

  .circle-inline::after {
    content: '';
    position: absolute;
    left: -6px;
    right: -6px;
    top: -4px;
    bottom: -2px;
    border: 2px solid var(--yellow);
    border-radius: 50% / 60%;
    z-index: 0;
    transform: rotate(-2deg);
  }

  /* ============ HOW WE HELP CARDS ============ */
  .help-grid {
    padding: 40px 0 120px;
    background: var(--cream);
  }

  .help-grid .grid {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
  }

  .help-card {
    background: var(--cream-light);
    border: 1px solid rgba(65,63,57,0.12);
    border-radius: 16px;
    padding: 32px;
    cursor: pointer;
    flex: 1 1 calc(33.333% - 16px);
    min-width: 280px;
    box-sizing: border-box;
    transition: background 0.28s ease, border-color 0.28s ease, transform 0.28s ease, box-shadow 0.28s ease;
  }

  .help-card:hover {
    background: var(--burnt-orange);
    border-color: var(--burnt-orange);
    transform: translateY(-4px);
    box-shadow: 0 10px 18px rgba(211, 103, 49, 0.32);
  }

  .help-card-title {
    font-family: var(--font-bold);
    font-weight: 900;
    font-size: 20px;
    color: var(--ink);
    margin-bottom: 14px;
    transition: color 0.28s ease;
  }

  .help-card-hook {
    font-family: var(--font-body);
    font-weight: 600;
    font-style: italic;
    font-size: 17px;
    line-height: 1.4;
    color: var(--ink);
    margin-bottom: 14px;
    transition: color 0.28s ease;
  }

  .help-card-desc {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.6;
    color: var(--body-gray);
    margin-bottom: 22px;
    transition: color 0.28s ease;
  }

  /* Side by side with a deliberate gap, rather than a cramped stack.
     Margin rather than gap: flex gap is unreliable in some older engines,
     and these two links must never collapse together. */
  .help-card-links {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: baseline;
  }

  .help-card-links .help-card-link {
    margin-right: 28px;
    margin-bottom: 4px;
  }

  .help-card-links .help-card-link:last-child {
    margin-right: 0;
  }

  .help-card-link {
    font-family: var(--font-bold);
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.03em;
    color: var(--burnt-orange);
    transition: color 0.28s ease;
  }

  .help-card:hover .help-card-title,
  .help-card:hover .help-card-hook,
  .help-card:hover .help-card-desc,
  .help-card:hover .help-card-link {
    color: var(--white);
  }

  /* ============ BOOK PROMO ============ */
  .book-promo {
    padding: 80px 0 120px;
  }

  .book-promo .wrap {
    max-width: 1359px;
  }

  /* Reusable promo-box background treatment: subtle grain texture
     over the cream base. Apply .promo-bg to any promo-style card. */
  /* Standard promo-box background: solid cream, used across promo-style
     cards site-wide. */
  .promo-bg {
    background: var(--cream);
  }

  .book-promo .inner {
    border-radius: 24px;
    padding: 64px;
    min-height: 567px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    gap: 40px;
  }

  .book-promo .inner > div:first-child {
    flex: 1 1 55%;
  }

  .book-eyebrow {
    font-family: var(--font-bold);
    font-weight: 700;
    font-size: 14px;
    letter-spacing: 0.1em;
    color: #C9432D;
    margin-bottom: 16px;
  }

  .book-promo h2 {
    font-family: var(--font-bold);
    font-style: normal;
    font-weight: 400;
    font-size: 34px;
    line-height: 1.3;
    color: var(--ink);
    margin-bottom: 20px;
  }

  .book-promo h2 em {
    font-style: italic;
    font-weight: 600;
  }

  .book-promo p {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.65;
    color: var(--body-gray);
    margin-bottom: 28px;
    max-width: 440px;
  }

  .book-promo p strong {
    color: var(--ink);
    font-weight: 600;
  }

  .book-cta-group {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 32px;
  }

  .btn-book {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--burnt-orange);
    color: var(--white);
    font-family: var(--font-bold);
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 15px 26px;
    border-radius: 6px;
    transition: background 0.2s ease, transform 0.2s ease;
  }

  .btn-book:hover {
    background: var(--deep-red);
    transform: translateY(-1px);
  }

  .book-author {
    display: flex;
    align-items: center;
    gap: 14px;
  }

  .book-author img {
    width: 62px;
    height: 62px;
    border-radius: 50%;
    object-fit: cover;
  }

  .book-author-name {
    font-family: var(--font-bold);
    font-weight: 900;
    font-size: 13px;
    letter-spacing: 0.03em;
    color: var(--ink);
  }

  .book-author-title {
    font-family: var(--font-body);
    font-style: italic;
    font-size: 13px;
    color: var(--warm-gray);
  }

  .book-cover-wrap {
    display: flex;
    justify-content: center;
    flex: 1 1 40%;
  }

  .book-cover-wrap img {
    max-width: 600px;
    margin: -40px -20px -40px 0;
    filter: drop-shadow(0 24px 40px rgba(0,0,0,0.2));
  }

  /* ============ TRUSTED BY BAND ============ */
  .trusted-band {
    background: linear-gradient(180deg, #1c273d 0%, var(--navy) 45%, #131a2b 100%);
    padding: 90px 0 110px;
    text-align: center;
  }

  .trusted-band h2 {
    font-family: var(--font-bold);
    font-style: normal;
    font-weight: 400;
    font-size: 40px;
    line-height: 1.4;
    color: var(--white);
    margin-bottom: 20px;
  }

  .trusted-band h2 em {
    font-style: italic;
    font-weight: 700;
  }

  .trusted-band > .wrap > p {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.6;
    color: rgba(255,255,255,0.65);
    max-width: 560px;
    margin: 0 auto 56px;
  }

  .client-logos {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 64px;
  }

  .client-logos img {
    height: 26px;
    width: auto;
    margin: 0 30px;
    filter: brightness(0) invert(1);
    opacity: 0.75;
    cursor: pointer;
    transition: opacity 0.25s ease, transform 0.25s ease;
  }

  .client-logos img:hover,
  .client-logos img:focus-visible {
    opacity: 1;
    transform: scale(1.15);
    outline: none;
  }

  .client-logos img[alt="Gilead"] {
    height: 28px;
  }

  .client-logos img[alt="argenx"] {
    height: 29px;
  }

  .client-logos img[alt="Duracell"] {
    height: 15px;
  }

  .client-logos img[alt="Mondelez International"] {
    height: 23px;
  }

  .testimonial-carousel {
    position: relative;
    height: 370px;
  }

  .testimonial-card {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: 0 auto;
    max-width: 920px;
    height: 100%;
    background: var(--cream-light);
    border-radius: 20px;
    overflow: hidden;
    display: flex;
    text-align: left;
    box-shadow: 0 30px 60px rgba(0,0,0,0.3);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.7s ease, visibility 0s linear 0.7s;
  }

  .testimonial-card.is-active {
    opacity: 1;
    visibility: visible;
    z-index: 2;
    transition: opacity 0.7s ease, visibility 0s linear 0s;
  }

  .carousel-dots {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 28px;
  }

  .carousel-dots .dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: rgba(255,255,255,0.3);
    cursor: pointer;
    transition: background 0.2s ease, transform 0.2s ease;
  }

  .carousel-dots .dot:hover {
    background: rgba(255,255,255,0.55);
  }

  .carousel-dots .dot.is-active {
    background: var(--white);
    transform: scale(1.2);
  }

  .testimonial-copy {
    padding: 48px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    flex: 1 1 55%;
  }

  .testimonial-logo {
    height: 22px;
    width: auto;
    margin-bottom: 20px;
  }

  .testimonial-quote {
    font-family: var(--font-body);
    font-style: italic;
    font-size: 17px;
    line-height: 1.6;
    color: var(--ink);
    margin-bottom: 20px;
  }

  .testimonial-attr {
    font-family: var(--font-bold);
    font-weight: 700;
    font-size: 13px;
    color: var(--burnt-orange);
  }

  .testimonial-img {
    background: var(--burnt-orange);
    flex: 1 1 45%;
  }

  .testimonial-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  /* ============ VALUES LIST + CTA PANEL ============ */
  .values-section {
    padding: 120px 0;
    background: var(--cream);
  }

  .values-section .wrap {
    position: relative;
  }

  .mobile-cta-image,
  .mobile-cta-intro,
  .btn-schedule.mobile-cta-btn {
    display: none;
  }

  .values-card {
    width: 100%;
    background: var(--cream-light);
    border-radius: 20px;
    padding: 56px;
    padding-right: 420px;
    box-shadow: 0 20px 50px rgba(0,0,0,0.08);
    box-sizing: border-box;
  }

  .values-intro {
    font-family: var(--font-body);
    font-style: normal;
    font-size: 26px;
    line-height: 1.4;
    color: var(--ink);
    margin-bottom: 40px;
    max-width: 640px;
  }

  .values-intro em {
    font-style: italic;
    font-weight: 600;
  }

  .values-list {
    border-top: 1px dashed rgba(65,63,57,0.3);
  }

  .value-item {
    border-bottom: 1px dashed rgba(65,63,57,0.3);
    padding: 24px 0;
  }

  .value-item-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
  }

  .value-item-head h3 {
    font-family: var(--font-bold);
    font-weight: 700;
    font-size: 21px;
    color: var(--ink);
  }

  .value-item-head .toggle {
    font-size: 26px;
    line-height: 1;
    color: var(--rust);
    font-family: var(--font-bold);
    font-weight: 700;
  }

  .value-item p {
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.6;
    color: var(--body-gray);
    max-width: 480px;
    margin-top: 0;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height 0.3s ease, opacity 0.25s ease, margin-top 0.3s ease;
  }

  .value-item.is-open p {
    margin-top: 12px;
    max-height: 700px;
    opacity: 1;
  }

  .value-item .toggle {
    display: inline-block;
  }

  .cta-panel {
    position: absolute;
    top: 40px;
    right: -24px;
    display: block;
    width: 380px;
    z-index: 2;
    transition: transform 0.25s ease;
  }

  .cta-panel:hover {
    transform: translateY(-4px);
  }

  .cta-panel:hover img {
    filter: drop-shadow(0 40px 70px rgba(0,0,0,0.22));
  }

  .cta-panel img {
    display: block;
    width: 100%;
    height: auto;
    filter: drop-shadow(0 30px 60px rgba(0,0,0,0.18));
  }

  .btn-schedule {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: var(--burnt-orange);
    color: var(--white);
    font-family: var(--font-bold);
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 14px 22px;
    border-radius: 6px;
    transition: background 0.2s ease, transform 0.2s ease;
  }

  .btn-schedule:hover {
    background: var(--deep-red);
    transform: translateY(-1px);
  }

  /* ============ FOOTER ============ */
  .site-footer {
    background: linear-gradient(180deg, #1c273d 0%, var(--navy) 45%, #131a2b 100%);
    padding: 80px 0 0;
    position: relative;
    overflow: hidden;
  }

  .footer-watermark {
    position: absolute;
    left: 50%;
    bottom: -5.85vw;
    transform: translateX(-50%);
    width: 100vw;
    z-index: 0;
    pointer-events: none;
  }

  .footer-watermark img {
    width: 100%;
    height: auto;
    display: block;
  }

  .site-footer > .wrap {
    position: relative;
    z-index: 2;
  }

  .footer-bottom-row {
    position: relative;
    z-index: 2;
    padding: 24px 0 32px;
    border-top: 1px solid rgba(255,255,255,0.12);
  }

  .footer-top {
    display: flex;
    gap: 40px;
    margin-bottom: 60px;
  }

  .footer-top > div:first-child {
    flex: 1 1 40%;
  }

  .footer-col {
    flex: 1 1 20%;
  }

  .footer-links-group {
    display: flex;
    gap: 40px;
    flex: 1 1 auto;
  }

  .footer-col-stack {
    display: flex;
    gap: 40px;
    flex: 2 1 40%;
  }

  .footer-logo-lockup {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
  }

  .footer-logo-mark {
    height: 38px;
    width: auto;
  }

  .footer-logo-word {
    height: 32px;
    width: auto;
  }

  .footer-about {
    font-family: var(--font-bold);
    font-weight: 400;
    font-size: 21px;
    line-height: 31px;
    color: var(--white);
    max-width: 400px;
    margin-bottom: 16px;
  }

  .footer-tagline {
    font-family: var(--font-bold);
    font-weight: 600;
    font-size: 18px;
    line-height: 22px;
    color: var(--gold);
    letter-spacing: 0;
    white-space: nowrap;
  }

  .footer-col h4 {
    font-family: var(--font-bold);
    font-weight: 900;
    font-size: 12px;
    letter-spacing: 0.08em;
    color: rgba(255,255,255,0.4);
    margin-bottom: 18px;
    text-transform: uppercase;
  }

  .footer-col ul {
    list-style: none;
  }

  .footer-col li {
    margin-bottom: 12px;
  }

  .footer-col a {
    font-family: var(--font-body);
    font-size: 14px;
    color: rgba(255,255,255,0.75);
    transition: color 0.2s ease;
  }

  .footer-col a:hover {
    color: var(--white);
  }

  .footer-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-family: var(--font-body);
    font-size: 13px;
    color: rgba(255,255,255,0.45);
  }

  .footer-bottom a {
    color: rgba(255,255,255,0.45);
    margin-left: 24px;
  }

/* ============================================================
   MOBILE (max-width: 768px)
   ============================================================ */

/* ============================================================
   COACH PAGE (Joe Boyd) — new patterns not present on homepage
   ============================================================ */

.help-card--featured {
  background: var(--burnt-orange);
  border-color: var(--burnt-orange);
}

.help-card--featured .help-card-title,
.help-card--featured .help-card-hook,
.help-card--featured .help-card-desc,
.help-card--featured .help-card-link {
  color: var(--white);
}

.help-card-subtitle {
  font-family: var(--font-body);
  font-style: italic;
  font-weight: 400;
  font-size: 15px;
  color: var(--warm-gray);
  margin-left: 6px;
}

.help-card--featured .help-card-subtitle {
  color: rgba(255,255,255,0.75);
}

.coach-hero-flow {
  padding: 70px 0 90px;
}

.coach-hero-grid {
  display: flex;
  align-items: center;
  gap: 48px;
}

.coach-hero-text {
  flex: 0 0 42%;
  max-width: 42%;
}

.coach-hero-image {
  flex: 1 1 auto;
  min-width: 0;
}

.coach-hero-image img {
  width: 125%;
  max-width: 125%;
  height: auto;
  display: block;
}

.coach-badge {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 32px;
  color: var(--ink);
  margin-bottom: 10px;
}

.coach-role-tags {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.1em;
  color: var(--warm-gray);
  margin-bottom: 20px;
}

.coach-hero-headline {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 20px;
  line-height: 1.55;
  letter-spacing: 0;
  color: var(--ink);
  max-width: 460px;
  margin-bottom: 28px;
}

.coach-intro {
  padding: 90px 0 60px;
  text-align: center;
  background: var(--cream);
}

.coach-intro-headline {
  font-family: var(--font-bold);
  font-style: normal;
  font-weight: 400;
  font-size: 32px;
  line-height: 1.4;
  color: var(--ink);
  max-width: 760px;
  margin: 0 auto 20px;
}

.coach-intro-headline em {
  font-style: italic;
  font-weight: 600;
}

.coach-intro-body {
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.6;
  color: var(--body-gray);
  max-width: 560px;
  margin: 0 auto;
}

.coach-intro-body strong {
  font-weight: 600;
  font-style: italic;
  color: var(--ink);
}

.coach-intro-body--wide {
  max-width: 820px;
}

.coach-intro-body--wide + .coach-intro-body--wide {
  margin-top: 16px;
}

.coach-help-grid {
  padding: 20px 0 120px;
}

.coach-help-grid .help-label {
  text-align: center;
  margin-bottom: 34px;
}

.coach-quote-headline {
  font-family: var(--font-bold);
  font-weight: 400;
  font-size: 28px;
  line-height: 1.35;
  color: var(--ink);
  margin-bottom: 20px;
}

.coach-quote-body {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.65;
  color: var(--body-gray);
  margin-bottom: 24px;
}

.coach-pull-quote {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 20px;
  line-height: 1.5;
  color: var(--ink);
  border-left: 3px solid var(--burnt-orange);
  padding-left: 20px;
  margin: 0 0 20px;
}

.coach-quote-attr {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 13px;
  color: var(--burnt-orange);
  line-height: 1.6;
  margin-bottom: 20px;
}


/* ============================================================
   OFFERING PAGES (Mirror, Coaching, NLL, Intensives, etc.)
   ============================================================ */

.offering-eyebrow {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.1em;
  color: var(--warm-gray);
  margin-bottom: 16px;
}

.offering-hero-flow {
  padding: 70px 0 90px;
}

.offering-hero-grid {
  display: flex;
  align-items: center;
  gap: 48px;
}

.offering-hero-text {
  flex: 0 0 44%;
  max-width: 44%;
}

.offering-hero-image {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  justify-content: flex-end;
  will-change: transform;
}

.offering-hero-image img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 20px;
}

/* All-caps display variant of the offering hero headline, with the site's
   hand-drawn circle motif. Same 900-weight Lato scale as the base rule. */
.offering-hero-headline--display {
  font-size: 52px;
  line-height: 1.08;
  letter-spacing: -0.01em;
}

.offering-hero-headline .circle,
.library-headline .circle {
  position: relative;
  white-space: nowrap;
  margin-right: 10px;
}

.offering-hero-headline .circle:last-child,
.library-headline .circle:last-child {
  margin-right: 0;
}

.offering-hero-headline .circle::after,
.library-headline .circle::after {
  content: '';
  position: absolute;
  left: -10px;
  right: -10px;
  top: -6px;
  bottom: -2px;
  border: 3px solid var(--yellow);
  border-radius: 50% / 60%;
  z-index: 0;
  transform: rotate(-2deg);
}

/* Cut-out collage heroes are not photographic panels — no rounded frame.
   Constrained on BOTH axes: a fixed height alone let landscape collages run
   wider than their column and overlap the hero copy. max-height keeps the
   heroes a consistent height; max-width keeps them inside the grid. */
.offering-hero-image--collage img {
  border-radius: 0;
  max-height: 500px;
  max-width: 100%;
  height: auto;
  width: auto;
  margin-left: auto;
}

.offering-hero-headline {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 42px;
  line-height: 1.2;
  letter-spacing: -0.005em;
  color: var(--ink);
  margin-bottom: 20px;
}

.offering-alt-bg {
  background: var(--cream-light);
}

.offering-emphasis-line {
  font-family: var(--font-bold);
  font-style: italic;
  font-weight: 700;
  font-size: 22px;
  color: var(--burnt-orange);
  text-align: center;
  max-width: 740px;
  margin: 28px auto 0;
}

.offering-section-headline {
  font-family: var(--font-bold);
  font-weight: 400;
  font-size: 30px;
  line-height: 1.35;
  color: var(--ink);
  max-width: 640px;
  margin-bottom: 40px;
}

.offering-section-headline em {
  font-style: italic;
  font-weight: 600;
}

/* ---- Outcomes (2x2 grid) ---- */
.offering-outcomes {
  background: var(--cream);
  padding: 30px 0 82px;
  text-align: center;
}

.offering-outcomes .help-label {
  margin-bottom: 34px;
}

.outcomes-grid-2 {
  text-align: left;
}

.outcomes-cta {
  margin-top: 22px;
}

/* 2x2 grid of the homepage help-card component, sized larger */
.outcomes-grid-2 {
  display: flex;
  flex-wrap: wrap;
}

.outcomes-grid-2 .help-card {
  flex: 0 0 calc(50% - 14px);
  max-width: calc(50% - 14px);
  padding: 40px;
  margin-bottom: 28px;
}

.outcomes-grid-2 .help-card:nth-child(odd) {
  margin-right: 28px;
}

/* Static variant: same visual language, but these aren't clickable. */
.help-card--static {
  cursor: default;
}

.help-card--static:hover {
  background: var(--cream-light);
  border-color: rgba(65,63,57,0.12);
  transform: none;
  box-shadow: none;
}

.help-card--static:hover .help-card-title,
.help-card--static:hover .help-card-hook {
  color: var(--ink);
}

.help-card--static:hover .help-card-desc {
  color: var(--body-gray);
}

.outcomes-grid-2 .help-card-desc {
  margin-bottom: 0;
}

.offering-outcomes .help-label,
.offering-outcomes .offering-section-headline {
  margin-left: auto;
  margin-right: auto;
}

.outcomes-grid {
  display: flex;
  flex-wrap: wrap;
  text-align: left;
}

.outcome-card {
  flex: 0 0 calc(50% - 12px);
  max-width: calc(50% - 12px);
  box-sizing: border-box;
  background: var(--cream-light);
  border: 1px solid rgba(65,63,57,0.12);
  border-radius: 16px;
  padding: 28px;
  margin-bottom: 24px;
}

.outcome-card:nth-child(odd) {
  margin-right: 24px;
}

.outcome-card h3 {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 19px;
  color: var(--ink);
  margin-bottom: 8px;
}

.outcome-card p {
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--body-gray);
  line-height: 1.5;
}

.video-placeholder {
  flex-direction: column;
}

.video-play {
  display: block;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  border: 2px solid rgba(65,63,57,0.35);
  position: relative;
  margin-bottom: 22px;
}

.video-play::after {
  content: '';
  position: absolute;
  left: 29px;
  top: 24px;
  border-style: solid;
  border-width: 12px 0 12px 19px;
  border-color: transparent transparent transparent rgba(65,63,57,0.5);
}

.video-caption {
  display: block;
}

/* ---- Testimonial band (single, uncarded) ---- */
.offering-testimonial {
  background: linear-gradient(180deg, #1c273d 0%, var(--navy) 45%, #131a2b 100%);
  padding: 96px 0 100px;
  text-align: center;
}

.offering-testimonial-label {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.1em;
  color: var(--gold);
  margin-bottom: 36px;
}

.offering-testimonial-quote {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 32px;
  line-height: 1.45;
  color: var(--white);
  max-width: 900px;
  margin: 0 auto 34px;
}

.offering-testimonial-name {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--white);
  margin-bottom: 6px;
}

.offering-testimonial-role {
  font-family: var(--font-body);
  font-size: 16px;
  color: rgba(255,255,255,0.62);
}

/* ---- See It ----
   Matches the homepage book-promo box: same wrap width, radius, 64px padding,
   min-height and internal type scale. */
.offering-seeit {
  padding: 80px 0 120px;
}

.offering-seeit .wrap {
  max-width: 1359px;
}

.seeit-inner {
  display: flex;
  align-items: center;
  border-radius: 24px;
  padding: 64px;
  min-height: 567px;
  box-sizing: border-box;
}

.seeit-text {
  flex: 1 1 55%;
  max-width: 55%;
  margin-right: 40px;
}

.seeit-text .help-label {
  margin-bottom: 16px;
}

.seeit-text .offering-section-headline {
  font-size: 34px;
  line-height: 1.3;
  margin-bottom: 20px;
}

.seeit-body {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.65;
  color: var(--body-gray);
  max-width: 440px;
  margin: 0 0 28px;
}

.seeit-visual {
  flex: 1 1 45%;
  min-width: 0;
}

.seeit-placeholder {
  background: repeating-linear-gradient(
    45deg,
    rgba(65,63,57,0.06),
    rgba(65,63,57,0.06) 10px,
    rgba(65,63,57,0.03) 10px,
    rgba(65,63,57,0.03) 20px
  );
  border: 1px dashed rgba(65,63,57,0.3);
  border-radius: 12px;
  min-height: 400px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.05em;
  color: var(--warm-gray);
  padding: 20px;
}

/* ---- Process (4-step) ---- */
.offering-process {
  padding: 90px 0 100px;
}

.process-intro {
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.65;
  color: var(--body-gray);
  max-width: 720px;
  margin-bottom: 14px;
}

/* Open horizontal progression: a single rule runs behind the numbers so the
   four steps read as 01 -> 02 -> 03 -> 04 rather than four separate ideas. */
.process-flow {
  position: relative;
  display: flex;
  margin-top: 8px;
}

.process-flow-step::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 15px;
  height: 2px;
  background: rgba(65,63,57,0.16);
  z-index: 0;
}

.process-flow-step:last-child::after {
  display: none;
}

.process-flow-step {
  position: relative;
  flex: 1 1 25%;
  max-width: 25%;
  box-sizing: border-box;
  padding-right: 36px;
}

.process-flow-number {
  position: relative;
  z-index: 1;
  display: inline-block;
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 26px;
  line-height: 1;
  color: var(--burnt-orange);
  background: var(--cream-light);
  padding-right: 18px;
  margin-bottom: 22px;
}

.process-flow-label {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--warm-gray);
  margin-top: -8px;
  margin-bottom: 12px;
}

.process-flow-step h3 {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 19px;
  line-height: 1.25;
  color: var(--ink);
  margin-bottom: 10px;
}

.process-flow-step p {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.6;
  color: var(--body-gray);
}

.process-flow-step p + p {
  margin-top: 12px;
}

.process-grid {
  display: flex;
  gap: 32px;
}

.process-step {
  flex: 1 1 25%;
  max-width: 25%;
  box-sizing: border-box;
}

.process-number {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 15px;
  color: var(--burnt-orange);
  margin-bottom: 12px;
}

.process-step h3 {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 19px;
  color: var(--ink);
  margin-bottom: 10px;
}

.process-step p {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.55;
  color: var(--body-gray);
}

/* ---- Compare ---- */
.offering-compare {
  padding: 20px 0 100px;
}

.compare-grid {
  display: flex;
  gap: 24px;
}

.compare-col {
  flex: 1 1 50%;
  max-width: 50%;
  box-sizing: border-box;
  background: var(--cream-light);
  border: 1px solid rgba(65,63,57,0.12);
  border-radius: 16px;
  padding: 32px;
}

.compare-col--highlight {
  background: var(--navy);
  border-color: var(--navy);
}

.compare-label {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 16px;
  color: var(--ink);
  margin-bottom: 12px;
}

.compare-col--highlight .compare-label {
  color: var(--gold);
}

.compare-col p {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.6;
  color: var(--body-gray);
}

.compare-col--highlight p {
  color: rgba(255,255,255,0.85);
}

/* ---- FAQ wrapper ---- */
.offering-faq {
  padding: 20px 0 100px;
}

.offering-faq .values-list {
  max-width: 760px;
}

/* ---- Closing CTA (text-based, per-offering copy) ---- */
.offering-cta {
  padding: 0 0 100px;
}

.offering-cta-inner {
  background: var(--navy);
  border-radius: 20px;
  padding: 64px;
  text-align: center;
  box-sizing: border-box;
}

.offering-cta-inner h2 {
  font-family: var(--font-bold);
  font-weight: 400;
  font-size: 32px;
  color: var(--white);
  max-width: 620px;
  margin: 0 auto 16px;
}

.offering-cta-inner p {
  font-family: var(--font-body);
  font-size: 16px;
  color: rgba(255,255,255,0.75);
  max-width: 520px;
  margin: 0 auto 32px;
}

.offering-cta-buttons {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 28px;
}

/* Outline button — for a secondary CTA of roughly equal weight to the primary.
   Matches .btn-book's box exactly: padding is reduced by the 2px border so both
   buttons sit at the same height when paired. */
.btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: transparent;
  border: 2px solid var(--burnt-orange);
  color: var(--rust);
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 13px 24px;
  border-radius: 6px;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.btn-outline:hover {
  background: var(--deep-red);
  border-color: var(--deep-red);
  color: var(--white);
  transform: translateY(-1px);
}

/* On the navy panel, burnt orange text only reaches 4.35:1 — short of the 4.5
   needed at this size. White clears it at 15.9:1 and keeps the orange outline. */
.offering-cta .btn-outline {
  color: var(--white);
}

.offering-cta-buttons .btn-secondary-link {
  color: var(--gold);
}

.offering-cta-buttons .btn-secondary-link:hover {
  color: var(--white);
}

/* ============================================================
   START A CONVERSATION (contact page)
   ============================================================ */

/* ---- Hero ---- */
.contact-hero {
  padding: 60px 0 80px;
}

.contact-hero-grid {
  display: flex;
  align-items: center;
}

.contact-hero-text {
  flex: 0 0 40%;
  max-width: 40%;
  margin-right: 56px;
}

.contact-hero-image {
  flex: 1 1 auto;
  min-width: 0;
}

.contact-hero-image img {
  width: 106%;
  max-width: 106%;
  height: auto;
  display: block;
}

.contact-hero-headline {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 66px;
  line-height: 1.05;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin-bottom: 18px;
}

/* ---- Strong statement band ---- */
.statement-band {
  background: var(--cream);
  padding: 78px 0;
  text-align: center;
}

.statement-headline .tier1,
.statement-headline .tier2 {
  display: block;
  font-family: var(--font-bold);
  font-weight: 900;
  font-style: normal;
  color: var(--ink);
}

.statement-headline .tier1 {
  font-size: 34px;
  line-height: 1.15;
  letter-spacing: -0.005em;
}

.statement-headline .tier2 {
  font-size: 52px;
  line-height: 1.08;
  letter-spacing: -0.01em;
  margin-top: 6px;
}

.statement-headline .circle {
  position: relative;
  white-space: nowrap;
}

.statement-headline .circle::after {
  content: '';
  position: absolute;
  left: -10px;
  right: -10px;
  top: -4px;
  bottom: 0;
  border: 3px solid var(--yellow);
  border-radius: 50% / 60%;
  z-index: 0;
  transform: rotate(-2deg);
}

/* ---- Form intro ---- */
.contact-form-section {
  padding: 84px 0 110px;
}

.contact-form-intro {
  max-width: 780px;
  margin: 0 auto 40px;
  padding: 0 60px;
}

.contact-form-intro .offering-section-headline {
  margin-bottom: 18px;
}

.contact-setup-body {
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.65;
  color: var(--body-gray);
  max-width: 640px;
}

.contact-form-card {
  background: var(--white);
  border: 1px solid #E4DED0;
  border-radius: 16px;
  padding: 56px 60px 52px;
  max-width: 780px;
  margin: 0 auto;
}

.contact-form-headline {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 34px;
  line-height: 1.2;
  color: var(--ink);
  margin-bottom: 34px;
}

.form-row {
  display: flex;
  flex-wrap: wrap;
}

.field {
  flex: 1 1 0;
  min-width: 0;
  margin-bottom: 24px;
}

.form-row .field + .field {
  margin-left: 24px;
}

.field > label {
  display: block;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--warm-gray);
  margin-bottom: 8px;
}

.field input,
.field select,
.field textarea {
  width: 100%;
  font-family: var(--font-body);
  font-size: 17px;
  color: var(--ink);
  background: var(--cream-light);
  border: 1px solid #DDD6C6;
  border-radius: 6px;
  padding: 14px 16px;
  outline: none;
  transition: border-color 0.2s ease, background 0.2s ease;
  -webkit-appearance: none;
  appearance: none;
}

.field select {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23888478' stroke-width='2'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 18px center;
  padding-right: 44px;
}

.field textarea {
  min-height: 168px;
  resize: vertical;
  line-height: 1.55;
}

.field input:focus,
.field select:focus,
.field textarea:focus {
  border-color: var(--burnt-orange);
  background: var(--white);
}

.field input::placeholder,
.field textarea::placeholder {
  color: #B4AF9F;
}

.field-checks {
  border: none;
  padding: 4px 0 0;
  margin-bottom: 28px;
}

.field-checks legend {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--warm-gray);
  padding: 0;
  margin-bottom: 6px;
}

.field-hint {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 15px;
  color: var(--warm-gray);
  margin-bottom: 16px;
}

.check-grid {
  display: flex;
  flex-wrap: wrap;
}

.check {
  position: relative;
  display: flex;
  align-items: flex-start;
  flex: 0 0 50%;
  max-width: 50%;
  cursor: pointer;
  margin-bottom: 14px;
  padding-right: 20px;
}

/* Real input stays focusable but invisible; the box is drawn on the label text
   so it renders identically across engines that ignore appearance:none. */
.check input {
  position: absolute;
  left: 0;
  top: 0;
  width: 20px;
  height: 20px;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

.check span {
  position: relative;
  display: block;
  padding-left: 32px;
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 17px;
  line-height: 1.35;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink);
}

.check span::before {
  content: '';
  position: absolute;
  left: 0;
  top: 1px;
  width: 20px;
  height: 20px;
  background: var(--cream-light);
  border: 1px solid #DDD6C6;
  border-radius: 4px;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.check span::after {
  content: '';
  position: absolute;
  left: 7px;
  top: 5px;
  width: 5px;
  height: 10px;
  border: solid var(--white);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  opacity: 0;
}

.check input:checked + span::before {
  background: var(--burnt-orange);
  border-color: var(--burnt-orange);
}

.check input:checked + span::after {
  opacity: 1;
}

.check input:focus + span::before {
  border-color: var(--burnt-orange);
}

.form-honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.form-submit-row {
  margin-top: 16px;
}

.form-submit {
  border: none;
  cursor: pointer;
  font-size: 14px;
  padding: 18px 32px;
}

/* ---- Coach metadata (credentials strip on coach pages) ----
   Deliberately quiet: supports trust without turning the page into a resume. */
.coach-meta {
  display: flex;
  flex-wrap: wrap;
  max-width: 1000px;
  margin: 44px auto 0;
  padding-top: 34px;
  border-top: 1px solid rgba(65,63,57,0.14);
  text-align: left;
}

.coach-meta-item {
  flex: 0 0 50%;
  max-width: 50%;
  padding-right: 32px;
  margin-bottom: 24px;
}

.coach-meta-label {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--warm-gray);
  margin-bottom: 7px;
}

.coach-meta-value {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.55;
  color: var(--ink);
}

.coach-meta-links {
  flex: 0 0 100%;
  max-width: 100%;
  padding-right: 0;
}

.coach-meta-links a {
  display: inline-block;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--rust);
  margin-right: 22px;
  margin-top: 4px;
}

.coach-meta-links a:hover {
  color: var(--deep-red);
}

/* ============================================================
   ABOUT PAGE
   Extensions only. Every section composes existing components;
   these rules adjust scale and spacing to match the finished
   offering pages, and add the two layouts that did not exist.
   ============================================================ */

/* ---- Hero image placeholder: same footprint as a real collage
        (.offering-hero-image--collage img is height:580px) ---- */
.hero-image-placeholder {
  width: 100%;
  height: 580px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 20px;
  border: 1px dashed rgba(65,63,57,0.3);
  background: repeating-linear-gradient(
    45deg,
    rgba(65,63,57,0.06),
    rgba(65,63,57,0.06) 10px,
    rgba(65,63,57,0.03) 10px,
    rgba(65,63,57,0.03) 20px
  );
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.12em;
  color: var(--warm-gray);
}

/* ---- Larger card scale, shared with the 2-up outcome cards so both
        3-up and 2-up card sections carry the same presence ---- */
.outcomes-grid-2 .help-card,
.grid--lg .help-card {
  padding: 40px;
}

.grid--lg .help-card-title { margin-bottom: 16px; }
.grid--lg .help-card-hook { margin-bottom: 16px; }
.grid--lg .help-card-desc { margin-bottom: 0; }

/* Cards sit closer to the buttons that follow them */
.help-grid.beliefs { padding-bottom: 48px; }

.outcomes-cta { text-align: center; }

/* ---- Team ---- */
.team-intro-band { padding: 72px 0 0; background: var(--cream-light); }
.team-intro-band .help-label { text-align: center; }

.team-section { padding: 44px 0 72px; }
.team-section .help-label { text-align: center; }

.team-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 38px;
}

.team-member {
  flex: 0 0 calc(25% - 28px);
  max-width: calc(25% - 28px);
  margin: 0 14px 36px;
  text-align: center;
}

.team-photo {
  width: 100%;
  border-radius: 12px;
  overflow: hidden;
  background: var(--cream);
  margin-bottom: 15px;
}

.team-photo img { width: 100%; height: auto; display: block; }

.team-name {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 19px;
  line-height: 1.25;
  color: var(--ink);
  margin-bottom: 4px;
}

.team-role {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.45;
  color: var(--warm-gray);
}

.team-cta { text-align: center; margin-top: 10px; }

/* ---- Definition: a quiet pause, not a headline ---- */
.definition-band { padding: 76px 0 0; }

.definition-band .help-label { text-align: center; }

.definition-band .coach-intro-headline {
  max-width: 900px;
  margin: 0 auto;
}

/* ---- Two matched cards side by side ---- */
/* This page's values section carries no background collage, so it does not
   need the homepage section's 120px breathing room top and bottom. */
.matched-section { padding: 72px 0 96px; }

.matched-cards { display: flex; align-items: flex-start; }

.matched-cards .values-card {
  flex: 0 0 calc(50% - 16px);
  max-width: calc(50% - 16px);
  margin: 0;
  /* The homepage card reserves 420px on the right for its background
     collage. These two carry no artwork, so the padding is evened out. */
  padding: 52px 48px;
}

.matched-cards .values-card:first-child { margin-right: 32px; }

.matched-cards .values-intro {
  margin-bottom: 30px;
  max-width: 100%;
}

/* ============================================================
   12-SKILL CURRICULUM GRID  (Next Level Leader)
   The one new component on this page. Built from existing tokens:
   the card surface/border/radius come from .help-card, the plus
   control and open/close behaviour from the FAQ accordion. Laid
   out 3 x 4 so it reads as a curriculum, not as twelve FAQ rows.
   ============================================================ */
.curriculum { padding: 90px 0 100px; }

.curriculum .offering-section-headline { margin-bottom: 34px; }

/* flex-start so an opened card grows on its own rather than
   stretching its whole row and leaving neighbours with dead space. */
.skill-grid { display: flex; flex-wrap: wrap; align-items: flex-start; }

.skill-card {
  flex: 0 0 calc(33.333% - 16px);
  max-width: calc(33.333% - 16px);
  margin-right: 24px;
  margin-bottom: 24px;
  background: var(--cream-light);
  border: 1px solid rgba(65,63,57,0.12);
  border-radius: 14px;
  box-sizing: border-box;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.skill-card:nth-child(3n) { margin-right: 0; }

.skill-card:hover { border-color: rgba(65,63,57,0.28); }

.skill-card.is-open {
  border-color: rgba(211,103,49,0.45);
  box-shadow: 0 10px 26px rgba(0,0,0,0.06);
}

.skill-head {
  display: flex;
  align-items: center;
  width: 100%;
  background: none;
  border: 0;
  text-align: left;
  padding: 22px 24px;
  cursor: pointer;
}

.skill-head:focus-visible {
  outline: 2px solid var(--burnt-orange);
  outline-offset: -2px;
  border-radius: 14px;
}

.skill-num {
  flex: 0 0 auto;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--warm-gray);
  margin-right: 14px;
}

.skill-name {
  flex: 1 1 auto;
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 17px;
  line-height: 1.3;
  color: var(--ink);
  padding-right: 14px;
}

.skill-head .toggle {
  flex: 0 0 auto;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 19px;
  line-height: 1;
  color: var(--burnt-orange);
}

.skill-body {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, opacity 0.3s ease;
}

.skill-card.is-open .skill-body {
  max-height: 260px;
  opacity: 1;
}

.skill-body p {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.6;
  color: var(--body-gray);
  padding: 0 24px 22px 52px;
}

/* ============================================================
   WORKSHOPS + SPEAKING
   Two content-specific adaptations of existing components.
   ============================================================ */

/* ---- Process component at three steps instead of four ---- */
.process-flow--3 .process-flow-step {
  flex: 1 1 33.333%;
  max-width: 33.333%;
}

/* ---- Conversation territories ----
   The same .help-card component as the outcome grid above, at the
   lighter homepage scale so two 2-up card sections on one page read
   as different weights rather than a repeated grid. */
.topics { padding: 90px 0 100px; }

.topics .offering-section-headline { margin-bottom: 20px; }

.topic-grid {
  display: flex;
  flex-wrap: wrap;
  margin-top: 34px;
}

.topic-grid .help-card {
  flex: 0 0 calc(50% - 14px);
  max-width: calc(50% - 14px);
  padding: 30px 32px;
  margin-bottom: 28px;
}

.topic-grid .help-card:nth-child(odd) { margin-right: 28px; }

.topic-grid .help-card-desc { margin-bottom: 0; }

.topic-formats {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--warm-gray);
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid rgba(65,63,57,0.12);
}

/* ============================================================
   STRATEGIC PLANNING INTENSIVES
   The example territories reuse the curriculum card from Next
   Level Leader, at 2-up with a short lead visible while closed.
   ============================================================ */
.territories { padding: 90px 0 100px; }

.territories .offering-section-headline { margin-bottom: 20px; }

.skill-grid--2 { margin-top: 34px; }

.skill-grid--2 .skill-card {
  flex: 0 0 calc(50% - 14px);
  max-width: calc(50% - 14px);
  margin-right: 28px;
}

.skill-grid--2 .skill-card:nth-child(3n) { margin-right: 28px; }
.skill-grid--2 .skill-card:nth-child(2n) { margin-right: 0; }

/* Block, not flex, so the always-visible lead can sit under the title row.
   (A column-flex <button> renders unreliably in some engines.) */
.skill-head--stacked { display: block; }

.skill-head-row {
  display: flex;
  align-items: center;
}

.skill-lead {
  display: block;
  font-family: var(--font-body);
  font-style: italic;
  font-size: 15px;
  line-height: 1.5;
  color: var(--ink);
  margin-top: 10px;
  padding-left: 34px;
}

/* ============================================================
   CONSULTING
   ============================================================ */

/* Recognition grid carries a headline as well as a label */
.outcomes-headline { margin-bottom: 34px; }

/* Intro paragraph inside the established .help-intro block */
.help-intro-body {
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.65;
  color: var(--body-gray);
  max-width: 760px;
  margin: 0 auto;
}

/* Denser 4-up possibility grid (eight examples) */
.skill-grid--4 { margin-top: 34px; }

.skill-grid--4 .skill-card {
  flex: 0 0 calc(25% - 18px);
  max-width: calc(25% - 18px);
  margin-right: 24px;
}

.skill-grid--4 .skill-card:nth-child(3n) { margin-right: 24px; }
.skill-grid--4 .skill-card:nth-child(4n) { margin-right: 0; }

.skill-grid--4 .skill-head { padding: 20px; }
.skill-grid--4 .skill-name { font-size: 16px; }
.skill-grid--4 .skill-lead { padding-left: 0; font-size: 14px; }
.skill-grid--4 .skill-body p { padding: 0 20px 20px; font-size: 14px; }

/* Restrained punctuation beneath the grid — not another CTA block */
.grid-postscript {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  color: var(--body-gray);
  margin-top: 18px;
}

.grid-postscript strong {
  font-weight: 600;
  font-style: italic;
  color: var(--ink);
}

/* ============================================================
   WHAT WE THINK — LIBRARY + ARTICLE
   ============================================================ */

/* ---- Hub hero ---- */
.library-hero { padding: 60px 0 34px; }

.library-headline {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 52px;
  line-height: 1.08;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin-bottom: 16px;
}

.library-sub,
.library-hero .hero-sub {
  font-family: var(--font-body);
  font-size: 20px;
  line-height: 1.55;
  color: var(--ink);
  max-width: 620px;
}

/* ---- Filters ---- */
.library { padding: 0 0 100px; }

.lib-filters {
  display: flex;
  flex-wrap: wrap;
  padding-bottom: 22px;
  border-bottom: 1px solid rgba(65,63,57,0.14);
}

.lib-filter {
  background: none;
  border: 1px solid rgba(65,63,57,0.2);
  border-radius: 100px;
  padding: 9px 20px;
  margin: 0 10px 10px 0;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--warm-gray);
  cursor: pointer;
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}

.lib-filter:hover { color: var(--ink); border-color: var(--ink); }

.lib-filter.is-on {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--white);
}

/* ---- Content grid ----
   Every card shares one footprint. Card size never signals importance:
   format, imagery and recency are all held at equal weight, and width
   is set by the grid rather than by the card so a filtered view of one
   result keeps its normal dimensions. */
.lib-grid {
  display: flex;
  flex-wrap: wrap;
  margin-top: 34px;
}

.lib-card {
  display: block;
  flex: 0 0 calc(50% - 14px);
  max-width: calc(50% - 14px);
  margin-right: 28px;
  margin-bottom: 28px;
  background: var(--cream-light);
  border: 1px solid rgba(65,63,57,0.12);
  border-radius: 14px;
  overflow: hidden;
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.lib-card:nth-child(2n) { margin-right: 0; }

/* Three-up variant, used for related content beneath an article. */
.lib-grid--3 .lib-card {
  flex: 0 0 calc(33.333% - 19px);
  max-width: calc(33.333% - 19px);
  margin-right: 28px;
}

.lib-grid--3 .lib-card:nth-child(2n) { margin-right: 28px; }
.lib-grid--3 .lib-card:nth-child(3n) { margin-right: 0; }

a.lib-card:hover {
  border-color: rgba(65,63,57,0.3);
  transform: translateY(-2px);
  box-shadow: 0 12px 28px rgba(0,0,0,0.06);
}

.lib-card.is-inert { opacity: 0.72; }

.lib-body { padding: 32px; }

.lib-grid--3 .lib-body { padding: 26px; }

.lib-art { background: var(--cream); }
.lib-art img { width: 100%; height: auto; display: block; }

.lib-kicker {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--rust);
  margin-bottom: 12px;
}

.lib-sep { color: rgba(65,63,57,0.4); margin: 0 2px; }
.lib-dot { color: rgba(65,63,57,0.4); }

.lib-title {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 23px;
  line-height: 1.25;
  color: var(--ink);
  margin-bottom: 12px;
}

.lib-grid--3 .lib-title { font-size: 20px; }

.lib-deck {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  color: var(--body-gray);
  margin-bottom: 16px;
}

.lib-meta {
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--warm-gray);
}

.lib-author { font-family: var(--font-bold); font-weight: 700; color: var(--ink); }

.lib-go,
.lib-soon {
  display: inline-block;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.05em;
  color: var(--rust);
  margin-top: 16px;
}

.lib-soon { color: var(--warm-gray); }

/* ============================================================
   ARTICLE DETAIL
   The only place on the site with its own reading measure — long-form
   prose needs a shorter line than marketing copy.
   ============================================================ */
.article-head { padding: 56px 0 34px; }

.article-head .wrap,
.article-body .wrap,
.article-author-block .wrap { max-width: 780px; }

.article-kicker {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--rust);
  margin-bottom: 20px;
}

.article-title {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 46px;
  line-height: 1.12;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin-bottom: 20px;
}

.article-deck {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 21px;
  line-height: 1.5;
  color: var(--body-gray);
  margin-bottom: 32px;
}

.article-byline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  padding-top: 24px;
  border-top: 1px solid rgba(65,63,57,0.14);
}

.article-author {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 17px;
  color: var(--ink);
}

.article-author:hover { color: var(--rust); }

.article-role {
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--warm-gray);
  margin-top: 3px;
}

.article-stamp {
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--warm-gray);
}

.article-hero { margin: 10px 0 40px; }

.article-hero img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 16px;
}

/* ---- Reading body ---- */
.article-body { padding-bottom: 70px; }

.article-body p {
  font-family: var(--font-body);
  font-size: 19px;
  line-height: 1.75;
  color: var(--ink);
  margin-bottom: 26px;
}

.article-body h2 {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 28px;
  line-height: 1.25;
  color: var(--ink);
  margin: 48px 0 18px;
}

.article-body h3 {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 21px;
  line-height: 1.3;
  color: var(--ink);
  margin: 36px 0 14px;
}

.article-body a {
  color: var(--rust);
  border-bottom: 1px solid rgba(201,67,45,0.35);
}

.article-body a:hover { border-bottom-color: var(--rust); }

.article-body ul,
.article-body ol { margin: 0 0 26px 22px; }

.article-body li {
  font-family: var(--font-body);
  font-size: 19px;
  line-height: 1.7;
  color: var(--ink);
  margin-bottom: 10px;
  padding-left: 6px;
}

.article-pullquote {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 30px;
  line-height: 1.4;
  color: var(--ink);
  border-left: 3px solid var(--burnt-orange);
  padding-left: 30px;
  margin: 44px 0;
}

.article-signoff {
  border-top: 1px solid rgba(65,63,57,0.16);
  padding-top: 34px;
  margin-top: 44px;
}

.article-callout {
  background: var(--cream);
  border-radius: 14px;
  padding: 30px 34px;
  margin: 40px 0;
}

.article-callout p:last-child { margin-bottom: 0; }

.article-figure { margin: 44px 0; }

.article-figure img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 12px;
}

/* A wider image moment breaks the reading measure deliberately. */
.article-figure--wide {
  width: 122%;
  max-width: 122%;
  margin-left: -11%;
}

.article-figure figcaption {
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.5;
  color: var(--warm-gray);
  margin-top: 12px;
}

.article-credit { color: rgba(65,63,57,0.5); margin-left: 8px; }

/* ---- Author block ---- */
.article-author-block {
  background: var(--cream);
  padding: 44px 0 48px;
}

.article-author-name {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 26px;
  color: var(--ink);
  margin-bottom: 10px;
}

.article-author-line {
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.6;
  color: var(--warm-gray);
  margin-bottom: 22px;
  max-width: 560px;
}

/* ---- Related ---- */
.related { padding: 80px 0 100px; }
.related .offering-section-headline { margin-bottom: 32px; }

/* ============================================================
   NAV DROPDOWN — How We Help
   Opens on hover and on keyboard focus; a tap toggles it on touch,
   where hover does not exist.
   ============================================================ */
.nav-has-menu { position: relative; }

.nav-caret {
  display: inline-block;
  transform: rotate(90deg);
  font-size: 15px;
  line-height: 1;
  margin-left: 5px;
  transition: transform .2s ease;
}

.nav-has-menu:hover .nav-caret,
.nav-has-menu.is-open .nav-caret { transform: rotate(-90deg); }

.nav-menu {
  position: absolute;
  top: 100%;
  left: -18px;
  min-width: 258px;
  background: var(--white);
  border: 1px solid rgba(65,63,57,0.12);
  border-radius: 12px;
  box-shadow: 0 16px 36px rgba(0,0,0,0.12);
  padding: 10px 0;
  margin-top: 14px;
  list-style: none;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
  z-index: 200;
}

/* Bridges the gap between the trigger and the panel so the pointer
   can travel down without the menu closing underneath it. */
.nav-menu::before {
  content: '';
  position: absolute;
  top: -14px;
  left: 0;
  right: 0;
  height: 14px;
}

.nav-has-menu:hover .nav-menu,
.nav-has-menu:focus-within .nav-menu,
.nav-has-menu.is-open .nav-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* The top-level nav spaces its items with `.nav-links li + li`, which is more
   specific than a plain `.nav-menu li` reset — so dropdown items after the
   first inherited a 40px left margin and only the first sat flush. Matching
   the selector's specificity fixes the alignment. */
.nav-menu li,
.nav-menu li + li { margin: 0; }

.nav-menu a {
  display: block;
  padding: 11px 22px;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.02em;
  color: var(--ink);
  white-space: nowrap;
  transition: background .15s ease, color .15s ease;
}

.nav-menu a:hover { background: var(--cream); color: var(--rust); }

/* ============================================================
   SEVEN ESSENTIALS — LANDING + ASSESSMENT
   ============================================================ */
.hero-buttons {
  margin-top: 28px;
  justify-content: flex-start;
}

.is-unlinked { opacity: 0.55; cursor: not-allowed; }

/* ---- The seven, as an interactive house ---- */
.essentials {
  padding: 90px 0 100px;
  text-align: center;
  background: var(--cream);
}

/* The framing copy and the diagram share one section, so the body copy is
   centred with the headline rather than sitting in its own band. */
.essentials .coach-intro-body {
  margin: 0 auto;
  max-width: 820px;
}

/* The stage is the full content width; the house sits centred inside it,
   leaving room either side for a card to open without covering the diagram. */
.house-stage {
  position: relative;
  max-width: 1000px;
  margin: 44px auto 0;
}

.house-figure {
  position: relative;
  width: 420px;
  max-width: 100%;
  margin: 0 auto;
}

.house-figure img { width: 100%; height: auto; display: block; }

.house-spots {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

/* Marker: a plus in a circle, centred on its point. */
.house-spot {
  position: absolute;
  width: 38px;
  height: 38px;
  margin: -19px 0 0 -19px;
  padding: 0;
  border: 2px solid var(--burnt-orange);
  border-radius: 50%;
  background: var(--cream-light);
  cursor: pointer;
  transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
}

.house-spot::before,
.house-spot::after {
  content: '';
  position: absolute;
  background: var(--burnt-orange);
  transition: background .18s ease;
}

/* horizontal + vertical strokes of the plus */
.house-spot::before {
  left: 9px; right: 9px; top: 50%;
  height: 2px; margin-top: -1px;
}

.house-spot::after {
  top: 9px; bottom: 9px; left: 50%;
  width: 2px; margin-left: -1px;
}

.house-spot:hover,
.house-spot:focus-visible {
  background: var(--burnt-orange);
  transform: scale(1.08);
  outline: none;
  box-shadow: 0 0 0 4px rgba(211,103,49,0.22);
}

.house-spot:hover::before, .house-spot:hover::after,
.house-spot:focus-visible::before, .house-spot:focus-visible::after {
  background: #fff;
}

.house-spot.is-on {
  background: var(--burnt-orange);
  box-shadow: 0 0 0 4px rgba(211,103,49,0.22);
}

.house-spot.is-on::before, .house-spot.is-on::after { background: #fff; }

/* The open marker's plus becomes a cross. */
.house-spot.is-on::before { transform: rotate(45deg); }
.house-spot.is-on::after  { transform: rotate(45deg); }

.house-spot-sr {
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* ---- Card ---- */
.house-card {
  position: absolute;
  width: 320px;
  transform: translateY(-50%);
  background: var(--white);
  border: 1px solid rgba(65,63,57,0.14);
  border-radius: 14px;
  box-shadow: 0 18px 44px rgba(0,0,0,0.14);
  padding: 26px 28px 28px;
  text-align: left;
  z-index: 5;
}

.house-card--left  { left: 0; }
.house-card--right { right: 0; }

.house-card-close {
  position: absolute;
  top: 10px;
  right: 12px;
  background: none;
  border: 0;
  font-size: 24px;
  line-height: 1;
  color: var(--warm-gray);
  cursor: pointer;
  padding: 4px 6px;
}

.house-card-close:hover { color: var(--rust); }

.house-card-num {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--warm-gray);
  margin-bottom: 8px;
}

.house-card-name {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 22px;
  line-height: 1.2;
  color: var(--ink);
  margin-bottom: 10px;
}

.house-card-copy {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  color: var(--body-gray);
}

.house-headline { margin-bottom: 20px; }

.house-hint {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 15px;
  color: var(--warm-gray);
  margin-top: 34px;
}

/* ---- Abstract read-out visual, drawn in CSS (no stock imagery) ---- */
.ess-dial {
  background: var(--cream-light);
  border: 1px solid rgba(65,63,57,0.12);
  border-radius: 14px;
  padding: 30px;
  text-align: center;
}

.ess-dial-label {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--warm-gray);
  margin-bottom: 22px;
}

.ess-dial-bars {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  height: 190px;
  margin-bottom: 22px;
}

.ess-dial-bars span {
  flex: 0 0 26px;
  margin: 0 6px;
  background: var(--burnt-orange);
  opacity: 0.75;
  border-radius: 4px 4px 0 0;
}

.ess-dial-bars span:nth-child(even) { opacity: 0.42; }

.ess-dial-caption {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 14px;
  line-height: 1.5;
  color: var(--warm-gray);
}

/* ---- Reduced assessment header ---- */
.asmt-header {
  border-bottom: 1px solid rgba(65,63,57,0.12);
  padding: 20px 0;
  background: var(--cream-light);
}

.asmt-header .wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.asmt-header .mark { height: 30px; margin-right: 10px; }
.asmt-header .wordmark { height: 17px; }
.asmt-header .nav-logo { display: flex; align-items: center; }

.asmt-exit {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--warm-gray);
}

.asmt-exit:hover { color: var(--rust); }

/* ---- Assessment shell ---- */
.asmt { padding: 70px 0 110px; }

.asmt-panel,
.asmt-results {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 48px;
}

.asmt-title {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 40px;
  line-height: 1.12;
  color: var(--ink);
  margin-bottom: 16px;
}

.asmt-lead {
  font-family: var(--font-body);
  font-size: 19px;
  line-height: 1.6;
  color: var(--body-gray);
  margin-bottom: 28px;
}

.asmt-facts {
  list-style: none;
  margin-bottom: 32px;
  border-top: 1px solid rgba(65,63,57,0.14);
  border-bottom: 1px solid rgba(65,63,57,0.14);
  padding: 18px 0;
}

.asmt-facts li {
  font-family: var(--font-body);
  font-size: 16px;
  color: var(--ink);
  padding: 5px 0 5px 22px;
  position: relative;
}

.asmt-facts li::before {
  content: '\2014';
  position: absolute;
  left: 0;
  color: var(--burnt-orange);
}

.asmt-form { margin-top: 6px; }
.asmt-form .field { margin-bottom: 20px; }

.asmt-note {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 14px;
  color: var(--warm-gray);
  margin: 4px 0 22px;
}

.asmt-error {
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--deep-red);
  margin-bottom: 14px;
}

.asmt-resume {
  border: 1px solid rgba(211,103,49,0.4);
  border-radius: 12px;
  padding: 24px;
  background: rgba(211,103,49,0.06);
}

.asmt-resume p {
  font-family: var(--font-body);
  font-size: 16px;
  color: var(--ink);
  margin-bottom: 16px;
}

.asmt-resume .btn-outline { margin-left: 10px; }

/* ---- Progress ---- */
.asmt-progress { margin-bottom: 40px; }

.asmt-progress-track {
  height: 4px;
  border-radius: 2px;
  background: rgba(65,63,57,0.13);
  overflow: hidden;
}

.asmt-progress-fill {
  height: 100%;
  background: var(--burnt-orange);
  transition: width .3s ease;
}

.asmt-progress-text {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--warm-gray);
  margin-top: 12px;
}

.asmt-qcat {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--rust);
  margin-bottom: 14px;
}

.asmt-question {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 30px;
  line-height: 1.28;
  color: var(--ink);
  margin-bottom: 34px;
}

/* ---- Response scale ---- */
.asmt-options { margin-bottom: 34px; }

.asmt-option {
  display: flex;
  align-items: center;
  width: 100%;
  text-align: left;
  background: var(--cream-light);
  border: 1px solid rgba(65,63,57,0.16);
  border-radius: 10px;
  padding: 15px 18px;
  margin-bottom: 10px;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease;
}

.asmt-option:hover { border-color: var(--burnt-orange); }

.asmt-option.is-on {
  border-color: var(--burnt-orange);
  background: rgba(211,103,49,0.09);
}

.asmt-option-num {
  flex: 0 0 30px;
  height: 30px;
  border-radius: 50%;
  border: 1px solid rgba(65,63,57,0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 13px;
  color: var(--warm-gray);
  margin-right: 15px;
}

.asmt-option.is-on .asmt-option-num {
  background: var(--burnt-orange);
  border-color: var(--burnt-orange);
  color: #fff;
}

.asmt-option-label {
  font-family: var(--font-body);
  font-size: 17px;
  color: var(--ink);
}

.asmt-nav { display: flex; justify-content: space-between; align-items: center; }

.asmt-nav button[disabled] { opacity: 0.4; cursor: not-allowed; }

.asmt-restart {
  margin-top: 26px;
  padding-top: 20px;
  border-top: 1px solid rgba(65,63,57,0.12);
}

.asmt-restart button {
  background: none;
  border: 0;
  padding: 0;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--warm-gray);
  cursor: pointer;
}

.asmt-restart button:hover { color: var(--rust); }

.asmt-hint {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 14px;
  color: var(--warm-gray);
  margin-top: 16px;
}

/* ---- Results ---- */
.asmt-summary {
  display: flex;
  flex-wrap: wrap;
  border-top: 1px solid rgba(65,63,57,0.14);
  border-bottom: 1px solid rgba(65,63,57,0.14);
  padding: 24px 0;
  margin-bottom: 40px;
}

.asmt-summary > div { flex: 1 1 50%; padding-right: 20px; }

.asmt-summary-label {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--warm-gray);
  margin-bottom: 7px;
}

.asmt-summary-value {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 19px;
  line-height: 1.3;
  color: var(--ink);
}

.asmt-result { margin-bottom: 30px; }

.asmt-result-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 10px;
}

.asmt-result-head h3 {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 19px;
  color: var(--ink);
}

.asmt-result-band {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--rust);
}

.asmt-bar {
  height: 8px;
  border-radius: 4px;
  background: rgba(65,63,57,0.11);
  overflow: hidden;
  margin-bottom: 10px;
}

.asmt-bar-fill { height: 100%; background: var(--burnt-orange); }

.asmt-result-copy {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.6;
  color: var(--body-gray);
}

.asmt-after {
  background: var(--cream);
  border-radius: 16px;
  padding: 36px;
  margin-top: 44px;
}

.asmt-after h2 {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 24px;
  line-height: 1.25;
  color: var(--ink);
  margin-bottom: 12px;
}

.asmt-after p {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  color: var(--body-gray);
  margin-bottom: 22px;
}

.asmt-tools {
  display: flex;
  flex-wrap: wrap;
  margin-top: 28px;
}

.asmt-tools .btn-outline { margin-right: 12px; margin-bottom: 10px; }

/* Print: results only, no chrome. */
@media print {
  body { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .asmt-header, .site-footer, .asmt-after, .asmt-tools { display: none; }
  .asmt { padding: 0; }
  .asmt-results { max-width: 100%; padding: 0; }
  .asmt-result { break-inside: avoid; page-break-inside: avoid; }
}

/* ============================================================
   BECOME A SHIFT COACH
   ============================================================ */

/* Portrait hero artwork: pinned to the same 580px height as the
   collage heroes so this page sits at the offering-page height. */
.offering-hero-image--portrait {
  justify-content: center;
}

.offering-hero-image--portrait img {
  max-height: 500px;
  max-width: 100%;
  height: auto;
  width: auto;
  border-radius: 20px;
}

/* ---- Dark feature band (same treatment as the testimonial sections) ---- */
.dark-feature {
  background: linear-gradient(180deg, #1c273d 0%, var(--navy) 45%, #131a2b 100%);
  padding: 92px 0 96px;
  text-align: center;
}

.dark-feature-label {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.1em;
  color: var(--gold);
  margin-bottom: 26px;
}

.dark-feature-headline {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 34px;
  line-height: 1.2;
  color: var(--white);
  max-width: 760px;
  margin: 0 auto 20px;
}

.dark-feature-copy {
  font-family: var(--font-body);
  font-size: 18px;
  line-height: 1.65;
  color: rgba(255,255,255,0.75);
  max-width: 700px;
  margin: 0 auto 36px;
}

/* Qualities read as an invitation, not eligibility criteria — no
   checkmarks, no boxes, no scoring. */
.dark-feature-list {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  max-width: 860px;
  margin: 0 auto 32px;
}

.dark-feature-list li {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 17px;
  color: var(--white);
  padding: 0 18px;
  margin-bottom: 12px;
  position: relative;
}

.dark-feature-list li + li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 4px;
  height: 4px;
  margin-top: -2px;
  border-radius: 50%;
  background: var(--burnt-orange);
}

.dark-feature-close {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 19px;
  color: rgba(255,255,255,0.85);
  padding-top: 28px;
  border-top: 1px solid rgba(255,255,255,0.16);
  max-width: 520px;
  margin: 0 auto;
}

/* ---- Discovery form additions ---- */
.field-optional {
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  font-family: var(--font-body);
  font-style: italic;
  font-size: 13px;
  color: var(--warm-gray);
  margin-left: 6px;
}

.field-error {
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--deep-red);
  margin-top: 7px;
}

.field input.has-error,
.field textarea.has-error { border-color: var(--deep-red); }

.form-error-summary {
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--deep-red);
  background: rgba(153,34,34,0.07);
  border-radius: 6px;
  padding: 12px 14px;
  margin-bottom: 18px;
}

.form-submit.is-busy { opacity: 0.6; cursor: progress; }

.form-reassure {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 15px;
  color: var(--warm-gray);
  margin-top: 16px;
}

.form-confirm { text-align: center; padding: 30px 0; }

.form-confirm h3 {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 30px;
  color: var(--ink);
  margin-bottom: 12px;
}

.form-confirm p {
  font-family: var(--font-body);
  font-size: 18px;
  line-height: 1.6;
  color: var(--body-gray);
  max-width: 440px;
  margin: 0 auto;
}

/* ============================================================
   ACTIVECAMPAIGN FORM 52 — SHIFT styling
   AC's own stylesheet is not loaded. Everything below is scoped to
   #_form_52_ and restyles AC's markup with the site's design system.
   The class names are AC's (its script creates and removes several
   of them at runtime), so they must not be renamed:
     ._form_element  ._field-wrapper  ._form-label  ._row
     ._error  ._error-inner  ._error-arrow  ._has_error
     ._submit  .processing  ._form-thank-you  ._form-branding
   ============================================================ */
#_form_52_ { font-family: var(--font-body); }

#_form_52_ ._form_element { margin-bottom: 24px; }

#_form_52_ ._form-label,
#_form_52_ legend._form-label {
  display: block;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--warm-gray);
  margin-bottom: 8px;
  padding: 0;
}

#_form_52_ ._field-wrapper { position: relative; }

#_form_52_ input[type="text"],
#_form_52_ select,
#_form_52_ textarea {
  width: 100%;
  box-sizing: border-box;
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.4;
  color: var(--ink);
  background: var(--cream-light);
  border: 1px solid #DDD6C6;
  border-radius: 6px;
  padding: 14px 16px;
  outline: none;
  transition: border-color 0.2s ease, background 0.2s ease;
  -webkit-appearance: none;
  appearance: none;
}

#_form_52_ select {
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23888478' stroke-width='2'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 18px center;
  padding-right: 44px;
}

#_form_52_ textarea {
  min-height: 140px;
  resize: vertical;
  line-height: 1.55;
}

#_form_52_ input[type="text"]:focus,
#_form_52_ select:focus,
#_form_52_ textarea:focus {
  border-color: var(--burnt-orange);
  background: var(--white);
  box-shadow: 0 0 0 3px rgba(211,103,49,0.16);
}

/* First / last name side by side, stacked on small screens */
#_form_52_ .ac-row { display: flex; }
#_form_52_ .ac-row > ._form_element { flex: 1 1 0; min-width: 0; }
#_form_52_ .ac-row > ._form_element + ._form_element { margin-left: 24px; }

#_form_52_ ._form-fieldset {
  border: 0;
  padding: 0;
  margin: 0;
  min-width: 0;
}

#_form_52_ .ac-hint {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 15px;
  color: var(--warm-gray);
  margin: -2px 0 16px;
  text-transform: none;
  letter-spacing: 0;
}

/* ---- Checkboxes ----
   AC renders: <input><span><label>. The native box is hidden and the
   control is drawn on the label, which renders consistently across
   engines that ignore appearance:none on inputs. */
#_form_52_ ._row._checkbox-radio { position: relative; }

#_form_52_ ._row._checkbox-radio input[type="checkbox"] {
  position: absolute;
  left: 0;
  top: 2px;
  width: 20px;
  height: 20px;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}

#_form_52_ ._row._checkbox-radio label {
  position: relative;
  display: block;
  padding-left: 32px;
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 17px;
  line-height: 1.35;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink);
  cursor: pointer;
}

#_form_52_ ._row._checkbox-radio label::before {
  content: '';
  position: absolute;
  left: 0;
  top: 1px;
  width: 20px;
  height: 20px;
  background: var(--cream-light);
  border: 1px solid #DDD6C6;
  border-radius: 4px;
  transition: background 0.15s ease, border-color 0.15s ease;
}

#_form_52_ ._row._checkbox-radio label::after {
  content: '';
  position: absolute;
  left: 7px;
  top: 5px;
  width: 5px;
  height: 10px;
  border: solid var(--white);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
  opacity: 0;
}

#_form_52_ ._row._checkbox-radio input:checked + span label::before {
  background: var(--burnt-orange);
  border-color: var(--burnt-orange);
}

#_form_52_ ._row._checkbox-radio input:checked + span label::after { opacity: 1; }

#_form_52_ ._row._checkbox-radio input:focus-visible + span label::before {
  border-color: var(--burnt-orange);
  box-shadow: 0 0 0 3px rgba(211,103,49,0.22);
}

/* Offerings: two columns on desktop.
   The grid lives on a plain div rather than the <fieldset>, because
   display:flex on a fieldset is unreliable across engines. */
#_form_52_ .ac-grid {
  display: flex;
  flex-wrap: wrap;
}

#_form_52_ .ac-grid ._row._checkbox-radio {
  flex: 0 0 50%;
  max-width: 50%;
  margin-bottom: 14px;
  padding-right: 20px;
  box-sizing: border-box;
}

/* Marketing consent: present but not emphasised */
#_form_52_ .ac-consent {
  padding-top: 20px;
  border-top: 1px solid rgba(65,63,57,0.14);
}

#_form_52_ .ac-consent label {
  font-size: 15px;
  color: var(--warm-gray);
}

/* ---- Validation ----
   AC positions these absolutely as tooltips. Rendered inline instead so
   messages sit under the field they belong to and never overlap. */
#_form_52_ ._error {
  position: static;
  display: block;
  font-size: 14px;
  padding: 0;
}

#_form_52_ ._error-arrow { display: none; }

#_form_52_ ._error-inner {
  display: block;
  position: static;
  padding: 0;
  margin-top: 8px;
  background: none;
  box-shadow: none;
  border-radius: 0;
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 14px;
  line-height: 1.45;
  color: var(--deep-red);
  text-align: left;
}

#_form_52_ ._error-inner._form_error {
  background: rgba(153,34,34,0.07);
  border-radius: 6px;
  padding: 12px 14px;
  margin-bottom: 16px;
}

#_form_52_ input._has_error,
#_form_52_ select._has_error,
#_form_52_ textarea._has_error {
  border-color: var(--deep-red);
  background: var(--white);
}

#_form_52_ ._show_be_error { min-width: 100%; }

/* ---- Submit ---- */
#_form_52_ ._button-wrapper { margin-top: 28px; }

#_form_52_ ._submit {
  display: inline-flex;
  align-items: center;
  background: var(--burnt-orange);
  border: 0;
  color: var(--white);
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 18px 32px;
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}

#_form_52_ ._submit:hover:not(:disabled) {
  background: var(--deep-red);
  transform: translateY(-1px);
}

#_form_52_ ._submit:disabled { opacity: 0.55; cursor: progress; transform: none; }

/* ---- Thank-you + branding ---- */
#_form_52_ ._form-thank-you {
  font-family: var(--font-body);
  font-size: 19px;
  line-height: 1.6;
  color: var(--ink);
  text-align: center;
  padding: 28px 0;
}

#_form_52_ ._form-branding {
  margin-top: 26px;
  padding-top: 18px;
  border-top: 1px solid rgba(65,63,57,0.12);
  font-family: var(--font-bold);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(65,63,57,0.45);
}

#_form_52_ ._form-branding ._logo {
  display: block;
  width: 110px;
  height: 12px;
  margin-top: 6px;
  background-image: url("https://d226aj4ao1t61q.cloudfront.net/jftq2c8s_aclogo_dk.png");
  background-size: 110px auto;
  background-repeat: no-repeat;
  opacity: 0.5;
}

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

#_form_52_ ._clear-element { clear: both; }

/* ============================================================
   THANK-YOU PAGE
   ============================================================ */
.thanks {
  padding: 120px 0 140px;
  text-align: center;
}

.thanks-inner { max-width: 640px; margin: 0 auto; }

.thanks h1 {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 46px;
  line-height: 1.12;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin-bottom: 24px;
}

.thanks p {
  font-family: var(--font-body);
  font-size: 19px;
  line-height: 1.7;
  color: var(--body-gray);
  margin-bottom: 20px;
}

.thanks-back { margin-top: 26px; }

/* ============================================================
   SEVEN ESSENTIALS ASSESSMENT — V2 ADDITIONS
   Purely additive. The 70-question journey reuses the existing
   .asmt-* components (panel, progress, options, result cards,
   bars, after-block, tools) and adds only the elements the
   shorter version did not have: the intro definition and gate
   disclosure, the sixth "Not sure" option, the consent control,
   the honeypot, the overall figure, trail labels, not-sure
   counts, and the callout/reflection blocks.
   ============================================================ */

.asmt-body {
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.7;
  color: var(--body-gray);
  margin-bottom: 20px;
}

/* Customer definition — a quiet aside on the intro screen. */
.asmt-definition {
  background: var(--cream);
  border-radius: 12px;
  padding: 20px 24px;
  margin-bottom: 22px;
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.6;
  color: var(--ink);
}

/* The results gate, disclosed before anyone answers anything. */
.asmt-disclosure {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink);
  border-left: 3px solid var(--burnt-orange);
  padding-left: 18px;
  margin-bottom: 30px;
}

/* "Not sure" is a different KIND of answer, not a sixth scale point.
   Set apart so it is never read as a midpoint. */
.asmt-option--notsure {
  margin-top: 16px;
  background: none;
  border-style: dashed;
}

.asmt-option--notsure .asmt-option-label {
  font-style: italic;
  color: var(--warm-gray);
}

.asmt-option--notsure.is-on .asmt-option-label {
  font-style: normal;
  color: var(--ink);
}

/* Required consent at the gate. */
.asmt-consent {
  display: flex;
  align-items: flex-start;
  margin: 4px 0 22px;
  cursor: pointer;
}

.asmt-consent input[type="checkbox"] {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 3px 12px 0 0;
  accent-color: var(--burnt-orange);
  cursor: pointer;
}

.asmt-consent span {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.5;
  color: var(--ink);
}

/* Transactional delivery notice at the gate. Distinct from the optional
   marketing consent below it: this explains the service, it is not an opt-in. */
.asmt-delivery-note {
  margin-top: 2px;
  margin-bottom: 14px;
}

.asmt-unlock { width: 100%; justify-content: center; }

/* Honeypot: off-screen rather than display:none, which bots detect. */
.asmt-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* ---- Opening intake (Seven Essentials) ---- */
.asmt-intake-section {
  border: none;
  border-top: 1px solid rgba(65,63,57,0.14);
  padding: 28px 0 4px;
  margin: 8px 0 0;
  min-width: 0;
}

.asmt-h2 {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 22px;
  line-height: 1.25;
  color: var(--ink);
  margin-bottom: 8px;
  padding: 0;
}

.asmt-intake-sub { margin-bottom: 22px; }

.asmt-optional {
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  color: var(--body-gray);
}

.asmt-field-help {
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.5;
  color: var(--body-gray);
  margin-top: 8px;
}

.asmt-team-request-line {
  margin-top: 8px;
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.5;
  color: var(--body-gray);
}

.asmt-dialog-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}
.asmt-dialog-head .help-label { margin-bottom: 5px; }
.asmt-dialog-x {
  flex: 0 0 auto;
  border: 0;
  background: none;
  padding: 0 4px;
  color: var(--body-gray);
  font: 400 32px/1 var(--font-body);
  cursor: pointer;
}
.asmt-request-form { margin-top: 20px; }
.asmt-request-form textarea {
  width: 100%;
  border: 1px solid #cbc8c0;
  border-radius: 8px;
  padding: 13px 14px;
  background: #fff;
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.5;
  resize: vertical;
}
.asmt-request-form .field { margin-bottom: 16px; }

.asmt-field-error {
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.5;
  color: var(--deep-red);
  margin-top: 8px;
}

.field input[aria-invalid="true"] { border-color: var(--deep-red); }

.asmt-inline { display: flex; align-items: stretch; }
.asmt-inline input { flex: 1 1 auto; min-width: 0; }
.asmt-inline .btn-outline { margin-left: 10px; flex: 0 0 auto; }

.asmt-status p {
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--ink);
  margin-top: 10px;
}

.asmt-code-ok span[aria-hidden] { color: var(--burnt-orange); font-weight: 700; }

/* Text buttons: Remove code, Change coach, Edit details. */
.asmt-link {
  background: none;
  border: none;
  padding: 0;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 14px;
  color: var(--rust);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.asmt-link:hover { color: var(--deep-red); }

.asmt-locked {
  background: var(--cream);
  border-radius: 8px;
  padding: 16px 18px;
  margin-bottom: 24px;
}
.asmt-locked-label {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--warm-gray);
  margin-bottom: 4px;
}
.asmt-locked-value {
  font-family: var(--font-body);
  font-size: 18px;
  color: var(--ink);
}
.asmt-locked .asmt-field-help { margin-top: 4px; }

/* Coach type-ahead (ARIA 1.2 combobox + listbox). */
.asmt-combo { position: relative; }

.asmt-listbox {
  list-style: none;
  margin: 4px 0 0;
  padding: 6px 0;
  background: var(--white);
  border: 1px solid #DDD6C6;
  border-radius: 6px;
  box-shadow: 0 8px 24px rgba(25,34,53,0.12);
  max-height: 320px;
  overflow-y: auto;
}

.asmt-listbox-option {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  padding: 10px 16px;
  cursor: pointer;
  border-left: 3px solid transparent;
}
.asmt-listbox-option:hover,
.asmt-listbox-option.is-active {
  background: var(--cream);
  border-left-color: var(--burnt-orange);
}
.asmt-listbox-name {
  font-family: var(--font-body);
  font-size: 17px;
  color: var(--ink);
  margin-right: 12px;
}
.asmt-listbox-email {
  font-family: var(--font-bold);
  font-size: 13px;
  color: var(--body-gray);
}

.asmt-verified {
  display: flex;
  align-items: center;
  border: 1px solid rgba(211,103,49,0.4);
  background: rgba(211,103,49,0.06);
  border-radius: 8px;
  padding: 14px 16px;
  margin-bottom: 24px;
}
.asmt-verified > span:nth-child(2) { flex: 1 1 auto; min-width: 0; }
.asmt-verified strong {
  display: block;
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 17px;
  color: var(--ink);
}
.asmt-verified-mark {
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--burnt-orange);
  color: var(--white);
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: 12px;
}
.asmt-verified-meta {
  display: block;
  font-family: var(--font-bold);
  font-size: 13px;
  color: var(--body-gray);
  margin-top: 2px;
}
.asmt-verified .asmt-link { margin-left: 12px; }

.asmt-unmatched {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.55;
  color: var(--ink);
  background: var(--cream);
  border-left: 3px solid var(--gold);
  padding: 12px 14px;
  margin-top: 10px;
}

.asmt-sharing {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink);
  border-left: 3px solid var(--burnt-orange);
  padding-left: 18px;
  margin: 6px 0 20px;
}

.asmt-check { margin-bottom: 4px; }
.asmt-check .asmt-consent { margin-bottom: 6px; }
.asmt-check .asmt-field-error { margin: 0 0 14px 30px; }
.asmt-consent--optional { margin-top: 10px; }

.asmt-intake #intakeAlert:empty { display: none; }
.asmt-intake #intakeAlert { margin-top: 10px; }

/* Visible keyboard focus on everything the intake adds. */
.asmt-intake input:focus-visible,
.asmt-link:focus-visible,
.asmt-intake .btn-outline:focus-visible,
.asmt-intake .btn-book:focus-visible,
.asmt-gate .btn-book:focus-visible {
  outline: 3px solid rgba(211,103,49,0.5);
  outline-offset: 2px;
}

/* Screen-reader-only live regions. */
.sr-status {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

.asmt-title[tabindex]:focus { outline: none; }

/* Post-question-70 confirmation: a summary, not a form. */
.asmt-confirm {
  border-top: 1px solid rgba(65,63,57,0.14);
  border-bottom: 1px solid rgba(65,63,57,0.14);
  padding: 8px 0;
  margin-bottom: 16px;
}
.asmt-confirm > div {
  display: flex;
  flex-wrap: wrap;
  padding: 10px 0;
}
.asmt-confirm dt {
  flex: 0 0 180px;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--warm-gray);
  padding-top: 4px;
}
.asmt-confirm dd {
  flex: 1 1 240px;
  min-width: 0;
  font-family: var(--font-body);
  font-size: 17px;
  color: var(--ink);
  overflow-wrap: anywhere;
}
.asmt-tag {
  display: inline-block;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--white);
  background: var(--burnt-orange);
  border-radius: 3px;
  padding: 2px 6px;
  margin-left: 6px;
  vertical-align: 2px;
}
.asmt-tag--muted { background: var(--body-gray); }
.asmt-confirm-sharing { font-style: normal; color: var(--ink); }
.asmt-edit { margin: 0 0 28px; }

/* ---- Results additions ---- */
.asmt-overall {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--warm-gray);
  margin-bottom: 18px;
}

.asmt-overall span {
  font-size: 30px;
  letter-spacing: 0;
  color: var(--burnt-orange);
  margin-left: 8px;
  vertical-align: -3px;
}

.asmt-section-label { margin: 44px 0 18px; }

.asmt-result-mean {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 22px;
  color: var(--burnt-orange);
}

.asmt-result-mean--none {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--warm-gray);
}

.asmt-result-trail {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--warm-gray);
  margin-left: 8px;
}

.asmt-result-meta {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(65,63,57,0.5);
  margin-top: 8px;
}

/* Strongest / Greatest Opportunities reuse the result card in a 2-up row. */
.asmt-callouts { display: flex; flex-wrap: wrap; }

.asmt-callouts .asmt-result {
  flex: 0 0 calc(50% - 12px);
  max-width: calc(50% - 12px);
  box-sizing: border-box;
  background: var(--cream);
  border-radius: 14px;
  padding: 24px;
  margin-right: 24px;
}

.asmt-callouts .asmt-result:nth-child(2n) { margin-right: 0; }

.asmt-callouts .asmt-result.is-opportunity {
  background: var(--cream-light);
  border: 1px solid rgba(211,103,49,0.3);
}

.asmt-reflect {
  background: var(--cream);
  border-radius: 16px;
  padding: 34px;
  margin-top: 46px;
}

.asmt-reflect h2 {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 22px;
  color: var(--ink);
  margin-bottom: 12px;
}

.asmt-reflect p {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.7;
  color: var(--body-gray);
}

/* ---- Homepage V1 testimonials ----
   One lightweight interior-style quote at a time. The original image-led
   .testimonial-carousel remains untouched for the final homepage build. */
.trusted-band .home-v1-testimonial-hidden { display: none; }

.home-testimonials {
  display: grid;
  max-width: 900px;
  margin: 52px auto 0;
}

.home-testimonial-slide {
  grid-area: 1 / 1;
  margin: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  text-align: center;
  transition: opacity 0.45s ease, visibility 0s linear 0.45s;
}

.home-testimonial-slide.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition: opacity 0.45s ease, visibility 0s;
}

.home-testimonial-slide .offering-testimonial-quote {
  max-width: 860px;
  margin: 0 auto 22px;
  font-size: 30px;
  line-height: 1.48;
}

.home-testimonial-slide figcaption,
.home-testimonial-slide .offering-testimonial-name,
.home-testimonial-slide .offering-testimonial-role { display: block; }

.home-testimonial-dots {
  grid-row: 2;
  justify-self: center;
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 30px;
}

.home-testimonial-dot {
  width: 9px;
  height: 9px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,0.34);
  cursor: pointer;
}

.home-testimonial-dot:hover { background: rgba(255,255,255,0.6); }
.home-testimonial-dot.is-active { background: var(--white); transform: scale(1.2); }
.home-testimonial-dot:focus-visible { outline: 2px solid var(--white); outline-offset: 4px; }

/* Proof point inside the Seven Essentials health-check module. */
.book-proof-quote {
  /* .offering-testimonial-quote is written for the dark testimonial band;
     on the cream promo background it needs the page's own text colours. */
  color: var(--ink);
  font-size: 17px;
  line-height: 1.6;
  margin: 26px 0 10px;
  max-width: 46ch;
}

.book-proof-name { color: var(--ink); margin-bottom: 2px; }
.book-proof-role { color: var(--body-gray); }

/* ============================================================
   SAMPLE REPORT — preview block + viewer (sample-report.js)
   Additive only. Presented as an executive document: a portrait
   cover with a subtle shadow and layered-sheet cue. No device
   mockup, no page-curl, no flipbook.
   ============================================================ */

/* .btn-book is styled for links; as a real <button> it needs these. */
.seeit-text button.btn-book { border: 0; cursor: pointer; }

.sr-cta { display: flex; align-items: center; flex-wrap: wrap; }
.sr-cta .btn-book { margin-right: 26px; }
.sr-quiet {
  font-family: var(--font-bold); font-weight: 700; font-size: 12px;
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--warm-gray);
  text-decoration: underline; text-underline-offset: 4px;
}
.sr-quiet:hover { color: var(--rust); }

.sr-cover {
  position: relative; display: block; width: 76%; max-width: 380px; margin: 0 auto;
  padding: 0; border: 0; background: none; cursor: pointer; transition: transform 0.25s ease;
}
.sr-cover img {
  position: relative; z-index: 2; display: block; width: 100%; height: auto; border-radius: 3px;
  box-shadow: 0 22px 44px rgba(25,34,53,0.22), 0 4px 10px rgba(25,34,53,0.12);
}
.sr-sheet {
  position: absolute; z-index: 1; top: 0; left: 0; width: 100%; height: 100%;
  background: var(--white); border-radius: 3px; box-shadow: 0 8px 20px rgba(25,34,53,0.10);
}
.sr-sheet--mid  { transform: translate(10px, 8px) rotate(1.5deg); }
.sr-sheet--back { transform: translate(19px, 15px) rotate(3deg); background: var(--cream); }
.sr-cover:hover { transform: translateY(-4px); }
.sr-cover:focus-visible { outline: 3px solid rgba(211,103,49,0.5); outline-offset: 10px; border-radius: 4px; }

/* ---- viewer ---- */
html.sr-locked, html.sr-locked body { overflow: hidden; }
.sr-modal {
  position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1000;
  display: flex; align-items: center; justify-content: center;
  background: rgba(25,34,53,0.9); opacity: 0; transition: opacity 0.2s ease;
}
.sr-modal[hidden] { display: none; }
.sr-modal.is-open { opacity: 1; }
.sr-panel {
  width: 92vw; height: 92vh; display: flex; flex-direction: column; overflow: hidden;
  background: var(--cream-light); border-radius: 12px; box-shadow: 0 30px 80px rgba(0,0,0,0.35);
}
.sr-head {
  display: flex; align-items: center; flex: 0 0 auto; padding: 10px 12px 10px 22px;
  background: var(--white); border-bottom: 1px solid rgba(65,63,57,0.14);
}
.sr-title {
  flex: 1 1 auto; min-width: 0; margin: 0; font-family: var(--font-bold); font-weight: 900;
  font-size: 15px; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.sr-actions { display: flex; align-items: center; flex: 0 0 auto; }
.sr-link {
  margin-left: 20px; font-family: var(--font-bold); font-weight: 700; font-size: 11px;
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--warm-gray); white-space: nowrap;
}
.sr-link:hover { color: var(--rust); }
.sr-link--download { color: var(--burnt-orange); }
.sr-close {
  flex: 0 0 auto; width: 42px; height: 42px; margin-left: 14px; border: 0; border-radius: 50%;
  background: none; color: var(--ink); font-size: 28px; line-height: 1; cursor: pointer;
}
.sr-close:hover { background: rgba(65,63,57,0.08); }
.sr-close:focus-visible, .sr-link:focus-visible { outline: 3px solid rgba(211,103,49,0.5); outline-offset: 2px; }
.sr-body { flex: 1 1 auto; min-height: 0; background: var(--cream); }
.sr-pdf { display: block; width: 100%; height: 100%; border: 0; }
.sr-fallback {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  height: 100%; padding: 30px; text-align: center; background: var(--cream-light);
}
.sr-fallback p { margin: 0 0 20px; font-family: var(--font-body); font-size: 17px; color: var(--ink); }

@media (prefers-reduced-motion: reduce) {
  .sr-modal, .sr-cover { transition: none; }
  .sr-cover:hover { transform: none; }
}

/* External library cards: the arrow is the visible affordance that the
   link leaves the site. The accessible name says "opens in a new tab". */
.lib-ext {
  display: inline-block;
  margin-left: 2px;
  font-size: 0.92em;
  transform: translateY(-1px);
}

.lib-card--external .lib-kicker { color: var(--gold); }

/* Six cards of differing title and excerpt length still need their CTA on a
   common baseline, so the body is a column with the action pushed to the end. */
.lib-card .lib-body { display: flex; flex-direction: column; height: 100%; }
.lib-card .lib-go, .lib-card .lib-soon { margin-top: auto; }

/* Article closing CTA reuses .asmt-after; it only needs its own rhythm. */
.article-cta { margin: 10px 0 70px; }

/* ============================================================
   COACH FINDER
   ============================================================ */
.finder-search { padding: 10px 0 8px; }

.finder-bar {
  display: flex;
  align-items: center;
  background: var(--white);
  border: 1px solid #DDD6C6;
  border-radius: 10px;
  padding: 6px 6px 6px 20px;
  max-width: 780px;
  transition: border-color .18s ease;
}

.finder-bar:focus-within { border-color: var(--burnt-orange); }

.finder-bar input {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  background: transparent;
  outline: none;
  font-family: var(--font-body);
  font-size: 17px;
  color: var(--ink);
  padding: 12px 0;
}

.finder-bar input::placeholder { color: #B4AF9F; font-style: italic; }

.finder-add {
  flex: 0 0 auto;
  background: var(--burnt-orange);
  border: 0;
  color: #fff;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 13px 20px;
  border-radius: 6px;
  cursor: pointer;
  transition: background .18s ease;
}
.finder-add:hover { background: var(--deep-red); }

.finder-hint {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 14px;
  color: var(--warm-gray);
  margin-top: 12px;
}

.finder-hint button {
  background: none;
  border: 0;
  padding: 0 2px;
  font-family: var(--font-body);
  font-style: italic;
  font-size: 14px;
  color: var(--rust);
  cursor: pointer;
  text-decoration: underline;
}
.finder-hint button:hover { color: var(--deep-red); }

/* ---- Active filter chips ---- */
.chips { display: flex; flex-wrap: wrap; margin-top: 18px; }

.chip-filter {
  display: inline-flex;
  align-items: center;
  background: var(--cream);
  border: 1px solid rgba(65,63,57,0.18);
  border-radius: 100px;
  padding: 8px 8px 8px 16px;
  margin: 0 10px 10px 0;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 13px;
  color: var(--ink);
}

.chip-filter .chip-how {
  font-weight: 400;
  font-style: italic;
  font-family: var(--font-body);
  font-size: 12px;
  color: var(--warm-gray);
  margin-left: 7px;
}

.chip-x {
  background: none;
  border: 0;
  color: var(--warm-gray);
  font-size: 17px;
  line-height: 1;
  padding: 0 4px 0 10px;
  cursor: pointer;
}
.chip-x:hover { color: var(--rust); }

.chip-clear {
  background: none;
  border: 0;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--rust);
  cursor: pointer;
  padding: 8px 4px;
  margin-bottom: 10px;
}
.chip-clear:hover { color: var(--deep-red); }

/* ---- Result count ---- */
.finder-count {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--warm-gray);
  margin: 26px 0 20px;
  padding-top: 22px;
  border-top: 1px solid rgba(65,63,57,0.14);
}

/* ---- Coach cards ---- */
.coach-deck { display: flex; flex-wrap: wrap; padding-bottom: 100px; }

.coach-card {
  flex: 0 0 calc(33.333% - 19px);
  max-width: calc(33.333% - 19px);
  margin-right: 28px;
  margin-bottom: 28px;
  background: var(--cream-light);
  border: 1px solid rgba(65,63,57,0.12);
  border-radius: 14px;
  padding: 26px;
  display: flex;
  flex-direction: column;
}

.coach-card:nth-child(3n) { margin-right: 0; }

.coach-card-top { display: flex; align-items: center; margin-bottom: 18px; }

.coach-card-photo {
  flex: 0 0 68px;
  width: 68px;
  height: 68px;
  border-radius: 50%;
  overflow: hidden;
  background: var(--cream);
  margin-right: 15px;
}
.coach-card-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }

.coach-card-name {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 19px;
  line-height: 1.2;
  color: var(--ink);
  margin-bottom: 4px;
}

.coach-card-loc {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--warm-gray);
}

.coach-card-three {
  font-family: var(--font-body);
  font-style: italic;
  font-size: 14px;
  color: var(--burnt-orange);
  margin-bottom: 10px;
}

.coach-card-bio {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.6;
  color: var(--body-gray);
  margin-bottom: 18px;
}

/* Match evidence, shown only when filters are active */
.match-why {
  border-top: 1px solid rgba(65,63,57,0.14);
  padding-top: 15px;
  margin-bottom: 16px;
}

.match-why-label {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: 10px;
}

.match-item { margin-bottom: 9px; }

.match-tag {
  display: inline-block;
  background: rgba(211,103,49,0.12);
  border-radius: 4px;
  padding: 3px 9px;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 12px;
  color: var(--rust);
}

.match-tag.is-related {
  background: rgba(65,63,57,0.08);
  color: var(--warm-gray);
}

.match-note {
  display: block;
  font-family: var(--font-body);
  font-style: italic;
  font-size: 13px;
  line-height: 1.5;
  color: var(--warm-gray);
  margin-top: 5px;
}

.coach-card-cta { margin-top: auto; }

.coach-card-cta a {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.05em;
  color: var(--rust);
}
.coach-card-cta a:hover { color: var(--deep-red); }

/* ---- Empty / broaden state ---- */
.finder-empty {
  border: 1px dashed rgba(65,63,57,0.28);
  border-radius: 14px;
  padding: 44px 36px;
  text-align: center;
  margin-bottom: 100px;
}

.finder-empty h3 {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 24px;
  color: var(--ink);
  margin-bottom: 12px;
}

.finder-empty p {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  color: var(--body-gray);
  max-width: 540px;
  margin: 0 auto 20px;
}

.finder-suggest { display: flex; flex-wrap: wrap; justify-content: center; }

.finder-suggest button {
  background: var(--cream);
  border: 1px solid rgba(65,63,57,0.18);
  border-radius: 100px;
  padding: 8px 16px;
  margin: 0 8px 8px 0;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 12px;
  color: var(--ink);
  cursor: pointer;
  transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.finder-suggest button:hover {
  background: var(--burnt-orange);
  border-color: var(--burnt-orange);
  color: #fff;
}

/* ---- Search-context module on a coach page ---- */
.search-context {
  background: var(--cream);
  border-left: 3px solid var(--burnt-orange);
  border-radius: 0 12px 12px 0;
  padding: 26px 30px;
  max-width: 780px;
  margin: 26px auto 0;
}

.search-context-label {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--burnt-orange);
  margin-bottom: 9px;
}

.search-context h2 {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 21px;
  color: var(--ink);
  margin-bottom: 12px;
}

.search-context ul { list-style: none; }

.search-context li {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.6;
  color: var(--body-gray);
  margin-bottom: 7px;
  padding-left: 20px;
  position: relative;
}

.search-context li::before {
  content: '\2014';
  position: absolute;
  left: 0;
  color: var(--burnt-orange);
}

.search-context li strong { color: var(--ink); font-weight: 700; }

.search-context-back {
  display: inline-block;
  margin-top: 14px;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.05em;
  color: var(--rust);
}

/* ---- Internal directory record panel ---- */
.record-panel { padding: 0 0 90px; }

.record-toggle {
  background: none;
  border: 1px solid rgba(65,63,57,0.22);
  border-radius: 6px;
  padding: 10px 16px;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--warm-gray);
  cursor: pointer;
}
.record-toggle:hover { color: var(--ink); border-color: var(--ink); }

.record-body { display: none; margin-top: 24px; }
.record-panel.is-open .record-body { display: block; }

.record-note {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.6;
  color: var(--warm-gray);
  max-width: 720px;
  margin-bottom: 22px;
}

.record-grid { display: flex; flex-wrap: wrap; }

.record-field {
  flex: 0 0 calc(33.333% - 14px);
  max-width: calc(33.333% - 14px);
  margin-right: 21px;
  margin-bottom: 18px;
}
.record-field:nth-child(3n) { margin-right: 0; }

.record-field label {
  display: block;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 10px;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--warm-gray);
  margin-bottom: 5px;
}

.record-field input,
.record-field select {
  width: 100%;
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--ink);
  background: var(--white);
  border: 1px solid #DDD6C6;
  border-radius: 5px;
  padding: 9px 11px;
  outline: none;
}
.record-field input:focus, .record-field select:focus { border-color: var(--burnt-orange); }

.record-out {
  width: 100%;
  font-family: ui-monospace, Menlo, Consolas, monospace;
  font-size: 12px;
  line-height: 1.6;
  color: var(--ink);
  background: var(--white);
  border: 1px solid #DDD6C6;
  border-radius: 8px;
  padding: 16px;
  min-height: 200px;
  margin-top: 8px;
}

@media (max-width: 768px) {

  .wrap {
    padding: 0 24px;
  }

  /* ---------- NAV ---------- */
  body {
    padding-top: 96px;
  }

  .nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    padding: 20px 0;
    z-index: 95;
    background: rgba(248,246,242,0.6);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 1px 0 rgba(65,63,57,0.08);
    transition: box-shadow 0.2s ease;
  }

  body.mobile-menu-open .nav {
    background: var(--cream);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: none;
  }

  /* ---------- BOOK PROMO ---------- */
  .book-promo {
    padding: 50px 0 60px;
  }

  .book-promo .wrap {
    max-width: 100%;
    padding: 0 24px;
  }

  .book-promo .inner {
    flex-direction: column-reverse;
    align-items: stretch;
    padding: 32px 24px;
    min-height: 0;
    gap: 0;
  }

  .book-promo .inner > div:first-child {
    flex: 0 0 auto;
    width: 100%;
  }

  .book-cover-wrap {
    flex: 0 0 auto;
    width: 100%;
    margin-bottom: 28px;
  }

  .book-cover-wrap img {
    max-width: 280px;
    margin: 0;
    filter: drop-shadow(0 16px 28px rgba(0,0,0,0.2));
  }

  .book-promo h2 {
    font-size: 26px;
  }

  .book-promo p {
    font-size: 15px;
    max-width: 100%;
  }

  .book-cta-group {
    gap: 0;
  }

  .book-cta-group a {
    margin-top: 16px;
  }

  .book-cta-group a:first-child {
    margin-top: 0;
  }

  /* ---------- TRUSTED BY / CLIENT LOGOS ---------- */
  .client-logos {
    flex-wrap: wrap;
    margin-bottom: 40px;
  }

  .client-logos img {
    flex: 0 0 40%;
    margin: 0 5% 28px;
  }

  .nav-links,
  .nav .btn-cta {
    display: none;
  }

  .nav-toggle {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    margin-left: auto;
  }

  .nav-toggle span {
    display: block;
    width: 100%;
    height: 2px;
    background: var(--ink);
    border-radius: 2px;
    margin-top: 5px;
    transition: transform 0.25s ease, opacity 0.25s ease;
  }

  .nav-toggle span:first-child {
    margin-top: 0;
  }

  body.mobile-menu-open .nav-toggle span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  body.mobile-menu-open .nav-toggle span:nth-child(2) {
    opacity: 0;
  }

  body.mobile-menu-open .nav-toggle span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  .mobile-menu {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--cream);
    text-align: left;
    padding: 140px 24px 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s ease, visibility 0s linear 0.25s;
    z-index: 90;
  }

  body.mobile-menu-open .mobile-menu {
    opacity: 1;
    visibility: visible;
    transition: opacity 0.25s ease, visibility 0s linear 0s;
  }

  body.mobile-menu-open {
    overflow: hidden;
  }

  .mobile-menu-links {
    list-style: none;
    text-align: left;
  }

  .mobile-menu-links li {
    margin-bottom: 28px;
  }

  .mobile-menu-links a {
    font-family: var(--font-bold);
    font-weight: 700;
    font-size: 22px;
    color: var(--ink);
  }

  .mobile-menu-cta {
    display: inline-flex !important;
    margin-top: 12px;
  }

  /* ---------- HERO ---------- */
  .hero-flow {
    min-height: 0;
    padding: 40px 0 60px;
  }

  .hero-grid {
    flex-direction: column-reverse;
    align-items: stretch;
    gap: 0;
  }

  .hero-text-col {
    margin-top: 40px;
  }

  /* ---------- IT'S THE THING (problem section) ---------- */
  .thing-flow {
    padding: 60px 0 70px;
  }

  .thing-flow .wrap {
    max-width: 100%;
    padding: 0 24px;
  }

  .thing-grid {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .thing-image-col {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-bottom: 32px;
    transform: none !important;
  }

  #scrollHero,
  #scrollCollage {
    transform: none !important;
  }

  /* ---------- HOW WE HELP ---------- */
  .help-intro {
    padding: 60px 0 20px;
  }

  .help-intro h2 {
    font-size: 28px;
  }

  .help-grid {
    padding: 20px 0 70px;
  }

  .help-grid .grid {
    flex-direction: column;
    gap: 0;
  }

  .help-card {
    flex: 0 0 auto;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    margin-bottom: 20px;
  }

  .help-card:last-child {
    margin-bottom: 0;
  }

  .thing-text-col {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
  }

  .thing-eyebrow {
    font-size: 18px;
    margin-bottom: 12px;
  }

  .thing-headline .tier1 {
    font-size: 26px;
  }

  .thing-headline .tier2 {
    font-size: 38px;
  }

  .thing-body {
    font-size: 17px;
    max-width: 100%;
  }

  .hero-text-col,
  .hero-image-col {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
  }

  .hero-rotator {
    width: 100%;
    max-width: 100%;
  }

  .hero-eyebrow {
    font-size: 18px;
    margin-bottom: 12px;
  }

  .hero-headline-big .tier1 {
    font-size: 26px;
  }

  .hero-headline-big .tier2 {
    font-size: 38px;
  }

  .hero-sub {
    font-size: 17px;
    max-width: 100%;
    margin-bottom: 24px;
  }

  .hero-cta-row {
    flex-wrap: wrap;
  }

  /* ---------- VALUES ACCORDION + CTA PANEL ---------- */
  .values-section {
    padding: 60px 0;
  }

  .values-card {
    padding: 32px 24px;
    text-align: center;
    overflow: hidden;
  }

  .mobile-cta-image {
    display: block;
    margin: -32px -24px 28px;
  }

  .mobile-cta-image img {
    width: 100%;
    height: auto;
    display: block;
  }

  .mobile-cta-intro {
    display: block;
    font-family: var(--font-body);
    font-size: 20px;
    line-height: 1.4;
    color: var(--ink);
    margin-bottom: 28px;
  }

  .mobile-cta-intro em {
    font-style: italic;
    font-weight: 600;
  }

  .values-intro {
    display: none;
  }

  .btn-schedule.mobile-cta-btn {
    display: inline-flex;
    width: 100%;
    justify-content: center;
    margin-top: 24px;
  }

  .cta-panel {
    display: none;
  }

  .values-intro {
    font-size: 20px;
    max-width: 100%;
    margin-bottom: 28px;
  }

  .value-item-head {
    text-align: left;
  }

  .value-item p {
    text-align: left;
    max-width: 100%;
  }

  .cta-panel {
    position: static;
    width: 100%;
    margin-top: 32px;
  }


  /* ---------- COACH PAGE (Joe Boyd) ---------- */
  .coach-hero-flow {
    padding: 40px 0 60px;
  }

  .coach-hero-grid {
    flex-direction: column-reverse;
    align-items: stretch;
    gap: 0;
  }

  .coach-hero-text,
  .coach-hero-image {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
  }

  .coach-hero-image img {
    width: 100%;
    max-width: 100%;
  }

  .coach-hero-text {
    margin-top: 32px;
  }

  .coach-badge {
    font-size: 26px;
  }

  .coach-hero-headline {
    font-size: 19px;
    max-width: 100%;
    margin-bottom: 24px;
  }

  .coach-intro {
    padding: 50px 0 40px;
  }

  .coach-intro-headline {
    font-size: 22px;
    max-width: 100%;
  }

  .coach-intro-body {
    font-size: 16px;
    max-width: 100%;
  }

  .coach-help-grid {
    padding: 10px 0 70px;
  }

  .coach-quote-card {
    text-align: left;
  }

  .coach-quote-headline {
    font-size: 22px;
  }

  .coach-quote-body {
    font-size: 15px;
  }

  .coach-pull-quote {
    font-size: 18px;
  }

  /* ---------- FOOTER ---------- */
  .footer-top {
    display: block;
    margin-bottom: 40px;
  }

  .footer-top > div:first-child {
    margin-bottom: 32px;
  }

  .footer-links-group {
    display: flex;
    flex-wrap: wrap;
  }

  .footer-links-group > .footer-col {
    flex: 0 0 48%;
    max-width: 48%;
    box-sizing: border-box;
  }

  .footer-col-stack {
    display: flex;
    flex-direction: column;
    flex: 0 0 48%;
    max-width: 48%;
    box-sizing: border-box;
  }

  .footer-col-stack .footer-col {
    width: 100%;
    margin-bottom: 28px;
  }

  .footer-col-stack .footer-col:last-child {
    margin-bottom: 0;
  }

  .footer-about {
    max-width: 100%;
  }

  .footer-tagline {
    white-space: normal;
    font-size: 16px;
  }

  .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
  }

  .footer-bottom > div {
    margin-top: 12px;
  }

  /* ---------- START A CONVERSATION (contact page) ---------- */
  .contact-hero {
    padding: 24px 0 48px;
  }

  .contact-hero-grid {
    flex-direction: column-reverse;
    align-items: stretch;
  }

  .contact-hero-text {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    margin-right: 0;
    margin-top: 32px;
  }

  .contact-hero-image {
    flex: 0 0 auto;
    width: 100%;
  }

  .contact-hero-image img {
    width: 100%;
    max-width: 100%;
  }

  .contact-hero-headline {
    font-size: 48px;
  }

  .statement-band {
    padding: 54px 0;
  }

  .statement-headline .tier1 {
    font-size: 22px;
  }

  .statement-headline .tier2 {
    font-size: 28px;
  }

  .statement-headline .circle::after {
    left: -6px;
    right: -6px;
  }

  .contact-form-section {
    padding: 52px 0 72px;
  }

  .contact-form-intro {
    margin-bottom: 28px;
    padding: 0;
  }

  .check {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    padding-right: 0;
  }

  .contact-form-card {
    padding: 32px 24px 30px;
    border-radius: 12px;
  }

  .contact-form-headline {
    font-size: 27px;
    margin-bottom: 26px;
  }

  .form-row {
    flex-direction: column;
  }

  .field {
    flex: 0 0 auto;
    width: 100%;
  }

  .form-row .field + .field {
    margin-left: 0;
  }

  .form-submit {
    width: 100%;
    justify-content: center;
  }

  /* ---------- OFFERING PAGES: shared mobile layout ---------- */
  .offering-hero-flow {
    padding: 24px 0 48px;
  }

  .offering-hero-grid {
    flex-direction: column-reverse;
    align-items: stretch;
    gap: 0;
  }

  .offering-hero-text {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    margin-top: 32px;
  }

  .offering-hero-image {
    flex: 0 0 auto;
    width: 100%;
  }

  .offering-hero-headline {
    font-size: 34px;
  }

  .offering-section-headline {
    font-size: 26px;
    margin-bottom: 28px;
  }

  .offering-emphasis-line {
    font-size: 19px;
  }

  .offering-seeit {
    padding: 50px 0 60px;
  }

  .offering-seeit .wrap {
    max-width: 100%;
    padding: 0 24px;
  }

  .seeit-inner {
    flex-direction: column;
    align-items: stretch;
    padding: 32px 24px;
    min-height: 0;
  }

  .seeit-text {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    margin-right: 0;
    margin-bottom: 28px;
  }

  .seeit-text .offering-section-headline {
    font-size: 26px;
  }

  .seeit-body {
    font-size: 15px;
    max-width: 100%;
  }

  .seeit-visual {
    flex: 0 0 auto;
    width: 100%;
  }

  .seeit-placeholder {
    min-height: 220px;
  }

  /* ---------- LEADERSHIP 360 / OFFERING PAGE ---------- */
  .offering-hero-headline--display {
    font-size: 40px;
  }

  /* Headlines that force their own line breaks need to be sized so each
     line actually fits, otherwise the forced break just adds a wrap. */
  .offering-hero-headline--stack {
    font-size: 31px;
  }

  /* Placeholder label shouldn't orphan its closing bracket on narrow screens. */
  .hero-image-placeholder {
    padding: 0 20px;
    font-size: 11px;
    text-align: center;
  }

  .offering-hero-image--collage img {
    max-height: none;
    height: auto;
    width: 100%;
    max-width: 100%;
    margin-left: 0;
  }

  .offering-outcomes {
    padding: 8px 0 56px;
  }

  .outcomes-grid-2 .help-card {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    padding: 28px;
    margin-bottom: 20px;
  }

  .outcomes-grid-2 .help-card:nth-child(odd) {
    margin-right: 0;
  }

  .outcomes-grid-2 .help-card-title {
    font-size: 20px;
  }

  .outcomes-grid-2 .help-card-hook {
    font-size: 17px;
  }

  .offering-testimonial {
    padding: 60px 0 64px;
  }

  .offering-testimonial-label {
    margin-bottom: 26px;
  }

  .offering-testimonial-quote {
    font-size: 22px;
    margin-bottom: 26px;
  }

  .offering-cta-buttons {
    flex-direction: column;
    align-items: stretch;
  }

  .offering-cta-buttons .btn-book,
  .offering-cta-buttons .btn-outline {
    justify-content: center;
    margin-bottom: 14px;
  }

  .offering-process {
    padding: 56px 0 64px;
  }

  /* Vertical progression on narrow screens */
  .process-flow {
    flex-direction: column;
  }

  .process-flow-step::after {
    left: 12px;
    right: auto;
    top: 12px;
    bottom: -30px;
    width: 2px;
    height: auto;
  }

  .process-flow-step {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    padding-right: 0;
    padding-left: 44px;
    margin-bottom: 30px;
  }

  .process-flow-number {
    background: none;
    padding-right: 0;
    margin-bottom: 8px;
    font-size: 22px;
  }

  .process-flow-label {
    margin-top: 0;
    margin-bottom: 10px;
  }

  .process-flow-step::before {
    content: '';
    position: absolute;
    left: 6px;
    top: 5px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--burnt-orange);
  }

  .coach-meta {
    margin-top: 32px;
    padding-top: 26px;
  }

  .coach-meta-item {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    padding-right: 0;
    margin-bottom: 20px;
  }

  /* ---------- ABOUT PAGE ---------- */
  .hero-image-placeholder { height: 320px; border-radius: 14px; }

  .grid--lg .help-card { padding: 28px; }

  .help-grid.beliefs { padding-bottom: 30px; }

  .team-section { padding: 30px 0 44px; }

  .team-member {
    flex: 0 0 calc(50% - 14px);
    max-width: calc(50% - 14px);
    margin: 0 7px 26px;
  }

  .team-photo { border-radius: 10px; }

  .definition-band { padding: 52px 0 0; }

  .matched-section { padding: 44px 0 56px; }

  .matched-cards { flex-direction: column; }

  .matched-cards .values-card {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    padding: 32px 24px;
  }

  .matched-cards .values-card:first-child {
    margin-right: 0;
    margin-bottom: 20px;
  }

  /* The homepage hides .values-intro on mobile and swaps in .mobile-cta-intro,
     and centres its card. Neither applies to these two cards. */
  .matched-cards .values-card { text-align: left; }

  .matched-cards .values-intro {
    display: block;
    font-size: 20px;
    margin-bottom: 22px;
  }

  /* ---------- CURRICULUM GRID ---------- */
  .curriculum { padding: 56px 0 60px; }

  .skill-card {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    margin-right: 0;
    margin-bottom: 14px;
  }

  .skill-card:nth-child(3n) { margin-right: 0; }

  .skill-head { padding: 18px 20px; }

  .skill-name { font-size: 16px; }

  .skill-body p { padding: 0 20px 18px 46px; }

  /* ---------- WORKSHOPS + SPEAKING ---------- */
  .process-flow--3 .process-flow-step {
    flex: 0 0 auto;
    max-width: 100%;
  }

  .topics { padding: 56px 0 60px; }

  .topic-grid .help-card {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    padding: 26px 24px;
    margin-right: 0;
    margin-bottom: 18px;
  }

  .topic-grid .help-card:nth-child(odd) { margin-right: 0; }

  /* ---------- INTENSIVES ---------- */
  .territories { padding: 56px 0 60px; }

  .skill-grid--2 .skill-card,
  .skill-grid--2 .skill-card:nth-child(3n) {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    margin-right: 0;
  }

  .skill-lead { padding-left: 0; font-size: 14px; }

  /* ---------- CONSULTING ---------- */
  .outcomes-headline { margin-bottom: 26px; }

  .help-intro-body { font-size: 16px; }

  .skill-grid--4 .skill-card,
  .skill-grid--4 .skill-card:nth-child(3n) {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    margin-right: 0;
  }

  /* ---------- WHAT WE THINK ---------- */
  .library-hero { padding: 24px 0 24px; }
  .library-headline { font-size: 34px; }
  .library-sub { font-size: 17px; }

  .library { padding-bottom: 60px; }

  .lib-filter { padding: 8px 15px; font-size: 11px; margin-right: 8px; }

  .lib-card,
  .lib-card:nth-child(2n),
  .lib-grid--3 .lib-card,
  .lib-grid--3 .lib-card:nth-child(2n),
  .lib-grid--3 .lib-card:nth-child(3n) {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    margin-right: 0;
    margin-bottom: 18px;
  }

  .lib-body,
  .lib-grid--3 .lib-body { padding: 22px; }

  .lib-title,
  .lib-grid--3 .lib-title { font-size: 19px; }

  /* ---------- ARTICLE ---------- */
  .article-head { padding: 24px 0 24px; }
  .article-title { font-size: 30px; }
  .article-deck { font-size: 18px; margin-bottom: 24px; }

  .article-byline { display: block; }
  .article-stamp { margin-top: 12px; }

  .article-body p,
  .article-body li { font-size: 17px; line-height: 1.7; }

  .article-body h2 { font-size: 23px; margin: 34px 0 14px; }
  .article-body h3 { font-size: 19px; }

  .article-pullquote {
    font-size: 22px;
    padding-left: 20px;
    margin: 32px 0;
  }

  .article-signoff {
  border-top: 1px solid rgba(65,63,57,0.16);
  padding-top: 34px;
  margin-top: 44px;
}

.article-callout { padding: 22px 20px; margin: 30px 0; }

  /* The wide figure returns to the reading measure on small screens. */
  .article-figure--wide { width: 100%; max-width: 100%; margin-left: 0; }

  .related { padding: 50px 0 60px; }

  /* ---------- NAV DROPDOWN ---------- */
  .nav-menu { display: none; }
  .nav-caret { display: none; }

  .mobile-submenu { margin-top: -6px; }

  .mobile-submenu ul {
    list-style: none;
    border-left: 2px solid rgba(211,103,49,0.35);
    padding-left: 18px;
    margin-left: 2px;
  }

  .mobile-submenu li { margin-bottom: 0; }

  .mobile-submenu a {
    display: block;
    padding: 9px 0;
    font-family: var(--font-body);
    font-size: 18px;
    color: var(--warm-gray);
  }

  .mobile-submenu a:hover { color: var(--ink); }

  /* ---------- SEVEN ESSENTIALS ---------- */
  .essentials { padding: 8px 0 56px; }

  /* The diagram takes the full width; cards open beneath it rather than
     beside it, since there is no room either side. */
  .house-stage { margin-top: 30px; }

  .house-figure { width: 100%; }

  .house-spot {
    width: 34px;
    height: 34px;
    margin: -17px 0 0 -17px;
  }

  .house-spot::before { left: 8px; right: 8px; }
  .house-spot::after { top: 8px; bottom: 8px; }

  /* relative, not static: the close button is absolutely positioned and
     would otherwise escape to the stage's top-right corner. */
  .house-card,
  .house-card--left,
  .house-card--right {
    position: relative;
    left: auto;
    right: auto;
    top: auto !important;
    width: 100%;
    transform: none;
    margin-top: 22px;
  }

  .house-hint { margin-top: 24px; font-size: 14px; }

  /* ---------- ACTIVECAMPAIGN FORM 52 ---------- */
  #_form_52_ .ac-row { display: block; }
  #_form_52_ .ac-row > ._form_element + ._form_element { margin-left: 0; }

  #_form_52_ .ac-grid ._row._checkbox-radio {
    flex: 0 0 100%;
    max-width: 100%;
    padding-right: 0;
  }

  #_form_52_ ._submit { width: 100%; justify-content: center; }

  /* ---------- THANK YOU ---------- */
  .thanks { padding: 60px 0 72px; }
  .thanks h1 { font-size: 30px; }
  .thanks p { font-size: 17px; }

  /* Card links stack on small screens with real vertical separation. */
  .help-card-links { flex-direction: column; }

  .help-card-links .help-card-link {
    margin-right: 0;
    margin-bottom: 12px;
  }

  .help-card-links .help-card-link:last-child { margin-bottom: 0; }

  /* ---------- SEVEN ESSENTIALS ASSESSMENT V2 ---------- */
  .asmt-definition { padding: 16px 18px; font-size: 16px; }
  .asmt-body { font-size: 16px; }
  .asmt-disclosure { font-size: 15px; }
  .asmt-overall span { font-size: 26px; }
  .asmt-section-label { margin: 32px 0 14px; }

  .asmt-callouts .asmt-result,
  .asmt-callouts .asmt-result:nth-child(2n) {
    flex: 0 0 100%;
    max-width: 100%;
    margin-right: 0;
  }

  .asmt-reflect { padding: 24px 20px; }

  .asmt-h2 { font-size: 20px; }
  .asmt-confirm dt { flex-basis: 100%; padding-top: 0; margin-bottom: 2px; }
  .asmt-inline { flex-wrap: wrap; }
  .asmt-inline .btn-outline { margin: 10px 0 0; }

  /* ---------- SAMPLE REPORT ---------- */
  .sr-cta { flex-direction: column; align-items: flex-start; }
  .sr-cta .btn-book { margin: 0 0 16px; }
  .sr-cover { width: 66%; margin-top: 36px; }
  .sr-panel { width: 100vw; height: 100vh; height: 100dvh; border-radius: 0; }
  .sr-head { padding: 8px 6px 8px 16px; }
  .sr-link { margin-left: 12px; font-size: 10px; }
  /* ---------- HOMEPAGE V1 TESTIMONIALS ---------- */
  .home-testimonials { margin-top: 38px; }
  .home-testimonial-slide .offering-testimonial-quote { font-size: 21px; line-height: 1.5; }
  .book-proof-quote { font-size: 16px; }

  /* ---------- COACH FINDER ---------- */
  .finder-bar { flex-wrap: wrap; padding: 6px; }

  .finder-bar input { flex: 0 0 100%; padding: 12px 12px; }

  .finder-add { width: 100%; margin-top: 6px; }

  .coach-card {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    margin-right: 0;
    margin-bottom: 20px;
  }

  .coach-deck { padding-bottom: 60px; }

  .finder-empty { padding: 32px 22px; margin-bottom: 60px; }
  .finder-empty h3 { font-size: 20px; }

  .search-context { padding: 20px 22px; margin-top: 20px; }
  .search-context h2 { font-size: 18px; }

  .record-field {
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    margin-right: 0;
  }

}

/* ============================================================
   SEVEN ESSENTIALS — RESULTS + DASHBOARDS
   Shared by the participant's results (assessment.js) and the
   signed-in dashboards (seven-essentials-dashboard.html), both
   rendered by seven-essentials-results.js. Essential colors are
   set inline from that file so they live in one place.
   ============================================================ */

.asmt-results.se-results { max-width: 1040px; }

.se-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 16px 24px;
  margin-bottom: 28px;
}
.se-heading > div:first-child { flex: 1 1 420px; min-width: 0; }
.se-heading-side {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
}

.se-eyebrow {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--rust);
  margin-bottom: 10px;
}

.se-title {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 38px;
  line-height: 1.12;
  color: var(--ink);
  margin-bottom: 10px;
}
.se-title[tabindex]:focus { outline: none; }

.se-muted {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.55;
  color: var(--body-gray);
}

.se-h2 {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 20px;
  line-height: 1.3;
  color: var(--ink);
  margin-bottom: 6px;
}

.se-badge,
.dash-chip {
  display: inline-block;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 12px;
  color: var(--ink);
  background: var(--cream);
  border-radius: 20px;
  padding: 6px 12px;
  white-space: nowrap;
}
.dash-chip { font-size: 11px; padding: 3px 9px; vertical-align: 2px; letter-spacing: 0.04em; }

/* "How to View These Results": unobtrusive, always reachable. */
.se-howto-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: none;
  border: 0;
  padding: 6px 0;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 13px;
  color: var(--rust);
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.se-howto-btn:hover { color: var(--deep-red); }
.se-howto-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid currentColor;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 12px;
  line-height: 1;
  text-decoration: none;
}

/* ---- headline score cards ---- */
.se-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 0 0 26px;
}

.se-metric {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: var(--white);
  border: 1px solid #E3DFD7;
  border-top: 5px solid var(--se-accent, var(--navy));
  border-radius: 9px;
  padding: 22px 64px 22px 22px;
}

.se-flame {
  position: absolute;
  right: 19px;
  top: 20px;
  width: 27px;
  height: 33px;
}

.se-metric-purpose {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--body-gray);
  min-height: 34px;
}

.se-metric-title {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 19px;
  line-height: 1.3;
  color: var(--ink);
  margin: 8px 0 12px;
  min-height: 50px;
  overflow-wrap: anywhere;
}

.se-metric-number {
  font-family: var(--font-bold);
  font-weight: 400;
  font-size: 40px;
  line-height: 1.15;
  letter-spacing: -1px;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.se-metric-number small { font-size: 15px; letter-spacing: 0; color: var(--body-gray); }
.se-metric-number--none { font-size: 18px; letter-spacing: 0; color: var(--body-gray); }

.se-metric-band {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 14px;
  color: var(--ink);
  margin: 8px 0 18px;
}

.se-metric-context {
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--body-gray);
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid #E3DFD7;
}

/* ---- panels and charts ---- */
.se-panel {
  background: var(--white);
  border: 1px solid #E3DFD7;
  border-radius: 10px;
  padding: 26px;
}

.se-chart { margin-top: 14px; }

.se-bars { list-style: none; margin: 0; padding: 0; }

.se-bar-row,
.se-axis {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr) 104px;
  align-items: center;
  gap: 14px;
}
.se-bar-row { margin: 16px 0; }

.se-row-label {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 14px;
  line-height: 1.3;
  color: var(--ink);
  text-align: left;
  overflow-wrap: anywhere;
}
button.se-row-label {
  background: none;
  border: 0;
  padding: 4px 0;
  min-height: 32px;
  cursor: pointer;
  text-decoration: underline;
  text-decoration-color: rgba(65,63,57,0.3);
  text-underline-offset: 3px;
}
button.se-row-label:hover { color: var(--rust); text-decoration-color: currentColor; }
.se-bar-row.is-current .se-row-label { color: var(--rust); }

.se-track {
  position: relative;
  display: block;
  height: 16px;
  background: #E7E9ED;
  border-radius: 3px;
}
.se-fill {
  display: block;
  height: 100%;
  border-radius: 3px;
  /* A thin inner edge keeps the lightest Essential colors distinct from the track. */
  box-shadow: inset 0 0 0 1px rgba(25,34,53,0.18);
  transition: width 0.25s ease;
}
.se-avg {
  position: absolute;
  top: -5px;
  bottom: -5px;
  width: 3px;
  margin-left: -1px;
  background: #B79B66;
  box-shadow: 0 0 0 1px var(--white);
}

.se-value {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.15;
  color: var(--ink);
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.se-value small {
  display: block;
  margin-top: 3px;
  font-size: 10px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--body-gray);
}
.se-value--none { color: var(--body-gray); }

.se-axis {
  font-family: var(--font-bold);
  font-size: 12px;
  color: var(--body-gray);
}
.se-ticks { display: flex; justify-content: space-between; }

.se-scale-note {
  margin: 6px 118px 0 164px;
  font-family: var(--font-bold);
  font-size: 11px;
  color: var(--body-gray);
  text-align: center;
}

.se-legend {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 18px;
  font-family: var(--font-bold);
  font-size: 12px;
  color: var(--body-gray);
}
.se-legend-mark { display: inline-block; width: 3px; height: 17px; background: #B79B66; }

.se-insight {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid #E3DFD7;
}
.se-insight p {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink);
}

.se-footer {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 24px;
  margin: 18px 0 8px;
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.5;
  color: var(--body-gray);
}

.se-key-dot {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 3px;
  margin-right: 9px;
  vertical-align: 1px;
}

.se-results .asmt-section-label { margin-top: 44px; }

/* ---- dashboard controls ---- */
.se-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
}
.se-tabs button,
.dash-roster button {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 13px;
  color: var(--ink);
  background: var(--white);
  border: 1px solid #DDD6C6;
  border-radius: 6px;
  padding: 10px 15px;
  min-height: 42px;
  cursor: pointer;
}
.se-tabs button[aria-pressed="true"],
.dash-roster button[aria-pressed="true"] {
  background: var(--navy);
  border-color: var(--navy);
  color: var(--white);
}
.se-tabs button:hover,
.dash-roster button:hover { border-color: var(--burnt-orange); }

.se-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0 14px;
  margin-bottom: 8px;
}
.se-controls .field { flex: 0 1 280px; margin-bottom: 16px; }
.se-controls .field select { font-size: 15px; padding: 11px 44px 11px 14px; }
.dash-viewall { margin-bottom: 16px; }

.se-chart-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  margin-top: 8px;
}

.dash-roster {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 22px;
}

.dash-open { margin-top: 16px; }
.dash-open a,
.dash-back a {
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 13px;
  color: var(--rust);
}
.dash-open a:hover,
.dash-back a:hover { color: var(--deep-red); }
.dash-back { margin-bottom: 18px; }

/* ---- the guidance dialog ---- */
.se-dialog {
  margin: auto;            /* the global reset removes the UA's centering */
  width: min(620px, calc(100vw - 32px));
  max-height: calc(100vh - 48px);
  overflow: auto;
  border: 1px solid #E3DFD7;
  border-radius: 12px;
  padding: 0;
  color: var(--ink);
  background: var(--cream-light);
}
.se-dialog::backdrop { background: rgba(25,34,53,0.45); }
.se-dialog-inner { padding: 30px; }
.se-dialog h2 {
  font-family: var(--font-bold);
  font-weight: 900;
  font-size: 24px;
  margin-bottom: 12px;
}
.se-dialog p,
.se-dialog li {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
}
.se-dialog ul { margin: 16px 0 18px 20px; }
.se-dialog li { margin-bottom: 8px; }
.se-dialog li strong { font-family: var(--font-bold); }
.se-dialog-close-line {
  font-style: italic;
  border-left: 3px solid var(--burnt-orange);
  padding-left: 14px;
}
.se-dialog-actions { margin-top: 22px; }
.se-dialog .btn-book { border: 0; cursor: pointer; }

/* ---- dashboard page ---- */
.dash {
  max-width: 1240px;
  margin: 0 auto;
  padding: 48px 48px 110px;
  min-height: 60vh;
}

.dash-account {
  display: flex;
  align-items: center;
  gap: 16px;
  font-family: var(--font-bold);
  font-size: 13px;
  color: var(--body-gray);
  min-width: 0;
}
.dash-account-email { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.dash-state,
.dash-signin { max-width: 620px; }
.dash-form { margin-top: 8px; max-width: 460px; }
.dash-form .btn-book { border: 0; cursor: pointer; }
.dash-form .btn-book[disabled] { opacity: 0.6; cursor: default; }
.dash-notice {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.5;
  color: var(--ink);
  background: var(--cream);
  border-left: 3px solid var(--burnt-orange);
  padding: 12px 16px;
  margin: 8px 0 22px;
}

.dash-section { margin-top: 36px; }
.dash-section .se-h2 { margin-bottom: 14px; }
.dash-empty { margin-top: 6px; }
.dash-empty-panel .se-muted { margin-top: 6px; max-width: 560px; }

.dash-cards {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 14px;
}
.dash-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  height: 100%;
  background: var(--white);
  border: 1px solid #E3DFD7;
  border-top: 5px solid var(--navy);
  border-radius: 9px;
  padding: 20px;
  transition: border-color 0.2s ease, transform 0.2s ease;
}
.dash-card:hover { border-color: var(--burnt-orange); transform: translateY(-1px); }
.dash-card-org { font-family: var(--font-bold); font-weight: 900; font-size: 18px; color: var(--ink); }
.dash-card-name { font-family: var(--font-body); font-size: 15px; color: var(--ink); }
.dash-card-meta { font-family: var(--font-bold); font-size: 13px; color: var(--body-gray); margin-top: auto; padding-top: 8px; }

.dash-people { list-style: none; border-top: 1px solid #E3DFD7; margin-top: 14px; }
.dash-people a {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas: "name score" "meta score";
  gap: 2px 16px;
  padding: 14px 4px;
  border-bottom: 1px solid #E3DFD7;
}
.dash-people a:hover .dash-people-name { color: var(--rust); }
.dash-people-name { grid-area: name; font-family: var(--font-bold); font-weight: 700; font-size: 16px; color: var(--ink); }
.dash-people-meta { grid-area: meta; font-family: var(--font-body); font-size: 14px; color: var(--body-gray); }
.dash-people-score { grid-area: score; align-self: center; font-family: var(--font-bold); font-size: 20px; color: var(--ink); font-variant-numeric: tabular-nums; }
.dash-people-score small { font-size: 12px; color: var(--body-gray); }

.dash-detail { margin-top: 22px; }
.dash-detail dl > div { padding: 14px 0; border-bottom: 1px solid #E3DFD7; }
.dash-detail dl > div:last-child { border-bottom: 0; }
.dash-detail dt { font-family: var(--font-bold); font-weight: 900; font-size: 16px; margin-bottom: 4px; }
.dash-detail dd { font-family: var(--font-body); font-size: 15px; line-height: 1.6; color: var(--ink); margin: 0; }
.dash-detail dd strong { font-family: var(--font-bold); }

/* Visible keyboard focus everywhere the results and dashboards add controls. */
.se-howto-btn:focus-visible,
button.se-row-label:focus-visible,
.se-tabs button:focus-visible,
.dash-roster button:focus-visible,
.dash-card:focus-visible,
.dash-people a:focus-visible,
.dash-open a:focus-visible,
.dash-back a:focus-visible,
.dash-account .asmt-link:focus-visible,
.se-dialog .btn-book:focus-visible,
.dash .btn-book:focus-visible,
.dash .btn-outline:focus-visible,
.se-controls select:focus-visible,
.dash-form input:focus-visible {
  outline: 3px solid rgba(211,103,49,0.55);
  outline-offset: 2px;
}

@media (max-width: 760px) {
  .se-metrics { grid-template-columns: 1fr; }
  .se-metric-purpose,
  .se-metric-title { min-height: 0; }
  .se-heading-side { align-items: flex-start; flex-direction: row; flex-wrap: wrap; }
  .dash { padding: 32px 22px 80px; }
  .asmt-results.se-results { padding: 0 22px; }
}

@media (max-width: 600px) {
  .se-title { font-size: 28px; }
  .se-panel { padding: 18px; }
  .se-bar-row,
  .se-axis { grid-template-columns: 92px minmax(0, 1fr) 76px; gap: 8px; }
  .se-row-label { font-size: 13px; }
  .se-value { font-size: 15px; }
  .se-value small { font-size: 9px; }
  .se-scale-note { margin-left: 100px; margin-right: 84px; }
  .se-chart-head { flex-wrap: wrap; }
  .se-controls .field { flex: 1 1 100%; }
  .se-dialog-inner { padding: 22px; }
  .dash-account-email { display: none; }   /* the logo needs the room; Sign out stays */
}

@media (prefers-reduced-motion: reduce) {
  .se-fill,
  .dash-card { transition: none; }
  .dash-card:hover { transform: none; }
}

@media print {
  .se-howto-btn,
  .dash-account,
  .se-tabs,
  .se-controls,
  .dash-roster,
  .dash-open { display: none; }
  .se-metric,
  .se-panel { break-inside: avoid; page-break-inside: avoid; }
}

/* ── Seven Essentials administration (#/admin) and private results page ── */
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.dash-card--admin { border-top-color: var(--burnt-orange); }
.dash-card--admin .dash-card-org { font-size: 16px; }

.se-tabs a {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-bold);
  font-weight: 700;
  font-size: 13px;
  color: var(--ink);
  background: var(--white);
  border: 1px solid #DDD6C6;
  border-radius: 6px;
  padding: 10px 15px;
  min-height: 42px;
}
.se-tabs a[aria-current="page"] { background: var(--navy); border-color: var(--navy); color: var(--white); }
.se-tabs a:hover { border-color: var(--burnt-orange); }
.adm-tabs { flex-wrap: wrap; }

.adm-status:empty { display: none; }
.adm-error { margin-top: 4px; }
.adm-panel { margin-top: 22px; }
.adm-panel .se-muted { margin: 4px 0 16px; max-width: 760px; }
.adm-form .btn-book,
.adm-btn-main { border: 0; cursor: pointer; }
.adm-form .btn-book[disabled],
.adm-btn-main[disabled],
.adm-btn[disabled] { opacity: 0.6; cursor: default; }
.adm-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 0 18px;
}
.adm-grid .field input,
.adm-grid .field select { font-size: 15px; }
.adm-count { font-size: 15px; font-weight: 400; margin-left: 6px; }

.adm-list { list-style: none; margin: 0; padding: 0; }
.adm-list-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 8px 20px; margin-bottom: 8px; }
.adm-card {
  background: var(--white);
  border: 1px solid #E3DFD7;
  border-radius: 9px;
  padding: 20px;
  margin-bottom: 14px;
}
.adm-card-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 10px 20px; }
.adm-card-head > div { flex: 1 1 320px; min-width: 0; }
.adm-card-title { font-family: var(--font-bold); font-weight: 900; font-size: 18px; color: var(--ink); margin: 0; }
.adm-card-sub { font-weight: 400; font-family: var(--font-body); font-size: 15px; margin-left: 6px; }
.adm-meta { font-family: var(--font-body); font-size: 14px; line-height: 1.5; margin: 4px 0 0; overflow-wrap: anywhere; }
.adm-err { color: var(--deep-red); }
.adm-cols {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 18px 24px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid #EDE9E1;
}
.adm-col { min-width: 0; }
.adm-h4 {
  font-family: var(--font-condensed);
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--body-gray);
  margin: 0 0 8px;
}
.adm-mini { list-style: none; margin: 0 0 10px; padding: 0; font-family: var(--font-body); font-size: 15px; }
.adm-mini li { padding: 4px 0; overflow-wrap: anywhere; }
.adm-mini code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 14px; }
.adm-inline { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.adm-inline input,
.adm-inline select {
  flex: 1 1 150px;
  min-width: 0;
  font-family: var(--font-body);
  font-size: 15px;
  padding: 9px 12px;
  border: 1px solid #CFC9BD;
  border-radius: 6px;
  background: var(--white);
  color: var(--ink);
}
.adm-inline label { font-family: var(--font-bold); font-size: 14px; color: var(--ink); }
.adm-btn { padding: 9px 16px; font-size: 13px; cursor: pointer; white-space: nowrap; }
.adm-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px 20px;
  padding: 14px 4px;
  border-bottom: 1px solid #E3DFD7;
}
.adm-row > div:first-child { flex: 1 1 320px; min-width: 0; font-family: var(--font-body); font-size: 15px; overflow-wrap: anywhere; }
.adm-row--wrap { flex-wrap: wrap; }
.adm-row--wrap .adm-inline { flex: 1 1 320px; justify-content: flex-end; }
.adm-actions { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; justify-content: flex-end; flex: 0 1 auto; }
.adm-result { font-family: var(--font-body); font-size: 15px; margin-top: 14px; }
.adm-chip--ok { background: #E6F0E8; color: #2F5D3A; border-color: #C7DCCB; }
.adm-chip--bad { background: #F7E4E1; color: var(--deep-red); border-color: #EBC5BF; }
.adm-chip--wait { background: var(--cream); color: var(--ink); }

.adm-body[aria-busy="true"] { opacity: 0.7; }

.se-tabs a:focus-visible,
.adm-inline input:focus-visible,
.adm-inline select:focus-visible,
.adm-btn:focus-visible,
.adm-card a:focus-visible,
.dash-card--admin:focus-visible,
.se-mine .btn-outline:focus-visible,
.se-mine .btn-book:focus-visible {
  outline: 3px solid rgba(211,103,49,0.55);
  outline-offset: 2px;
}

.se-mine .asmt-after,
.se-mine .asmt-tools { max-width: 760px; }
.se-mine .asmt-tools .btn-outline { cursor: pointer; }

@media (max-width: 600px) {
  .adm-card { padding: 16px; }
  .adm-row { flex-direction: column; }
  .adm-row--wrap .adm-inline,
  .adm-actions { justify-content: flex-start; width: 100%; }
  .adm-row > div:first-child { flex-basis: auto; width: 100%; }
}

@media print {
  .se-mine .asmt-tools,
  .se-mine .asmt-after .offering-cta-buttons { display: none; }
}


/* Launch readiness: offering-card interaction.
   Each homepage card has one semantic destination; this overlay makes the
   full visual card clickable while preserving its visible link for keyboard
   users and assistive technology. */
.help-grid .help-card:not(.help-card--static) {
  position: relative;
}

.help-grid .help-card:not(.help-card--static) .help-card-link::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}

.help-grid .help-card:not(.help-card--static):focus-within {
  outline: 3px solid #d8932e;
  outline-offset: 4px;
}

.help-grid .help-card:not(.help-card--static) .help-card-link:focus {
  outline: none;
}


/* Coach directory: secondary path for coaches interested in the collective. */
.coach-collective-invite {
  padding: 72px 0;
  background: #f4f0e9;
}

.coach-collective-invite__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 48px;
  align-items: center;
  padding: 48px;
  border: 1px solid rgba(25, 34, 53, 0.16);
  background: #fff;
}

.coach-collective-invite__inner h2 {
  margin: 8px 0 14px;
  color: #192235;
  font-family: var(--font-bold);
  font-size: clamp(2rem, 4vw, 3.4rem);
  font-weight: 900;
  line-height: 1.05;
  text-transform: none;
}

.coach-collective-invite__inner p:not(.help-label) {
  max-width: 680px;
  margin: 0;
  color: #424854;
  font-size: 1.05rem;
  line-height: 1.65;
}

@media (max-width: 760px) {
  .coach-collective-invite {
    padding: 48px 0;
  }

  .coach-collective-invite__inner {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 32px 24px;
  }

  .coach-collective-invite__inner .btn-book {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
}


/* About page: private lead-team email actions. */
.team-email {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #992222;
  font: 800 0.82rem/1.2 "Lato", sans-serif;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
}

.team-email span {
  transition: transform 180ms ease;
}

.team-email:hover span,
.team-email:focus-visible span {
  transform: translateX(4px);
}

.team-email:focus-visible {
  outline: 2px solid #d8932e;
  outline-offset: 5px;
}

.ci-field label span {
  color: #70747d;
  font-size: 0.85em;
  font-weight: 400;
}
