/* Edusphere Centre: front-end components. Uses the Edusphere theme colours when available. */
:root {
	--edu-plum: var(--wp--preset--color--plum, #5C258D);
	--edu-plum-dark: var(--wp--preset--color--plum-dark, #4A1E72);
	--edu-plum-soft: var(--wp--preset--color--plum-soft, #F4EFF9);
	--edu-aqua: var(--wp--preset--color--aqua, #10C0DE);
	--edu-mist: var(--wp--preset--color--mist, #E6FAFD);
	--edu-ink: var(--wp--preset--color--ink, #252333);
	--edu-ink-soft: var(--wp--preset--color--ink-soft, #57546A);
	--edu-line: var(--wp--preset--color--line, #E3E0EA);
	--edu-radius: 1.25rem;
}
.edu-i { width: 1.1em; height: 1.1em; flex: none; vertical-align: -0.15em; }

/* Top bar and footer */
.edu-topbar-links { display: flex; gap: 1.5rem; list-style: none; margin: 0; padding: 0; }
.edu-topbar-links a { display: inline-flex; align-items: center; gap: 0.45rem; }
.edu-social-row { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1rem; }
.edu-social { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.45rem 0.95rem; border-radius: 999px; border: 1px solid rgba(255,255,255,.25); font-size: 0.9rem; font-weight: 600; }
.edu-social:hover { background: #fff; color: var(--edu-plum) !important; }
.edu-footer-contact { list-style: none; padding: 0; margin: 0; }
.edu-footer-contact li { display: flex; gap: 0.7rem; margin-bottom: 0.7rem; color: rgba(255,255,255,.78); }
.edu-footer-contact .edu-i { color: var(--edu-aqua); margin-top: 0.3em; }

/* Breadcrumbs */
.edu-breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 0.4rem; list-style: none; padding: 0; margin: 0; font-size: 0.875rem; color: var(--edu-ink-soft); }
.edu-breadcrumbs li + li::before { content: "›"; margin-right: 0.4rem; opacity: 0.6; }
.edu-breadcrumbs a { color: var(--edu-ink-soft); text-decoration: none; }
.edu-breadcrumbs a:hover { color: var(--edu-plum); text-decoration: underline; }
.edu-breadcrumbs [aria-current] { color: var(--edu-ink); font-weight: 600; }

/* Contact details */
.edu-contact { list-style: none; padding: 0; margin: 1.75rem 0 0; display: grid; gap: 1.1rem; }
.edu-contact li { display: flex; gap: 1rem; align-items: flex-start; }
.edu-contact-icon { flex: none; width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--edu-mist); color: var(--edu-plum); display: grid; place-items: center; }
.edu-contact-icon .edu-i { width: 1.25rem; height: 1.25rem; }
.edu-contact strong { display: block; font-size: 1rem; }
.edu-contact p { margin: 0.1rem 0 0; color: var(--edu-ink-soft); }
.edu-map { margin-top: 1.5rem; border-radius: var(--edu-radius); overflow: hidden; border: 1px solid var(--edu-line); }
.edu-map iframe { display: block; width: 100%; height: 300px; border: 0; }

.edu-admin-note { display: flex; gap: 0.6rem; align-items: flex-start; margin: 1rem 0; padding: 0.8rem 1rem; border: 1.5px dashed color-mix(in srgb, var(--edu-plum) 45%, transparent); border-radius: 0.8rem; background: var(--edu-plum-soft); color: var(--edu-plum-dark); font-size: 0.875rem; line-height: 1.5; }
.edu-admin-note .edu-i { margin-top: 0.15rem; }

/* Programme cards */
.edu-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); gap: clamp(1rem, 2vw, 1.5rem); }
.edu-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--edu-line); border-radius: var(--edu-radius); overflow: hidden; }
.edu-card-media { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--edu-mist); }
.edu-card-media img, .edu-photo-fallback { display: block; width: 100%; height: 100%; object-fit: cover; }
.edu-photo-fallback { background: linear-gradient(160deg, #E6FAFD, #D9D0E6); min-height: 10rem; }
.edu-card-body { display: flex; flex-direction: column; flex: 1; padding: clamp(1.25rem, 1rem + 1vw, 1.75rem); }
.edu-card-kicker { margin: 0; font-size: 0.875rem; font-weight: 650; color: var(--edu-plum); }
.edu-card-title { margin: 0.5rem 0 0; font-size: 1.35rem; line-height: 1.2; }
.edu-card-title a { color: var(--edu-ink); text-decoration: none; }
.edu-card-title a:hover { color: var(--edu-plum); }
.edu-card-text { margin: 0.65rem 0 0; color: var(--edu-ink-soft); flex: 1; }
.edu-card-actions { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; align-items: center; margin-top: 1.25rem; }
.edu-link { font-weight: 650; color: var(--edu-plum); text-decoration: underline; text-decoration-color: var(--edu-aqua); text-decoration-thickness: 2px; text-underline-offset: 0.25em; }
.edu-link:hover { color: var(--edu-plum-dark); text-decoration-color: currentColor; }
.edu-card-secondary { font-weight: 600; color: var(--edu-ink-soft); text-decoration: none; font-size: 0.95rem; }
.edu-card-secondary:hover { color: var(--edu-plum); text-decoration: underline; }

.edu-programme-groups { display: grid; gap: clamp(3rem, 6vw, 4.5rem); max-width: 1200px; margin-inline: auto; }
.edu-group-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.5rem 1.5rem; margin-bottom: 1.5rem; }
.edu-group-head h2 { margin: 0; }
.edu-group-head p { margin: 0; color: var(--edu-ink-soft); flex: 1 1 20rem; }

/* Programme page */
.edu-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); gap: 1px; margin: 0 auto; max-width: 1200px; background: var(--edu-line); border: 1px solid var(--edu-line); border-radius: var(--edu-radius); overflow: hidden; }
.edu-fact { background: #fff; padding: 1.1rem 1.25rem; display: flex; flex-direction: column; gap: 0.15rem; }
.edu-fact .edu-i { display: block; color: var(--edu-aqua); width: 1.3rem; height: 1.3rem; margin-bottom: 0.5rem; }
.edu-fact dt { font-size: 0.8125rem; font-weight: 600; color: var(--edu-ink-soft); }
.edu-fact dd { margin: 0.15rem 0 0; font-weight: 650; line-height: 1.35; }
.edu-programme-buttons { margin-top: 1.75rem; display: flex; flex-wrap: wrap; gap: 0.75rem; }
.edu-programme-buttons .wp-block-button__link { display: inline-block; text-decoration: none; }
.edu-programme-buttons .is-style-outline .wp-block-button__link { background: #fff; color: var(--edu-plum); border: 1.5px solid color-mix(in srgb, var(--edu-plum) 35%, transparent); }
.edu-programme-buttons .is-style-outline .wp-block-button__link:hover { border-color: var(--edu-plum); background: var(--edu-plum-soft); }
.edu-programme-photo { margin: 0; }
.edu-programme-photo .edu-photo-fallback { aspect-ratio: 4 / 5; }

.edu-section { padding-block: clamp(4rem, 3rem + 4vw, 7rem); }
.edu-section-inner { max-width: 1200px; margin-inline: auto; padding-inline: clamp(1.25rem, 4vw, 2rem); }
.edu-section h2 { margin-top: 0; }
.edu-section .edu-cards { margin-top: 2rem; }
.edu-head-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 1rem; }
.edu-related { background: var(--edu-plum-soft); }
.edu-split { display: grid; grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); gap: clamp(2rem, 5vw, 4rem); }
@media (max-width: 900px) { .edu-split { grid-template-columns: 1fr; } }
.edu-lead { font-size: 1.15rem; color: var(--edu-ink-soft); }

/* Testimonials */
.edu-quotes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: 1.5rem; margin-top: 2rem; }
.edu-quote { margin: 0; background: var(--edu-mist); border-radius: var(--edu-radius); padding: 1.75rem; display: flex; flex-direction: column; }
.edu-quote-mark { width: 1.75rem; height: 1.75rem; color: var(--edu-plum); }
.edu-quote blockquote { margin: 0.75rem 0 0; padding: 0; border: 0; font-size: 1.0625rem; flex: 1; }
.edu-quote figcaption { margin-top: 1.25rem; font-size: 0.9rem; display: grid; gap: 0.1rem; }
.edu-quote figcaption span { color: var(--edu-ink-soft); }

/* Enquiry form */
.edu-form, .edu-form *, .edu-form *::before, .edu-form *::after { box-sizing: border-box; }
.edu-form { background: #fff; border: 1px solid var(--edu-line); border-radius: var(--edu-radius); padding: clamp(1.4rem, 1rem + 2vw, 2.25rem); box-shadow: 0 24px 60px -40px rgba(57, 22, 89, 0.45); }
.edu-form h2 { margin: 0; font-size: 1.6rem; }
.edu-form-intro { margin: 0.4rem 0 0; color: var(--edu-ink-soft); font-size: 0.95rem; }
.edu-field { margin: 1.5rem 0 0; padding: 0; border: 0; min-width: 0; }
.edu-field > label, .edu-field > legend { font-weight: 650; }
.edu-field legend { padding: 0; margin-bottom: 0.6rem; }
.edu-form input[type=text], .edu-form input[type=email], .edu-form input[type=tel], .edu-form input[type=date], .edu-form select, .edu-form textarea {
	display: block; width: 100%; margin-top: 0.5rem; padding: 0.75rem 1rem; font: inherit; font-size: 1rem; color: var(--edu-ink);
	background: #fff; border: 1px solid var(--edu-line); border-radius: 0.75rem; transition: border-color .15s;
}
.edu-form input:hover, .edu-form select:hover, .edu-form textarea:hover { border-color: color-mix(in srgb, var(--edu-plum) 40%, var(--edu-line)); }
.edu-form input:focus-visible, .edu-form select:focus-visible, .edu-form textarea:focus-visible { outline: 3px solid var(--edu-plum); outline-offset: 1px; border-color: var(--edu-plum); }
.edu-form [aria-invalid=true] { border-color: #B42318 !important; }
.edu-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.25rem; }
@media (max-width: 600px) { .edu-row { grid-template-columns: 1fr; } }
.edu-pills, .edu-options { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.edu-options { display: grid; }
.edu-pill, .edu-option { display: inline-flex; align-items: center; gap: 0.6rem; padding: 0.6rem 1rem; border: 1px solid var(--edu-line); border-radius: 999px; cursor: pointer; font-weight: 500; transition: border-color .15s, background-color .15s; }
.edu-option { border-radius: 0.8rem; padding: 0.75rem 1rem; }
.edu-pill:hover, .edu-option:hover { border-color: color-mix(in srgb, var(--edu-plum) 45%, var(--edu-line)); }
.edu-pill:has(input:checked), .edu-option:has(input:checked) { border-color: var(--edu-plum); background: var(--edu-plum-soft); }
.edu-pill input, .edu-option input, .edu-check input { accent-color: var(--edu-plum); width: 1.05rem; height: 1.05rem; margin: 0; flex: none; }
.edu-pill[hidden], .edu-field[hidden], .edu-hint[hidden], [data-edu-req][hidden] { display: none !important; }
.edu-check { display: flex; gap: 0.75rem; align-items: flex-start; font-weight: 400 !important; cursor: pointer; }
.edu-check input { margin-top: 0.3rem; }
.edu-hint { margin: 0.45rem 0 0; font-size: 0.875rem; color: var(--edu-ink-soft); }
.edu-error { display: flex; gap: 0.4rem; align-items: center; margin: 0.5rem 0 0; color: #B42318; font-size: 0.9rem; font-weight: 600; }
.edu-form-alert { margin-top: 1.25rem; padding: 1rem 1.15rem; border: 1px solid #FDA29B; background: #FEF3F2; color: #912018; border-radius: 0.8rem; }
.edu-form-alert:focus { outline: 3px solid #B42318; outline-offset: 2px; }
.edu-form-alert p { margin: 0; }
.edu-form-alert ul { margin: 0.5rem 0 0; padding-left: 1.2rem; font-size: 0.9rem; }
.edu-form-alert a { color: inherit; }
.edu-trap { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.edu-form .wp-block-buttons { margin-top: 1.75rem; }
.edu-submit { border: 0; cursor: pointer; font-size: 1.0625rem !important; padding: 1rem 1.9rem !important; }
.edu-submit:disabled { opacity: 0.7; cursor: progress; }
.edu-form-done { outline: none; }
.edu-done-icon { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: var(--edu-aqua); color: var(--edu-ink); }
.edu-done-icon .edu-i { width: 1.5rem; height: 1.5rem; stroke-width: 2.6; }
.edu-form-done h2 { margin-top: 1.25rem; }
.edu-form-done p { color: var(--edu-ink-soft); }

/* Floating WhatsApp */
.edu-wa-float { position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 40; width: 3.5rem; height: 3.5rem; border-radius: 50%; background: #25D366; color: #fff; display: grid; place-items: center; box-shadow: 0 10px 30px -10px rgba(0,0,0,.4); }
.edu-wa-float .edu-i { width: 1.7rem; height: 1.7rem; }
.edu-wa-float:hover { background: #1DA851; color: #fff; }
.edu-wa-float:focus-visible { outline: 3px solid var(--edu-plum); outline-offset: 3px; }

[dir=rtl] .edu-breadcrumbs li + li::before { content: "‹"; margin-right: 0; margin-left: 0.4rem; }
[dir=rtl] .edu-wa-float { right: auto; left: 1.25rem; }
