/*
 * Astra / second direction — the practice field, the play, the fieldbook.
 * Append after astra.css. The opening has its own stylesheet and owner.
 * Product artwork, product decisions, factual copy and runtime IDs are unchanged.
 */

.astra-v2 {
  --a-page-gutter: 4.5vw;
  --a-hairline: rgba(11, 77, 60, .25);
  --a-rule: rgba(11, 77, 60, .48);
}

.astra-v2 .a-section {
  padding: clamp(76px, 8vw, 128px) var(--a-page-gutter);
}

.astra-v2 .a-section-top {
  margin-bottom: 48px;
  padding-top: 18px;
  border-color: var(--a-rule);
  align-items: baseline;
}

.astra-v2 .a-section-top .a-eyebrow { font-size: 11px; }
.astra-v2 .a-section-top .a-small { font-size: 12px; }

.astra-v2 .a-section h2 {
  font-size: clamp(72px, 8vw, 116px);
  line-height: .91;
  letter-spacing: -.015em;
  text-wrap: balance;
}

.astra-v2 .a-iq-heading {
  align-items: end;
  gap: 5%;
  margin-bottom: 50px;
}

.astra-v2 .a-iq-heading h2 { flex: 1 1 60%; }
.astra-v2 .a-iq-heading > div { flex: 0 1 360px; }
.astra-v2 .a-iq-heading p { font-size: 16px; line-height: 1.7; }

.astra-v2 .a-section .a-button,
.astra-v2 .a-section .a-text-link {
  min-height: 48px;
}

.astra-v2 .a-section .a-button {
  padding: 16px 22px;
  font-size: 22px;
}

.astra-v2 .a-section .a-text-link {
  display: inline-flex;
  align-items: center;
  gap: 30px;
  padding-block: 10px;
}

.astra-v2 .a-section .a-text-link span { margin-left: 0; }
.astra-v2 .a-section .a-button:active { transform: translateY(1px); }

/* The decision's stage is owned by the IQ implementation. Keep its geometry. */
.astra-v2 .a-coach-note { border-top: 3px solid var(--green); }
.astra-v2 .a-coach-note h3 { letter-spacing: -.01em; }

/* Corner: a field photograph and a working sheet, not another two-card grid. */
.astra-v2 .a-corner { padding-top: 12px; }
.astra-v2 .a-corner .a-section-top { margin-bottom: 54px; }
.astra-v2 .a-corner-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 8%;
  row-gap: 40px;
  align-items: start;
}

.astra-v2 .a-corner-copy { grid-column: 1; grid-row: 1; min-width: 0; }
.astra-v2 .a-corner-copy h2 { font-size: clamp(66px, 7.3vw, 104px); }
.astra-v2 .a-corner-copy > p {
  max-width: 38ch;
  margin: 27px 0;
  font-size: 16px;
  line-height: 1.7;
}

.astra-v2 .a-corner-copy .a-text-link { display: flex; width: fit-content; }
.astra-v2 .a-corner-copy .a-small {
  max-width: 42ch;
  margin: 20px 0 0;
  font-size: 12px;
  line-height: 1.65;
}

.astra-v2 .a-corner-photo {
  grid-column: 1;
  grid-row: 2;
  width: 100%;
  margin: 0;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: var(--green);
}

.astra-v2 .a-corner-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 48%;
}

.astra-v2 .a-practice {
  grid-column: 2;
  grid-row: 1 / 3;
  align-self: center;
  width: 100%;
  margin-top: 56px;
  border: 1px solid var(--green);
  border-radius: 8px;
  background: var(--cream);
  box-shadow: 10px 10px 0 var(--rd-cream-3);
  overflow: hidden;
}

.astra-v2 .a-practice-top {
  padding: 24px 28px;
  min-height: 74px;
  align-items: center;
}
.astra-v2 .a-practice-top .a-eyebrow { font-size: 10px; }
.astra-v2 .a-practice-top .a-mono { font-size: 9px; }
.astra-v2 .a-practice-tabs { border-bottom: 1px solid var(--green); }
.astra-v2 .a-practice-tabs button {
  min-height: 63px;
  padding: 20px 10px;
  font-size: 13px;
  position: relative;
  background: var(--rd-cream-3);
}
.astra-v2 .a-practice-tabs button + button { border-left: 1px solid var(--a-hairline); }
.astra-v2 .a-practice-tabs button[aria-pressed="true"] {
  background: var(--cream);
  border-bottom-color: var(--gold);
}
.astra-v2 .a-practice-tabs button:focus-visible { outline-offset: -6px; }
.astra-v2 .a-practice-screen {
  min-height: 472px;
  padding: 38px 34px 36px;
}
.astra-v2 .a-practice-screen h3 {
  font-size: clamp(44px, 4.1vw, 62px);
  line-height: .98;
  margin: 22px 0 34px;
}
.astra-v2 .a-practice-screen .a-small { line-height: 1.65; }
.astra-v2 .a-settings { margin-bottom: 28px; }
.astra-v2 .a-settings > div { padding-block: 20px; }
.astra-v2 .a-settings > div:nth-child(even) { padding-left: 12px; }
.astra-v2 .a-settings dt { font-size: 11px; }
.astra-v2 .a-settings dd { font-size: 25px; font-variant-numeric: tabular-nums; }
.astra-v2 .a-timer {
  font-size: clamp(68px, 6vw, 88px);
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
  margin: 38px 0;
}
.astra-v2 .a-blocks li { font-size: 13px; padding-block: 18px; gap: 16px; }
.astra-v2 .a-blocks span { font-size: 11px; white-space: nowrap; }

/* Actions follow the complete practice spread in both DOM and visual order. */
.astra-v2 .a-corner-actions {
  grid-column: 1 / -1;
  grid-row: 3;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 8%;
  row-gap: 12px;
  align-items: start;
}
.astra-v2 .a-corner-actions > .a-button {
  grid-column: 1;
  grid-row: 1;
  width: fit-content;
  min-width: min(100%, 300px);
}
.astra-v2 .a-corner-actions > .a-text-link {
  grid-column: 1;
  grid-row: 2;
  width: fit-content;
  margin-top: 0;
}
.astra-v2 .a-corner-actions > .a-small {
  grid-column: 2;
  grid-row: 1 / 3;
  align-self: center;
  max-width: 42ch;
  margin: 0;
  font-size: 12px;
  line-height: 1.65;
}

/* Swing: atmosphere on one plane, readable product claims on another.
 * Never place markers, paths, tracking brackets or invented readings on the photo.
 */
.astra-v2 .a-swing { padding-top: 12px; }
.astra-v2 .a-swing-layout {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 0;
  align-items: center;
  padding-bottom: 28px;
}
.astra-v2 .a-swing-visual {
  grid-column: 1 / 10;
  grid-row: 1;
  width: 100%;
  aspect-ratio: 1.45;
  min-height: 500px;
  order: 0;
  background: var(--green);
}
.astra-v2 .a-swing-visual > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 35% center;
}
.astra-v2 .a-swing-copy {
  grid-column: 8 / -1;
  grid-row: 1;
  position: relative;
  z-index: 1;
  margin-top: 90px;
  padding: 42px 0 36px 42px;
  background: var(--cream);
}
.astra-v2 .a-swing-copy h2 { font-size: clamp(64px, 6.7vw, 96px); }
.astra-v2 .a-swing-copy > p {
  margin: 27px 0;
  font-size: 16px;
  line-height: 1.7;
}
.astra-v2 .a-swing-copy .a-swing-promise {
  font-size: clamp(32px, 3.2vw, 44px);
  line-height: 1.05;
  margin-block: 28px;
  padding-block: 20px;
  border-color: var(--a-rule);
}
.astra-v2 .a-swing-copy .a-small { font-size: 12px; margin-bottom: 0; }
.astra-v2 .a-concept {
  left: 20px;
  bottom: 20px;
  max-width: calc(100% - 40px);
  padding: 9px 11px;
  color: var(--cream);
  background: var(--green);
  font-size: 10px;
  line-height: 1.5;
}

/* A human voice closes the product tour. No decorative fake testimonial. */
.astra-v2 .a-founder {
  margin-inline: var(--a-page-gutter);
  padding: 54px 0 72px;
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  column-gap: 9%;
  align-items: start;
  border-color: var(--a-rule);
}
.astra-v2 .a-founder > .a-eyebrow { grid-column: 1 / -1; margin-bottom: 36px; }
.astra-v2 .a-founder h2 { font-size: clamp(76px, 8vw, 116px); line-height: .91; }
.astra-v2 .a-founder > div { padding-top: 8px; }
.astra-v2 .a-founder > div p { max-width: 34ch; font-size: 20px; line-height: 1.6; }
.astra-v2 .a-founder > div p + p { font-size: 16px; margin-top: 22px; }
.astra-v2 .a-founder > div .a-mono { margin-top: 30px; font-size: 10px; }

/* Pricing becomes a legible list. Preserve every reviewed commerce statement. */
.astra-v2 .postgame { padding: 90px 0 70px; }
.astra-v2 .postgame > .container {
  width: auto;
  max-width: none;
  margin-inline: var(--a-page-gutter);
  padding-inline: 0;
}
.astra-v2 .pricing-h {
  font-size: clamp(56px, 6vw, 84px);
  line-height: .98;
  margin: 0 0 36px;
}
.astra-v2 .price-row { display: block; border-top: 1px solid var(--green); }
.astra-v2 .price-cell,
.astra-v2 .price-cell + .price-cell {
  display: grid;
  grid-template-columns: minmax(150px, .9fr) minmax(220px, 1.1fr) minmax(0, 1.4fr);
  align-items: center;
  column-gap: 4%;
  row-gap: 12px;
  padding: 27px 0;
  border: 0;
  border-bottom: 1px solid var(--a-rule);
}
.astra-v2 .price-name {
  grid-column: 1;
  grid-row: 1;
  font-size: 28px;
  line-height: 1.1;
}
.astra-v2 .price-amt {
  grid-column: 2;
  grid-row: 1;
  font-size: clamp(26px, 2.6vw, 38px);
}
.astra-v2 .price-note {
  grid-column: 3;
  grid-row: 1;
  font-size: 14px;
  max-width: 39ch;
  line-height: 1.6;
}
.astra-v2 .price-star .price-run { box-shadow: none; }
.astra-v2 .price-star .price-name { border-left: 3px solid var(--gold); padding-left: 15px; }
.astra-v2 .price-coach { margin-top: 28px; }
.astra-v2 .price-line { max-width: 75ch; }
.astra-v2 .price-detail-link { width: fit-content; }
.astra-v2 .lineup-fold > summary,
.astra-v2 .faq-fold > summary { min-height: 70px; }

/* Short, tactile state changes; the page never takes control of scroll. */
@media (prefers-reduced-motion: no-preference) {
  .astra-v2 .a-practice-tabs button {
    transition: background-color .22s, border-bottom-color .22s;
  }
  .astra-v2 .a-section .a-button span {
    transition: transform .24s cubic-bezier(.2,.7,.2,1);
  }
  .astra-v2 .a-section .a-button:hover span,
  .astra-v2 .a-section .a-button:focus-visible span { transform: translate(3px, -3px); }
}

@media (min-width: 1700px) {
  .astra-v2 { --a-page-gutter: max(5vw, calc((100vw - 1560px) / 2)); }
}

@media (max-width: 1100px) and (min-width: 761px) {
  .astra-v2 .a-section h2 { font-size: 76px; }
  .astra-v2 .a-corner-layout { column-gap: 5%; row-gap: 30px; }
  .astra-v2 .a-corner-copy h2 { font-size: 66px; }
  .astra-v2 .a-practice { margin-top: 44px; }
  .astra-v2 .a-practice-top { padding: 20px; }
  .astra-v2 .a-practice-top .a-mono { display: none; }
  .astra-v2 .a-practice-screen { padding: 28px 24px; min-height: 440px; }
  .astra-v2 .a-settings dd { font-size: 22px; }
  .astra-v2 .a-swing-copy { padding: 30px 0 24px 30px; grid-column: 7 / -1; }
  .astra-v2 .a-swing-copy h2 { font-size: 64px; }
  .astra-v2 .a-swing-visual { grid-column: 1 / 9; min-height: 550px; }
  .astra-v2 .a-swing-visual > img { object-position: 30% center; }
  .astra-v2 .a-founder h2 { font-size: 76px; }
  .astra-v2 .price-cell,
  .astra-v2 .price-cell + .price-cell { grid-template-columns: .8fr 1.25fr 1.25fr; gap: 3%; }
  .astra-v2 .price-amt { font-size: 27px; }
}

@media (max-width: 760px) {
  .astra-v2 { --a-page-gutter: 5vw; }
  .astra-v2 .a-section { padding: 66px var(--a-page-gutter); }
  .astra-v2 .a-section-top { margin-bottom: 32px; gap: 16px; padding-top: 16px; }
  .astra-v2 .a-section-top .a-eyebrow { font-size: 10px; }
  .astra-v2 .a-section-top .a-small { font-size: 10px; max-width: 16ch; line-height: 1.5; }
  .astra-v2 .a-section h2 { font-size: clamp(54px, 16.5vw, 90px); line-height: .94; }
  .astra-v2 .a-iq-heading { display: block; margin-bottom: 28px; }
  .astra-v2 .a-iq-heading > div { padding-top: 22px; max-width: 40ch; }
  .astra-v2 .a-iq-heading p { font-size: 15px; line-height: 1.65; }
  .astra-v2 .a-iq-heading .a-text-link { margin-top: 8px; }
  .astra-v2 .a-section .a-button { width: 100%; font-size: 22px; }
  .astra-v2 .a-section .a-text-link { font-size: 13px; }

  .astra-v2 .a-corner { padding-top: 12px; }
  .astra-v2 .a-corner .a-section-top { margin-bottom: 24px; }
  .astra-v2 .a-corner-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
    gap: 0;
  }
  .astra-v2 .a-corner-copy { display: contents; }
  .astra-v2 .a-corner-copy h2 {
    grid-column: 1;
    grid-row: 1;
    font-size: clamp(52px, 15.6vw, 82px);
  }
  .astra-v2 .a-corner-copy > p:first-of-type {
    grid-column: 1;
    grid-row: 2;
    font-size: 15px;
    margin: 18px 0 22px;
    line-height: 1.65;
  }
  .astra-v2 .a-corner-photo {
    grid-column: 1;
    grid-row: 3;
    margin-top: 0;
    aspect-ratio: 2 / 1;
  }
  .astra-v2 .a-corner-photo img { object-position: center 43%; }
  .astra-v2 .a-practice {
    grid-column: 1;
    grid-row: 4;
    align-self: center;
    justify-self: center;
    width: calc(100% - 24px);
    margin-top: -20px;
    position: relative;
    z-index: 1;
    box-shadow: 6px 6px 0 var(--rd-cream-3);
  }
  .astra-v2 .a-practice-top { min-height: 58px; padding: 18px 20px; }
  .astra-v2 .a-practice-top .a-eyebrow { font-size: 9px; }
  .astra-v2 .a-practice-top .a-mono { display: none; }
  .astra-v2 .a-practice-tabs button { min-height: 57px; font-size: 12px; padding: 16px 4px; }
  .astra-v2 .a-practice-screen { min-height: 424px; padding: 26px 22px 28px; }
  .astra-v2 .a-practice-screen h3 { font-size: clamp(37px, 10.5vw, 52px); margin: 21px 0 28px; }
  .astra-v2 .a-practice-screen .a-eyebrow { font-size: 9px; }
  .astra-v2 .a-practice-screen .a-small { font-size: 11px; }
  .astra-v2 .a-settings { margin-bottom: 23px; }
  .astra-v2 .a-settings > div { padding-block: 16px; }
  .astra-v2 .a-settings dt { font-size: 10px; }
  .astra-v2 .a-settings dd { font-size: clamp(18px, 5.6vw, 26px); }
  .astra-v2 .a-timer { font-size: clamp(54px, 16vw, 76px); margin: 32px 0; }
  .astra-v2 .a-blocks li { font-size: 12px; padding-block: 16px; gap: 12px; }
  .astra-v2 .a-blocks span { font-size: 10px; }
  .astra-v2 .a-corner-actions {
    grid-column: 1;
    grid-row: 5;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    margin-top: 30px;
    width: 100%;
  }
  .astra-v2 .a-corner-actions > .a-button {
    grid-column: 1;
    grid-row: 1;
    width: 100%;
    margin: 0;
  }
  .astra-v2 .a-corner-actions > .a-text-link {
    grid-column: 1;
    grid-row: 2;
    margin: 0;
  }
  .astra-v2 .a-corner-actions > .a-small {
    grid-column: 1;
    grid-row: 3;
    align-self: start;
    margin: 4px 0 0;
  }

  .astra-v2 .a-swing { padding-top: 12px; }
  .astra-v2 .a-swing-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    padding-bottom: 0;
  }
  .astra-v2 .a-swing-copy { display: contents; }
  .astra-v2 .a-swing-copy h2 { grid-column: 1; grid-row: 1; margin-bottom: 30px; }
  .astra-v2 .a-swing-visual {
    grid-column: 1;
    grid-row: 2;
    width: auto;
    min-height: 0;
    margin-inline: calc(-1 * var(--a-page-gutter));
    aspect-ratio: 1.5;
  }
  .astra-v2 .a-swing-visual > img { object-position: 40% center; }
  .astra-v2 .a-concept { left: 5vw; bottom: 16px; font-size: 9px; max-width: 90vw; }
  .astra-v2 .a-swing-copy > p:first-of-type {
    grid-column: 1;
    grid-row: 3;
    margin: 26px 0 0;
    font-size: 15px;
    line-height: 1.7;
  }
  .astra-v2 .a-swing-copy .a-swing-promise {
    grid-column: 1;
    grid-row: 4;
    font-size: 36px;
    line-height: 1.05;
    margin: 28px 0;
    padding-block: 20px;
  }
  .astra-v2 .a-swing-copy .a-button { grid-column: 1; grid-row: 5; }
  .astra-v2 .a-swing-copy .a-small {
    grid-column: 1;
    grid-row: 6;
    margin: 18px 0 0;
    font-size: 12px;
    line-height: 1.6;
  }

  .astra-v2 .a-founder { display: block; padding: 38px 0 48px; }
  .astra-v2 .a-founder > .a-eyebrow { margin-bottom: 28px; }
  .astra-v2 .a-founder h2 { font-size: clamp(54px, 16vw, 84px); margin: 0 0 28px; }
  .astra-v2 .a-founder > div { padding-top: 0; }
  .astra-v2 .a-founder > div p { font-size: 18px; line-height: 1.65; }
  .astra-v2 .a-founder > div p + p { font-size: 15px; margin-top: 18px; }
  .astra-v2 .a-founder > div .a-mono { font-size: 9px; line-height: 1.7; }
  .astra-v2 .a-founder .a-text-link { margin-top: 8px; }

  .astra-v2 .postgame { padding: 54px 0 40px; }
  .astra-v2 .pricing-h { font-size: clamp(44px, 12.5vw, 65px); margin-bottom: 28px; }
  .astra-v2 .price-cell,
  .astra-v2 .price-cell + .price-cell {
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 14px;
    row-gap: 14px;
    padding: 23px 0;
    border-top: 0;
  }
  .astra-v2 .price-name { grid-column: 1; grid-row: 1; font-size: 25px; }
  .astra-v2 .price-amt { grid-column: 2; grid-row: 1; font-size: 27px; text-align: right; }
  .astra-v2 .price-star .price-amt { font-size: clamp(18px, 5.1vw, 25px); }
  .astra-v2 .price-note { grid-column: 1 / -1; grid-row: 2; max-width: 40ch; font-size: 14px; }
  .astra-v2 .price-star .price-name { padding-left: 11px; }
  /* The Individual row, added 2026-09-11, carries two currencies AND a term.
     That is much wider than the $0 and US$199 figures this two-column phone
     layout was built for. Measured at 360, 390 and 430: the `auto` price track
     grows to its max-content and takes the whole row, the minmax(0, 1fr) name
     track collapses to nothing, and INDIVIDUAL renders on top of the price
     with the term cut off at the right edge. Giving the price its own line is
     the smallest fix that keeps every existing row exactly where it was.
     Scoped to .price-appstore so no other row can pick it up. */
  .astra-v2 .price-appstore .price-amt {
    grid-column: 1 / -1;
    grid-row: 2;
    text-align: left;
  }
  .astra-v2 .price-appstore .price-note { grid-row: 3; }
}

@media (prefers-reduced-motion: reduce) {
  .astra-v2 .a-section *,
  .astra-v2 .a-section *::before,
  .astra-v2 .a-section *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
