/* ==========================================================================
   Ready-made editor blocks (App\RichBlocks) and editor formatting.
   Loaded on the website AND in the admin, so the editor preview matches the live page.
   Colours fall back to literal values because the admin does not define the site tokens.
   ========================================================================== */
.eg-blk, .eg-blocks .eg-blk {
  --b-saffron: #c8440c; --b-bright: #f25a14; --b-ink: #2a1c14; --b-ink2: #4e3d32; --b-muted: #6b5a4e;
  --b-paper: #fbf7f1; --b-line: #e8ded2; --b-soft: #fdeee3;
  margin: 1.6em 0; font-family: "Mukta", "Segoe UI", system-ui, sans-serif; color: var(--b-ink2);
}
.eg-blocks { font-size: 15px; line-height: 1.6; }
.eg-blk h3 { font-family: "Source Serif 4", Georgia, serif; font-size: 1.3rem; font-weight: 600; color: var(--b-ink); margin: 0 0 .7em; line-height: 1.25; }
.eg-blk p { margin: 0; }

/* Notice */
.eg-notice { display: flex; gap: 14px; align-items: flex-start; padding: 16px 18px; border-radius: 12px; border: 1px solid; }
.eg-notice strong { display: block; color: var(--b-ink); margin-bottom: 2px; }
.eg-notice-ico { flex: none; width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 15px; color: #fff; }
.eg-notice.is-info { background: #e9f0f7; border-color: #c6d8ea; } .eg-notice.is-info .eg-notice-ico { background: #1f4e79; }
.eg-notice.is-tip { background: var(--b-soft); border-color: #f3cfb4; } .eg-notice.is-tip .eg-notice-ico { background: var(--b-saffron); }
.eg-notice.is-success { background: #e9f3ea; border-color: #b9d8bd; } .eg-notice.is-success .eg-notice-ico { background: #1e5b2e; }
.eg-notice.is-warning { background: #fdf5e1; border-color: #f0d79a; } .eg-notice.is-warning .eg-notice-ico { background: #a16207; }
.eg-notice.is-important { background: #fbeceb; border-color: #e6b8b4; } .eg-notice.is-important .eg-notice-ico { background: #9b1c1c; }

/* Highlights */
.eg-highlights-grid { display: grid; grid-template-columns: repeat(var(--cols, 2), minmax(0, 1fr)); gap: 10px; }
.eg-highlight { padding: 14px 16px; border: 1px solid var(--b-line); border-radius: 12px; background: #fff; }
.eg-highlight span { display: block; font-size: 12.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #8a4a23; }
.eg-highlight b { display: block; font-size: 1.05rem; color: var(--b-ink); line-height: 1.35; margin-top: 2px; }

/* CTA box */
.eg-cta { display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: center; justify-content: space-between; padding: 22px 24px; border-radius: 14px; }
.eg-cta h3 { margin-bottom: 4px; }
.eg-cta.is-saffron { background: var(--b-saffron); } .eg-cta.is-saffron h3 { color: #fff; } .eg-cta.is-saffron p { color: #fde6d6; }
.eg-cta.is-dark { background: var(--b-ink); } .eg-cta.is-dark h3 { color: #fff; } .eg-cta.is-dark p { color: #e8dccf; }
.eg-cta.is-light { background: var(--b-paper); border: 1px solid var(--b-line); }
.eg-blk-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 20px; border-radius: 6px; font-weight: 700; text-decoration: none !important; background: var(--b-ink); color: #fff !important; border: 1px solid transparent; transition: transform .45s cubic-bezier(.34, 1.56, .64, 1), background-color .2s; }
.eg-blk-btn:hover { transform: translateY(-2px); }
.eg-cta.is-dark .eg-blk-btn, .eg-cta.is-light .eg-blk-btn, .eg-blk-btn.is-primary { background: var(--b-saffron); }
.eg-cta.is-saffron .eg-blk-btn { background: #fff; color: var(--b-ink) !important; }
.eg-blk-btn.is-wa { background: #1f7a44; color: #fff !important; }
.eg-blk-btn.is-dark { background: var(--b-ink); }
.eg-blk-btn.is-ghost { background: transparent; color: var(--b-ink) !important; border-color: #d8c9b6; }
.eg-button.is-center { text-align: center; }

/* FAQ */
.eg-faq details { border-bottom: 1px solid var(--b-line); }
.eg-faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; font-weight: 700; color: var(--b-ink); }
.eg-faq summary::-webkit-details-marker { display: none; }
.eg-faq summary::after { content: "+"; color: var(--b-saffron); font-size: 22px; line-height: 1; transition: transform .45s cubic-bezier(.34, 1.56, .64, 1); }
.eg-faq details[open] summary::after { transform: rotate(45deg); }
.eg-faq details p { padding: 0 0 14px; }

/* Steps */
.eg-steps ol { list-style: none; margin: 0; padding: 0; counter-reset: egstep; }
.eg-steps li { position: relative; counter-increment: egstep; padding: 0 0 18px 50px; }
.eg-steps li::before { content: counter(egstep); position: absolute; left: 0; top: 0; width: 34px; height: 34px; border-radius: 50%; background: var(--b-saffron); color: #fff; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.eg-steps li::after { content: ""; position: absolute; left: 16px; top: 38px; bottom: 2px; width: 2px; background: var(--b-line); }
.eg-steps li:last-child::after { display: none; }
.eg-steps b { display: block; color: var(--b-ink); font-size: 1.05rem; padding-top: 4px; }

/* Checklist */
.eg-checklist ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.eg-checklist li { position: relative; padding-left: 32px; }
.eg-checklist li::before { content: "✓"; position: absolute; left: 0; top: 1px; width: 22px; height: 22px; border-radius: 50%; background: #e9f3ea; color: #1e5b2e; font-weight: 800; font-size: 13px; display: flex; align-items: center; justify-content: center; }
.eg-checklist.is-cross li::before { content: "✕"; background: #fbeceb; color: #9b1c1c; }

/* Comparison + fees tables */
.eg-compare-scroll { overflow-x: auto; border: 1px solid var(--b-line); border-radius: 12px; }
.eg-compare table, .eg-fees table { width: 100%; border-collapse: collapse; font-size: 15px; margin: 0; display: table; }
.eg-compare th, .eg-compare td, .eg-fees td, .eg-fees th { padding: 12px 14px; border: 0; border-bottom: 1px solid var(--b-line); text-align: left; vertical-align: top; }
.eg-compare thead th { background: var(--b-ink); color: #fff; font-weight: 700; }
.eg-compare tbody th { background: var(--b-paper); color: var(--b-ink); font-weight: 700; white-space: nowrap; }
.eg-compare tr:last-child > * { border-bottom: 0; }
.eg-fees table { border: 1px solid var(--b-line); border-radius: 12px; overflow: hidden; border-collapse: separate; border-spacing: 0; }
.eg-fees .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.eg-fees tfoot th { background: var(--b-soft); color: var(--b-ink); border-bottom: 0; }
.eg-fees-note { font-size: 13.5px; color: var(--b-muted); margin-top: 8px !important; }

/* Big numbers */
.eg-stats-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.eg-stat-blk { padding: 18px; border-radius: 12px; background: var(--b-paper); border: 1px solid var(--b-line); }
.eg-stat-blk b { display: block; font-family: "Source Serif 4", Georgia, serif; font-size: 2.2rem; line-height: 1.1; color: var(--b-saffron); font-variant-numeric: tabular-nums; }
.eg-stat-blk > span { font-size: 14px; color: var(--b-muted); }

/* Quote */
.eg-quote { padding: 8px 0 8px 22px; border-left: 4px solid var(--b-bright); }
.eg-quote blockquote { margin: 0; font-family: "Source Serif 4", Georgia, serif; font-size: 1.35rem; line-height: 1.45; color: var(--b-ink); border: 0; padding: 0; }
.eg-quote figcaption { margin-top: 10px; font-size: 14.5px; color: var(--b-muted); }
.eg-quote figcaption b { color: var(--b-ink); }

/* Video */
.eg-video .video-thumb { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; padding: 0; border-radius: 12px; overflow: hidden; background: #000; cursor: pointer; }
.eg-video .video-thumb img { width: 100%; height: 100%; object-fit: cover; margin: 0; border-radius: 0; }
.eg-video figcaption { font-size: 14px; color: var(--b-muted); margin-top: 6px; }

/* Scholarship block */
.eg-scholar { display: flex; gap: 22px; align-items: center; padding: 22px 24px; border-radius: 14px; background: var(--b-ink); }
.eg-scholar h3 { color: #fff; margin-bottom: 6px; }
.eg-scholar p { color: #e8dccf; margin-bottom: 14px !important; }
.eg-scholar-badge { flex: none; font-family: "Source Serif 4", Georgia, serif; font-weight: 700; font-size: 3.4rem; line-height: .9; color: var(--b-bright); text-align: center; }
.eg-scholar-badge small { display: block; font-family: "Mukta", sans-serif; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: #e8dccf; margin-top: 4px; }
.eg-scholar .eg-blk-btn { background: var(--b-bright); }

/* Divider */
.eg-divider { height: 1px; border: 0; }
.eg-divider.is-dots { height: auto; text-align: center; }
.eg-divider.is-dots::before { content: "• • •"; color: var(--b-bright); letter-spacing: .6em; font-size: 18px; }
.eg-divider.is-line { height: 3px; width: 72px; background: var(--b-bright); border-radius: 3px; }
.eg-divider.is-space { height: 24px; }

/* Editor formatting on the website (text colour, lead, small, grid, "H1") */
.prose .color { color: var(--color); }
.prose .lead { font-size: 1.22em; color: var(--ink, #2a1c14); }
.prose small { font-size: .85em; }
.prose mark { background: #fde7a8; color: inherit; padding: 0 .15em; border-radius: 3px; }
.prose .as-h1 { font-size: clamp(1.8rem, 3vw, 2.3rem); margin-top: 1.4em; }
.prose .grid-layout { display: grid; gap: 20px; grid-template-columns: 1fr; margin: 1.2em 0; }
@media (min-width: 900px) { .prose .grid-layout { grid-template-columns: var(--cols); } .prose .grid-layout-col { grid-column: var(--col-span); } }
.prose details { border: 1px solid var(--line, #e8ded2); border-radius: 10px; padding: 0 16px; margin: 1em 0; }
.prose details summary { cursor: pointer; font-weight: 700; padding: 12px 0; color: var(--ink, #2a1c14); }
.prose details[open] summary { border-bottom: 1px solid var(--line, #e8ded2); margin-bottom: 10px; }

/* Blocks animate in on the website as they scroll into view (motion.js marks .eg-blk) */
.js .prose .eg-blk { opacity: 0; translate: 0 18px; transition: opacity .7s cubic-bezier(.16, 1, .3, 1), translate .9s cubic-bezier(.16, 1, .3, 1); }
.js .prose .eg-blk.is-in { opacity: 1; translate: none; }
.js .prose .eg-highlight, .js .prose .eg-steps li, .js .prose .eg-checklist li, .js .prose .eg-stat-blk { opacity: 0; translate: 0 10px; transition: opacity .5s ease, translate .7s cubic-bezier(.16, 1, .3, 1); transition-delay: calc(var(--i, 0) * 60ms + 120ms); }
.js .prose .eg-blk.is-in .eg-highlight, .js .prose .eg-blk.is-in li, .js .prose .eg-blk.is-in .eg-stat-blk { opacity: 1; translate: none; }
@media (prefers-reduced-motion: reduce) { .js .prose .eg-blk, .js .prose .eg-blk * { opacity: 1 !important; translate: none !important; } }
@media (max-width: 640px) {
  .eg-highlights-grid { grid-template-columns: 1fr 1fr; }
  .eg-scholar { flex-direction: column; align-items: flex-start; }
}
