:root {
  --brand-blue: #1f20a9;
  --brand-red: #e8101c;
  --blue: var(--brand-blue);
  --blue-dark: #14156f;
  --red: var(--brand-red);
  --coral: var(--brand-red);
  --orange: #ff8a22;
  --ink: #0b0b0d;
  --paper: #ffffff;
  --mist: #f3f3fb;
  --line: #d9d7e1;
  --radius: 26px;
  --shadow: 0 24px 70px rgba(31, 9, 88, 0.16);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.55;
  overflow-x: hidden;
}

img { display: block; max-width: 100%; }
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.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; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 1000; padding: .8rem 1rem; background: #fff; border: 2px solid #000; border-radius: 12px; }
.skip-link:focus { top: 1rem; }
.section-shell { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }

.site-header {
  width: min(1240px, calc(100% - 28px));
  margin: 14px auto 0;
  min-height: 72px;
  padding: 10px 12px 10px 18px;
  border: 1px solid var(--line);
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  position: sticky;
  top: 12px;
  z-index: 100;
  background: rgba(255,255,255,.9);
  backdrop-filter: blur(16px);
  box-shadow: 0 12px 36px rgba(19, 10, 49, .08);
}

.brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; font-weight: 950; letter-spacing: -1px; font-size: 1.25rem; white-space: nowrap; }
.brand-mark { width: 58px; height: auto; flex: 0 0 auto; }
.language-switch { display: inline-flex; align-items: center; gap: 6px; margin-right: auto; padding: 4px; border: 1px solid var(--line); border-radius: 999px; background: #fff; }
.lang-option { min-width: 48px; min-height: 38px; padding: 5px 10px; border: 0; border-radius: 999px; background: transparent; color: var(--ink); cursor: pointer; display: grid; place-items: center; line-height: 1; font: inherit; transition: transform .18s ease, color .18s ease, box-shadow .18s ease, background .18s ease; }
.lang-option span { font-size: .84rem; font-weight: 950; }
.lang-option small { font-size: .58rem; font-weight: 750; margin-top: 3px; }
.lang-option:hover { transform: translateY(-1px); }
.lang-es[aria-pressed="true"] { background: var(--blue); color: #fff; box-shadow: 0 4px 10px rgba(31,32,169,.24); }
.lang-en[aria-pressed="true"] { background: var(--red); color: #fff; box-shadow: 0 4px 10px rgba(232,16,28,.24); }
.lang-option:focus-visible { outline: 3px solid var(--orange); outline-offset: 2px; }
.site-nav { display: flex; align-items: center; gap: 25px; }
.site-nav a { text-decoration: none; font-size: .92rem; font-weight: 720; }
.site-nav a:not(.nav-cta):hover { color: var(--blue); }
.nav-cta { background: var(--ink); color: #fff; padding: 13px 20px; border-radius: 13px; }
.nav-cta:hover { background: var(--blue); }

/* Portal entry */
.portal-section { background: var(--ink); color: #fff; border-radius: 34px; padding: 72px; margin-top: 80px; display: grid; grid-template-columns: .85fr 1.15fr; gap: 56px; align-items: center; }
.portal-copy h2 { font-size: clamp(2.7rem, 5vw, 5rem); line-height: .93; margin: 18px 0 24px; }
.portal-copy > p:last-child { color: rgba(255,255,255,.72); max-width: 520px; }
.portal-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.portal-card { min-height: 275px; padding: 28px; border-radius: 24px; color: var(--ink); display: flex; flex-direction: column; border: 2px solid var(--ink); box-shadow: 7px 7px 0 #fff; transition: transform .2s ease, box-shadow .2s ease; }
.portal-card:hover { transform: translate(-3px,-3px); box-shadow: 11px 11px 0 #fff; }
.portal-card.student { background: var(--coral); }
.portal-card.coach { background: #fff; }
.portal-icon { width: 48px; height: 48px; border: 2px solid var(--ink); border-radius: 50%; display: grid; place-items: center; font-size: 1.35rem; margin-bottom: auto; }
.portal-card small { font-weight: 900; letter-spacing: .12em; margin: 26px 0 8px; }
.portal-card strong { font-family: Georgia, 'Times New Roman', serif; font-size: 1.75rem; line-height: 1.05; }
.portal-card > span:last-child { margin-top: 26px; font-weight: 800; display: flex; justify-content: space-between; }

/* Portal preview */
.portal-page { min-height: 100vh; background: linear-gradient(145deg,#fff 0%,#f5f0ff 55%,#ffefea 100%); }
.portal-header { max-width: 1180px; margin: 22px auto 0; padding: 10px 18px; display: flex; align-items: center; justify-content: space-between; }
.portal-back { color: var(--ink); font-weight: 800; }
.portal-shell { max-width: 1120px; margin: 50px auto; padding: 0 22px 60px; }
.portal-intro { max-width: 770px; margin-bottom: 40px; }
.portal-intro h1 { font-size: clamp(3.8rem,8vw,7.6rem); line-height: .88; margin: 20px 0 24px; }
.portal-intro > p:last-child { font-size: 1.2rem; color: #555; max-width: 620px; }
.portal-login-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.login-panel { padding: 38px; border: 2px solid var(--ink); border-radius: 28px; box-shadow: 8px 8px 0 var(--ink); transition: transform .2s ease; }
.student-panel { background: var(--coral); }
.coach-panel { background: var(--blue); color: #fff; }
.login-panel.selected-role { transform: translateY(-8px); outline: 5px solid #ff9b3f; outline-offset: 5px; }
.login-tag { font-size: .77rem; font-weight: 900; letter-spacing: .12em; }
.login-panel h2 { font-size: 3rem; margin: 20px 0 12px; }
.login-panel ul { list-style: none; padding: 0; margin: 28px 0 34px; }
.login-panel li { padding: 11px 0; border-bottom: 1px solid currentColor; font-weight: 700; }
.login-panel li::before { content: '✓'; margin-right: 9px; }
.button-dark { background: var(--ink); color: #fff; }
.portal-coming-soon { display: inline-flex; cursor: default; opacity: .9; }
.portal-support { margin-top: 42px; padding: 22px 28px; border: 2px solid var(--ink); border-radius: 18px; background: #fff; display: flex; justify-content: space-between; gap: 18px; align-items: center; }
.portal-support p { margin: 0; font-weight: 800; }
.portal-support a { font-weight: 900; color: var(--blue); }
.portal-header-actions { display: flex; align-items: center; gap: 14px; }
.session-name { font-weight: 850; }
.portal-logout { border: 1px solid var(--ink); background: #fff; padding: 8px 12px; border-radius: 10px; font: inherit; font-weight: 800; cursor: pointer; }
.portal-security-link { border: 0; background: transparent; color: var(--blue); padding: 6px 2px; font: inherit; font-size: .82rem; font-weight: 850; text-decoration: underline; cursor: pointer; }
.portal-security-link:hover { color: var(--red); }
.portal-state { min-height: 55vh; display: grid; place-items: center; align-content: center; gap: 16px; font-weight: 800; }
.portal-loader { width: 48px; height: 48px; border: 5px solid #ded9ff; border-top-color: var(--blue); border-radius: 50%; animation: portal-spin .8s linear infinite; }
@keyframes portal-spin { to { transform: rotate(360deg); } }
.portal-auth { min-height: 630px; display: grid; grid-template-columns: 1.05fr .7fr; gap: 70px; align-items: center; }
.portal-auth-copy h1, .dashboard-welcome h1 { font-family: Georgia, 'Times New Roman', serif; letter-spacing: -.06em; line-height: .9; margin: 18px 0 24px; }
.portal-auth-copy h1 { font-size: clamp(4.4rem, 8vw, 7.6rem); }
.portal-auth-copy > p:last-of-type { max-width: 650px; font-size: 1.15rem; color: #53505a; }
.auth-points { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.auth-points span { border: 1px solid var(--ink); border-radius: 999px; padding: 8px 12px; font-weight: 750; background: #fff; }
.portal-auth-card { background: #fff; border: 2px solid var(--ink); box-shadow: 9px 10px 0 var(--ink); border-radius: 28px; padding: 38px; }
.portal-auth-card h2 { font: 700 2.8rem/1 Georgia, serif; margin: 20px 0 32px; }
.portal-auth-card label, .portal-form label { display: grid; gap: 8px; font-weight: 800; font-size: .92rem; }
.portal-auth-card input, .portal-form input, .portal-form select { width: 100%; border: 1.5px solid #aaa5b2; background: #fff; color: var(--ink); border-radius: 12px; padding: 14px; font: inherit; }
.portal-auth-card input:focus, .portal-form input:focus, .portal-form select:focus { outline: 3px solid rgba(31,32,169,.2); border-color: var(--blue); }
.portal-auth-card .button { width: 100%; border: 0; margin-top: 18px; cursor: pointer; }
.portal-auth-card > small { color: #696571; display: block; margin-top: 18px; }
.form-status { min-height: 24px; color: var(--blue-dark); font-weight: 750; }
.form-status.is-error { color: #a90016; }
.password-field { position: relative; }
.password-field input { padding-right: 76px; }
.password-toggle { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); border: 0; background: #efedf5; color: var(--blue); border-radius: 8px; padding: 7px 9px; font-weight: 850; cursor: pointer; }
.auth-options { display: grid; gap: 5px; margin-top: 10px; }
.auth-options button { border: 0; background: transparent; color: var(--blue); padding: 8px 0; font: inherit; font-weight: 850; text-decoration: underline; cursor: pointer; }
.auth-options button:hover { color: var(--red); }
.account-access-card { margin-top: 28px; }
.account-access-card .card-heading p { max-width: 620px; color: #676270; margin: 8px 0 0; }
.account-access-close { border: 1px solid var(--ink); background: #fff; border-radius: 999px; padding: 8px 12px; font: inherit; font-size: .78rem; font-weight: 850; cursor: pointer; }
.account-access-close:hover { background: var(--ink); color: #fff; }
.password-form { max-width: 680px; }
.dashboard-view { padding-top: 40px; }
.dashboard-welcome { display: flex; justify-content: space-between; gap: 40px; align-items: end; margin-bottom: 38px; }
.dashboard-welcome h1 { font-size: clamp(4rem, 7vw, 7rem); }
.dashboard-welcome > div:first-child > p:last-child { color: #57535e; font-size: 1.08rem; max-width: 650px; }
.role-badge { background: var(--orange); border: 2px solid var(--ink); box-shadow: 4px 5px 0 var(--ink); border-radius: 999px; padding: 10px 16px; font-weight: 950; transform: rotate(2deg); white-space: nowrap; }
.dashboard-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 20px; }
.dashboard-stats article { min-height: 170px; display: flex; flex-direction: column; padding: 24px; border: 2px solid var(--ink); border-radius: 22px; background: #fff; }
.dashboard-stats article:nth-child(2) { background: var(--coral); }
.dashboard-stats article:nth-child(3) { background: var(--blue); color: #fff; }
.dashboard-stats small, .dashboard-card small { font-weight: 900; letter-spacing: .08em; }
.dashboard-stats strong { font: 700 4rem/1 Georgia, serif; margin: auto 0 4px; }
.dashboard-stats .stat-name { font-size: 2.2rem; }
.dashboard-stats span { font-size: .9rem; font-weight: 700; }
.dashboard-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px; }
.dashboard-grid-lists { align-items: start; }
.dashboard-card { background: #fff; border: 2px solid var(--ink); border-radius: 24px; padding: 28px; box-shadow: 6px 7px 0 var(--ink); }
.dashboard-card-accent { background: #fff2ee; }
.card-heading { display: flex; justify-content: space-between; align-items: start; gap: 20px; margin-bottom: 26px; }
.card-heading h2 { font: 700 2.25rem/1 Georgia, serif; letter-spacing: -.04em; margin: 8px 0 0; }
.card-heading > span { border: 2px solid var(--ink); border-radius: 50%; min-width: 42px; height: 42px; display: grid; place-items: center; font-weight: 900; }
.portal-form { display: grid; gap: 16px; }
.portal-form .button { border: 0; cursor: pointer; margin-top: 4px; }
.calendar-automation-note { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: start; padding: 14px; border: 1px solid #b9b5c7; border-radius: 14px; background: #f7f5ff; }
.calendar-automation-note span { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--blue); color: #fff; font-weight: 900; }
.calendar-automation-note p { margin: 0; font-size: .86rem; color: #4f4a58; }
.portal-form label > small { color: #68626f; font-size: .78rem; font-weight: 650; line-height: 1.45; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.people-list, .class-list { display: grid; }
.lead-list { display: grid; }
.lead-list article { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 14px; align-items: center; padding: 15px 0; border-top: 1px solid var(--line); }
.lead-list article:last-child { border-bottom: 1px solid var(--line); }
.lead-list article div { display: grid; min-width: 0; }
.lead-list small { color: #66616d; overflow: hidden; text-overflow: ellipsis; }
.lead-status { max-width: 150px; border: 1px solid var(--line); border-radius: 10px; padding: 8px; background: #fff; font: inherit; font-size: .78rem; font-weight: 750; }
.lead-card { margin-bottom: 20px; }
.crm-records, .people-records, .class-records, .invitation-records { display: grid; gap: 12px; }
.people-groups { display: grid; gap: 14px; }
.people-role-group { border: 2px solid var(--ink); border-radius: 18px; background: #fff; overflow: hidden; }
.people-role-group > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 18px; }
.people-role-group > summary::-webkit-details-marker { display: none; }
.people-role-group > summary:hover { background: #f8f6ff; }
.people-role-group > summary span { display: grid; gap: 3px; }
.people-role-group > summary strong { font-family: var(--display); font-size: 1.45rem; }
.people-role-group > summary small { color: #66616d; }
.people-role-group > summary b { width: 38px; height: 38px; border: 2px solid var(--ink); border-radius: 50%; display: grid; place-items: center; }
.people-role-body { display: grid; gap: 12px; padding: 16px; border-top: 1px solid var(--line); background: #fbfaff; }
.crm-record, .person-record, .class-record, .invitation-record, .admin-assessment { border: 1.5px solid var(--line); border-radius: 16px; background: #fff; overflow: hidden; }
.crm-record > summary, .person-record > summary, .class-record > summary, .invitation-record > summary, .admin-assessment > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 14px; align-items: center; padding: 16px; }
.crm-record > summary::-webkit-details-marker, .person-record > summary::-webkit-details-marker, .class-record > summary::-webkit-details-marker, .invitation-record > summary::-webkit-details-marker, .admin-assessment > summary::-webkit-details-marker { display: none; }
.crm-record > summary:hover, .person-record > summary:hover, .class-record > summary:hover, .invitation-record > summary:hover, .admin-assessment > summary:hover { background: #f8f6ff; }
.crm-record summary span:not(.avatar), .person-record summary span:not(.avatar), .class-record summary span, .invitation-record summary span:not(.avatar), .admin-assessment summary span { display: grid; min-width: 0; }
.crm-record summary small, .person-record summary small, .class-record summary small, .invitation-record summary small, .admin-assessment summary small { color: #66616d; }
.crm-record summary b, .person-record summary b, .class-record summary b, .invitation-record summary b, .admin-assessment summary b { color: var(--blue); font-size: .76rem; text-transform: uppercase; }
.crm-record-body, .person-record-body, .class-record > div, .invitation-record > div { padding: 18px; border-top: 1px solid var(--line); background: #fbfaff; }
.crm-contact-grid { display: grid; grid-template-columns: minmax(220px, .5fr) 1fr; align-items: end; gap: 14px; margin-bottom: 18px; }
.crm-contact-grid label { display: grid; gap: 7px; font-size: .82rem; font-weight: 850; }
.crm-email { justify-self: end; color: var(--blue); font-weight: 850; }
.promote-lead-form { margin: 16px 0 26px; padding: 18px; border: 1px dashed var(--ink); border-radius: 14px; background: #fff; }
.promote-lead-form .button { justify-self: start; }
.student-ready { color: #176332; font-weight: 800; }
.admin-assessment-list { margin-top: 24px; }
.admin-assessment-list h3 { font: 700 1.6rem/1 Georgia, serif; margin: 0 0 14px; }
.admin-assessment { margin-top: 10px; }
.admin-assessment > summary { grid-template-columns: minmax(0,1fr) auto auto; }
.admin-assessment > summary em { color: var(--blue); font-size: .8rem; font-style: normal; font-weight: 850; }
.admin-assessment-body { display: grid; gap: 18px; padding: 18px; border-top: 1px solid var(--line); }
.admin-assessment-body > section { border: 1px solid var(--line); border-radius: 14px; padding: 18px; background: #fff; }
.admin-assessment-body > section > small { display: block; margin-bottom: 12px; }
.submission-copy { margin: 12px 0 0; white-space: pre-wrap; }
.admin-audio { width: 100%; margin: 4px 0 10px; }
.class-record > summary { grid-template-columns: minmax(145px,.6fr) minmax(0,1fr) auto; }
.class-record > div p, .person-record-body p, .invitation-record > div p { margin: 4px 0 10px; }
.class-student-groups { display: grid; gap: 14px; }
.class-student-group { border: 1.5px solid var(--line); border-radius: 18px; background: #fff; overflow: hidden; }
.class-student-group > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 14px; align-items: center; padding: 18px; }
.class-student-group > summary::-webkit-details-marker, .past-classes > summary::-webkit-details-marker { display: none; }
.class-student-group > summary:hover { background: #f8f6ff; }
.class-student-group > summary span:not(.avatar) { display: grid; min-width: 0; }
.class-student-group > summary small { color: #66616d; }
.class-student-group > summary b { color: var(--blue); font-size: .76rem; }
.class-student-body { padding: 18px; border-top: 1px solid var(--line); background: #fbfaff; display: grid; gap: 18px; }
.class-student-body h3 { margin: 0 0 12px; font: 700 1.35rem Georgia, serif; }
.past-classes { border-top: 1px solid var(--line); padding-top: 14px; }
.past-classes > summary { cursor: pointer; color: var(--blue); font-weight: 900; text-decoration: underline; text-underline-offset: 4px; }
.past-classes > .class-records { margin-top: 14px; }
.people-list article, .class-list article { display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; padding: 15px 0; border-top: 1px solid var(--line); }
.people-list article:last-child, .class-list article:last-child { border-bottom: 1px solid var(--line); }
.people-list article div, .class-list article div { display: grid; }
.people-list small, .class-list small { color: #66616d; letter-spacing: 0; font-weight: 650; }
.people-list b, .class-list b { font-size: .78rem; text-transform: uppercase; color: var(--blue); }
.avatar { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: var(--coral); border: 2px solid var(--ink); font-weight: 950; }
.class-list time { max-width: 105px; font-size: .85rem; font-weight: 850; }
.empty-message { color: #6b6671; }
.coach-students-card { margin-bottom: 20px; }
.coach-students-card .card-heading p { margin: 8px 0 0; color: #66616d; max-width: 700px; }
.coach-student-list { display: grid; gap: 14px; }
.coach-student-record { border: 1.5px solid var(--line); border-radius: 18px; background: #fff; overflow: hidden; }
.coach-student-record > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 14px; align-items: center; padding: 18px; }
.coach-student-record > summary::-webkit-details-marker, .coach-class-record > summary::-webkit-details-marker { display: none; }
.coach-student-record > summary:hover, .coach-student-record[open] > summary { background: #f8f6ff; }
.coach-student-record > summary span:not(.avatar) { display: grid; min-width: 0; }
.coach-student-record > summary small { color: #66616d; letter-spacing: 0; }
.coach-student-record > summary b, .coach-class-record > summary b { color: var(--blue); font-size: .76rem; }
.coach-student-body { padding: 20px; border-top: 1px solid var(--line); background: #fbfaff; }
.student-facts { display: grid; grid-template-columns: 1.4fr 1fr .7fr; gap: 10px; margin-bottom: 20px; }
.student-facts article { display: grid; gap: 7px; padding: 15px; border: 1px solid var(--line); border-radius: 13px; background: #fff; overflow-wrap: anywhere; }
.student-context-form { padding: 18px; border: 1.5px solid var(--ink); border-radius: 15px; background: #fff; }
.portal-form textarea { width: 100%; border: 1.5px solid #aaa5b2; background: #fff; color: var(--ink); border-radius: 12px; padding: 14px; font: inherit; resize: vertical; }
.portal-form textarea:focus { outline: 3px solid rgba(31,32,169,.2); border-color: var(--blue); }
.coach-note-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.coach-note-actions .button { width: auto; padding: 12px 18px; }
.coach-note-actions .form-status { margin: 0; }
.student-settings-form { margin-top: 16px; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.student-settings-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.student-settings-actions .button { width: auto; padding: 12px 18px; }
.student-settings-actions .form-status { margin: 0; }
.danger-zone { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 14px 20px; align-items: center; margin-top: 18px; padding: 16px; border: 1.5px solid var(--red); border-radius: 14px; background: #fff5f5; }
.danger-zone > div { display: grid; gap: 4px; }
.danger-zone small { color: #6f3d42; line-height: 1.45; }
.danger-zone .form-status { grid-column: 1 / -1; margin: 0; }
.delete-person-button { border: 1.5px solid var(--red); border-radius: 999px; background: #fff; color: var(--red); padding: 11px 15px; font: inherit; font-size: .78rem; font-weight: 900; cursor: pointer; }
.delete-person-button:hover { background: var(--red); color: #fff; }
.delete-person-button:disabled { cursor: wait; opacity: .6; }
.class-delete-zone { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px 18px; align-items: center; margin-top: 12px; padding: 14px; border: 1.5px solid var(--red); border-radius: 14px; background: #fff5f5; }
.class-delete-zone > div { display: grid; gap: 3px; }
.class-delete-zone small { color: #6f3d42; }
.class-delete-zone .form-status { grid-column: 1 / -1; margin: 0; }
.delete-class-button { border: 1.5px solid var(--red); border-radius: 999px; background: #fff; color: var(--red); padding: 11px 15px; font: inherit; font-size: .78rem; font-weight: 900; cursor: pointer; }
.delete-class-button:hover { background: var(--red); color: #fff; }
.delete-class-button:disabled { cursor: wait; opacity: .6; }
.self-protection-note { margin-top: 16px !important; color: #66616d; font-size: .84rem; }
.coach-level-control { display: grid; grid-template-columns: minmax(180px,.45fr) 1fr; gap: 18px; align-items: end; }
.coach-level-control p { margin: 0 0 12px; color: #66616d; font-size: .88rem; }
.student-class-history { margin-top: 26px; }
.student-class-history h3 { font: 700 1.8rem/1 Georgia, serif; margin: 7px 0 15px; }
.coach-class-record { border-top: 1px solid var(--line); }
.coach-class-record:last-child { border-bottom: 1px solid var(--line); }
.coach-class-record > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: minmax(130px,.65fr) minmax(0,1fr) auto; gap: 14px; align-items: center; padding: 15px 5px; }
.coach-class-record > summary:hover { background: #f4f1ff; }
.coach-class-record > summary span { display: grid; }
.coach-class-record > summary small { color: #66616d; }
.coach-class-record > summary time { font-size: .84rem; font-weight: 850; }
.coach-upcoming-list { display: grid; gap: 12px; }
.coach-upcoming-record { border: 1.5px solid var(--line); border-radius: 16px; background: #fff; overflow: hidden; }
.coach-upcoming-record > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: minmax(220px,.8fr) minmax(0,1fr) auto; gap: 16px; align-items: center; padding: 18px; }
.coach-upcoming-record > summary::-webkit-details-marker { display: none; }
.coach-upcoming-record > summary:hover { background: #f8f6ff; }
.coach-upcoming-record > summary time { font-size: .84rem; font-weight: 850; }
.coach-upcoming-record > summary span { display: grid; gap: 3px; }
.coach-upcoming-record > summary small { color: #66616d; }
.coach-upcoming-record > summary b { color: var(--blue); font-size: .76rem; }
.coach-class-actions { display: grid; gap: 16px; padding: 18px; border-top: 1px solid var(--line); background: #fbfaff; }
.coach-class-actions > .button { justify-self: start; }
.coach-class-links { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.coach-class-links > a:not(.button) { color: var(--blue); font-weight: 850; }
.reschedule-class-form { max-width: 620px; padding-top: 10px; }
.reschedule-class-form h3 { margin: 0; font-family: var(--display); font-size: 1.6rem; }
.coach-note-form { padding: 18px; margin-bottom: 12px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.invitation-card { margin-bottom: 30px; }
.next-class-card { display: flex; justify-content: space-between; align-items: center; gap: 30px; margin-bottom: 20px; background: var(--orange); }
.next-class-card h2 { font: 700 2.6rem/1 Georgia, serif; margin: 12px 0; }
.portal-error { max-width: 680px; margin: 90px auto; padding: 38px; border: 2px solid var(--ink); border-radius: 26px; background: #fff; box-shadow: 8px 9px 0 var(--coral); text-align: center; }
.portal-error strong { font: 700 2.4rem/1 Georgia, serif; }
.portal-error .button { border: 0; margin-top: 16px; }
.review-wait { margin-bottom: 28px; padding: 24px 28px; background: #fff7ef; border: 2px solid var(--ink); border-radius: 20px; box-shadow: 6px 7px 0 var(--orange); }
.review-wait strong { font: 700 1.65rem/1.05 Georgia,serif; }
.review-wait p { margin: 10px 0 0; color: #5b5661; }
.assessment-history { margin-bottom: 30px; }
.assessment-history .card-heading p { margin: 8px 0 0; color: #66616d; }
.assessment-list { display: grid; }
.assessment-row { width: 100%; display: grid; grid-template-columns: minmax(110px,.75fr) minmax(180px,1.2fr) minmax(150px,.8fr); gap: 18px; align-items: center; padding: 18px 12px; border: 0; border-top: 1px solid var(--line); background: transparent; color: var(--ink); font: inherit; text-align: left; cursor: pointer; transition: background .18s ease, transform .18s ease; }
.assessment-row:last-child { border-bottom: 1px solid var(--line); }
.assessment-row:hover { background: #f5f3ff; transform: translateX(4px); }
.assessment-row:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; }
.assessment-row.is-selected { background: #efedff; box-shadow: inset 5px 0 0 var(--blue); }
.assessment-row:disabled { cursor: default; opacity: .68; }
.assessment-row:disabled:hover { background: transparent; transform: none; }
.assessment-row time { font-size: .86rem; font-weight: 850; }
.assessment-summary { display: grid; }
.assessment-summary small { color: #66616d; font-weight: 650; }
.assessment-status { display: grid; justify-items: end; color: var(--blue); font-size: .78rem; font-weight: 900; text-transform: uppercase; }
.assessment-status em { margin-top: 4px; color: var(--ink); font-size: .72rem; font-style: normal; text-decoration: underline; text-underline-offset: 3px; }
.feedback-card { margin-bottom: 30px; background: linear-gradient(145deg,#fff 0%,#fff8f1 100%); }
.feedback-card:focus { outline: none; }
.feedback-intro { border-top: 1px solid var(--line); padding-top: 22px; }
.feedback-intro span { color: var(--blue); font-weight: 900; text-transform: uppercase; font-size: .78rem; }
.feedback-intro p { font: 700 clamp(1.7rem,3vw,2.5rem)/1.05 Georgia,serif; max-width: 850px; margin: 12px 0 26px; }
.feedback-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.feedback-grid article,.practice-plan { border: 2px solid var(--ink); border-radius: 18px; padding: 22px; background: #fff; }
.feedback-grid article:first-child { box-shadow: 5px 6px 0 var(--blue); }
.feedback-grid article:last-child { box-shadow: 5px 6px 0 var(--coral); }
.feedback-card ul,.feedback-card ol { margin: 14px 0 0; padding-left: 21px; display: grid; gap: 10px; }
.practice-plan { margin-top: 22px; box-shadow: 5px 6px 0 var(--orange); }
.speakup-help { margin-top: 28px; padding: 26px; background: var(--blue); color: #fff; border-radius: 20px; }
.speakup-help strong { font: 700 1.65rem/1.08 Georgia,serif; }
.speakup-help p { color: rgba(255,255,255,.8); }
.speakup-help .button { display: inline-flex; margin-top: 8px; background: var(--coral); }
.feedback-plain { white-space: pre-line; }
[hidden] { display: none !important; }

/* Public language test */
.test-page { min-height: 100vh; background: linear-gradient(145deg,#fff 0%,#f4f3ff 58%,#fff0e2 100%); }
.test-header { width: min(1180px, calc(100% - 36px)); margin: 18px auto 0; padding: 12px 18px; display: flex; justify-content: space-between; align-items: center; }
.test-shell { width: min(1180px, calc(100% - 40px)); margin: 50px auto 90px; display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(42px,7vw,96px); align-items: start; }
.test-intro { position: sticky; top: 130px; padding-top: 38px; }
.test-intro h1 { font: 700 clamp(3.7rem,6vw,6.5rem)/.9 Georgia,serif; letter-spacing: -.065em; margin: 22px 0 28px; }
.test-intro > p:last-of-type { color: #56515e; font-size: 1.08rem; max-width: 560px; }
.test-promise { margin-top: 42px; padding: 24px; background: var(--orange); border: 2px solid var(--ink); border-radius: 20px; box-shadow: 6px 7px 0 var(--ink); max-width: 500px; }
.test-promise strong { font: 700 1.8rem Georgia,serif; }
.test-promise p { margin: 8px 0 0; font-weight: 650; }
.test-card { background: #fff; border: 2px solid var(--ink); border-radius: 30px; box-shadow: 10px 11px 0 var(--ink); padding: clamp(26px,4vw,48px); }
.test-card h2 { font: 700 clamp(2.6rem,5vw,4.2rem)/.95 Georgia,serif; letter-spacing: -.045em; margin: 28px 0 8px; }
.test-card-lead { color: #66616e; margin: 0 0 32px; }
.test-progress { display: grid; grid-template-columns: 34px 1fr 34px 1fr 34px; gap: 10px; align-items: center; }
.test-progress span { width: 34px; height: 34px; border: 2px solid var(--ink); border-radius: 50%; display: grid; place-items: center; font-weight: 900; background: #fff; }
.test-progress span.active { background: var(--blue); color: #fff; }
.test-progress i { height: 2px; background: var(--line); }
#assessment-form { display: grid; gap: 30px; }
.test-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.test-fields label, .answer-panel label { display: grid; gap: 8px; font-weight: 850; }
.test-fields input, .answer-panel textarea { width: 100%; border: 1.5px solid #aaa5b2; border-radius: 13px; padding: 14px 15px; font: inherit; resize: vertical; }
.test-fields input:focus, .answer-panel textarea:focus { outline: 3px solid rgba(31,32,169,.18); border-color: var(--blue); }
.honeypot { position: absolute !important; left: -10000px; }
.language-choice, .format-choice { border: 0; padding: 0; margin: 0; }
.language-choice legend, .format-choice legend { font-weight: 900; margin-bottom: 13px; }
.language-choice { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.language-choice legend { grid-column: 1 / -1; }
.language-choice label { position: relative; }
.language-choice input { position: absolute; opacity: 0; }
.choice-card { min-height: 96px; border: 2px solid var(--ink); border-radius: 17px; padding: 18px; display: grid; align-content: center; cursor: pointer; transition: transform .18s ease, box-shadow .18s ease; }
.choice-card b { font: 700 1.65rem Georgia,serif; }
.choice-card small { font-weight: 700; }
.choice-english { background: #ededff; }
.choice-spanish { background: #ffe9e9; }
.language-choice input:checked + .choice-card { box-shadow: 5px 6px 0 var(--ink); transform: translate(-2px,-2px); }
.language-choice input[value="English"]:checked + .choice-card { border-color: var(--blue); }
.language-choice input[value="Spanish"]:checked + .choice-card { border-color: var(--red); }
.format-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.format-tab { min-height: 62px; border: 1.5px solid #aaa5b2; background: #fff; border-radius: 13px; display: flex; align-items: center; justify-content: center; gap: 10px; font: inherit; cursor: pointer; }
.format-tab.active { color: #fff; background: var(--blue); border-color: var(--blue); }
.answer-panel { background: #f7f6fb; border-radius: 18px; padding: 22px; }
.answer-meta { display: flex; justify-content: space-between; margin-top: 7px; color: #6d6873; }
.audio-prompt { margin: 0 0 18px; font-weight: 750; }
.recorder-box { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.record-button { border: 2px solid var(--ink); border-radius: 999px; padding: 12px 18px; background: #fff; display: inline-flex; gap: 9px; align-items: center; font: inherit; cursor: pointer; }
.record-dot { width: 13px; height: 13px; border-radius: 50%; background: var(--red); }
.record-button.recording { background: var(--red); color: #fff; }
.record-button.recording .record-dot { background: #fff; animation: record-pulse .8s ease infinite alternate; }
@keyframes record-pulse { to { opacity: .35; transform: scale(.72); } }
#record-timer { font-variant-numeric: tabular-nums; font-weight: 900; }
#audio-preview { width: 100%; }
.upload-divider { display: flex; align-items: center; gap: 12px; color: #797480; margin: 16px 0; }
.upload-divider::before,.upload-divider::after { content: ''; height: 1px; flex: 1; background: var(--line); }
.file-drop { border: 2px dashed #aaa5b2; border-radius: 16px; padding: 22px; text-align: center; display: grid !important; place-items: center; cursor: pointer; }
.file-drop input { position: absolute; opacity: 0; }
.file-drop > span { font-size: 1.8rem; color: var(--blue); }
.file-drop small { color: #6d6873; }
.selected-audio { margin: 10px 0 0; color: var(--blue); font-weight: 800; }
.consent-line,.access-line { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: start; font-size: .91rem; color: #55515b; }
.consent-line input,.access-line input { width: 18px; height: 18px; accent-color: var(--blue); }
.test-submit { width: 100%; border: 0; cursor: pointer; font: inherit; }
.test-submit:disabled { opacity: .58; cursor: wait; }
.test-success { grid-column: 1 / -1; max-width: 760px; margin: 70px auto; padding: clamp(38px,6vw,70px); text-align: center; background: #fff; border: 2px solid var(--ink); border-radius: 32px; box-shadow: 11px 12px 0 var(--blue); }
.success-mark { width: 76px; height: 76px; display: grid; place-items: center; margin: 0 auto 28px; background: var(--orange); border: 2px solid var(--ink); border-radius: 50%; font-size: 2.5rem; font-weight: 950; }
.test-success .eyebrow { justify-content: center; }
.test-success h2 { font: 700 clamp(3rem,6vw,5.7rem)/.9 Georgia,serif; letter-spacing: -.06em; margin: 20px 0 24px; }
.test-success > p:not(.eyebrow) { color: #56515e; font-size: 1.08rem; }
.test-success .button { margin-top: 20px; }
.contact-shell { align-items: start; }
.contact-card { margin-top: 34px; }
.contact-card form { display: grid; gap: 24px; }
.contact-field { display: grid; gap: 8px; font-weight: 850; }
.contact-field select,.contact-field textarea { width: 100%; border: 1.5px solid #aaa5b2; border-radius: 13px; padding: 14px 15px; font: inherit; background: #fff; resize: vertical; }
.contact-field select:focus,.contact-field textarea:focus { outline: 3px solid rgba(31,32,169,.18); border-color: var(--blue); }
.contact-message-list { display: grid; gap: 14px; }
.contact-message-list article { border: 1.5px solid #d8d3df; border-radius: 16px; padding: 18px; }
.contact-message-head { display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.contact-message-head div { display: grid; gap: 4px; }
.contact-message-list article > b { display: inline-block; margin-top: 12px; color: var(--blue); text-transform: uppercase; font-size: .76rem; letter-spacing: .07em; }
.contact-message-list article p { white-space: pre-wrap; margin: 10px 0; color: #4f4a56; }
.contact-message-list article a { color: var(--blue); font-weight: 850; }
.contact-status { border: 1.5px solid var(--ink); border-radius: 999px; padding: 7px 10px; background: #fff; font-weight: 800; }

@media (max-width: 850px) {
  .test-shell { grid-template-columns: 1fr; margin-top: 20px; }
  .test-intro { position: static; padding-top: 10px; }
  .test-intro h1 { font-size: clamp(3.4rem,14vw,5.5rem); }
}
@media (max-width: 580px) {
  .test-header { padding-inline: 2px; }
  .test-header .brand-mark { width: 44px; }
  .test-header .brand { font-size: 1rem; }
  .test-fields,.language-choice,.format-tabs { grid-template-columns: 1fr; }
  .language-choice legend { grid-column: auto; }
  .test-card { padding: 24px 18px; }
  .answer-panel { padding: 18px 14px; }
}
.menu-button { display: none; background: none; border: 0; padding: 10px; }
.menu-button > span:not(.sr-only) { display: block; width: 25px; height: 2px; background: #000; margin: 5px; }

.hero { min-height: 740px; padding: 88px 0 74px; display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr); gap: clamp(32px, 4vw, 60px); align-items: center; }
.hero-copy, .hero-visual { min-width: 0; }
.eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 22px; font-weight: 850; font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; }
.eyebrow span { width: 38px; height: 5px; background: var(--coral); border-radius: 999px; }
.hero h1, .fear-grid h2, .method-heading h2, .section-title-row h2, .podcast-copy h2, .start-card h2, .faq-title h2 {
  font-family: Georgia, "Times New Roman", serif;
  letter-spacing: -.055em;
  line-height: .95;
  margin: 0;
}
.hero h1 { font-size: clamp(4rem, 6.4vw, 6.7rem); max-width: 740px; }
.hero h1 em { color: var(--blue); font-style: italic; }
.hero-lead { max-width: 620px; font-size: 1.18rem; line-height: 1.7; margin: 30px 0; color: #3f3c46; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 22px; align-items: center; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 18px; text-decoration: none; padding: 17px 22px; border-radius: 15px; font-weight: 850; transition: transform .2s ease, box-shadow .2s ease; }
.button:hover { transform: translateY(-3px); }
.button-primary { background: var(--coral); color: #fff; box-shadow: 0 14px 30px rgba(232,16,28,.25); }
.button-primary:hover { box-shadow: 0 18px 36px rgba(232,16,28,.36); }
.text-link { font-weight: 850; text-underline-offset: 5px; }
.microcopy { font-size: .82rem; color: #686570; margin-top: 15px; }

.hero-visual { position: relative; }
.hero-image-wrap { position: relative; aspect-ratio: 4 / 5; max-height: 620px; overflow: hidden; border-radius: 32px; background: var(--mist); box-shadow: var(--shadow); }
.hero-image-wrap > img { width: 100%; height: 100%; object-fit: cover; object-position: center 38%; }
.floating-note { position: absolute; padding: 14px 17px; line-height: 1.15; border: 2px solid var(--ink); box-shadow: 5px 6px 0 var(--ink); font-size: .9rem; transform: rotate(-4deg); }
.note-one { top: 9%; left: 2%; background: var(--orange); }
.note-two { bottom: 11%; right: 1%; background: #fff; transform: rotate(5deg); }
.sound-wave { position: absolute; right: -18px; top: 41%; padding: 14px 11px; border-radius: 999px; background: var(--blue); display: flex; align-items: center; gap: 4px; box-shadow: 4px 5px 0 var(--ink); }
.sound-wave i { display: block; width: 4px; border-radius: 10px; background: #fff; animation: sound 1.1s ease-in-out infinite alternate; }
.sound-wave i:nth-child(1), .sound-wave i:nth-child(8) { height: 12px; }
.sound-wave i:nth-child(2), .sound-wave i:nth-child(7) { height: 22px; animation-delay: -.3s; }
.sound-wave i:nth-child(3), .sound-wave i:nth-child(6) { height: 34px; animation-delay: -.6s; }
.sound-wave i:nth-child(4), .sound-wave i:nth-child(5) { height: 46px; animation-delay: -.9s; }
@keyframes sound { to { transform: scaleY(.55); } }

.promise-strip { background: var(--ink); color: #fff; padding: 20px 30px; display: flex; justify-content: center; align-items: center; gap: 28px; font-weight: 850; text-transform: uppercase; letter-spacing: .05em; overflow: hidden; white-space: nowrap; }
.promise-strip span { color: var(--orange); }

.testimonials-section { background: var(--mist); padding: 105px 0 115px; border-top: 1px solid var(--line); }
.testimonials-heading { display: grid; grid-template-columns: 1fr .48fr; gap: 70px; align-items: end; margin-bottom: 48px; }
.testimonials-heading h2 { font: 700 clamp(3.8rem, 6vw, 6.2rem)/.94 Georgia, "Times New Roman", serif; letter-spacing: -.055em; margin: 0; max-width: 850px; }
.testimonials-heading > p { margin: 0 0 8px; color: #55515d; font-size: 1.12rem; line-height: 1.65; }
.testimonial-carousel { width: min(600px, 100%); margin-inline: auto; position: relative; padding-inline: 65px; }
.testimonial-viewport { overflow: hidden; padding: 0 0 14px; }
.testimonial-track { display: flex; transition: transform .45s cubic-bezier(.22,.75,.2,1); touch-action: pan-y; }
.testimonial-card { position: relative; min-width: 100%; flex: 0 0 100%; border: 3px solid var(--ink); border-radius: 30px; padding: 18px; box-shadow: 9px 10px 0 var(--ink); overflow: hidden; }
.testimonial-red { background: var(--coral); }
.testimonial-blue { background: var(--blue); color: #fff; }
.testimonial-orange { background: var(--orange); }
.testimonial-video-wrap { min-height: 0; aspect-ratio: 9 / 16; overflow: hidden; border: 2px solid var(--ink); border-radius: 20px; background: #09090b; }
.testimonial-video-wrap video { display: block; width: 100%; height: 100%; object-fit: contain; background: #09090b; }
.testimonial-person { display: flex; align-items: end; justify-content: space-between; gap: 20px; padding: 22px 8px 5px; }
.testimonial-person span { font-size: .75rem; font-weight: 950; letter-spacing: .1em; }
.testimonial-person strong { font: 700 2.3rem/.95 Georgia, "Times New Roman", serif; letter-spacing: -.04em; }
.testimonial-arrow { position: absolute; z-index: 3; top: 45%; width: 52px; height: 52px; border: 2px solid var(--ink); border-radius: 50%; background: #fff; color: var(--ink); box-shadow: 4px 5px 0 var(--ink); font: 900 1.4rem/1 inherit; cursor: pointer; transition: transform .18s ease, background .18s ease; }
.testimonial-arrow:hover { background: var(--orange); transform: translateY(-2px); }
.testimonial-arrow:focus-visible { outline: 4px solid var(--orange); outline-offset: 3px; }
.testimonial-prev { left: 0; }
.testimonial-next { right: 0; }
.testimonial-controls { display: flex; justify-content: center; align-items: center; gap: 16px; margin-top: 20px; }
.testimonial-dots { display: flex; gap: 8px; }
.testimonial-dot { width: 12px; height: 12px; padding: 0; border: 2px solid var(--ink); border-radius: 50%; background: #fff; cursor: pointer; }
.testimonial-dot[aria-current="true"] { background: var(--orange); transform: scale(1.2); }
.testimonial-count { min-width: 44px; font-size: .8rem; font-weight: 900; letter-spacing: .06em; }

.fear-section { padding: 120px 0; }
.section-kicker { display: inline-block; background: var(--orange); border-radius: 999px; padding: 9px 15px; font-weight: 850; transform: rotate(-2deg); margin-bottom: 24px; }
.fear-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 100px; }
.fear-grid h2 { font-size: clamp(4rem, 7vw, 7rem); }
.fear-grid h2 span { display: block; color: var(--coral); font-style: italic; }
.situations article { display: grid; grid-template-columns: 60px 1fr; gap: 20px; padding: 25px 0; border-bottom: 1px solid var(--line); align-items: center; }
.situations article:first-child { border-top: 1px solid var(--line); }
.situations span { font-weight: 900; color: var(--blue); }
.situations p { margin: 0; font-size: 1.2rem; font-weight: 690; }

.method-section { background: var(--blue); color: #fff; padding: 110px 0 120px; }
.eyebrow-light span { background: var(--orange); }
.method-heading { display: grid; grid-template-columns: 1.4fr .6fr; gap: 80px; align-items: end; }
.method-heading h2 { font-size: clamp(3.5rem, 6vw, 6rem); max-width: 850px; }
.method-heading > p { margin: 0 0 5px; font-size: 1.08rem; color: rgba(255,255,255,.8); }
.method-cards { margin-top: 62px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.method-card { min-height: 340px; border-radius: var(--radius); padding: 30px; position: relative; overflow: hidden; color: var(--ink); border: 2px solid var(--ink); box-shadow: 7px 8px 0 rgba(9, 0, 37, .62); }
.method-card h3 { font-family: Georgia, serif; font-size: 2.35rem; letter-spacing: -.04em; line-height: 1; max-width: 380px; margin: 70px 0 16px; }
.method-card p { max-width: 460px; font-size: 1.02rem; }
.card-number { position: absolute; top: 25px; left: 28px; font-weight: 950; border: 2px solid currentColor; border-radius: 999px; padding: 4px 10px; }
.method-card.coral { background: var(--coral); }
.method-card.white { background: #fff; }
.method-card.orange { background: var(--orange); }
.method-card.blue { background: #2d2aff; color: #fff; border-color: #fff; }
.mini-bubbles { position: absolute; right: 24px; bottom: 16px; width: 145px; height: auto; filter: drop-shadow(5px 6px 0 rgba(0,0,0,.75)); }
.quote-chip, .switch-chip { position: absolute; right: 26px; bottom: 24px; border: 2px solid; border-radius: 10px; padding: 10px 13px; font-weight: 850; transform: rotate(-2deg); }
.scribble { position: absolute; right: 35px; bottom: 20px; font-size: 5rem; transform: rotate(-25deg); }

.languages-section { padding: 120px 0; }
.section-title-row { display: grid; grid-template-columns: 1fr .45fr; gap: 80px; align-items: end; margin-bottom: 50px; }
.section-title-row h2 { font-size: clamp(4rem, 6vw, 6rem); }
.section-title-row > p { margin: 0; font-size: 1.14rem; color: #55515d; }
.language-panels { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.language-panel { padding: 35px; min-height: 470px; border-radius: 30px; display: flex; flex-direction: column; }
.english-panel { color: #fff; background: var(--ink); }
.spanish-panel { background: var(--mist); border: 2px solid var(--blue); }
.panel-top { display: flex; justify-content: space-between; align-items: center; }
.panel-top > span { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: var(--coral); font-weight: 950; }
.panel-top p { font-size: .82rem; font-weight: 850; text-transform: uppercase; }
.language-panel h3 { font: 700 3.2rem/.98 Georgia, serif; letter-spacing: -.045em; margin: 60px 0 30px; max-width: 450px; }
.language-panel ul { margin: 0; padding: 0; list-style: none; }
.language-panel li { padding: 13px 0; border-bottom: 1px solid currentColor; }
.language-panel a { margin-top: auto; padding-top: 35px; font-weight: 900; text-underline-offset: 5px; display: flex; justify-content: space-between; }

.podcast-section { background: var(--ink); color: #fff; padding: 115px 0; }
.podcast-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 90px; align-items: center; }
.podcast-player-shell { min-height: 520px; border-radius: 35px; background: #09090b; position: relative; overflow: hidden; border: 3px solid #fff; display: grid; place-items: center; }
.podcast-player-shell video,
.podcast-player-shell iframe { display: block; width: 100%; max-height: 650px; background: #000; object-fit: contain; border: 0; }
.podcast-player-shell iframe { height: 650px; }
.podcast-player-shell [hidden] { display: none; }
.podcast-player-shell .podcast-badge { z-index: 3; }
.podcast-now { position: absolute; z-index: 3; left: 20px; right: 20px; bottom: 70px; display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 12px 15px; background: rgba(0,0,0,.78); border: 1px solid rgba(255,255,255,.55); border-radius: 14px; backdrop-filter: blur(8px); pointer-events: none; }
.podcast-now span { color: var(--orange); font-size: .75rem; font-weight: 950; letter-spacing: .08em; }
.podcast-now strong { font-size: .94rem; }
.podcast-art { min-height: 520px; border-radius: 35px; background: var(--orange); position: relative; overflow: hidden; border: 3px solid #fff; }
.podcast-art::after { content: ""; position: absolute; width: 390px; height: 390px; border: 60px solid var(--blue); border-radius: 50%; left: 50%; top: 50%; transform: translate(-50%,-50%); opacity: .9; }
.podcast-badge { position: absolute; top: 25px; left: 25px; z-index: 4; background: #fff; color: #000; padding: 8px 13px; border: 2px solid #000; font-weight: 950; transform: rotate(-3deg); }
.portrait-card { position: absolute; z-index: 3; width: 190px; height: 260px; bottom: 44px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 95px 95px 22px 22px; border: 3px solid #000; box-shadow: 8px 10px 0 #000; }
.portrait-card span { font: 700 4.5rem Georgia, serif; }
.portrait-card small { font-weight: 950; text-transform: uppercase; }
.portrait-ann { left: 45px; background: var(--coral); transform: rotate(-6deg); }
.portrait-paul { right: 45px; background: #fff; color: #000; transform: rotate(6deg); }
.play-button { position: absolute; z-index: 5; left: 50%; top: 48%; transform: translate(-50%,-50%); width: 72px; height: 72px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: var(--blue); border: 3px solid #000; font-size: 1.6rem; box-shadow: 5px 6px 0 #000; }
.podcast-copy h2 { font-size: clamp(3.7rem, 5.8vw, 6rem); }
.podcast-copy > p:not(.eyebrow) { font-size: 1.08rem; color: #c9c6d0; margin: 30px 0 40px; max-width: 630px; }
.episode-row { display: grid; grid-template-columns: 70px 1fr auto; gap: 16px; align-items: center; border-top: 1px solid #4c4952; padding: 18px 0; }
.episode-row:last-of-type { border-bottom: 1px solid #4c4952; }
.episode-row > span { font-size: .8rem; color: var(--orange); font-weight: 900; }
.episode-row button,.episode-status { background: transparent; color: #fff; border: 1px solid #77727e; border-radius: 999px; padding: 7px 10px; font-size: .82rem; }
.episode-row button { cursor: pointer; }
.episode-live button { background: var(--orange); color: var(--ink); border-color: var(--orange); font-weight: 900; }
.podcast-cadence { margin: 18px 0 0; color: #a9a5af; font-size: .86rem; font-weight: 800; }
.podcast-archive { margin: 22px 0 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; color: #d7d4dc; font-size: .92rem; font-weight: 800; }
.podcast-archive a { color: #fff; text-decoration: none; border-bottom: 2px solid var(--orange); padding-bottom: 2px; }
.podcast-archive a:hover,.podcast-archive a:focus-visible { color: var(--orange); }

.start-section { padding: 120px 0; }
.start-card { background: var(--coral); color: #fff; border-radius: 36px; padding: 55px; display: grid; grid-template-columns: 1fr .75fr; gap: 80px; box-shadow: 10px 12px 0 var(--ink); border: 3px solid var(--ink); }
.start-card h2 { font-size: clamp(4rem, 6vw, 6.4rem); }
.start-copy > p { font-size: 1.1rem; margin-top: 0; }
.check-list { display: flex; flex-wrap: wrap; gap: 14px; margin: 30px 0; }
.check-list span { border: 1px solid rgba(255,255,255,.65); padding: 7px 11px; border-radius: 999px; font-weight: 750; }
.button-white { background: #fff; color: var(--ink); }

.faq-section { padding: 10px 0 130px; display: grid; grid-template-columns: .72fr 1.28fr; gap: 80px; }
.faq-title h2 { font-size: clamp(3.5rem, 5vw, 5.2rem); }
.faq-list details { border-top: 1px solid var(--line); }
.faq-list details:last-child { border-bottom: 1px solid var(--line); }
.faq-list summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 20px; padding: 24px 0; font-weight: 850; font-size: 1.08rem; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { color: var(--blue); font-size: 1.4rem; transition: transform .2s; }
.faq-list details[open] summary span { transform: rotate(45deg); }
.faq-list details p { margin: -5px 35px 24px 0; color: #55515d; }

.site-footer { background: var(--mist); border-top: 1px solid var(--line); }
.footer-top { padding: 70px 0; display: flex; justify-content: space-between; gap: 70px; }
.brand-footer { font-size: 1.6rem; }
.footer-top > div:first-child > p { font: italic 1.35rem Georgia, serif; }
.footer-links { display: flex; gap: 90px; }
.footer-links div { display: flex; flex-direction: column; gap: 8px; }
.footer-links strong { margin-bottom: 5px; }
.footer-links a { text-decoration: none; }
.footer-links a:hover { color: var(--blue); }
.footer-bottom { border-top: 1px solid var(--line); padding: 18px 0 25px; display: flex; justify-content: space-between; color: #6a6570; font-size: .85rem; }
.contact-float { position: fixed; right: 22px; bottom: 20px; z-index: 90; background: var(--blue); color: #fff; border: 2px solid #fff; border-radius: 999px; padding: 12px 17px; display: flex; gap: 9px; align-items: center; text-decoration: none; box-shadow: 4px 6px 0 var(--ink); }

@media (max-width: 960px) {
  .portal-section { grid-template-columns: 1fr; padding: 48px 30px; }
  .portal-login-grid { grid-template-columns: 1fr; }
  .portal-auth { grid-template-columns: 1fr; padding: 45px 0; gap: 40px; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .menu-button { display: block; }
  .language-switch { margin-left: auto; margin-right: 0; }
  .site-nav { position: absolute; top: calc(100% + 8px); left: 0; right: 0; background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 18px; flex-direction: column; align-items: stretch; box-shadow: var(--shadow); opacity: 0; transform: translateY(-10px); pointer-events: none; transition: .2s ease; }
  .site-nav.open { opacity: 1; transform: translateY(0); pointer-events: auto; }
  .site-nav a { padding: 8px; }
  .nav-cta { text-align: center; }
  .hero { grid-template-columns: 1fr; padding-top: 60px; }
  .hero-copy { max-width: 790px; }
  .hero-visual { width: min(640px, 100%); margin-inline: auto; }
  .hero-image-wrap { aspect-ratio: 4/5; border-radius: 34px; }
  .fear-grid, .method-heading, .section-title-row, .testimonials-heading, .podcast-grid, .start-card, .faq-section { grid-template-columns: 1fr; gap: 45px; }
  .method-cards { grid-template-columns: 1fr 1fr; }
  .podcast-art,.podcast-player-shell { min-height: 500px; width: min(600px, 100%); margin-inline: auto; }
}

@media (max-width: 700px) {
  .feedback-grid { grid-template-columns: 1fr; }
  .feedback-card,.review-wait { padding: 22px 18px; }
  .assessment-row { grid-template-columns: 1fr auto; gap: 8px 14px; padding: 16px 8px; }
  .assessment-row time { grid-column: 1; }
  .assessment-summary { grid-column: 1; }
  .assessment-status { grid-column: 2; grid-row: 1 / span 2; }
  .portal-section { margin: 50px 14px 0; padding: 38px 20px; border-radius: 24px; }
  .portal-actions { grid-template-columns: 1fr; }
  .portal-card { min-height: 240px; }
  .portal-header { margin-top: 8px; }
  .portal-back { font-size: .85rem; }
  .portal-shell { margin-top: 25px; }
  .login-panel { padding: 28px 22px; }
  .portal-support { align-items: flex-start; flex-direction: column; }
  .portal-header-actions { gap: 8px; }
  .portal-security-link { max-width: 96px; line-height: 1.15; }
  .session-name { display: none; }
  .portal-auth-copy h1 { font-size: 4rem; }
  .portal-auth-card { padding: 28px 22px; }
  .dashboard-welcome { align-items: flex-start; flex-direction: column; }
  .dashboard-welcome h1 { font-size: 4rem; }
  .dashboard-stats { grid-template-columns: 1fr; }
  .form-row { grid-template-columns: 1fr; }
  .crm-contact-grid { grid-template-columns: 1fr; }
  .crm-email { justify-self: start; }
  .crm-record > summary, .person-record > summary, .invitation-record > summary, .class-student-group > summary { grid-template-columns: auto minmax(0,1fr); }
  .crm-record > summary b, .person-record > summary b, .invitation-record > summary b, .class-student-group > summary b { grid-column: 2; }
  .admin-assessment > summary, .class-record > summary { grid-template-columns: 1fr; }
  .people-list article, .class-list article { grid-template-columns: auto 1fr; }
  .people-list b, .class-list b { grid-column: 2; }
  .next-class-card { align-items: stretch; flex-direction: column; }
  .coach-student-record > summary { grid-template-columns: auto minmax(0,1fr); }
  .coach-student-record > summary b { grid-column: 2; }
  .student-facts { grid-template-columns: 1fr; }
  .coach-level-control { grid-template-columns: 1fr; }
  .coach-class-record > summary { grid-template-columns: 1fr; }
  .coach-upcoming-record > summary { grid-template-columns: 1fr; }
  .section-shell { width: min(100% - 28px, 1180px); }
  .site-header { min-height: 64px; }
  .brand { font-size: 1.05rem; }
  .brand-mark { width: 48px; }
  .language-switch { gap: 3px; padding: 3px; }
  .lang-option { min-width: 40px; min-height: 34px; padding: 4px 7px; }
  .lang-option small { display: none; }
  .hero { min-height: auto; padding: 54px 0 55px; gap: 42px; }
  .hero h1 { font-size: clamp(3.35rem, 15vw, 5rem); }
  .hero-lead { font-size: 1.04rem; }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .button { width: 100%; }
  .promise-strip { justify-content: flex-start; overflow-x: auto; font-size: .82rem; }
  .fear-section, .languages-section, .testimonials-section, .start-section { padding: 85px 0; }
  .testimonials-heading h2 { font-size: 3.8rem; }
  .testimonial-carousel { width: min(460px, 100%); padding-inline: 0; }
  .testimonial-card { padding: 12px; border-radius: 24px; box-shadow: 6px 7px 0 var(--ink); }
  .testimonial-video-wrap { border-radius: 16px; }
  .testimonial-person { padding: 18px 6px 4px; }
  .testimonial-person strong { font-size: 2rem; }
  .testimonial-arrow { top: auto; bottom: 2px; width: 44px; height: 44px; background: var(--paper); }
  .testimonial-prev { left: 8px; }
  .testimonial-next { right: 8px; }
  .testimonial-controls { min-height: 44px; margin-top: 14px; }
  .fear-grid h2, .section-title-row h2 { font-size: 3.8rem; }
  .method-section, .podcast-section { padding: 85px 0; }
  .method-heading h2, .podcast-copy h2 { font-size: 3.6rem; }
  .method-cards, .language-panels { grid-template-columns: 1fr; }
  .method-card { min-height: 320px; }
  .language-panel { min-height: 440px; }
  .podcast-art,.podcast-player-shell { min-height: 400px; }
  .podcast-player-shell iframe { height: 500px; }
  .portrait-card { width: 130px; height: 195px; bottom: 40px; }
  .portrait-ann { left: 25px; }
  .portrait-paul { right: 25px; }
  .portrait-card span { font-size: 3.3rem; }
  .podcast-art::after { width: 280px; height: 280px; border-width: 45px; }
  .episode-row { grid-template-columns: 58px 1fr; }
  .episode-row button,.episode-status { grid-column: 2; justify-self: start; }
  .start-card { padding: 35px 24px; }
  .start-card h2 { font-size: 3.8rem; }
  .footer-top { flex-direction: column; }
  .footer-links { flex-direction: column; gap: 30px; }
  .footer-bottom { flex-direction: column; gap: 5px; }
  .contact-float b { display: none; }
  .contact-float { width: 50px; height: 50px; padding: 0; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
}
