/* Entry experience: shared resource, journey and choice surfaces.
   Layout gutters remain owned by lx-wrap/onb-shell. These rules do not change
   catalogue visibility, quiz scoring, profile checkpoints or paid access. */

/* Semantic accents retain sufficient contrast in both site themes. */
.lx [data-tone], .entry-persona {
  --entry-color: #1d4ed8;
  --entry-soft: #dbeafe;
  --entry-glow: #3b82f614;
}
.lx [data-tone="violet"], .entry-persona[data-persona="un"], .entry-persona[data-persona="it"] {
  --entry-color: #6d28d9; --entry-soft: #ede9fe; --entry-glow: #8b5cf614;
}
.lx [data-tone="teal"], .entry-persona[data-persona="pd"], .entry-persona[data-persona="ln"] {
  --entry-color: #0f766e; --entry-soft: #ccfbf1; --entry-glow: #14b8a614;
}
.lx [data-tone="amber"], .entry-persona[data-persona="mk"], .entry-persona[data-persona="av"] {
  --entry-color: #92400e; --entry-soft: #fef3c7; --entry-glow: #f59e0b14;
}
.lx [data-tone="rose"] { --entry-color: #be123c; --entry-soft: #ffe4e6; --entry-glow: #f43f5e14; }
html.dark .lx [data-tone], html.dark .entry-persona { --entry-color: #93c5fd; --entry-soft: #1e3556; }
html.dark .lx [data-tone="violet"], html.dark .entry-persona[data-persona="un"], html.dark .entry-persona[data-persona="it"] { --entry-color: #c4b5fd; --entry-soft: #332952; }
html.dark .lx [data-tone="teal"], html.dark .entry-persona[data-persona="pd"], html.dark .entry-persona[data-persona="ln"] { --entry-color: #5eead4; --entry-soft: #173d3d; }
html.dark .lx [data-tone="amber"], html.dark .entry-persona[data-persona="mk"], html.dark .entry-persona[data-persona="av"] { --entry-color: #fcd34d; --entry-soft: #423521; }
html.dark .lx [data-tone="rose"] { --entry-color: #fda4af; --entry-soft: #48283b; }

/* Resources have two distinct rhythms: subject tiles and a reading list. */
.entry-resources { display: grid; grid-template-columns: 1.05fr 1fr; gap: 40px; margin-top: 48px; }
.entry-resources--single { grid-template-columns: 1fr; }
.entry-resource-group { min-width: 0; }
.entry-section-heading { display: flex; align-items: center; gap: 10px; min-height: 44px; margin-bottom: 18px; }
.entry-section-heading h2 { flex: 1; min-width: 0; margin: 0; font-family: Sora, sans-serif; font-size: clamp(17px, 1.6vw, 21px); font-weight: 700; line-height: 1.4; letter-spacing: -.5px; }
.entry-section-icon { display: grid; place-items: center; flex: none; width: 36px; height: 36px; border: 1px solid var(--ring); border-radius: 11px; color: var(--ct, var(--primary)); background: var(--surface); font-size: 21px; }
.entry-section-count { color: var(--muted); font-size: 12px; font-weight: 600; font-variant-numeric: tabular-nums; border: 1px solid var(--ring); border-radius: 8px; padding: 3px 7px; }
.entry-subjects { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.entry-resources--single .entry-subjects { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lx .entry-subject { position: relative; display: grid; grid-template-columns: 1fr auto; align-content: space-between; gap: 18px 10px; min-height: 130px; padding: 18px; border: 1px solid var(--ring); border-radius: 19px; background: radial-gradient(ellipse at 0 0, var(--entry-glow), transparent 80%), var(--surface); transition: border-color .2s, transform .2s, box-shadow .2s; }
.entry-subject__icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; color: var(--entry-color); background: var(--entry-soft); font-size: 25px; }
.entry-subject__title { grid-row: 2; grid-column: 1 / -1; font-size: 14px; font-weight: 650; line-height: 1.45; overflow-wrap: anywhere; }
.entry-card-arrow { flex: none; color: var(--muted); font-size: 18px; transition: transform .2s, color .2s; }
.entry-subject .entry-card-arrow { grid-column: 2; grid-row: 1; align-self: start; padding-top: 3px; }
.entry-subject:hover { border-color: var(--entry-color); transform: translateY(-3px); box-shadow: 0 8px 22px #02061712; }
.entry-subject:hover .entry-card-arrow { color: var(--entry-color); transform: translate(2px, -2px); }
.entry-guides { list-style: none; padding: 0 18px; margin: 0; border: 1px solid var(--ring); border-radius: 19px; background: var(--surface); }
.entry-guides > li + li { border-top: 1px solid var(--ring); }
.lx .entry-guide { display: flex; align-items: center; gap: 14px; min-height: 81px; padding: 15px 0; transition: background .2s; }
.entry-guide__icon { display: grid; place-items: center; flex: none; width: 38px; height: 40px; border: 1px solid var(--ring); border-radius: 11px; color: var(--ct, var(--primary)); background: var(--surface2); font-size: 22px; transition: border-color .2s; }
.entry-guide__title { flex: 1; min-width: 0; font-size: 14px; font-weight: 550; line-height: 1.55; overflow-wrap: anywhere; }
.entry-guide:hover .entry-guide__title { color: var(--ct, var(--primary)); }
.entry-guide:hover .entry-card-arrow { color: var(--ct, var(--primary)); transform: translateX(3px); }
.entry-guide:hover .entry-guide__icon { border-color: var(--ct, var(--primary)); }
.entry-guide:focus-visible { border-radius: 10px; }

/* A connected ordered path explains the journey without implying fake links. */
.entry-journey { padding-top: 44px; }
.entry-journey__heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 28px; }
.entry-journey__heading > div { max-width: 680px; }
.entry-journey__heading .lx-eyebrow { display: flex; align-items: center; gap: 8px; }
.entry-journey__heading .lx-eyebrow > span { font-size: 18px; }
.entry-journey__heading .lx-h2 { font-size: clamp(25px, 2.8vw, 36px); line-height: 1.25; margin-bottom: 0; text-wrap: balance; }
.entry-journey__heading .lx-btn { flex: none; font-size: 13px; }
.entry-journey__steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); list-style: none; padding: 0; margin: 0; border: 1px solid var(--ring); border-radius: 24px; background: var(--surface); }
.entry-journey__step { position: relative; padding: 26px 28px 28px; min-width: 0; }
.entry-journey__step + li { border-left: 1px solid var(--ring); }
.entry-journey__step:not(:last-child)::after { content: ''; position: absolute; top: 54px; left: 102px; right: 20px; border-top: 1px dashed var(--ring2); }
.entry-journey__marker { position: relative; display: grid; place-items: center; width: 58px; height: 58px; border-radius: 18px; background: var(--entry-soft); color: var(--entry-color); font-size: 31px; margin-bottom: 22px; }
.entry-journey__marker b { position: absolute; top: -6px; right: -9px; display: grid; place-items: center; width: 24px; height: 24px; border: 3px solid var(--surface); border-radius: 50%; background: var(--entry-color); color: var(--surface); font-size: 9px; font-variant-numeric: tabular-nums; }
.entry-journey__step h3 { margin: 0 0 8px; font-size: 16px; font-weight: 700; line-height: 1.4; }
.entry-journey__step p { margin: 0; max-width: 35ch; font-size: 14px; line-height: 1.65; color: var(--muted); }

/* Guest persona choices have semantic icons, not quiz answer numbers. */
.lx-onb-card { background: radial-gradient(ellipse at 100% 0, #6366f112, transparent 55%), var(--surface); }
.lx .entry-persona { position: relative; display: flex; align-items: center; gap: 10px; padding: 14px 12px; min-height: 79px; border: 1px solid var(--ring); border-radius: 15px; background: var(--surface); text-align: left; transition: border-color .18s, background .18s, transform .18s; }
.entry-persona__icon { display: grid; place-items: center; flex: none; width: 36px; height: 40px; font-size: 25px; border-radius: 11px; background: var(--entry-soft); color: var(--entry-color); }
.entry-persona__copy { flex: 1; min-width: 0; line-height: 1.4; }
.entry-persona__copy strong { font-size: 13px; font-weight: 650; }
.entry-persona__copy small { display: block; color: var(--muted); margin-top: 3px; font-size: 11px; }
.entry-persona .entry-card-arrow { font-size: 14px; }
.entry-persona:last-child { grid-column: 1/-1; }
.entry-persona:hover { border-color: var(--entry-color); background: var(--entry-glow); transform: translateY(-2px); }
.entry-persona:hover .entry-card-arrow { color: var(--entry-color); transform: translateX(2px); }
.lx .lx-lockbox { min-height: 290px; }
.lx .lx-lock-over { padding: 34px 18px 18px; }
.lx .lx-lock-over .lx-btn { white-space: normal; line-height: 1.4; text-align: center; padding-top: 10px; padding-bottom: 10px; }
.lx-step[tabindex="-1"]:focus { outline: none; }
.lx-opt[aria-disabled="true"] { cursor: default; }
.lx-feat-ico { color: var(--ct, var(--c)); font-size: 26px; }
.lx-motif { color: var(--ct, var(--c)); }
.lx-feat > div:last-child { min-width: 0; }
.lx-feat:has(.lx-cta) { background: radial-gradient(ellipse at 0 0, var(--cs), transparent 80%), var(--surface); }
.lx-feat:has(.lx-cta) .lx-cta { padding-top: 8px; }
.lx-faq { transition: box-shadow .2s; }
.lx-faq:has([aria-expanded="true"]) { box-shadow: inset 3px 0 var(--ct, var(--primary)), inset 0 0 0 1px var(--ring); }
.lx-faq-q:hover { background: var(--surface2); }
.lx :is(.entry-subject, .entry-guide, .entry-persona, .lx-faq-q):focus-visible { outline: 3px solid var(--ct, #6366f1); outline-offset: 4px; }

/* Account onboarding shares the same choice-card language. State classes and
   native form controls remain the source of truth, including resumable steps. */
.onb-page { background: radial-gradient(ellipse at 85% 0, #6366f10a, transparent 50%), var(--onb-bg); }
.onb-story, .direction-story { background: radial-gradient(ellipse at 0 0, #4759a64d, transparent 75%), #182446; }
.onb-progress { max-width: none; padding: 12px 18px; background: var(--onb-surface); border: 1px solid var(--onb-line); border-radius: 17px; }
.onb-progress li:last-child { flex: 1; }
.onb-progress button { font-size: 13px; }
.onb-progress__number { width: 32px; height: 32px; font-size: 12px; }
.entry-theme-setting { display: flex; align-items: center; justify-content: flex-end; gap: 12px; margin-bottom: 24px; }
.entry-theme-setting label { margin: 0; color: var(--onb-muted); font-size: 12px; }
.entry-theme-setting select { width: auto; max-width: 180px; font-size: 12px; border-color: var(--onb-line); }
.onb-option { min-height: 104px; padding: 18px 36px 18px 18px; background: linear-gradient(135deg, var(--onb-icon-bg), transparent 60%), var(--onb-surface); border-radius: 19px; transition: transform .18s, border-color .18s, box-shadow .18s; }
.onb-option__icon { width: 46px; height: 48px; font-size: 29px; border-radius: 14px; box-shadow: inset 0 0 0 1px #64748b12; }
.onb-option__copy strong { font-size: 14px; line-height: 1.45; }
.onb-option__copy > span { font-size: 12px; line-height: 1.5; }
.onb-option__check { width: 19px; height: 19px; top: 14px; right: 12px; font-size: 12px; }
.onb-option.is-selected { border-color: var(--onb-selected-line); box-shadow: 0 0 0 1px var(--onb-selected-line), 0 6px 16px #4c57d610; background: linear-gradient(135deg, var(--onb-icon-bg), transparent 85%), var(--onb-surface); }
.onb-option.is-selected .onb-option__check { background: #505cda; border-color: #505cda; color: white; }
.onb-option:hover { box-shadow: 0 5px 18px #02061710; }
.dark .onb-option[data-track="nat-cert"], .dark .onb-option[data-track="school"] { --onb-icon-bg: #203a35; --onb-icon: #8cdec2; }
.dark .onb-option[data-track="sat"], .dark .onb-option[data-track="university"] { --onb-icon-bg: #342b4d; --onb-icon: #c7b7ef; }
.dark .onb-option[data-track="avtotest"], .dark .onb-option[data-track="prezident"] { --onb-icon-bg: #403527; --onb-icon: #f1ce93; }
.dark .onb-option[data-track="pedagog"] { --onb-icon-bg: #40293c; --onb-icon: #efa8cc; }
.dark .onb-option[data-track="multilevel"], .dark .onb-option[data-track="ielts"] { --onb-icon-bg: #203c49; --onb-icon: #8dd4e8; }
.onb-subject { gap: 12px; padding: 14px; font-size: 14px; background: var(--onb-surface); }
.onb-subject__icon { display: grid; place-items: center; flex: none; width: 35px; height: 39px; border-radius: 10px; background: var(--onb-icon-bg); color: var(--onb-icon); font-size: 23px; }
.onb-subject__name { flex: 1; min-width: 0; }
.onb-subject__check { flex: none; }
.direction-option { min-height: 100px; }
.direction-actions__hint { font-size: 12px; }
.onb-hint, .onb-location .onb-hint { font-size: 12px; }
.onb-next { border-radius: 13px; box-shadow: 0 5px 16px #4c57d625; }
.onb-next:disabled { box-shadow: none; }
.location-field { position: relative; padding-left: 34px; }
.location-field + .location-field::before { content: ''; position: absolute; height: 25px; left: 11px; top: -27px; border-left: 1px dashed var(--onb-line); }
.location-field__number { position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 8px; }
.location-field.is-complete .location-field__number { background: var(--onb-selected); box-shadow: 0 0 0 3px var(--onb-soft); }
.location-field:focus-within .location-field__number { border-color: var(--onb-accent); color: var(--onb-accent); }
.location-field.is-complete select { border-color: var(--onb-selected-line); }
.onb-location__promo { padding: 14px; border: 1px dashed var(--onb-selected-line); border-radius: 12px; background: var(--onb-selected); }
.onb-location__promo summary { font-size: 13px; }
.onb-location select:focus-visible, .onb-location input:focus-visible, .onb-page input:focus-visible { outline: 3px solid #8995f4; outline-offset: 3px; }

/* Seasonal re-onboarding uses the same choice controls, with a readable
   institution search and wrapping names instead of truncated destinations. */
.admission-shell { max-width: 680px; margin: 0 auto; padding: 32px; border: 1px solid var(--onb-line); border-radius: 24px; background: var(--onb-surface); }
.admission-symbol { display: grid; place-items: center; width: 64px; height: 64px; margin: 0 auto 20px; border: 1px solid var(--onb-line); border-radius: 21px; background: var(--onb-selected); color: var(--onb-accent); font-size: 36px; transform: rotate(-5deg); }
.admission-choice { display: flex; align-items: center; width: 100%; gap: 14px; min-height: 77px; padding: 16px; border: 1px solid var(--onb-line); border-radius: 16px; background: var(--onb-soft); color: var(--onb-ink); text-align: left; transition: border-color .2s, transform .2s; }
.admission-choice__icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; background: var(--onb-selected); color: var(--onb-accent); font-size: 26px; flex: none; }
.admission-choice__label { flex: 1; min-width: 0; font-size: 14px; font-weight: 600; }
.admission-choice:hover { border-color: var(--onb-selected-line); transform: translateX(2px); }
.admission-region { display: flex; flex-direction: column; align-items: start; gap: 12px; min-height: 100px; border: 1px solid var(--onb-line); border-radius: 15px; padding: 15px; background: var(--onb-soft); color: var(--onb-ink); font-size: 13px; font-weight: 600; }
.admission-region > span { color: var(--onb-accent); font-size: 24px; }
.admission-region:hover { border-color: var(--onb-selected-line); }
.admission-search { display: flex; align-items: center; gap: 12px; padding: 8px 14px; margin-bottom: 18px; border: 1px solid var(--onb-line); border-radius: 13px; background: var(--onb-soft); }
.admission-search > span:first-child { color: var(--onb-muted); font-size: 23px; }
.admission-search input { width: 100%; min-width: 0; border: 0; background: transparent; color: var(--onb-ink); font-size: 14px; }
.admission-choice--university { overflow-wrap: anywhere; }

@media (max-width: 1000px) {
  .entry-resources { gap: 26px; }
  .entry-journey__heading { align-items: start; flex-direction: column; }
  .entry-journey__step { padding: 22px; }
  .entry-journey__step:not(:last-child)::after { left: 96px; }
  .entry-persona { flex-wrap: wrap; }
  .entry-persona .entry-card-arrow { display: none; }
}
@media (max-width: 760px) {
  .entry-resources { grid-template-columns: 1fr; gap: 30px; margin-top: 32px; }
  .entry-resources--single .entry-subjects { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .entry-journey__steps { grid-template-columns: 1fr; }
  .entry-journey__step { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 6px 20px; padding: 23px; }
  .entry-journey__step + li { border-left: 0; border-top: 1px solid var(--ring); }
  .entry-journey__marker { grid-row: 1 / 3; width: 48px; height: 48px; border-radius: 15px; font-size: 27px; margin: 0; }
  .entry-journey__step h3 { margin: 0; }
  .entry-journey__step p { max-width: none; }
  .entry-journey__step:not(:last-child)::after { top: 85px; left: 47px; right: auto; bottom: 6px; border-top: 0; border-left: 1px dashed var(--ring2); }
}
@media (max-width: 600px) {
  .admission-page { padding: 20px 16px; }
  .admission-shell { padding: 22px 16px; border-radius: 20px; }
  .entry-section-heading { margin-bottom: 14px; gap: 8px; }
  .entry-section-heading h2 { font-size: 17px; }
  .entry-subjects { gap: 10px; }
  .lx .entry-subject { padding: 15px; min-height: 126px; gap: 16px 8px; border-radius: 17px; }
  .entry-subject__title { font-size: 13px; }
  .entry-guides { padding: 0 14px; }
  .lx .entry-guide { min-height: 76px; gap: 11px; }
  .entry-guide__title { font-size: 13px; }
  .entry-guide__icon { width: 34px; height: 37px; font-size: 21px; }
  .entry-journey { padding-top: 28px; }
  .entry-journey__heading { margin-bottom: 20px; gap: 18px; }
  .entry-journey__step { padding: 21px 18px; gap: 7px 15px; }
  .entry-journey__step:not(:last-child)::after { left: 42px; }
  .entry-journey__step h3 { font-size: 15px; }
  .entry-journey__step p { font-size: 13px; }
  .lx .entry-persona { min-height: 79px; padding: 12px 10px; gap: 8px; }
  .entry-persona__copy strong { font-size: 12px; }
  .entry-persona__icon { width: 31px; height: 36px; font-size: 23px; }
  .onb-progress { padding: 10px 12px; border-radius: 14px; margin-bottom: 23px; }
  .onb-progress button { font-size: 11px; gap: 6px; }
  .onb-progress__number { width: 27px; height: 27px; font-size: 11px; }
  .onb-progress li:not(:last-child)::after { margin: 0 7px; }
  .onb-option { min-height: 145px; padding: 15px 13px; gap: 11px; border-radius: 16px; }
  .onb-option__icon { width: 39px; height: 40px; font-size: 26px; border-radius: 12px; }
  .onb-option__copy strong, .onb-options--goals .onb-option__copy strong { font-size: 13px; }
  .onb-option__copy > span, .direction-option .onb-option__copy > span { font-size: 11px; }
  .onb-options--goals .onb-option { min-height: 149px; }
  .onb-hint { font-size: 11px; }
  .direction-option { padding-bottom: 32px; }
  .location-field { padding-left: 30px; }
  .location-field label { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .lx .entry-subject, .lx .entry-guide, .lx .entry-persona, .lx .entry-card-arrow, .onb-page * { transition: none; }
  .entry-subject:hover, .entry-persona:hover { transform: none; }
}
