/* GMAT40 booking, availability and upgrade screens.
   Colours and fonts come from the site's Elementor global variables; the fallbacks
   are the same brand values for pages where the Elementor kit CSS is not loaded. */

.g40-hero, .g40-section {
	--g40-blue: var(--color-blue, #0B4BA8);
	--g40-blue-deep: var(--color-blue-deep, #08357A);
	--g40-blue-tint: var(--color-blue-tint, #E9F0FA);
	--g40-orange: var(--color-orange, #F47B20);
	--g40-orange-deep: var(--color-orange-deep, #A84C0B);
	--g40-orange-tint: var(--color-orange-tint, #FDEEE1);
	--g40-cream: var(--color-cream, #FBF8F3);
	--g40-ink: var(--color-ink, #18202F);
	--g40-ink-soft: var(--color-ink-soft, #4B5567);
	--g40-line: var(--color-line, #E6DFD4);
	--g40-line-strong: var(--color-line-strong, #CFC6B8);
	--g40-success: var(--color-success, #1C6B45);
	--g40-success-tint: var(--color-success-tint, #E3F2EA);
	--g40-display: var(--font-display, "Sora"), "Helvetica Neue", Arial, sans-serif;
	--g40-body: var(--font-body, "Nunito Sans"), "Helvetica Neue", Arial, sans-serif;
	font-family: var(--g40-body);
	color: var(--g40-ink);
}

/* The theme underlines content links; these screens use their own link styles. */
.g40-section a[class^="g40-"], .g40-section a[class^="g40-"] *, .g40-hero a[class^="g40-"] { text-decoration: none; }

.g40-wrap { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 32px; box-sizing: border-box; }
.g40-hero { background: #fff; border-bottom: 1px solid var(--g40-line); padding: 64px 0; }
.g40-hero .g40-wrap { display: flex; flex-direction: column; gap: 16px; }
.g40-section { background: var(--g40-cream); padding: 64px 0 96px; }
.g40-section *, .g40-hero * { box-sizing: border-box; }

.g40-eyebrow { display: flex; align-items: center; gap: 8px; margin: 0; font-family: var(--g40-display); font-size: 13px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--g40-orange-deep); }
.g40-dot { flex: 0 0 8px; width: 8px; height: 8px; border-radius: 999px; background: var(--g40-orange); display: inline-block; }
.g40-title-xl { margin: 0; font-family: var(--g40-display); font-size: 58px; line-height: 1.08; letter-spacing: -0.02em; font-weight: 700; color: var(--g40-blue-deep); max-width: 20ch; }
.g40-title-md { margin: 0; font-family: var(--g40-display); font-size: 23px; line-height: 1.3; font-weight: 600; color: var(--g40-ink); }
.g40-title-sm { margin: 0; font-family: var(--g40-display); font-size: 19px; line-height: 1.3; font-weight: 600; color: var(--g40-ink); }
.g40-lede { margin: 0; font-size: 19px; line-height: 1.6; color: var(--g40-ink-soft); max-width: 62ch; }
.g40-text { margin: 0; font-size: 17px; line-height: 1.6; color: var(--g40-ink-soft); }
.g40-small { font-size: 15px; line-height: 1.6; color: var(--g40-ink-soft); }

.g40-tag { display: inline-flex; align-self: flex-start; padding: 4px 12px; border-radius: 999px; background: var(--g40-orange-tint); color: var(--g40-orange-deep); font-family: var(--g40-display); font-size: 13px; font-weight: 700; }
.g40-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.g40-button { display: inline-flex; align-items: center; justify-content: center; padding: 12px 24px; border-radius: 999px; border: 2px solid var(--g40-blue); font-family: var(--g40-display); font-size: 15px; font-weight: 600; line-height: 1.3; text-decoration: none; cursor: pointer; }
.g40-button-primary { background: var(--g40-blue); color: #fff; }
.g40-button-primary:hover, .g40-button-primary:focus { background: var(--g40-blue-deep); border-color: var(--g40-blue-deep); color: #fff; }
.g40-button-ghost { background: transparent; color: var(--g40-blue); }
.g40-button-ghost:hover, .g40-button-ghost:focus { background: var(--g40-blue-tint); color: var(--g40-blue-deep); }
.g40-button[disabled] { opacity: 0.6; cursor: not-allowed; }
.g40-link { background: none; border: 0; padding: 0; font-family: var(--g40-display); font-size: 15px; font-weight: 600; color: var(--g40-blue); cursor: pointer; }
.g40-link:hover { color: var(--g40-orange-deep); }

.g40-gate { display: flex; flex-direction: column; gap: 16px; padding: 32px; background: #fff; border: 2px solid var(--g40-orange); border-radius: 28px; max-width: 760px; }
.g40-notice { margin: 0 0 24px; padding: 12px 16px; border-radius: 8px; font-size: 15px; }
.g40-notice-ok { background: var(--g40-success-tint); color: var(--g40-success); }
.g40-notice-error { background: var(--g40-orange-tint); color: var(--g40-orange-deep); }

.g40-layout { display: flex; align-items: flex-start; gap: 48px; }
.g40-main { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 32px; }
.g40-aside { flex: 0 0 320px; display: flex; flex-direction: column; gap: 16px; }
.g40-step { display: flex; flex-direction: column; gap: 12px; }
.g40-panel { display: flex; flex-direction: column; gap: 12px; padding: 24px; background: #fff; border: 1px solid var(--g40-line); border-radius: 16px; }

.g40-pick-row { display: flex; flex-wrap: wrap; gap: 12px; }
.g40-pick { display: flex; align-items: center; gap: 12px; flex: 1 1 calc((100% - 24px) / 3); min-width: 0; padding: 12px; background: #fff; border: 1px solid var(--g40-line-strong); border-radius: 16px; color: var(--g40-ink); text-decoration: none; }
.g40-pick:hover { border-color: var(--g40-blue); color: var(--g40-ink); }
.g40-pick.is-active { border: 2px solid var(--g40-blue); background: var(--g40-blue-tint); }
.g40-avatar { flex: 0 0 44px; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; border-radius: 999px; background: var(--g40-blue-tint); color: var(--g40-blue); font-family: var(--g40-display); font-size: 15px; font-weight: 700; }
.g40-pick.is-active .g40-avatar { background: #fff; }
.g40-pick-text { display: flex; flex-direction: column; min-width: 0; }
.g40-pick-name { font-family: var(--g40-display); font-size: 15px; font-weight: 600; line-height: 1.4; color: var(--g40-ink); }

.g40-day-strip { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 8px; }
.g40-day { flex: 0 0 76px; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 12px 8px; background: #fff; border: 1px solid var(--g40-line-strong); border-radius: 16px; color: var(--g40-ink); font-family: var(--g40-display); text-decoration: none; }
a.g40-day:hover { border-color: var(--g40-blue); color: var(--g40-ink); }
.g40-day.is-active { background: var(--g40-blue); border-color: var(--g40-blue); color: #fff; }
.g40-day.is-active:hover { color: #fff; }
.g40-day.is-empty { background: var(--g40-cream); color: var(--g40-line-strong); border-style: dashed; }
.g40-day-name { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; }
.g40-day-num { font-size: 23px; font-weight: 700; }
.g40-day-count { font-size: 13px; }

.g40-slot-row { display: flex; flex-wrap: wrap; gap: 8px; }
.g40-slot { flex: 0 0 112px; padding: 12px 8px; border-radius: 8px; border: 1px solid var(--g40-blue); background: #fff; color: var(--g40-blue); font-family: var(--g40-display); font-size: 15px; font-weight: 600; text-align: center; text-decoration: none; }
.g40-slot:hover { background: var(--g40-blue-tint); color: var(--g40-blue); }
.g40-slot.is-active { background: var(--g40-orange); border-color: var(--g40-orange); color: var(--g40-ink); }
.g40-empty { padding: 24px; border: 1px dashed var(--g40-line-strong); border-radius: 16px; background: var(--g40-cream); }

.g40-summary-row { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--g40-line); font-size: 15px; }
.g40-field { display: flex; flex-direction: column; gap: 8px; }
.g40-field-label { font-family: var(--g40-display); font-size: 15px; font-weight: 600; color: var(--g40-ink); }
.g40-input { width: 100%; min-height: 48px; padding: 0 16px; border: 1px solid var(--g40-line-strong); border-radius: 8px; background: var(--g40-cream); color: var(--g40-ink); font-family: var(--g40-body); font-size: 16px; }
.g40-textarea { min-height: 120px; padding: 12px 16px; resize: vertical; }
.g40-booking { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--g40-line); }
.g40-booking form { margin: 0; }

.g40-legend { display: flex; flex-wrap: wrap; gap: 16px; font-size: 13px; color: var(--g40-ink-soft); }
.g40-legend-item { display: flex; align-items: center; gap: 8px; }
.g40-swatch { width: 16px; height: 16px; border-radius: 8px; border: 1px solid var(--g40-line); background: #fff; display: inline-block; }
.g40-swatch.is-on { background: var(--g40-blue); border-color: var(--g40-blue); }
.g40-swatch.is-booked { background: var(--g40-orange); border-color: var(--g40-orange); }
.g40-grid { display: flex; flex-direction: column; gap: 4px; overflow-x: auto; padding-bottom: 8px; }
.g40-grid-row { display: flex; gap: 4px; }
.g40-grid-label { flex: 0 0 72px; display: flex; align-items: center; font-size: 13px; color: var(--g40-ink-soft); }
.g40-grid-head { flex: 1 0 40px; text-align: center; font-family: var(--g40-display); font-size: 13px; font-weight: 700; }
.g40-cell { flex: 1 0 40px; height: 40px; position: relative; cursor: pointer; }
.g40-cell input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.g40-cell span { display: block; width: 100%; height: 100%; border-radius: 8px; border: 1px solid var(--g40-line); background: #fff; }
.g40-cell:hover span { border-color: var(--g40-blue); }
.g40-cell input:checked + span { background: var(--g40-blue); border-color: var(--g40-blue); }
.g40-cell input:focus-visible + span { outline: 2px solid var(--g40-orange); outline-offset: 2px; }
.g40-cell.is-booked span, .g40-cell.is-booked input:checked + span { background: var(--g40-orange); border-color: var(--g40-orange); }
.g40-cell.is-booked, .g40-cell.is-booked input { cursor: not-allowed; }

.g40-plans { display: flex; flex-wrap: wrap; gap: 24px; margin-top: 24px; }
.g40-plan { flex: 1 1 320px; display: flex; flex-direction: column; gap: 16px; padding: 32px; background: #fff; border: 1px solid var(--g40-line); border-radius: 28px; }
.g40-plan.is-featured { border: 2px solid var(--g40-orange); }
.g40-price { margin: 0; font-size: 15px; color: var(--g40-ink-soft); }
.g40-price strong { font-family: var(--g40-display); font-size: 44px; line-height: 1.08; color: var(--g40-blue-deep); }
.g40-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 12px; }
.g40-list li { display: flex; align-items: flex-start; gap: 12px; font-size: 17px; line-height: 1.6; color: var(--g40-ink-soft); }
.g40-list .g40-dot { margin-top: 9px; }

/* Advisor directory and profiles */
.g40-title-lg { margin: 0; font-family: var(--g40-display); font-size: 42px; line-height: 1.08; letter-spacing: -0.02em; font-weight: 700; color: var(--g40-blue-deep); }
.g40-role { margin: 0; font-family: var(--g40-display); font-size: 15px; font-weight: 600; color: var(--g40-orange-deep); }
.g40-advisor-grid { display: flex; flex-wrap: wrap; gap: 24px; }
.g40-advisor-card { flex: 0 1 calc((100% - 48px) / 3); min-width: 0; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--g40-line); border-radius: 28px; overflow: hidden; }
.g40-advisor-photo-link { display: flex; align-items: center; justify-content: center; height: 240px; background: var(--g40-blue-tint); }
.g40-advisor-photo-link .g40-photo { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.g40-advisor-photo-link .g40-photo-initials { width: 112px; height: 112px; font-size: 36px; border-radius: 999px; }
.g40-advisor-body { flex: 1 1 auto; display: flex; flex-direction: column; gap: 12px; padding: 24px; }
.g40-advisor-body .g40-buttons { margin-top: auto; }
.g40-name-link { color: var(--g40-ink); }
.g40-name-link:hover { color: var(--g40-blue); }
.g40-photo { display: block; width: 72px; height: 72px; border-radius: 999px; object-fit: cover; }
.g40-photo-initials { display: flex; align-items: center; justify-content: center; background: #fff; color: var(--g40-blue); font-family: var(--g40-display); font-weight: 700; font-size: 23px; }
.g40-photo-lg { width: 160px; height: 160px; flex: 0 0 160px; }
.g40-photo-lg.g40-photo-initials { background: var(--g40-blue-tint); font-size: 48px; }
.g40-profile-head { display: flex; align-items: center; gap: 32px; }
.g40-profile-title { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.g40-bio p { margin: 0 0 16px; font-size: 19px; line-height: 1.6; color: var(--g40-ink); }
.g40-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.g40-chip { display: inline-flex; padding: 4px 12px; border-radius: 999px; background: var(--g40-blue-tint); color: var(--g40-blue); font-family: var(--g40-display); font-size: 13px; font-weight: 600; }
.g40-back { margin: 0 0 24px; }
.g40-section a.g40-link-plain { font-family: var(--g40-display); font-size: 15px; font-weight: 600; color: var(--g40-blue); text-decoration: none; }
.g40-section a.g40-link-plain:hover { color: var(--g40-orange-deep); }
.g40-next-slot { display: flex; justify-content: space-between; gap: 12px; padding: 12px 16px; border: 1px solid var(--g40-blue); border-radius: 8px; color: var(--g40-blue); font-size: 15px; }
.g40-next-slot:hover { background: var(--g40-blue-tint); color: var(--g40-blue-deep); }

@media (max-width: 1024px) {
	.g40-advisor-card { flex-basis: calc((100% - 24px) / 2); }
	.g40-wrap { padding: 0 24px; }
	.g40-title-xl { font-size: 46px; }
	.g40-layout { flex-direction: column; align-items: stretch; }
	.g40-aside { flex: 1 1 auto; }
	.g40-pick { flex-basis: calc((100% - 12px) / 2); }
}
@media (max-width: 767px) {
	.g40-wrap { padding: 0 16px; }
	.g40-hero { padding: 32px 0; }
	.g40-section { padding: 32px 0 56px; }
	.g40-title-xl { font-size: 36px; }
	.g40-lede { font-size: 18px; }
	.g40-pick { flex-basis: 100%; }
	.g40-slot { flex: 1 1 calc((100% - 16px) / 3); }
	.g40-gate, .g40-plan { padding: 24px; border-radius: 16px; }
	.g40-advisor-card { flex-basis: 100%; border-radius: 16px; }
	.g40-profile-head { flex-direction: column; align-items: flex-start; gap: 16px; }
	.g40-photo-lg { width: 120px; height: 120px; flex-basis: 120px; }
	.g40-title-lg { font-size: 28px; }
	.g40-bio p { font-size: 18px; }
}
