/* Corporate membership page (corporate.html), below the first screen.
   Owner approval 2026-10-11: seven blocks, three dark zones only (first screen, package selector,
   application), white and pale blocks between them. Surfaces are matte: no gradient, sheen or blur.
   Loaded after courses-style.css; that shared file is not edited for this page.
   Type: body text is 15px or larger; only uppercase labels are smaller. */
.co-main { --co-gutter:24px; --co-purple:#361163; --co-gold:#C0A582; --co-deep:#130526; --co-ink:#1c0938; --co-text:#505050; --co-line:#e6e1ee;
  --co-on-dark:#e9e3f1; --co-hair:rgba(192,165,130,.32); --co-out:cubic-bezier(.16,1,.3,1); }

/* ── Rhythm ───────────────────────────────────────────────────────────── */
.co-main > section { padding:72px 0; border-bottom:0; }
.co-main h2.section-title { font-size:32px; line-height:1.25; letter-spacing:-.02em; text-transform:none; }
/* Section head: title on the left, lead on the right, both on one baseline. */
.co-head { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px 56px; align-items:end; margin-bottom:32px; }
.co-main .co-head h2.section-title { margin:0; text-wrap:balance; }
.co-main .co-head .section-subtitle { max-width:none; margin:0; text-wrap:pretty; }
/* Screen-reader text: the dash icon alone does not say "not included". */
.co-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }

/* ── Benefits: three cards in the language of the homepage stat cards ─── */
.co-benefits { background:#f4f2ee; }
.co-benefit-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
/* Title row and text row are shared by the three cards: a wrapped title never shifts a neighbour's text. */
.co-benefit { display:grid; grid-template-rows:subgrid; grid-row:span 2; row-gap:0; padding:24px; border:1px solid var(--co-line); border-top:3px solid var(--co-gold); border-radius:14px; background:#ffffff;
  transition:border-color .35s,box-shadow .35s,transform .35s var(--co-out); }
.co-benefit:hover { border-color:var(--co-gold); box-shadow:0 14px 28px rgba(54,17,99,.1); transform:translateY(-4px); }
.co-benefit-head { display:flex; align-items:flex-start; gap:14px; margin-bottom:12px; }
.co-icon { flex:none; display:grid; place-items:center; width:40px; height:40px; border-radius:10px; background:var(--co-purple); color:var(--co-gold); transition:background-color .35s,color .35s; }
.co-icon svg { width:20px; height:20px; stroke-width:2.5; }
.co-benefit:hover .co-icon { background:var(--co-gold); color:var(--co-purple); }
.co-main .co-benefit h3 { margin:0; padding-top:6px; color:var(--co-purple); font-size:20px; font-weight:700; line-height:1.3; letter-spacing:-.01em; }
.co-main .co-benefit p { margin:0; color:var(--co-text); font-size:15px; line-height:1.55; }

/* ── Packages: four equal cards; the rows of the first three line up ──── */
.co-packs { background:#ffffff; }
/* Ten shared rows: head, for whom, seven content rows, button. */
.co-pack-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); column-gap:20px; row-gap:0; }
.co-pack { --co-tier:var(--co-gold); display:grid; grid-template-rows:subgrid; grid-row:span 10; row-gap:0; min-width:0; padding:22px 20px; border:1px solid var(--co-line); border-top:3px solid var(--co-tier); border-radius:14px; background:#ffffff; scroll-margin-top:150px;
  transition:border-color .35s,box-shadow .35s,transform .35s var(--co-out); }
.co-pack:hover { border-color:var(--co-gold); box-shadow:0 14px 28px rgba(54,17,99,.1); transform:translateY(-4px); }
/* Chosen from the selector: the frame holds for a moment, then lets go. */
.co-pack.is-picked { border-color:var(--co-gold); box-shadow:0 0 0 3px rgba(192,165,130,.55); }
.co-pack-bronze { --co-tier:#A37230; }
.co-pack-silver { --co-tier:#8C92AC; }
/* The top standard package is told apart by colour, not by size. */
.co-pack-gold { border-color:var(--co-gold); background:#fbf8f3; }
.co-pack-bespoke { border-color:var(--co-purple); border-top-color:var(--co-gold); background:var(--co-purple); }
.co-pack-bespoke:hover { box-shadow:0 14px 28px rgba(54,17,99,.26); }
.co-pack-level { display:flex; align-items:center; gap:8px; color:var(--co-purple); font-size:12px; font-weight:700; line-height:1.4; letter-spacing:.1em; text-transform:uppercase; }
.co-pack-level::before { content:""; flex:none; width:10px; height:10px; border-radius:50%; background:var(--co-tier); }
.co-main .co-pack h3 { margin:6px 0 0; color:var(--co-purple); font-size:24px; font-weight:700; line-height:1.3; letter-spacing:-.01em; }
.co-main .co-pack-for { margin:10px 0 0; padding-bottom:16px; border-bottom:1px solid var(--co-line); color:var(--co-text); font-size:15px; line-height:1.5; text-wrap:pretty; }
/* Price (owner, 2026-10-11): discussed individually. One line under the cards, with the way to the form. */
.co-main .co-pack-note { margin:24px 0 0; color:var(--co-text); font-size:16px; line-height:1.5; }
.co-pack-note a { color:var(--co-purple); font-weight:700; text-decoration:underline; text-decoration-color:var(--co-gold); text-decoration-thickness:2px; text-underline-offset:4px; transition:text-decoration-color .25s; }
.co-pack-note a:hover { text-decoration-color:var(--co-purple); }
.co-pack-note a:focus-visible { outline:3px solid var(--co-purple); outline-offset:3px; }
.co-pack-rows { display:grid; grid-template-rows:subgrid; grid-row:span 7; margin:0; padding:8px 0 0; list-style:none; }
.co-pack-rows li { display:flex; align-items:flex-start; gap:10px; padding:5px 0; color:var(--co-text); font-size:15px; line-height:1.45; }
.co-pack-rows svg { flex:none; width:18px; height:18px; margin-top:2px; color:var(--co-purple); stroke-width:2.5; }
.co-pack-rows b { color:var(--co-purple); font-weight:700; }
.co-pack-rows .co-row-off, .co-pack-rows .co-row-off svg { color:#6f6f6f; }
/* The individual agreement has its own four points: one cell across the seven rows. */
.co-pack-rows.co-pack-list { display:block; }
.co-pack-btn { align-self:end; display:inline-flex; align-items:center; justify-content:center; width:100%; min-height:48px; margin-top:18px; padding:12px 16px; border:1px solid var(--co-purple); border-radius:6px; background:#ffffff; color:var(--co-purple); font-family:inherit; font-size:15px; font-weight:700; line-height:1.1; text-transform:uppercase; cursor:pointer;
  transition:background-color .25s,border-color .25s,color .25s; }
.co-pack-btn:hover { background:var(--co-purple); color:#ffffff; }
.co-pack-btn:focus-visible { outline:3px solid var(--co-purple); outline-offset:3px; }
.co-pack-gold .co-pack-btn { background:var(--co-purple); color:#ffffff; }
.co-pack-gold .co-pack-btn:hover { border-color:#4a1a85; background:#4a1a85; }
.co-pack-bespoke .co-pack-level, .co-main .co-pack-bespoke h3 { color:#ffffff; }
.co-main .co-pack-bespoke .co-pack-for { border-bottom-color:var(--co-hair); color:var(--co-on-dark); }
.co-pack-bespoke .co-pack-rows li { color:var(--co-on-dark); }
.co-pack-bespoke .co-pack-rows svg { color:var(--co-gold); }
.co-pack-bespoke .co-pack-btn { border-color:var(--co-gold); background:var(--co-gold); color:var(--co-purple); }
.co-pack-bespoke .co-pack-btn:hover { border-color:#ffffff; background:#ffffff; color:var(--co-purple); }
.co-pack-bespoke .co-pack-btn:focus-visible { outline-color:#ffffff; }

/* ── Package selector: heading and note on the left, question card on the right ── */
#package-selector.co-selector { background:var(--co-deep); scroll-margin-top:110px; }
.co-sel-grid { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:64px; align-items:stretch; }
.co-sel-intro { display:flex; flex-direction:column; align-items:flex-start; min-width:0; }
.co-selector .section-eyebrow { color:var(--co-gold); }
.co-main .co-selector h2.section-title { margin:0 0 16px; color:#ffffff; text-wrap:balance; }
.co-main .co-selector .section-subtitle { max-width:none; margin:0 0 28px; color:var(--co-on-dark); }
.co-main .co-sel-note { display:flex; align-items:flex-start; gap:12px; margin:auto 0 0; padding:16px 18px; border:1px solid var(--co-hair); border-radius:10px; background:var(--co-ink); color:var(--co-on-dark); font-size:15px; line-height:1.55; text-wrap:pretty; }
.co-sel-note svg { flex:none; width:18px; height:18px; margin-top:3px; color:var(--co-gold); stroke-width:2.5; }
/* Card in the language of the homepage stat cards: hairline frame, 3px gold line on top.
   One height through both questions and the result, so the block does not jump. */
.co-sel-card { display:flex; flex-direction:column; min-width:0; min-height:432px; padding:24px 32px 32px; border:1px solid var(--co-hair); border-top:3px solid var(--co-gold); border-radius:12px; background:var(--co-ink); }
.co-sel-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; padding-bottom:16px; border-bottom:1px solid var(--co-hair); color:#ffffff; }
.co-sel-head[hidden], .co-sel-back[hidden], .co-sel-slider[hidden], .co-sel-result[hidden] { display:none; }
.co-sel-progress { display:flex; align-items:center; gap:14px; min-height:44px; }
.co-sel-step { font-size:13px; font-weight:700; line-height:1; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; }
.co-sel-bar { width:128px; height:4px; overflow:hidden; border-radius:2px; background:rgba(255,255,255,.16); }
.co-sel-bar-fill { height:100%; background:var(--co-gold); transition:width .3s ease; }
.co-sel-back { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 16px; border:1px solid var(--co-hair); border-radius:6px; background:transparent; color:#ffffff; font-family:inherit; font-size:13px; font-weight:700; line-height:1; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; transition:border-color .25s,background-color .25s; }
.co-sel-back:hover { border-color:var(--co-gold); background:var(--co-purple); }
.co-sel-back svg { width:16px; height:16px; stroke-width:2.5; }
.co-sel-slider { display:flex; flex:1; min-width:0; }
.co-sel-slide { display:flex; flex:1; flex-direction:column; min-width:0; }
.co-main .co-sel-question { margin:0 0 20px; color:#ffffff; font-size:22px; font-weight:700; line-height:1.3; letter-spacing:-.015em; text-wrap:pretty; }
.co-sel-question:focus, .co-sel-result:focus { outline:none; }
.co-sel-choices { display:grid; gap:12px; margin-top:auto; }
.co-sel-choice { display:grid; gap:4px; width:100%; padding:14px 18px; border:1px solid rgba(255,255,255,.2); border-radius:10px; background:var(--co-purple); color:#ffffff; font-family:inherit; text-align:left; cursor:pointer; transition:transform .35s var(--co-out),border-color .25s; }
.co-sel-choice:hover, .co-sel-choice:focus-visible { border-color:var(--co-gold); transform:translateY(-2px); }
.co-sel-back:focus-visible, .co-sel-choice:focus-visible, .co-res-actions button:focus-visible { outline:2px solid var(--co-gold); outline-offset:3px; }
.co-sel-choice-text { font-size:16px; font-weight:700; line-height:1.35; }
.co-sel-choice-desc { color:var(--co-on-dark); font-size:15px; font-weight:400; line-height:1.45; }

/* Result: the recommended package and the reason; the contents are in the card above. */
.co-sel-result { display:flex; flex:1; flex-direction:column; align-items:flex-start; min-width:0; }
.co-res-badge { margin-bottom:14px; padding:6px 10px; border-radius:4px; background:var(--co-gold); color:var(--co-purple); font-size:12px; font-weight:700; line-height:1.3; letter-spacing:.1em; text-transform:uppercase; }
.co-main .co-res-title { margin:0 0 14px; color:#ffffff; font-size:26px; font-weight:700; line-height:1.25; letter-spacing:-.01em; }
.co-main .co-res-reason { margin:0 0 24px; color:var(--co-on-dark); font-size:16px; line-height:1.55; text-wrap:pretty; }
.co-res-actions { display:flex; flex-wrap:wrap; gap:12px; width:100%; margin-top:auto; }
.co-res-actions button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:12px 20px; border:1px solid var(--co-hair); border-radius:6px; background:transparent; color:#ffffff; font-family:inherit; font-size:15px; font-weight:700; line-height:1.1; text-transform:uppercase; cursor:pointer; transition:background-color .25s,border-color .25s,color .25s; }
.co-res-actions button:hover { border-color:var(--co-gold); color:var(--co-gold); }
.co-res-actions .co-res-apply { border-color:var(--co-gold); background:var(--co-gold); color:var(--co-purple); }
.co-res-actions .co-res-apply:hover { border-color:#ffffff; background:#ffffff; color:var(--co-purple); }
.co-res-actions .co-res-reset { margin-left:auto; border-color:transparent; }

@media (prefers-reduced-motion:no-preference) {
  .co-sel-slide, .co-sel-result { animation:co-rise .45s var(--co-out) both; }
}
@keyframes co-rise { from { opacity:0; transform:translateY(14px); } }

/* ── Partners: one light block ────────────────────────────────────────── */
.co-main #pt-network-section { padding:72px 0 56px; }
.co-main .pt-section-head { margin-bottom:32px; }

/* ── Application: three steps next to the form ────────────────────────── */
.co-main #cta-section.cta-form-section { padding:72px 0; }
.co-main #cta-section .cta-container { gap:56px; }
.co-steps { display:grid; gap:10px; margin:22px 0 0; padding:0; list-style:none; }
.co-steps li { display:flex; align-items:center; gap:12px; color:#ffffff; font-size:15px; font-weight:600; line-height:1.4; }
.co-steps b { flex:none; display:grid; place-items:center; width:28px; height:28px; border:1px solid var(--co-gold); border-radius:50%; color:var(--co-gold); font-size:13px; font-weight:700; line-height:1; }
.co-main #cta-section .cta-form-title { text-transform:none; letter-spacing:-.01em; }

@media (max-width:1199px) {
  /* Two by two: each pair still shares its rows. */
  .co-pack-grid { grid-template-columns:repeat(2,minmax(0,1fr)); margin-bottom:-20px; }
  .co-pack { margin-bottom:20px; }
}
@media (max-width:1023px) {
  .co-head, .co-sel-grid { grid-template-columns:1fr; }
  .co-sel-grid { gap:28px; }
  .co-main .co-sel-note { margin-top:0; }
  .co-sel-card { min-height:0; }
}
@media (max-width:767px) {
  .co-main > section, .co-main #cta-section.cta-form-section { padding:48px 0; }
  .co-main #pt-network-section { padding:48px 0 40px; }
  .co-main h2.section-title { font-size:28px; }
  .co-head { margin-bottom:24px; }
  .co-benefit-grid { grid-template-columns:1fr; gap:12px; }
  .co-benefit { display:block; padding:20px; }
  .co-main .section-subtitle { font-size:16px; }
  /* Four cards in a column would take 2300px: on a phone they are a swipe row and the next card
     peeks in from the right. The row runs to the screen edges; the first card keeps the page gutter. */
  .co-pack-grid { display:flex; gap:12px; margin:0 calc(var(--co-gutter) * -1); padding:4px var(--co-gutter) 8px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding-inline:var(--co-gutter); scrollbar-width:none; }
  .co-pack-grid::-webkit-scrollbar { display:none; }
  .co-pack { display:flex; flex-direction:column; flex:0 0 84%; margin-bottom:0; padding:20px; scroll-snap-align:start; }
  .co-pack:hover { transform:none; }
  .co-pack-rows { display:block; flex:1; }
  .co-sel-card { padding:20px; }
  .co-main .co-sel-question { font-size:20px; }
  .co-res-actions { flex-direction:column; }
  .co-res-actions .co-res-reset { margin-left:0; }
}
