/* ==========================================================================
   Home page (hub). Loaded only on the front page.
   Shared pieces (buttons, labels, headings, sections) come from main.css.
   ========================================================================== */

.hm svg { fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.hm-head { max-width: 760px; margin-bottom: 3rem; }
.hm-head--center { margin-left: auto; margin-right: auto; text-align: center; }
.hm-head .aa-h2 { margin-bottom: 1rem; }
.hm-more { margin-top: 2.5rem; text-align: center; }

/* 1. HERO ---------------------------------------------------------------- */
.hm-hero { background: var(--aa-navy); padding: 5rem var(--aa-gutter) 5rem; position: relative; overflow: hidden; }
.hm-hero::before, .hm-hero::after { content: ''; position: absolute; border-radius: 50%; pointer-events: none; }
.hm-hero::before { right: -100px; top: -100px; width: 560px; height: 560px; border: 1px solid rgba(201, 168, 76, .1); }
.hm-hero::after { right: 60px; bottom: -80px; width: 320px; height: 320px; border: 1px solid rgba(201, 168, 76, .06); }
.hm-hero__inner {
	max-width: 1200px; margin: 0 auto; position: relative; z-index: 1;
	display: grid; grid-template-columns: 1fr 360px; gap: 4.5rem; align-items: center;
	min-height: calc(78vh - var(--aa-header-h));
}
.hm-hero__eyebrow {
	display: flex; align-items: center; gap: .75rem; margin-bottom: 1.4rem;
	font-size: .72rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--aa-gold);
}
.hm-hero__eyebrow::before { content: ''; width: 28px; height: 2px; background: var(--aa-gold); flex-shrink: 0; }
.hm-hero .aa-h1 { margin-bottom: 1.6rem; max-width: 640px; }
.hm-hero__sub { font-size: 1.1rem; font-weight: 300; line-height: 1.82; color: var(--aa-ice); max-width: 560px; margin-bottom: 2.4rem; }
.hm-hero__chips { list-style: none; margin-top: 2.5rem; }
.hm-hero__photo { position: relative; }
.hm-hero__photo::before {
	content: ''; position: absolute; top: 18px; left: 18px; right: -18px; bottom: -18px;
	border: 2px solid var(--aa-gold); opacity: .35; pointer-events: none;
}
.hm-hero__photo img { position: relative; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }

@media (max-width: 960px) {
	.hm-hero { padding: 3.5rem var(--aa-gutter) 4rem; }
	.hm-hero__inner { grid-template-columns: 1fr; gap: 3rem; min-height: 0; }
	.hm-hero__photo { max-width: 300px; }
}

/* 2. TRUST BAR ----------------------------------------------------------- */
.hm-trust { background: var(--aa-navy-deep); border-top: 1px solid rgba(201, 168, 76, .2); border-bottom: 1px solid rgba(201, 168, 76, .2); padding: 1.6rem var(--aa-gutter); }
.hm-trust__list { list-style: none; max-width: var(--aa-wrap); margin: 0 auto; display: grid; grid-template-columns: repeat(5, 1fr); }
.hm-trust__list li { display: flex; flex-direction: column; align-items: center; text-align: center; padding: .25rem 1rem; border-right: 1px solid rgba(202, 220, 252, .15); }
.hm-trust__list li:last-child { border-right: 0; }
.hm-trust__num { font-family: var(--aa-serif); font-size: 1.9rem; font-weight: 700; line-height: 1; color: var(--aa-gold); font-variant-numeric: lining-nums tabular-nums; }
.hm-trust__label { margin-top: .4rem; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--aa-ice); }
@media (max-width: 960px) {
	.hm-trust__list { grid-template-columns: repeat(3, 1fr); row-gap: 1.25rem; }
	.hm-trust__list li:nth-child(3) { border-right: 0; }
}
@media (max-width: 600px) {
	.hm-trust__list { grid-template-columns: 1fr 1fr; }
	.hm-trust__list li { border-right: 0; }
	.hm-trust__list li:last-child { grid-column: 1 / -1; }
}

/* 3. EXAMS --------------------------------------------------------------- */
.hm-exams__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.hm-exam {
	display: flex; flex-direction: column; padding: 2rem 1.6rem 1.75rem;
	background: var(--aa-white); border: 1px solid var(--aa-line); border-top: 3px solid var(--aa-gold);
	transition: transform .3s var(--aa-ease), box-shadow .3s, border-color .3s;
}
.hm-exam:hover, .hm-exam:focus-visible { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(30, 39, 97, .12); border-color: rgba(201, 168, 76, .6); }
.hm-exam__icon { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; background: var(--aa-mist); color: var(--aa-navy); margin-bottom: 1.25rem; }
.hm-exam__icon svg { width: 24px; height: 24px; }
.hm-exam__name { font-family: var(--aa-serif); font-size: 2rem; font-weight: 700; line-height: 1; color: var(--aa-navy); }
.hm-exam__covers { min-height: 2.9em; margin-top: .5rem; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--aa-muted); }
.hm-exam__target { display: flex; flex-direction: column; margin: 1.4rem 0 1rem; padding-top: 1rem; border-top: 1px solid var(--aa-line); font-family: var(--aa-serif); font-size: 2.1rem; font-weight: 700; line-height: 1; color: var(--aa-gold-display); }
.hm-exam__target small { font-family: var(--aa-sans); font-size: .66rem; font-weight: 500; letter-spacing: .2em; text-transform: uppercase; color: var(--aa-muted); margin-bottom: .4rem; }
.hm-exam__for { flex: 1; font-size: .92rem; font-weight: 300; line-height: 1.6; color: var(--aa-body); }
.hm-exam__link { margin-top: 1.4rem; font-size: .85rem; font-weight: 500; color: var(--aa-navy); display: inline-flex; gap: .4rem; transition: gap .2s, color .2s; }
.hm-exam__link::after { content: '→'; color: var(--aa-gold-on-light); }
.hm-exam:hover .hm-exam__link { gap: .7rem; color: var(--aa-gold-on-light); }
@media (max-width: 960px) { .hm-exams__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .hm-exams__grid { grid-template-columns: 1fr; } }

/* 4. FRAMEWORK ----------------------------------------------------------- */
.hm-steps { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; position: relative; }
.hm-steps::before {
	content: ''; position: absolute; top: 31px; left: 12%; right: 12%; height: 0;
	border-top: 1px dashed rgba(201, 168, 76, .45);
}
.hm-step { position: relative; padding: 0 .5rem; text-align: center; }
.hm-step__icon {
	position: relative; z-index: 1; width: 62px; height: 62px; margin: 0 auto 1.4rem;
	display: flex; align-items: center; justify-content: center; border-radius: 50%;
	background: var(--aa-navy); border: 1.5px solid var(--aa-gold); color: var(--aa-gold);
}
.hm-step__icon svg { width: 26px; height: 26px; }
.hm-step__num { display: block; font-family: var(--aa-serif); font-size: 1rem; font-weight: 700; letter-spacing: .1em; color: rgba(201, 168, 76, .7); margin-bottom: .35rem; }
.hm-step__title { font-family: var(--aa-serif); font-size: 1.45rem; font-weight: 600; line-height: 1.2; color: var(--aa-white); margin-bottom: .65rem; }
.hm-step__text { font-size: .92rem; font-weight: 300; line-height: 1.7; color: var(--aa-muted-dark); }
.hm-framework__more { margin-top: 3rem; text-align: center; }
@media (max-width: 960px) {
	.hm-steps { grid-template-columns: 1fr; gap: 2rem; max-width: 560px; }
	.hm-steps::before { top: 31px; bottom: 31px; left: 31px; right: auto; height: auto; border-top: 0; border-left: 1px dashed rgba(201, 168, 76, .45); }
	.hm-step { display: grid; grid-template-columns: 62px 1fr; column-gap: 1.25rem; text-align: left; padding: 0; }
	.hm-step__icon { grid-row: 1 / span 3; margin: 0; }
	.hm-framework__more { text-align: left; }
}

/* 5. PROGRAMS: card styles are shared and live in main.css (.aa-program) */
.hm-programs .aa-wrap > .hm-head { margin-bottom: 3rem; }

/* 6. FREE DIAGNOSTIC ----------------------------------------------------- */
.hm-diag { position: relative; overflow: hidden; }
.hm-diag::before { content: ''; position: absolute; left: -140px; bottom: -200px; width: 480px; height: 480px; border-radius: 50%; border: 1px solid rgba(201, 168, 76, .08); pointer-events: none; }
.hm-diag__tiles { list-style: none; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; max-width: 960px; margin: 0 auto; position: relative; }
.hm-diag__tiles li { padding: 2rem 1.75rem; background: rgba(255, 255, 255, .04); border: 1px solid rgba(202, 220, 252, .12); text-align: center; }
.hm-diag__icon { width: 52px; height: 52px; margin: 0 auto 1.1rem; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(201, 168, 76, .12); color: var(--aa-gold); }
.hm-diag__icon svg { width: 24px; height: 24px; }
.hm-diag__tiles strong { display: block; font-family: var(--aa-serif); font-size: 1.35rem; font-weight: 600; color: var(--aa-white); margin-bottom: .4rem; }
.hm-diag__tiles span:not(.hm-diag__icon) { font-size: .92rem; font-weight: 300; line-height: 1.6; color: var(--aa-muted-dark); }
.hm-diag__cta { margin-top: 2.75rem; text-align: center; }
@media (max-width: 860px) { .hm-diag__tiles { grid-template-columns: 1fr; max-width: 460px; } }

/* 7. RESULTS ------------------------------------------------------------- */
.hm-feature {
	display: grid; grid-template-columns: auto 1fr; grid-template-areas: "person score" "quote quote";
	gap: 2rem 3rem; align-items: center;
	background: var(--aa-navy); border-top: 3px solid var(--aa-gold); padding: 2.5rem;
}
.hm-feature__person { grid-area: person; display: flex; align-items: center; gap: 1.1rem; }
.hm-feature__person img { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; border: 3px solid var(--aa-gold); background: var(--aa-navy-soft); }
.hm-feature__name { font-weight: 500; color: var(--aa-white); }
.hm-feature__meta { font-size: .82rem; color: var(--aa-muted-dark); }
.hm-feature__score { grid-area: score; }
.hm-feature__exam { font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; color: var(--aa-gold); }
.hm-feature__jump { display: flex; align-items: baseline; gap: .8rem; font-family: var(--aa-serif); font-weight: 700; line-height: 1; margin: .35rem 0 1.4rem; }
.hm-feature__jump span:first-child { font-size: 2.2rem; color: var(--aa-ice); }
.hm-feature__jump strong { font-size: 3rem; color: var(--aa-gold); font-weight: 700; }
.hm-feature__arrow { font-family: var(--aa-sans); font-size: 1.4rem; color: var(--aa-gold); }
.hm-scale { position: relative; height: 34px; }
.hm-scale__track { position: absolute; left: 0; right: 0; top: 6px; height: 4px; background: rgba(202, 220, 252, .15); border-radius: 2px; }
.hm-scale__gain { position: absolute; top: 6px; height: 4px; background: var(--aa-gold); border-radius: 2px; }
.hm-scale__dot { position: absolute; top: 2px; width: 12px; height: 12px; margin-left: -6px; border-radius: 50%; }
.hm-scale__dot--before { background: var(--aa-navy); border: 2px solid var(--aa-ice); }
.hm-scale__dot--after { background: var(--aa-gold); box-shadow: 0 0 0 4px rgba(201, 168, 76, .25); }
.hm-scale__end { position: absolute; bottom: 0; font-size: .7rem; color: var(--aa-muted-dark); }
.hm-scale__end--min { left: 0; }
.hm-scale__end--max { right: 0; }
.hm-feature__quote {
	grid-area: quote; margin: 0; padding-top: 1.75rem; border-top: 1px solid rgba(202, 220, 252, .15);
	font-family: var(--aa-serif); font-size: 1.35rem; font-style: italic; line-height: 1.6; color: var(--aa-white);
}
.hm-quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin-top: 1.25rem; }
.hm-quote { margin: 0; background: var(--aa-mist); padding: 2.25rem 1.75rem 1.75rem; position: relative; display: flex; flex-direction: column; }
.hm-quote::before { content: '\201C'; position: absolute; top: .4rem; left: 1.25rem; font-family: var(--aa-serif); font-size: 4.5rem; line-height: 1; color: var(--aa-gold); opacity: .35; }
.hm-quote blockquote { flex: 1; margin: 0; font-family: var(--aa-serif); font-size: 1.15rem; font-style: italic; line-height: 1.65; color: var(--aa-body); position: relative; }
.hm-quote figcaption { margin-top: 1.25rem; font-size: .85rem; font-weight: 500; color: var(--aa-navy); }
.hm-quote__score { font-family: var(--aa-serif); font-size: 1.6rem; font-weight: 700; color: var(--aa-gold-display); margin-bottom: .75rem; }
.hm-quote__score span { font-family: var(--aa-sans); font-size: .7rem; letter-spacing: .2em; color: var(--aa-muted); margin-right: .4rem; vertical-align: middle; }
@media (max-width: 860px) {
	.hm-feature { grid-template-columns: 1fr; grid-template-areas: "person" "score" "quote"; padding: 2rem 1.5rem; }
	.hm-quotes { grid-template-columns: 1fr; }
}

/* 8. ABOUT --------------------------------------------------------------- */
.hm-about__inner { display: grid; grid-template-columns: 300px 1fr; gap: 4.5rem; align-items: center; }
.hm-about__photo { position: relative; }
.hm-about__photo::before { content: ''; position: absolute; top: 14px; left: 14px; right: -14px; bottom: -14px; border: 2px solid var(--aa-gold); opacity: .3; pointer-events: none; }
.hm-about__photo img { position: relative; width: 100%; aspect-ratio: 3 / 4; object-fit: cover; }
.hm-about__hook { font-family: var(--aa-serif); font-size: 1.45rem; font-style: italic; line-height: 1.6; color: var(--aa-navy); padding-left: 1.25rem; border-left: 3px solid var(--aa-gold); margin-bottom: 1.5rem; }
.hm-about__text { font-weight: 300; line-height: 1.85; color: var(--aa-body); margin-bottom: 1.75rem; max-width: 620px; }
@media (max-width: 860px) {
	.hm-about__inner { grid-template-columns: 1fr; gap: 3rem; }
	.hm-about__photo { max-width: 260px; }
}

/* 9. HOW COACHING WORKS -------------------------------------------------- */
.hm-how__grid { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
.hm-how__grid li { padding: 2rem 1.5rem; background: rgba(255, 255, 255, .04); border: 1px solid rgba(202, 220, 252, .12); transition: border-color .25s, background-color .25s; }
.hm-how__grid li:hover { border-color: rgba(201, 168, 76, .4); background: rgba(201, 168, 76, .06); }
.hm-how__icon { display: inline-flex; color: var(--aa-gold); margin-bottom: 1.1rem; }
.hm-how__icon svg { width: 30px; height: 30px; }
.hm-how__grid strong { display: block; font-weight: 500; color: var(--aa-white); margin-bottom: .35rem; }
.hm-how__grid span:not(.hm-how__icon) { font-size: .9rem; font-weight: 300; line-height: 1.6; color: var(--aa-muted-dark); }
@media (max-width: 960px) { .hm-how__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .hm-how__grid { grid-template-columns: 1fr; } }

/* 10. FAQ ---------------------------------------------------------------- */
.hm-faq__inner { display: grid; grid-template-columns: 1fr 1.6fr; gap: 4rem; align-items: start; }
.hm-faq__contact { color: var(--aa-muted); font-weight: 300; }
.hm-faq__contact a { color: var(--aa-navy); border-bottom: 1px solid var(--aa-gold); }
.hm-faq__list { border-top: 1px solid var(--aa-line); }
@media (max-width: 860px) { .hm-faq__inner { grid-template-columns: 1fr; gap: 1.5rem; } }

/* 11. FINAL CTA ---------------------------------------------------------- */
.hm-final .aa-h2 { font-size: clamp(2rem, 3.5vw, 3rem); margin-bottom: 1rem; }
.hm-final__text { margin: 0 auto 2.25rem; }
.hm-final__btns { justify-content: center; }

@media (max-width: 600px) {
	.hm-hero__eyebrow { font-size: .66rem; letter-spacing: .16em; }
	.hm-hero__photo { max-width: 240px; }
}
.hm-quote--score { padding-top: 3.1rem; }
