/* eFit Campus Associates - public pages (loaded after main.css) */
.apx-hero {
  position: relative; overflow: hidden; color: #fff; padding: clamp(64px, 9vw, 120px) 0 clamp(56px, 7vw, 96px);
  background: radial-gradient(60% 80% at 100% 0%, rgba(232, 93, 4, .38), transparent 60%), radial-gradient(50% 70% at 0% 100%, rgba(0, 135, 90, .3), transparent 60%), linear-gradient(135deg, #07111f 0%, #0c1a2e 45%, #1E3A5F 100%);
}
.apx-hero::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px); background-size: 44px 44px; mask-image: radial-gradient(ellipse at 70% 30%, #000 20%, transparent 75%); pointer-events: none; }
.apx-hero .container { position: relative; z-index: 1; }
.apx-eyebrow { display: inline-flex; align-items: center; gap: 10px; font-size: .78rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; color: #ffcfa8; border: 1px solid rgba(255, 207, 168, .35); border-radius: 999px; padding: 7px 16px; background: rgba(255, 255, 255, .04); }
.apx-eyebrow::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #E85D04; box-shadow: 0 0 0 4px rgba(232, 93, 4, .25); }
.apx-hero h1 { color: #fff; font-family: var(--font-family-display); font-size: clamp(2.3rem, 5.2vw, 4.1rem); line-height: 1.05; letter-spacing: -.03em; margin: 22px 0 18px; font-weight: 800; }
.apx-hero h1 em { font-style: normal; background: linear-gradient(90deg, #ffb27a, #E85D04); -webkit-background-clip: text; background-clip: text; color: transparent; }
.apx-lead { font-size: clamp(1.05rem, 1.6vw, 1.28rem); color: #d6e2f2; max-width: 640px; line-height: 1.6; }
.apx-cta { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 30px; align-items: center; }
.apx-btn { display: inline-flex; align-items: center; gap: 10px; padding: 16px 28px; border-radius: 12px; font-weight: 700; font-size: 1.02rem; text-decoration: none; transition: transform .15s, box-shadow .2s; }
.apx-btn:hover { transform: translateY(-2px); }
.apx-btn-primary { background: linear-gradient(135deg, #E85D04, #f07515); color: #fff !important; box-shadow: 0 14px 30px -12px rgba(232, 93, 4, .8); }
.apx-btn-ghost { border: 1px solid rgba(255, 255, 255, .35); color: #fff !important; }
.apx-btn-dark { background: #0c1a2e; color: #fff !important; }
.apx-note { color: #9fb2cc; font-size: .9rem; margin-top: 16px; }
.apx-hero-media { border-radius: 18px; overflow: hidden; box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .7); border: 1px solid rgba(255, 255, 255, .12); background: #000; }
.apx-hero-media video, .apx-hero-media img { width: 100%; display: block; }
.apx-hero-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 36px; max-width: 620px; }
.apx-hero-stats div { border-left: 2px solid rgba(232, 93, 4, .7); padding-left: 14px; }
.apx-hero-stats strong { display: block; font-family: var(--font-family-display); font-size: 1.7rem; color: #fff; }
.apx-hero-stats span { font-size: .85rem; color: #aebfd6; }
@media (max-width: 600px) { .apx-hero-stats { grid-template-columns: 1fr; } }

.apx-section { padding: clamp(56px, 8vw, 104px) 0; }
.apx-alt { background: var(--color-background-alt); }
.apx-kicker { font-size: .78rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 800; color: var(--color-accent); margin-bottom: 10px; }
.apx-h2 { font-family: var(--font-family-display); font-size: clamp(1.8rem, 3.4vw, 2.7rem); font-weight: 800; letter-spacing: -.02em; line-height: 1.12; color: var(--color-text-primary); margin-bottom: 16px; }
.apx-sub { font-size: 1.12rem; color: var(--color-text-secondary); max-width: 720px; }
.apx-grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 40px; }
.apx-grid2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin-top: 40px; }
.apx-grid4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 40px; }
@media (max-width: 991px) { .apx-grid3, .apx-grid4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .apx-grid3, .apx-grid2, .apx-grid4 { grid-template-columns: 1fr; } }
.apx-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 18px; padding: 28px; box-shadow: 0 1px 2px rgba(16,24,40,.04), 0 12px 32px -18px rgba(16,24,40,.18); height: 100%; }
.apx-card h3 { font-family: var(--font-family-display); font-size: 1.22rem; font-weight: 800; margin: 14px 0 10px; color: var(--color-text-primary); }
.apx-card p { color: var(--color-text-secondary); margin: 0; }
.apx-icon { width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center; font-size: 1.3rem; color: #fff; background: linear-gradient(135deg, #1E3A5F, #2E5A8F); }
.apx-icon.o { background: linear-gradient(135deg, #E85D04, #F48C06); }
.apx-icon.g { background: linear-gradient(135deg, #006644, #00A86B); }
.apx-big { font-family: var(--font-family-display); font-size: 3rem; font-weight: 800; color: var(--color-accent); line-height: 1; margin-top: 10px; }

.apx-econ { background: linear-gradient(135deg, #0c1a2e, #1E3A5F); color: #fff; border-radius: 24px; padding: clamp(28px, 4vw, 48px); position: relative; overflow: hidden; }
.apx-econ h2, .apx-econ h3 { color: #fff; }
.apx-econ p { color: #cbd8ea; }
.apx-econ table { width: 100%; border-collapse: collapse; margin-top: 18px; color: #fff; }
.apx-econ caption { caption-side: bottom; color: #9fb2cc; font-size: .85rem; padding-top: 12px; text-align: left; }
.apx-econ th, .apx-econ td { padding: 12px 10px; border-bottom: 1px solid rgba(255, 255, 255, .12); text-align: left; }
.apx-econ td:last-child, .apx-econ th:last-child { text-align: right; font-variant-numeric: tabular-nums; }
.apx-econ tr:last-child td { border-bottom: 0; font-weight: 800; color: #ffb27a; font-size: 1.1rem; }

.apx-who { display: flex; gap: 16px; align-items: flex-start; padding: 22px; border-radius: 16px; border: 1px solid var(--color-border); background: var(--color-surface); }
.apx-who i { font-size: 1.3rem; color: var(--color-primary); margin-top: 4px; }
.apx-who h3 { font-size: 1.08rem; font-weight: 800; margin: 0 0 6px; }
.apx-who p { margin: 0; color: var(--color-text-secondary); font-size: .96rem; }
.apx-standard { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 16px; }
.apx-standard i { color: var(--color-secondary); margin-top: 5px; }

.apx-feature { display: flex; gap: 14px; align-items: flex-start; padding: 18px; border-radius: 14px; background: var(--color-surface); border: 1px solid var(--color-border); }
.apx-feature i { width: 40px; height: 40px; flex: 0 0 40px; border-radius: 10px; display: grid; place-items: center; background: rgba(232, 93, 4, .1); color: var(--color-accent); }
.apx-feature h3 { font-size: 1rem; font-weight: 800; margin: 0 0 4px; }
.apx-feature p { margin: 0; font-size: .92rem; color: var(--color-text-secondary); }
.apx-shot { border-radius: 18px; overflow: hidden; border: 1px solid var(--color-border); box-shadow: 0 40px 80px -40px rgba(12, 26, 46, .55); margin-top: 40px; }
.apx-shot img { display: block; width: 100%; height: auto; }
.apx-shot-cap { text-align: center; color: var(--color-text-muted); font-size: .85rem; margin-top: 12px; }

.apx-steps { counter-reset: s; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 40px; }
@media (max-width: 991px) { .apx-steps { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .apx-steps { grid-template-columns: 1fr; } }
.apx-step { position: relative; padding: 26px 22px 22px; border-radius: 16px; background: var(--color-surface); border: 1px solid var(--color-border); }
.apx-step::before { counter-increment: s; content: "0" counter(s); font-family: var(--font-family-display); font-weight: 800; font-size: 2.2rem; color: var(--color-accent); opacity: .9; }
.apx-step h3 { font-size: 1.08rem; font-weight: 800; margin: 8px 0 6px; }
.apx-step p { margin: 0; font-size: .94rem; color: var(--color-text-secondary); }

.apx-faq details { border-bottom: 1px solid var(--color-border); padding: 18px 0; }
.apx-faq summary { cursor: pointer; font-weight: 700; font-size: 1.08rem; list-style: none; display: flex; justify-content: space-between; gap: 20px; color: var(--color-text-primary); }
.apx-faq summary::after { content: "+"; color: var(--color-accent); font-weight: 800; font-size: 1.3rem; line-height: 1; }
.apx-faq details[open] summary::after { content: "\2212"; }
.apx-faq details p { margin: 12px 0 0; color: var(--color-text-secondary); }

.apx-final { text-align: center; color: #fff; background: radial-gradient(60% 100% at 50% 0%, rgba(232, 93, 4, .35), transparent 70%), linear-gradient(180deg, #0c1a2e, #07111f); border-radius: 28px; padding: clamp(40px, 6vw, 72px) 24px; }
.apx-final h2 { color: #fff; }
.apx-final p { color: #cbd8ea; max-width: 620px; margin: 0 auto; }
.apx-final .apx-cta { justify-content: center; }

/* Application form */
.apx-form { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 20px; padding: clamp(22px, 4vw, 40px); box-shadow: 0 20px 50px -30px rgba(12, 26, 46, .35); }
.apx-form fieldset { border: 0; padding: 0; margin: 0 0 28px; }
.apx-form legend { font-family: var(--font-family-display); font-weight: 800; font-size: 1.2rem; margin-bottom: 14px; color: var(--color-text-primary); display: flex; align-items: center; gap: 10px; }
.apx-form legend span { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #0c1a2e; color: #fff; font-size: .85rem; }
.apx-form label { font-weight: 600; font-size: .92rem; display: block; margin-bottom: 6px; color: var(--color-text-primary); }
.apx-form input[type=text], .apx-form input[type=email], .apx-form input[type=tel], .apx-form input[type=url], .apx-form input[type=number], .apx-form select, .apx-form textarea {
  width: 100%; padding: 12px 14px; border: 1px solid var(--color-border-strong); border-radius: 10px; font: inherit; background: var(--color-background); color: var(--color-text-primary);
}
.apx-form textarea { min-height: 120px; }
.apx-form .row > div { margin-bottom: 16px; }
.apx-help { font-size: .85rem; color: var(--color-text-muted); margin-top: 4px; }
.apx-checks { display: flex; flex-wrap: wrap; gap: 10px; }
.apx-checks label { display: inline-flex; gap: 8px; align-items: center; font-weight: 500; border: 1px solid var(--color-border-strong); border-radius: 999px; padding: 8px 14px; cursor: pointer; margin: 0; }
.apx-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.apx-error { background: #FFE3E3; border: 1px solid #f5a3a3; color: #8a1c1c; border-radius: 12px; padding: 14px 18px; margin-bottom: 20px; }
.apx-side { position: sticky; top: 100px; }
.apx-side .apx-card { margin-bottom: 18px; }
.apx-side ul { padding-left: 18px; margin: 0; color: var(--color-text-secondary); }
.apx-side li { margin-bottom: 8px; }

/* ---- v2 landing ---------------------------------------------------------- */
.apx-hero-photo { background-image: linear-gradient(100deg, rgba(7,17,31,.96) 0%, rgba(12,26,46,.9) 45%, rgba(12,26,46,.55) 100%), var(--apx-hero-img, linear-gradient(135deg, #07111f, #1E3A5F)); background-size: cover; background-position: center; }
.apx-hero-list { list-style: none; padding: 0; margin: 22px 0 0; display: grid; gap: 10px; }
.apx-hero-list li { display: flex; gap: 12px; align-items: flex-start; color: #e6eef9; font-size: 1.04rem; }
.apx-hero-list i { width: 24px; height: 24px; flex: 0 0 24px; border-radius: 50%; background: rgba(0,168,107,.25); color: #6ee7b7; display: grid; place-items: center; font-size: .75rem; margin-top: 2px; }
.apx-hero-card { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.16); border-radius: 22px; padding: 28px; backdrop-filter: blur(10px); box-shadow: 0 40px 80px -40px rgba(0,0,0,.8); }
.apx-hero-big { font-family: var(--font-family-display); font-weight: 800; font-size: clamp(3rem, 6vw, 4.4rem); line-height: 1; color: #fff; letter-spacing: -.03em; }
.apx-hero-mini { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 16px; }
.apx-hero-mini div { background: rgba(255,255,255,.07); border-radius: 14px; padding: 14px; }
.apx-hero-mini strong { display: block; font-family: var(--font-family-display); font-size: 1.5rem; color: #ffb27a; }
.apx-hero-mini span { font-size: .82rem; color: #b7c7dc; }
.apx-hero-calc { display: inline-flex; gap: 8px; align-items: center; color: #fff !important; font-weight: 700; text-decoration: none; border-bottom: 2px solid #E85D04; padding-bottom: 2px; }
.apx-fine { font-size: .78rem; color: #93a6c0; margin: 12px 0 0; }
.apx-proof { background: #fff; border-bottom: 1px solid var(--color-border); box-shadow: 0 12px 30px -24px rgba(12,26,46,.4); position: relative; z-index: 2; }
.apx-proof-row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; padding: 24px 0; text-align: center; }
.apx-proof-row strong { display: block; font-family: var(--font-family-display); font-weight: 800; font-size: 1.7rem; color: var(--color-primary); }
.apx-proof-row span { font-size: .85rem; color: var(--color-text-muted); }
@media (max-width: 900px) { .apx-proof-row { grid-template-columns: repeat(2, 1fr); } .apx-proof-row div:last-child { grid-column: 1 / -1; } }
.apx-photo-card { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.apx-photo-card img { width: 100%; height: 190px; object-fit: cover; display: block; }
.apx-photo-card > div { padding: 24px; position: relative; }
.apx-photo-card .apx-icon { margin-top: -50px; border: 4px solid #fff; }
.apx-calc label { display: flex; justify-content: space-between; font-weight: 700; margin: 18px 0 6px; color: var(--color-text-primary); }
.apx-calc output { color: var(--color-accent); font-family: var(--font-family-display); font-size: 1.15rem; }
.apx-calc input[type=range] { width: 100%; accent-color: #E85D04; height: 28px; }
.apx-calc-out { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.apx-calc-out div { background: rgba(255,255,255,.07); border-radius: 14px; padding: 16px; }
.apx-calc-out span { display: block; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: #9fb2cc; font-weight: 700; }
.apx-calc-out strong { font-family: var(--font-family-display); font-size: clamp(1.4rem, 2.6vw, 2.1rem); color: #fff; }
.apx-calc-out .is-hi { background: linear-gradient(135deg, rgba(232,93,4,.35), rgba(232,93,4,.12)); border: 1px solid rgba(255,178,122,.4); }
.apx-calc-out .is-hi strong { color: #ffcfa8; }
.apx-bars { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; height: 190px; margin-top: 22px; align-items: end; }
.apx-bars div { height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: stretch; gap: 6px; }
.apx-bars span { display: block; border-radius: 10px 10px 4px 4px; background: linear-gradient(180deg, #F48C06, #E85D04); transition: height .35s ease; }
.apx-bars small { text-align: center; color: #9fb2cc; font-size: .78rem; }
.apx-tour { display: grid; grid-template-columns: 340px 1fr; gap: 26px; margin-top: 40px; align-items: start; }
@media (max-width: 991px) { .apx-tour { grid-template-columns: 1fr; } }
.apx-tour-tabs { display: grid; gap: 10px; }
.apx-tour-tabs button { display: flex; gap: 14px; text-align: left; align-items: flex-start; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: 16px; padding: 16px; cursor: pointer; transition: border-color .2s, box-shadow .2s, transform .2s; font: inherit; }
.apx-tour-tabs button i { width: 38px; height: 38px; flex: 0 0 38px; border-radius: 10px; display: grid; place-items: center; background: rgba(30,58,95,.08); color: var(--color-primary); }
.apx-tour-tabs button strong { display: block; color: var(--color-text-primary); }
.apx-tour-tabs button small { display: block; color: var(--color-text-muted); font-size: .85rem; line-height: 1.45; margin-top: 2px; }
.apx-tour-tabs button.is-on { border-color: #E85D04; box-shadow: 0 16px 34px -22px rgba(232,93,4,.7); transform: translateX(4px); }
.apx-tour-tabs button.is-on i { background: #E85D04; color: #fff; }
.apx-tour-view .apx-shot { margin-top: 0; }
.apx-film { background: radial-gradient(60% 100% at 100% 0%, rgba(232,93,4,.3), transparent 60%), linear-gradient(135deg, #07111f, #12243d); }
.apx-shotcard { padding: 0; overflow: hidden; }
.apx-shotcard img { width: 100%; height: 170px; object-fit: cover; object-position: top left; display: block; border-bottom: 1px solid var(--color-border); }
.apx-shotcard h3, .apx-shotcard p { padding: 0 20px; }
.apx-shotcard p { padding-bottom: 22px; }
.apx-cmp-wrap { overflow-x: auto; margin-top: 30px; border-radius: 18px; box-shadow: 0 20px 50px -30px rgba(12,26,46,.4); }
.apx-cmp { width: 100%; border-collapse: collapse; background: #fff; min-width: 620px; }
.apx-cmp th, .apx-cmp td { padding: 16px 18px; border-bottom: 1px solid var(--color-border); text-align: left; vertical-align: top; }
.apx-cmp thead th { background: #f3f5f9; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--color-text-muted); }
.apx-cmp tbody th { font-weight: 700; color: var(--color-text-primary); width: 22%; }
.apx-cmp td { color: var(--color-text-muted); }
.apx-cmp .is-us { background: linear-gradient(180deg, rgba(232,93,4,.06), rgba(232,93,4,.03)); color: var(--color-text-primary); }
.apx-cmp thead .is-us { background: #0c1a2e; color: #ffcfa8; }
.apx-rounded-photo { width: 100%; border-radius: 20px; box-shadow: 0 30px 60px -30px rgba(12,26,46,.6); display: block; }
.apx-sticky { position: fixed; right: 16px; bottom: 16px; z-index: 1030; background: linear-gradient(135deg, #E85D04, #f07515); color: #fff !important; font-weight: 800; text-decoration: none; padding: 14px 22px; border-radius: 999px; box-shadow: 0 16px 34px -12px rgba(232,93,4,.8); transform: translateY(140%); transition: transform .3s ease; }
.apx-sticky.is-on { transform: none; }
@media (prefers-reduced-motion: reduce) { .apx-sticky, .apx-tour-tabs button, .apx-bars span { transition: none; } }

/* ---- personal associate page -------------------------------------------- */
.apx-meet-id { display: flex; gap: 16px; align-items: center; }
.apx-meet-av { width: 76px; height: 76px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(135deg, #E85D04, #c99a2e); color: #fff; font-family: var(--font-family-display); font-weight: 800; font-size: 1.7rem; box-shadow: 0 0 0 5px rgba(255,255,255,.12); }
.apx-meet-role { margin: 8px 0 0; color: #cfe0f5; font-weight: 600; }
