/* The buyer page follows the actual PPT schedule UI, not the public-site theme.
   Tokens and shapes grounded in PPT ppt-base.css + public-schedule-v2.css. */
:root{
  --ppt-bg:#eef3f8;
  --ppt-white:#fff;
  --ppt-ink:#07162f;
  --ppt-text:#17151f;
  --ppt-muted:#66788d;
  --ppt-line:#d7e0ea;
  --ppt-orange:#f39a32;
  --ppt-orange-strong:#e57000;
  --ppt-soft-orange:#fff3df;
  --ppt-radius:16px;
  --ppt-shadow:0 10px 24px rgba(45,39,34,.06)
}
*{box-sizing:border-box}
html{min-width:320px;background:var(--ppt-bg)}
body.practice-checkout-page{margin:0;min-height:100vh;font:16px/1.45 Arial,"Helvetica Neue",sans-serif;color:var(--ppt-text);background:linear-gradient(180deg,#eef3f8 0,#f7f9fc 260px,#eef3f8 100%)}
.practice-checkout-page a{color:inherit;text-decoration:none}
.practice-checkout-page a:hover{text-decoration:underline}
.practice-checkout-page button,.practice-checkout-page select{font:inherit}
.ppt-brandbar{display:flex;align-items:center;justify-content:space-between;gap:24px;background:#fff;border-bottom:1px solid #e4ddd2;padding:14px clamp(18px,4vw,68px)}
.ppt-brandbar-link{display:inline-flex;align-items:center;max-width:min(360px,100%);flex:0 1 320px;min-width:0}
.ppt-brandbar-logo{display:block;width:min(290px,100%);height:auto;max-height:82px;object-fit:contain;object-position:left center}
.ppt-brandnav{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;font-size:15px;font-weight:700}
.ppt-brandnav a{color:#17151f;padding:8px 10px;border-radius:999px;white-space:nowrap}
.ppt-brandnav a:hover{color:#d85b00;background:#efe8dc;text-decoration:none}
.practice-main{width:100%;padding:0 0 60px}
.practice-hero{display:flex;align-items:center;justify-content:space-between;gap:28px;position:relative;isolation:isolate;overflow:hidden;min-height:218px;padding:36px clamp(18px,4vw,68px);background:linear-gradient(118deg,#07162f 0%,#0c2340 48%,#12385a 100%);color:#fff}
.practice-hero:after{content:"";position:absolute;z-index:-1;right:-120px;top:-150px;width:480px;height:480px;border-radius:50%;background:radial-gradient(circle,rgba(244,182,64,.44),rgba(216,91,0,.12) 55%,transparent 70%);pointer-events:none}
.practice-hero-text{position:relative;z-index:1;min-width:0}
.practice-eyebrow{color:#ffb45c;margin:0 0 10px;font-size:13px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.practice-hero h1{color:#fff;font-size:clamp(32px,3.8vw,55px);font-weight:800;letter-spacing:-.037em;line-height:1.08;margin:0;max-width:980px;overflow-wrap:break-word}
.practice-hero-back{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-height:46px;padding:0 18px;border:1px solid rgba(255,255,255,.35);border-radius:12px;background:rgba(255,255,255,.08);color:#fff!important;font-size:15px;font-weight:800}
.practice-hero-back:hover{background:rgba(255,255,255,.17);text-decoration:none!important}
.practice-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.75fr);gap:18px;margin:22px clamp(18px,4vw,68px) 0;align-items:start}
.practice-details,.practice-order{min-width:0;background:#fff;border:1px solid #d7e0ea;border-radius:17px;box-shadow:var(--ppt-shadow);padding:clamp(21px,2.5vw,32px)}
.practice-details{border-left:4px solid #f39a32}
.practice-section-heading{margin:0 0 24px}
.practice-kicker{display:inline-block;font-size:12px;letter-spacing:.08em;font-weight:850;color:#62768e;text-transform:uppercase}
.practice-section-heading h2{font-size:clamp(24px,2.3vw,30px);line-height:1.15;color:#07162f;font-weight:850;margin:10px 0 0}
.practice-day-list{display:grid;gap:10px;list-style:none;margin:0;padding:0}
.practice-day-list li{display:flex;align-items:center;gap:16px;padding:16px 19px;border-radius:13px;background:#f6f9fd;border:1px solid #dfe8f1;color:#0c2441;font-size:18px;font-weight:800;line-height:1.35}
.practice-day-number{display:grid;place-items:center;width:33px;height:33px;border-radius:10px;background:#f39a32;color:#07162f;font-size:15px;font-weight:900;flex-shrink:0}
.practice-afterpay{display:flex;gap:14px;align-items:flex-start;margin-top:30px;padding:20px 0 0;border-top:1px solid #dbe3ee;color:#62758d;font-size:14px;line-height:1.5}
.practice-afterpay strong{color:#07162f;font-size:16px}
.practice-afterpay p{margin:7px 0 0;max-width:650px}
.practice-afterpay-icon{display:grid;place-items:center;flex-shrink:0;border-radius:12px;width:38px;height:38px;background:#edf2f7;color:#0c2441;font-size:20px}
.practice-order-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:24px}
.practice-availability{color:#0c2441;border:1px solid #cdd9e6;background:#f5f9fd;border-radius:999px;font-size:12px;font-weight:750;padding:5px 11px;white-space:nowrap}
.practice-order h2{margin:0 0 11px;color:#07162f;font-size:20px;line-height:1.2;font-weight:850}
.practice-price-main{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;border-bottom:1px solid #dbe3ee;padding-bottom:22px}
.practice-price-main strong{color:#07162f;font-size:clamp(42px,4vw,55px);line-height:1.05;letter-spacing:-.035em;white-space:nowrap;font-weight:900;font-variant-numeric:tabular-nums}
.practice-price-main s{font-size:19px;color:#74859b}
.practice-discount{display:flex;align-items:flex-start;gap:12px;margin:20px 0;padding:17px 15px;border-radius:13px;background:#fff2dd;border:1px solid #f6d9ac;color:#693b0e}
.practice-discount-symbol{display:grid;place-items:center;flex:0 0 55px;min-height:36px;padding:0 5px;border-radius:10px;background:#f39a32;color:#07162f;font-size:16px;font-weight:900}
.practice-discount strong{display:block;font-size:15px;line-height:1.35;font-weight:850;color:#51350e}
.practice-discount p{font-size:14px;line-height:1.5;margin:5px 0 0;color:#674e2c}
.practice-account{margin:0 0 18px;font-size:13px;line-height:1.5;color:#5d718a;overflow-wrap:anywhere}
.practice-account strong{color:#0c2441;font-weight:800}
.practice-notice,.practice-helper{font-size:14px;line-height:1.55;margin:0 0 12px}
.practice-helper{color:#6c7d94}
.practice-notice{padding:12px 14px;border-radius:12px;background:#eaf4f7;border:1px solid #b9d6de;color:#0c344b}
.practice-closed{display:grid;gap:6px;border-radius:13px;padding:18px;background:#fff3df;border:1px solid #efcc91;color:#67471d;font-size:14px;line-height:1.5}
.practice-closed strong{font-size:15px;color:#5a370c}
.practice-actions,.practice-form{display:grid;gap:11px}
.practice-primary,.practice-secondary{display:flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:12px 18px;border-radius:12px;text-align:center;font-size:16px;line-height:1.3;font-weight:850;cursor:pointer;text-decoration:none!important}
.practice-primary{border:1px solid #f39a32;background:#f39a32;color:#07162f!important;box-shadow:none}
.practice-primary:hover{background:#ffac4d;border-color:#ffac4d}
.practice-primary span{font-size:20px}
.practice-secondary{border:1px solid #cdd9e6;background:#fff;color:#0c2441!important}
.practice-secondary:hover{background:#f4f8fd}
.practice-fineprint{font-size:12px;line-height:1.5;color:#6b7d92;text-align:center;margin:0}
.practice-choice{border:0;margin:0;padding:0;display:grid;gap:10px}
.practice-choice legend{font-size:15px;color:#07162f;font-weight:850;margin:0 0 12px;padding:0}
.practice-choice label{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #cad8e7;border-radius:11px;cursor:pointer}
.practice-choice label:has(input:checked){background:#fff3df;border-color:#f39a32}
.practice-choice input{width:19px;height:19px;accent-color:#e57000;flex-shrink:0}
.practice-choice p{margin:0;font-size:12px;color:#64768e;line-height:1.5}
.practice-method{display:grid;gap:8px;color:#07162f;font-size:14px;font-weight:800}
.practice-method select{width:100%;min-height:48px;padding:0 13px;border:1px solid #cbd9e7;border-radius:11px;background:#fff;color:#07162f}
.practice-bottom-link{display:inline-block;margin-top:24px;font-size:14px;font-weight:750;color:#16375c!important}
.practice-muted{font-size:15px;color:#607387}
:focus-visible{outline:3px solid #e57000;outline-offset:3px}
@media(max-width:1020px){.ppt-brandbar{align-items:flex-start;flex-direction:column;gap:7px}.ppt-brandbar-link{flex:0 0 auto}.ppt-brandnav{justify-content:flex-start;width:100%}.practice-grid{grid-template-columns:minmax(0,1fr) minmax(300px,.84fr)}}
@media(max-width:770px){.practice-hero{flex-direction:column;align-items:flex-start;gap:22px;min-height:0;padding:32px clamp(16px,4vw,36px)}.practice-hero h1{font-size:clamp(30px,6vw,45px)}.practice-grid{grid-template-columns:1fr;gap:14px;margin:17px clamp(14px,3vw,28px) 0}.ppt-brandbar{padding:12px 16px}.ppt-brandbar-logo{max-height:66px;width:min(250px,100%)}}
@media(max-width:490px){.ppt-brandnav{gap:4px;font-size:13px}.ppt-brandnav a{padding:8px 8px;background:#edf2f7}.practice-hero h1{font-size:32px;overflow-wrap:anywhere}.practice-hero-back{min-height:42px;font-size:14px}.practice-details,.practice-order{padding:20px 17px;border-radius:14px}.practice-day-list li{padding:13px 12px;font-size:16px;gap:11px}.practice-order-top{margin-bottom:18px}.practice-order h2{font-size:19px}.practice-price-main strong{font-size:44px}.practice-discount{gap:9px;padding:14px 12px}.practice-discount-symbol{flex-basis:46px;font-size:14px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* PPT practice detail / checkout composition: aligned to the public schedule. */
.practice-hero{
  padding:26px max(24px,calc((100vw - 1320px)/2));
  min-height:150px;
}
.practice-hero h1{font-size:clamp(30px,3.25vw,46px);line-height:1.12;max-width:990px;letter-spacing:-.025em}
.practice-hero:after{width:360px;height:360px;right:-90px;top:-110px}
.practice-grid{
  max-width:1320px;
  width:calc(100% - 48px);
  margin:20px auto 0;
  grid-template-columns:minmax(0,1.15fr) minmax(390px,.85fr);
  gap:18px;
}
.practice-details,.practice-order{padding:clamp(24px,2.4vw,32px)}
.practice-details{border-left:3px solid var(--ppt-orange);display:flex;flex-direction:column;gap:0}
.practice-overview-header{padding-bottom:20px;border-bottom:1px solid var(--ppt-line)}
.practice-overview-header h2{font-size:25px;line-height:1.2;margin:6px 0 0;font-weight:850;color:var(--ppt-ink)}
.practice-info-section{padding-top:22px}
.practice-info-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}
.practice-info-title-row h3{font-size:17px;color:var(--ppt-ink);font-weight:850;margin:0}
.practice-info-counter{border-radius:999px;background:#eef3f8;border:1px solid #dde6ef;padding:4px 10px;color:#546b83;font-size:12px;font-weight:800;white-space:nowrap}
.practice-day-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.practice-day-list li{font-size:16px;padding:13px 14px;gap:10px;min-height:60px;min-width:0}
.practice-day-number{width:29px;height:29px;border-radius:9px;flex-shrink:0;font-size:14px}
.practice-leader{display:flex;align-items:center;gap:19px;margin-top:24px;padding-top:24px;border-top:1px solid var(--ppt-line)}
.practice-leader-photo{flex:0 0 104px;width:104px;height:104px;border-radius:50%;background:#edf2f7;overflow:hidden;display:grid;place-items:center;border:3px solid #fff;box-shadow:0 0 0 1px #dce5ed}
.practice-leader-photo img{width:100%;height:100%;object-fit:cover;display:block}
.practice-leader-photo span{font-size:40px;font-weight:850;color:#708397}
.practice-leader-copy{min-width:0}
.practice-leader-label{font-size:13px;font-weight:650;letter-spacing:.02em;color:#667a90;margin:0 0 6px}
.practice-leader-name{display:block;color:var(--ppt-ink);font-size:clamp(18px,2vw,24px);font-weight:850;line-height:1.25;max-width:400px}
.practice-afterpay{padding:17px 18px;margin-top:24px;border:1px solid #e0e8f1;background:#f5f8fc;border-radius:13px}
.practice-afterpay strong{font-size:15px}
.practice-afterpay p{font-size:13px;line-height:1.5;margin-top:4px}
.practice-afterpay-icon{width:35px;height:35px;flex:0 0 35px}
.practice-order-top{margin-bottom:16px}
.practice-order h2{font-size:19px}
.practice-price-main{padding-bottom:17px}
.practice-price-main strong{font-size:clamp(40px,3.6vw,51px)}
.practice-discount{margin:17px 0 17px;padding:15px}
.practice-account{margin-bottom:12px}
.practice-choice label{padding:10px 12px}
.practice-choice{gap:8px}
.practice-bottom-link{margin-top:20px}
@media(max-width:1000px){
  .practice-grid{grid-template-columns:minmax(0,1fr) minmax(340px,.95fr)}
  .practice-day-list{grid-template-columns:1fr}
}
@media(max-width:770px){
  .practice-hero{padding:27px 22px;min-height:0}
  .practice-hero h1{font-size:clamp(29px,5.5vw,42px)}
  .practice-grid{grid-template-columns:1fr;width:calc(100% - 28px);margin:15px auto 0;gap:14px}
  .practice-day-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:530px){
  .practice-hero{padding:26px 18px}
  .practice-hero h1{font-size:30px}
  .practice-details,.practice-order{padding:22px 18px}
  .practice-overview-header h2{font-size:22px}
  .practice-day-list{grid-template-columns:1fr}
  .practice-day-list li{font-size:15px;padding:12px}
  .practice-leader{gap:14px}
  .practice-leader-photo{width:78px;height:78px;flex-basis:78px}
  .practice-leader-name{font-size:18px}
  .practice-afterpay{padding:14px}
}
