/* ==========================================================================
   Contact page (/contact/). Loaded only on that page.
   Form styles are shared and live in main.css (section 11).
   ========================================================================== */

.ct svg { fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }

.ct-hero { background: var(--aa-navy); padding: 4.5rem var(--aa-gutter) 7rem; position: relative; overflow: hidden; }
.ct-hero::before { content: ''; position: absolute; right: -120px; top: -160px; width: 480px; height: 480px; border-radius: 50%; border: 1px solid rgba(201, 168, 76, .1); pointer-events: none; }
.ct-hero .aa-label { color: var(--aa-gold); }
.ct-hero__sub { margin-top: 1.25rem; max-width: 560px; font-size: 1.08rem; font-weight: 300; line-height: 1.8; color: var(--aa-ice); }

.ct-main { padding-top: 0; }
.ct-grid { display: grid; grid-template-columns: 1.55fr 1fr; gap: 1.5rem; align-items: start; margin-top: -4rem; position: relative; }

.ct-form { background: var(--aa-white); border-top: 3px solid var(--aa-gold); padding: 2.75rem 2.5rem; box-shadow: 0 14px 40px rgba(30, 39, 97, .1); scroll-margin-top: calc(var(--aa-header-h) + var(--aa-admin-bar) + 1rem); }
.ct-form__title { font-family: var(--aa-serif); font-size: 2rem; font-weight: 600; line-height: 1.2; color: var(--aa-navy); }
.ct-form__intro { margin: .35rem 0 1.75rem; font-size: .85rem; color: var(--aa-muted); }

.ct-side { display: grid; gap: 1.25rem; }
.ct-card { background: var(--aa-white); padding: 1.75rem 1.75rem; border: 1px solid var(--aa-line); }
.ct-card--navy { background: var(--aa-navy); border-color: var(--aa-navy); border-top: 3px solid var(--aa-gold); box-shadow: 0 14px 40px rgba(30, 39, 97, .14); }
.ct-card--navy .aa-label { color: var(--aa-gold); }
.ct-card__title { font-family: var(--aa-serif); font-size: 1.55rem; font-weight: 600; line-height: 1.25; color: var(--aa-white); }
.ct-card__title em { font-style: italic; color: var(--aa-gold); }
.ct-card__text { margin: .6rem 0 1.4rem; font-size: .94rem; font-weight: 300; line-height: 1.7; color: var(--aa-ice); }

.ct-list { list-style: none; display: grid; gap: 1.25rem; }
.ct-list li { display: flex; gap: .9rem; align-items: flex-start; }
.ct-list__icon { flex-shrink: 0; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--aa-mist); color: var(--aa-gold-on-light); }
.ct-list__icon svg { width: 19px; height: 19px; }
.ct-list li > span:last-child { display: flex; flex-direction: column; font-size: .9rem; font-weight: 300; line-height: 1.55; color: var(--aa-body); }
.ct-list strong { font-weight: 500; color: var(--aa-navy); }
.ct-list a { color: var(--aa-navy); border-bottom: 1px solid var(--aa-gold); align-self: flex-start; font-weight: 400; }
.ct-list a:hover { color: var(--aa-gold-on-light); }

.ct-exams { list-style: none; display: grid; gap: .5rem; }
.ct-exams a { display: grid; grid-template-columns: 1fr auto; align-items: center; column-gap: 1rem; padding: .75rem .9rem; border: 1px solid var(--aa-line); transition: border-color .2s, background-color .2s; }
.ct-exams a::after { content: '→'; grid-row: 1 / span 2; grid-column: 2; color: var(--aa-gold-on-light); transition: transform .2s; }
.ct-exams a:hover { border-color: var(--aa-gold); background: var(--aa-mist); }
.ct-exams a:hover::after { transform: translateX(3px); }
.ct-exams strong { font-family: var(--aa-serif); font-size: 1.2rem; font-weight: 700; color: var(--aa-navy); line-height: 1.2; }
.ct-exams span { font-size: .78rem; color: var(--aa-muted); }

@media (max-width: 960px) {
	.ct-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.ct-hero { padding: 3.5rem var(--aa-gutter) 6rem; }
	.ct-form { padding: 2rem 1.25rem; }
}
.ct-form:has([data-aa-form-done]:not([hidden])) .ct-form__intro { display: none; }
