/* Coaching shares the reading shell; these rules stay local to the page. */
.coaching-page main a:not(.coaching-booking, .coaching-rail-booking, .dialogue-nameplate) { text-decoration-color: var(--gold); transition: color 180ms ease-out; }
.coaching-page main a:not(.coaching-booking, .coaching-rail-booking, .dialogue-nameplate):hover { color: var(--gold); }
.coaching-page { --coaching-action-width: 440px; }
/* A small joiner lets "as" tuck beside either word instead of standing alone in pixel caps. */
.coaching-title-join { color: var(--gold); font: 500 .42em/1 var(--font-body); letter-spacing: 0; vertical-align: .32em; }
.coaching-intro { margin: 24px 0; font-size: 1.0625rem; line-height: 1.85; }
.coaching-booking {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    width: min(100%, var(--coaching-action-width));
    min-height: 72px;
    margin: 8px 0 16px;
    padding: 14px 18px;
    border: 1px solid var(--line-strong);
    color: var(--cream);
    text-decoration: none;
    transition: border-color 180ms ease-out;
}
.coaching-booking:is(:hover, :focus-visible) { border-color: var(--gold); }
.coaching-booking-label { display: inline-flex; align-items: flex-start; gap: 12px; min-width: 0; }
.coaching-booking strong, .coaching-booking small { display: block; }
.coaching-booking strong { color: var(--gold); font-size: 1rem; font-weight: 600; line-height: 1.5; }
.coaching-booking small { margin-top: 2px; color: var(--cream-soft); font-size: var(--font-size-ui); line-height: 1.5; }
.coaching-booking svg { flex: 0 0 auto; width: 20px; height: 20px; fill: none; stroke: currentColor; }
.coaching-booking-icon { margin-top: 2px; color: var(--gold); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.coaching-booking-arrow { stroke-width: 1.6; stroke-linecap: square; transition: color 180ms ease-out, transform 180ms ease-out; }
.coaching-booking:is(:hover, :focus-visible) .coaching-booking-arrow { color: var(--gold); transform: translate(2px, -2px); }
.coaching-note { max-width: var(--coaching-action-width); margin: 0; color: var(--muted); font-size: var(--font-size-ui); line-height: 1.7; text-wrap: pretty; }

/* The shared reading rail carries the sections and a booking shortcut on desktop. */
.coaching-rail-title { margin: 0 0 12px; color: var(--cream); font: 700 1rem/1.4 var(--font-display); }
.coaching-rail a:not(.coaching-rail-booking) {
    display: block;
    min-height: 44px;
    padding: 12px 0;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: var(--font-size-ui);
    line-height: 1.65;
    text-decoration: none;
    transition: color 180ms ease-out;
}
.coaching-rail a:not(.coaching-rail-booking):hover, .coaching-rail a[aria-current] { color: var(--gold); }
.coaching-rail a[aria-current] { text-decoration: underline; }
.coaching-rail-booking {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 44px;
    margin-top: 14px;
    padding: 10px 14px;
    border: 1px solid var(--line-strong);
    color: var(--gold);
    font-size: var(--font-size-ui);
    font-weight: 600;
    text-decoration: none;
    transition: border-color 180ms ease-out;
}
.coaching-rail-booking:is(:hover, :focus-visible) { border-color: var(--gold); }
.coaching-rail-booking svg { flex: 0 0 auto; width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-linecap: square; stroke-width: 1.6; }

.coaching-section { margin-top: 52px; padding-top: 30px; border-top: 1px solid var(--line); }
.coaching-section h2 { margin-bottom: 24px; text-wrap: pretty; }
.coaching-section p { font-size: 1.0625rem; line-height: 1.85; }
.coaching-section p:last-child { margin-bottom: 0; }
.coaching-section h3 { margin: 32px 0 8px; color: var(--cream); font-size: 1.0625rem; font-weight: 600; line-height: 1.5; }
.coaching-section h2 + h3 { margin-top: 0; }
.coaching-emoji { display: inline-block; margin-right: 4px; font-size: 1.15em; vertical-align: -1px; }
.coaching-section h3 + p { margin-bottom: 0; }
.coaching-topics { margin: 0; padding: 0; list-style: none; }
.coaching-topics li { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; margin: 0 0 24px; color: var(--cream-soft); font-size: 1.0625rem; line-height: 1.7; }
.coaching-topics li:last-child { margin-bottom: 0; }
.coaching-topic-mark { display: grid; grid-row: span 2; align-self: start; place-items: center; width: 24px; height: 24px; margin-top: 2px; border: 1px solid var(--line-strong); background: var(--ink); color: var(--cream); font: 700 1rem/1 var(--font-display); }
.coaching-topics strong, .coaching-receipt { grid-column: 2; }
.coaching-topics strong { color: var(--cream); font-weight: 600; }
.coaching-receipt { margin-top: 4px; color: var(--muted); font-size: var(--font-size-ui); line-height: 1.7; }
/* Extends the tap area of these small links without moving the text. */
.coaching-receipt a { padding-block: 8px; color: var(--cream-soft); }

.coaching-close { margin-top: 52px; }
/* Testimonials are dialogue boxes; the shared nameplate names and links each speaker. */
.coaching-quotes { display: grid; gap: 32px; margin: 0 0 28px; padding: 14px 0 0; list-style: none; }
.coaching-quote { position: relative; margin: 0; padding: 30px 24px 24px; border: 1px solid var(--line-strong); background: var(--ink); }
/* Extends each nameplate link's tap area to 44px without enlarging the plate. */
.coaching-quote .dialogue-nameplate::before { position: absolute; inset: -8px 0; content: ""; }
.coaching-quote .dialogue-nameplate:is(:hover, :focus-visible) { border-color: var(--gold); color: var(--gold); }
.coaching-quote .dialogue-nameplate svg { width: 12px; height: 12px; fill: none; stroke: currentColor; stroke-linecap: square; stroke-width: 1.8; }
.coaching-quote blockquote { margin: 0; padding: 0; border: 0; font-size: 1.0625rem; line-height: 1.75; }
.coaching-quote blockquote p { margin: 0; color: var(--cream); text-wrap: pretty; }
.coaching-quote blockquote p + p { margin-top: 16px; }
/* The last line waits for input like a game's dialogue box, pointing down to Book a call. */
.coaching-quotes > li:last-child .coaching-quote { padding-bottom: 34px; }
.coaching-quotes > li:last-child .coaching-quote::after {
    position: absolute;
    right: 18px;
    bottom: 14px;
    width: 12px;
    height: 6px;
    content: "";
    background: var(--gold);
    clip-path: polygon(0 0, 100% 0, 100% 33.33%, 83.33% 33.33%, 83.33% 66.67%, 66.67% 66.67%, 66.67% 100%, 33.33% 100%, 33.33% 66.67%, 16.67% 66.67%, 16.67% 33.33%, 0 33.33%);
}
/* Four one-second loops keep this automatic motion under WCAG's five-second limit. */
.coaching-quotes.is-visible > li:last-child .coaching-quote::after { animation: coaching-continue 1s steps(1, end) 4; }
@keyframes coaching-continue { 50% { transform: translateY(3px); } }
.coaching-not-sure { margin: 0; font-size: 1rem; line-height: 1.8; }

@media (max-width: 760px) {
    /* Phones keep both in-page booking controls; the rail would only repeat them. */
    .coaching-rail { display: none; }
    .coaching-landscape { container-type: inline-size; }
    /* The figures' heads sit 142.7cqw down the scaled art. Their headroom eases from 28px on phones
       to 10px on small tablets, so faces stay in the band. 62% serves browsers without container units. */
    .coaching-landscape img { object-position: center 62%; object-position: center calc(clamp(10px, 69px - 10.6cqw, 28px) - 142.7cqw); }
    .coaching-landscape::after { background: linear-gradient(180deg, rgba(7, 16, 29, .08), rgba(7, 16, 29, .2) 60%, var(--ink)); }
    .coaching-intro, .coaching-section p, .coaching-topics li { font-size: 1rem; }
    .coaching-booking { width: 100%; }
    .coaching-section { margin-top: 36px; padding-top: 26px; }
    .coaching-section h2 { margin-bottom: 20px; font-size: 1.375rem; }
    .coaching-close { margin-top: 36px; }
    .coaching-quote { padding: 28px 20px 20px; }
    .coaching-quotes > li:last-child .coaching-quote { padding-bottom: 32px; }
    .coaching-quote blockquote { font-size: 1rem; }
}
