/* ═══════════════════════════════════════════════════════════════════════
   ZERO-DRIFT RESET
   Makes 10px actually mean 10px in Elementor.

   WHERE TO PASTE THIS
     Elementor Pro   →  Elementor → Site Settings → Custom CSS
     Elementor free  →  Appearance → Customise → Additional CSS
                        (or a code-snippets plugin, or your child theme)

   DO THIS BEFORE YOU BUILD ANYTHING.
   Adding it afterwards will shift every page you already made.

   WHAT IT FIXES
     Six things quietly add space you never asked for:
       1. Theme margins on h1–h6 and p
       2. Elementor's "Widgets Space" (20px under every widget)
       3. Elementor's default container padding
       4. Your theme's page wrapper padding and max-width
       5. Inline-image whitespace
       6. Inconsistent box-sizing

   AFTER PASTING
     Run script #5 (DRIFT) from extract.js on any page.
     The result should be empty. If it isn't, read section 9 at the bottom.
   ═══════════════════════════════════════════════════════════════════════ */


/* ── 1 ── Elementor container defaults ─────────────────────────────────
   Elementor ships containers with built-in padding and widget spacing.
   Zero them, so every value you set is the only value in play.            */

:root{
  --container-default-padding-top:    0px;
  --container-default-padding-right:  0px;
  --container-default-padding-bottom: 0px;
  --container-default-padding-left:   0px;

  --container-default-padding-block-start:  0px;
  --container-default-padding-block-end:    0px;
  --container-default-padding-inline-start: 0px;
  --container-default-padding-inline-end:   0px;

  --widgets-spacing:        0px 0px;
  --widgets-spacing-row:    0px;
  --widgets-spacing-column: 0px;
}


/* ── 2 ── No automatic gap under widgets ───────────────────────────────
   Elementor's "Widgets Space" setting adds margin-bottom to every widget.
   Also set it to 0 in Site Settings → Layout. This is the belt to that
   setting's braces.

   Spacing should come from the PARENT CONTAINER'S GAP, never from a
   margin on an individual widget. That way you change spacing in one
   place instead of forty.                                                */

.elementor-widget:not(:last-child){ margin-block-end: 0; }
.elementor-element{ --widgets-spacing: 0px 0px; }
.elementor-widget-wrap > .elementor-element{ margin-bottom: 0; }


/* ── 3 ── Headings: no theme margin ────────────────────────────────────
   Kadence, Astra, Hello, GeneratePress — all of them add margin-bottom
   to headings. That margin appears BELOW your heading widget and looks
   exactly like container padding, which is why spacing never adds up.    */

.elementor-widget-heading .elementor-heading-title{
  margin: 0;
  padding: 0;
}

.elementor h1, .elementor h2, .elementor h3,
.elementor h4, .elementor h5, .elementor h6{
  margin-top: 0;
}


/* ── 4 ── Text Editor widget: predictable paragraph spacing ────────────
   First paragraph gets no top margin. Last gets no bottom margin.
   Paragraphs between them get exactly one line of space.                 */

.elementor-widget-text-editor > .elementor-widget-container > *:first-child,
.elementor-widget-text-editor > *:first-child{ margin-top: 0; }

.elementor-widget-text-editor > .elementor-widget-container > *:last-child,
.elementor-widget-text-editor > *:last-child{ margin-bottom: 0; }

.elementor-widget-text-editor p{ margin: 0 0 1em; }
.elementor-widget-text-editor p:last-child{ margin-bottom: 0; }

.elementor-widget-text-editor ul,
.elementor-widget-text-editor ol{ margin: 0 0 1em; padding-left: 1.25em; }
.elementor-widget-text-editor ul:last-child,
.elementor-widget-text-editor ol:last-child{ margin-bottom: 0; }
.elementor-widget-text-editor li{ margin: 0 0 .4em; }
.elementor-widget-text-editor li:last-child{ margin-bottom: 0; }


/* ── 5 ── Theme page wrapper ───────────────────────────────────────────
   Even on "Elementor Full Width", some themes keep a padded wrapper
   with its own max-width. This strips it on Elementor pages only.

   ALSO DO THIS: edit the page → gear icon (bottom left) →
   Page Layout → Elementor Full Width.
   The CSS is the safety net, not the fix.                                */

.elementor-page .site-content,
.elementor-page .content-area,
.elementor-page .entry-content,
.elementor-page .site-container,
.elementor-page .content-container,
.elementor-page .site-main,
.elementor-page #primary,
.elementor-page #content{
  padding: 0 !important;
  margin: 0 !important;
  max-width: none !important;
  width: 100% !important;
}

/* Kadence specifically */
.elementor-page.content-style-unboxed .content-area,
.elementor-page .content-bg{
  background: transparent;
  box-shadow: none;
  padding: 0;
}


/* ── 6 ── Images: no phantom gap ───────────────────────────────────────
   Inline images sit on the text baseline, leaving 3–5px underneath.
   Scoped to the Image widget so images inside body copy still flow.      */

.elementor-widget-image img,
.elementor-widget-theme-post-featured-image img{
  display: block;
  max-width: 100%;
  height: auto;
}


/* ── 7 ── Box model certainty ──────────────────────────────────────────
   Padding counts INSIDE the width. Without this, a 300px box with 20px
   padding renders 340px wide and every measurement drifts.               */

.elementor,
.elementor *,
.elementor *::before,
.elementor *::after{ box-sizing: border-box; }


/* ── 8 ── Mobile horizontal scroll guard ───────────────────────────────
   One element 2px too wide gives the whole page a sideways scroll.
   `clip` instead of `hidden` so sticky positioning still works.          */

html, body{
  overflow-x: clip;
  max-width: 100%;
}


/* ── 9 ── Buttons: your padding, not Elementor's ───────────────────────
   line-height: 1 makes button height = padding-top + text + padding-bottom,
   with nothing added. If you set 14px top and bottom on 16px text, you
   get a 44px button. Exactly 44.

   Comment this out if your buttons wrap onto two lines.                  */

.elementor-button{
  line-height: 1;
  text-decoration: none;
}

.elementor-button .elementor-button-content-wrapper{
  align-items: center;
}


/* ── 10 ── Forms (ElementsKit / Kadence / any plugin) ──────────────────
   Form plugins bring their own margins. Neutralise them, then set
   spacing with the container gap like everything else.                   */

.elementor input[type=text],
.elementor input[type=email],
.elementor input[type=tel],
.elementor input[type=url],
.elementor input[type=number],
.elementor input[type=search],
.elementor input[type=date],
.elementor select,
.elementor textarea{
  margin: 0;
  box-shadow: none;
  max-width: 100%;
}

.elementor label{ margin: 0 0 .375em; display: block; }
.elementor form p{ margin: 0; }


/* ── 11 ── Kill leftover Elementor spacers ─────────────────────────────
   Empty containers still take up their gap. Zero-height ones collapse.   */

.e-con:empty,
.elementor-widget-spacer:empty{ display: none; }


/* ═══════════════════════════════════════════════════════════════════════
   OPTIONAL — OPTICAL TRIM

   Even with zero padding, text sits inside a box taller than the letters.
   A 48px heading with line-height 1.2 has a 57.6px box, so ~4.8px of
   invisible space above and below the glyphs.

   This is NORMAL and Tailwind does it too. If you match the line-height,
   the optical spacing matches automatically — leave this alone.

   Only enable it if you want the letters themselves flush against the
   container edge. Chrome 133+ and Safari 18.2+ only; ignored elsewhere.

   Add "trim" as a CSS class on the widget in Elementor → Advanced.
   ═══════════════════════════════════════════════════════════════════════ */

/*
.trim,
.trim .elementor-heading-title{
  text-box: trim-both cap alphabetic;
}
*/


/* ═══════════════════════════════════════════════════════════════════════
   IF THE DRIFT SCRIPT STILL FINDS SPACING

   1. Check Site Settings → Layout → Widgets Space is 0.
   2. Check the page's gear icon → Page Layout = Elementor Full Width.
   3. Run DRIFT and read the "selector" it reports. Add a rule:

        .elementor YOUR-SELECTOR-HERE { margin: 0; padding: 0; }

   4. If it's a plugin widget (ElementsKit, Kadence Blocks), the plugin's
      own stylesheet loads after this one. Add !important to that one rule.
      Don't add !important everywhere — you'll lose the ability to override
      anything later.
   ═══════════════════════════════════════════════════════════════════════ */



/* ===== Custom classes recovered from Lovable ===== */

.gold-rule {
  display: inline-block;
  width: 2.5rem;
  height: 1px;
  vertical-align: middle;
  background: var(--e-global-color-secondary); /* Gold */
}

.text-eyebrow {
  font-family: var(--e-global-typography-secondary-font-family); /* Inter */
  font-size: 11.52px;
  font-weight: 600;
  letter-spacing: 3.2256px;
  text-transform: uppercase;
  color: currentColor;
}

.text-eyebrow-light {
  font-family: var(--e-global-typography-secondary-font-family);
  font-size: 11.52px;
  font-weight: 600;
  letter-spacing: 3.2256px;
  text-transform: uppercase;
  /* use the brand's gold on dark backgrounds */
}

.hero-veil {
  background: linear-gradient(
    180deg,
    rgba(11, 31, 92, 0.92) 0%,
    rgba(11, 31, 92, 0.55) 55%,
    rgba(11, 31, 92, 0.78) 100%
  );
}

.glass-card {
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(255, 255, 255, 0.4);
  box-shadow: 0 12px 40px -18px rgba(11, 31, 92, 0.2);
}

.subbrand-dark {
  border-radius: 12px;
  overflow: hidden;
  color: #fff; /* ivory text on dark band */
}

/* Sub-nav horizontal scroll rail — hides scrollbar, fades both edges */
.school-nav-rail {
  scrollbar-width: none;
  scroll-snap-type: x proximity;
  -webkit-mask-image: linear-gradient(
    90deg,
    transparent 0,
    #000 24px,
    #000 calc(100% - 24px),
    transparent 100%
  );
  mask-image: linear-gradient(
    90deg,
    transparent 0,
    #000 24px,
    #000 calc(100% - 24px),
    transparent 100%
  );
}
.school-nav-rail::-webkit-scrollbar { display: none; }

/* ===== soft-panel background — PENDING, needs tokens-fix ===== */
/* .soft-panel {
  background: linear-gradient(180deg, #____ 0%, #____ 100%);
} */


/* ===== Brand switch — apply .brand-children or .brand-high
   to the OUTERMOST container of the page, nothing smaller ===== */

.brand-children {
  --brand-primary: #0E5FC0;
  --brand-text: #0A3B7A;
  --brand-deep: #072A57;
  --brand-gold: #F2A81D;
  --brand-tint: #F2F7FE;
  --brand-hairline: #DDEBFC;
  --brand-body: #55647A;
  --card-radius: 18px;
  --card-border: 1px solid transparent;
  --card-shadow: 0 12px 40px -18px rgba(10, 59, 122, 0.2);
}

.brand-high {
  --brand-primary: #78182C;
  --brand-text: #78182C;
  --brand-deep: #4A0F1C;
  --brand-gold: #C4A03C;
  --brand-tint: #FBF5F3;
  --brand-hairline: #F3E2E4;
  --brand-body: #6E5A5D;
  --card-radius: 8px;
  --card-border: 3px solid var(--brand-gold);
  --card-shadow: none;
}

/* Point your Elementor widgets at these variables instead of hardcoded
   colours wherever a widget sits inside a school section — e.g. a card's
   Advanced → Background and Border controls both read var(--card-*) and
   var(--brand-*) rather than a fixed hex. */

.brand-children .subbrand-card,
.brand-high .subbrand-card {
  border-radius: var(--card-radius);
  border: var(--card-border);
  box-shadow: var(--card-shadow);
}

/* ==== VIC COMPONENTS ==== */

:root{
  --brand-primary:#0B1F5C; --brand-text:#0B1F5C; --brand-deep:#071747;
  --brand-gold:#D9A83B; --brand-tint:#F2F7FE; --brand-hairline:#DCE4F4;
  --brand-body:#5A6478; --brand-canvas:#FCFBF8;
  --card-radius:12px; --card-border:1px solid var(--brand-hairline);
  --card-shadow:0 12px 40px -18px rgba(11,31,92,.2);
}

.vic-eyebrow{display:flex;align-items:center;gap:12px}
.vic-eyebrow .gold-rule{background:var(--brand-gold)}
.text-eyebrow{color:var(--brand-gold)}
.text-eyebrow-light{color:var(--brand-gold)}

/* Header */
.main-header{position:sticky;top:0;z-index:50;background:var(--brand-canvas);border-bottom:1px solid var(--brand-hairline)}
.vic-logo{display:flex;flex-direction:column;line-height:1.1;text-decoration:none}
.vic-logo__name{font-family:"Fraunces",Georgia,serif;font-size:20px;font-weight:600;color:var(--brand-primary)}
.vic-logo__tag{font-family:"Inter",sans-serif;font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--brand-body);margin-top:2px}

/* Footer */
.vic-footer{background:#0B1F5C;color:#fff}
.vic-footer a{color:rgba(255,255,255,.82);text-decoration:none}
.vic-footer a:hover{color:#fff}
.vic-foot-brand__name{font-family:"Fraunces",Georgia,serif;font-size:22px;font-weight:600;color:#fff}
.vic-foot-brand__tag{font-family:"Inter",sans-serif;font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--brand-gold);margin-top:4px}
.vic-foot-brand__blurb{font-size:14px;line-height:1.7;color:rgba(255,255,255,.75);margin:16px 0 0;max-width:38ch}
.vic-foot-contact{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:8px;font-size:14px}
.vic-foot-head{font-family:"Inter",sans-serif;font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--brand-gold);margin:0 0 14px}
.vic-foot-list{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:14px}
.vic-foot-bottom{border-top:1px solid rgba(255,255,255,.14)}
.vic-foot-copy,.vic-foot-badges{font-size:13px;color:rgba(255,255,255,.6)}
.vic-footer .vic-foot-col{min-width:150px}

/* Cards */
.vic-card{background:#fff;border-radius:var(--card-radius);border:var(--card-border);box-shadow:none;padding:32px;transition:box-shadow .15s ease}
.vic-card:hover{box-shadow:var(--card-shadow)}
.vic-card__eyebrow{font-family:"Inter",sans-serif;font-size:11.52px;font-weight:600;letter-spacing:3.2256px;text-transform:uppercase;color:var(--brand-gold)}
.vic-card__title{font-family:"Fraunces",Georgia,serif;font-size:20px;line-height:1.4;letter-spacing:-.4px;color:var(--brand-text);margin:12px 0 0}
.vic-card__body{font-size:16px;line-height:1.63;color:var(--brand-body);margin:12px 0 0}

/* Chips */
.vic-chip{background:#fff;border-radius:var(--card-radius);border:var(--card-border);padding:20px;display:flex;align-items:flex-start;gap:12px;font-size:16px;line-height:1.5;color:rgba(0,0,0,.85)}
.vic-chip::before{content:"";flex:0 0 6px;width:6px;height:6px;border-radius:999px;background:var(--brand-gold);margin-top:6px}

/* Grids */
.vic-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.vic-grid-3--tight{gap:16px}
.vic-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
@media (max-width:1023px){ .vic-grid-3{grid-template-columns:1fr} }
@media (max-width:767px){ .vic-grid-4{grid-template-columns:repeat(2,1fr)} }

/* CTA band */
.vic-cta{border-radius:var(--card-radius);overflow:hidden;background:var(--brand-deep);color:#fff;padding:64px}
.vic-cta__inner{display:grid;gap:40px;align-items:end}
@media (min-width:1280px){ .vic-cta__inner{grid-template-columns:1fr 1fr} }
.vic-cta h2{font-family:"Fraunces",Georgia,serif;font-size:48px;line-height:1.25;letter-spacing:-.96px;color:#fff;margin:20px 0 0}
.vic-cta p{font-size:16px;line-height:1.5;color:rgba(255,255,255,.75);margin:20px 0 0;max-width:448px}
.vic-cta__actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
@media (min-width:1280px){ .vic-cta__actions{justify-content:flex-end} }
@media (max-width:639px){ .vic-cta{padding:40px 24px} .vic-cta h2{font-size:32px} .vic-cta__actions{flex-direction:column;align-items:stretch} }
.vic-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:52px;padding:0 28px;border-radius:999px;font-family:"Inter",sans-serif;font-size:15px;font-weight:600;text-decoration:none;white-space:nowrap;transition:all .15s ease}
.vic-btn--gold{background:var(--brand-gold);color:var(--brand-deep)}
.vic-btn--gold:hover{transform:translateY(-2px)}
.vic-btn--ghost{border:1px solid rgba(255,255,255,.45);color:#fff}
.vic-btn--ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}

/* School sub-nav */
.school-bar{background:var(--brand-tint);border-bottom:1px solid var(--brand-hairline);position:sticky;top:80px;z-index:40}
@media (max-width:767px){ .school-bar{top:64px} }
.school-bar__inner{display:flex;align-items:center;gap:12px;min-height:48px}
.school-bar__name{flex:0 0 auto;display:inline-flex;align-items:center;height:32px;padding:0 12px;border-radius:999px;background:#fff;border:1px solid var(--brand-hairline);font-family:"Inter",sans-serif;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-text);white-space:nowrap}
.school-bar__nav ul{display:flex;align-items:center;gap:4px;list-style:none;margin:0;padding:4px 0}
.school-bar__nav a{display:inline-flex;align-items:center;height:32px;padding:0 14px;border-radius:999px;font-family:"Inter",sans-serif;font-size:13px;font-weight:500;color:var(--brand-text);text-decoration:none;white-space:nowrap;transition:background .15s ease}
.school-bar__nav a:hover{background:var(--brand-hairline)}
.school-bar__nav .current-menu-item > a{background:var(--brand-primary);color:#fff}

/* Hero */
.vic-hero-split{display:grid;gap:56px;align-items:center}
@media (min-width:1024px){ .vic-hero-split{grid-template-columns:1fr 1fr} }
.vic-hero-img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--card-radius);display:block}

/* Stats */
.vic-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--brand-hairline);border-radius:28px;overflow:hidden}
@media (max-width:767px){ .vic-stats{grid-template-columns:repeat(2,1fr)} }
.vic-stat{background:rgba(255,255,255,.9);padding:32px 24px}
.vic-stat__n{font-family:"Fraunces",Georgia,serif;font-size:48px;font-weight:500;line-height:1;letter-spacing:-.96px;color:var(--brand-primary)}
.vic-stat__l{font-family:"Inter",sans-serif;font-size:12px;letter-spacing:2.64px;text-transform:uppercase;color:var(--brand-body);margin-top:4px}

/* Prose */
.vic-prose p{font-size:18px;line-height:1.63;color:rgba(0,0,0,.8);margin:0 0 20px}
.vic-prose p:last-child{margin-bottom:0}

/* Soft panel */
.soft-panel{background:linear-gradient(180deg,#F7FAFD 0%,#F1F5FA 100%)}


/* ==== VIC COMPONENTS 2 ==== */

body.brand-children{
  --brand-primary:#0E5FC0; --brand-text:#0A3B7A; --brand-deep:#072A57;
  --brand-gold:#F2A81D; --brand-tint:#F2F7FE; --brand-hairline:#DDEBFC;
  --brand-body:#55647A; --brand-canvas:#FDFDFB;
  --card-radius:18px; --card-border:1px solid transparent;
  --card-shadow:0 12px 40px -18px rgba(10,59,122,.2);
}
body.brand-high{
  --brand-primary:#78182C; --brand-text:#78182C; --brand-deep:#4A0F1C;
  --brand-gold:#C4A03C; --brand-tint:#FBF5F3; --brand-hairline:#F3E2E4;
  --brand-body:#6E5A5D; --brand-canvas:#FCFAF7;
  --card-radius:8px; --card-border:3px solid var(--brand-gold);
  --card-shadow:none;
}
body.brand-children .vic-cta{background:linear-gradient(135deg,#0E5FC0,#072A57)}
body.brand-high .vic-cta{background:linear-gradient(135deg,#78182C,#4A0F1C)}
body.brand-high .vic-card:hover{box-shadow:none}

.elementor h1,.elementor h2,.elementor h3{color:var(--brand-text)}
.vic-cta h2{color:#fff}

/* Hero */
.vic-hero-sub{font-size:20px;line-height:1.63;color:var(--brand-body);max-width:672px}
.vic-h1{max-width:896px}
.vic-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
@media (max-width:639px){ .vic-hero-actions{flex-direction:column;align-items:stretch} }
.vic-btn--solid{background:var(--brand-primary);color:#fff;box-shadow:0 12px 30px -14px var(--brand-primary)}
.vic-btn--solid:hover{transform:translateY(-1px)}
.vic-btn--outline{border:1px solid rgba(0,0,0,.25);color:var(--brand-text)}
.vic-btn--outline:hover{background:var(--brand-primary);color:#fff;border-color:var(--brand-primary)}
.vic-hero-split__text .vic-eyebrow{margin-bottom:20px}
.vic-hero-split h1{margin:0}
.vic-hero-split p{margin:24px 0 0}

/* Section heading */
.vic-sec-head{max-width:672px}
.vic-sec-head h2{margin:16px 0 0}
.vic-sec-head p{font-size:18px;line-height:1.56;color:var(--brand-body);margin:20px 0 0}

.vic-card--sm{padding:24px}
.vic-card--sm .vic-card__title{font-size:18px;margin:0}
.vic-card--sm .vic-card__body{font-size:12px;margin:4px 0 0}

/* Home hero */
.vic-home-hero-wrap{background:#0B1F5C;color:#fff}
.vic-home-hero h1{font-family:"Fraunces",Georgia,serif;font-size:72px;line-height:1.02;letter-spacing:-1.8px;font-weight:500;color:#fff;margin:24px 0 0;max-width:768px}
.vic-home-hero h1 em{font-style:italic;color:#E7C66D}
.vic-home-hero p{font-size:18px;line-height:1.63;color:rgba(255,255,255,.85);margin:28px 0 0;max-width:672px}
.vic-hero-note{font-size:13px;color:rgba(255,255,255,.7);margin-top:16px}
.vic-home-hero-wrap .vic-btn--ghost{border-color:rgba(255,255,255,.45)}
@media (max-width:1023px){ .vic-home-hero h1{font-size:60px} }
@media (max-width:767px){ .vic-home-hero h1{font-size:48px} }
@media (max-width:639px){ .vic-home-hero h1{font-size:44px} }

/* School chooser */
.vic-school-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:32px}
@media (max-width:767px){ .vic-school-grid{grid-template-columns:1fr} }
.vic-school-card{display:block;background:#fff;border:1px solid var(--brand-hairline);border-radius:28px;overflow:hidden;text-decoration:none;transition:all .3s ease}
.vic-school-card:hover{transform:translateY(-4px);box-shadow:0 30px 80px -30px rgba(11,31,92,.35)}
.vic-school-card__media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--brand-hairline)}
.vic-school-card__media img{width:100%;height:100%;object-fit:cover;display:block}
.vic-school-card__badge{position:absolute;top:20px;left:20px;background:rgba(255,255,255,.9);border-radius:999px;padding:4px 12px;font-family:"Inter",sans-serif;font-size:10px;font-weight:600;letter-spacing:2.4px;text-transform:uppercase;color:#0B1F5C}
.vic-school-card__body{padding:32px}
.vic-school-card__body h3{font-family:"Fraunces",Georgia,serif;font-size:30px;line-height:1.2;letter-spacing:-.6px;color:var(--brand-text);margin:0}
.vic-school-card__body p{font-size:16px;line-height:1.63;color:var(--brand-body);margin:12px 0 0}
.vic-school-card__list{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:8px;font-size:14px;color:var(--brand-body)}
.vic-school-card__list li::before{content:"";display:inline-block;width:5px;height:5px;border-radius:999px;background:var(--brand-gold);margin-right:10px;vertical-align:middle}
.vic-school-card__cta{display:inline-block;margin-top:24px;font-family:"Inter",sans-serif;font-size:14px;font-weight:600;color:var(--brand-text)}

/* Steps */
.vic-steps .vic-step{padding-top:56px;position:relative}
.vic-step__n{position:absolute;left:0;top:0;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:999px;border:1px solid var(--brand-gold);font-family:"Inter",sans-serif;font-size:12px;font-weight:600;color:#7A5A12;background:var(--brand-canvas)}
.vic-step h3{font-family:"Fraunces",Georgia,serif;font-size:20px;line-height:1.4;letter-spacing:-.4px;color:var(--brand-text);margin:0}
.vic-step p{font-size:14px;line-height:1.63;color:var(--brand-body);margin:12px 0 0}
.vic-step__note{display:block;margin-top:16px;font-family:"Inter",sans-serif;font-size:12px;font-weight:600;letter-spacing:.96px;text-transform:uppercase;color:#7A5A12}

/* Split prose */
.vic-split-prose{display:grid;gap:56px;align-items:start}
@media (min-width:1024px){ .vic-split-prose{grid-template-columns:1.2fr 1fr} }
.vic-split-prose__media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--card-radius);display:block}

/* Gallery */
.vic-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media (max-width:1023px){ .vic-gallery{grid-template-columns:repeat(2,1fr)} }
@media (max-width:639px){ .vic-gallery{grid-template-columns:1fr} }
.vic-gallery__item{margin:0;border-radius:var(--card-radius);overflow:hidden;aspect-ratio:4/3}
.vic-gallery__item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
.vic-gallery__item:hover img{transform:scale(1.05)}

/* FAQ */
.vic-faq{max-width:900px}
.vic-faq__item{border-bottom:1px solid var(--brand-hairline)}
.vic-faq__item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 0;font-family:"Fraunces",Georgia,serif;font-size:18px;font-weight:500;letter-spacing:-.32px;color:var(--brand-text)}
.vic-faq__item summary::-webkit-details-marker{display:none}
.vic-faq__item summary::after{content:"+";font-family:"Inter",sans-serif;font-size:20px;color:var(--brand-gold);flex:0 0 auto}
.vic-faq__item[open] summary::after{content:"–"}
.vic-faq__a{padding:0 0 24px;max-width:672px}
.vic-faq__a p{font-size:14px;line-height:1.63;color:var(--brand-body);margin:0}

/* Forms */
.vic-form__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;max-width:768px}
@media (max-width:767px){ .vic-form__grid{grid-template-columns:1fr} }
.vic-field{display:flex;flex-direction:column;gap:8px}
.vic-field--full{grid-column:1 / -1}
.vic-field > span{font-family:"Inter",sans-serif;font-size:12px;font-weight:600;letter-spacing:2.64px;text-transform:uppercase;color:var(--brand-body)}
.vic-form input,.vic-form select,.vic-form textarea{border:1px solid var(--brand-hairline);border-radius:16px;background:#fff;padding:12px 16px;font-family:"Inter",sans-serif;font-size:16px;color:var(--brand-text);transition:border-color .15s ease;width:100%}
.vic-form input:focus,.vic-form select:focus,.vic-form textarea:focus{outline:none;border-color:var(--brand-primary)}
.vic-form__actions{display:flex;flex-wrap:wrap;gap:12px}
@media (max-width:639px){ .vic-form__actions{flex-direction:column;align-items:stretch} }
.vic-form__note{font-size:12px;color:var(--brand-body);margin:0}
.vic-form button{border:0;cursor:pointer}
.vic-form__done{background:#fff;border:1px solid var(--brand-hairline);border-radius:var(--card-radius);padding:24px;color:var(--brand-text)}

/* Portal */
.vic-portal__note{margin-top:32px;font-size:16px;line-height:1.63;color:var(--brand-body);max-width:672px}
.vic-portal__note a{color:var(--brand-primary)}

/* Contact */
.vic-contact .vic-card{text-decoration:none;display:block}
.vic-contact .vic-card__title{font-size:16px}

@media (max-width:1023px){ .school-bar__nav{overflow-x:auto;min-width:0;flex:1} }


/* ==== VIC CHROME v2 ==== */

/* Hard fallbacks: never rely on a variable resolving for a background. */
.vic-cta{background:#071747 !important;background:var(--brand-deep,#071747) !important}
body.brand-children .vic-cta{background:linear-gradient(135deg,#0E5FC0,#072A57) !important}
body.brand-high .vic-cta{background:linear-gradient(135deg,#78182C,#4A0F1C) !important}
.vic-cta,.vic-cta h2,.vic-cta p{color:#fff !important}
.vic-cta p{color:rgba(255,255,255,.78) !important}
.vic-cta .text-eyebrow-light{color:#D9A83B !important}
body.brand-children .vic-cta .text-eyebrow-light,
body.brand-children .vic-cta .gold-rule{color:#F2A81D !important;background-color:#F2A81D}
body.brand-high .vic-cta .text-eyebrow-light,
body.brand-high .vic-cta .gold-rule{color:#C4A03C !important;background-color:#C4A03C}
.vic-cta .gold-rule{background:#D9A83B}

/* ---------------- HEADER ---------------- */
.vic-hd{position:sticky;top:0;z-index:60;background:#FCFBF8 !important;
  border-bottom:1px solid rgba(11,31,92,.10)}
body.brand-children .vic-hd{background:#FDFDFB !important}
body.brand-high .vic-hd{background:#FCFAF7 !important}
.vic-hd__inner{max-width:1280px;margin:0 auto;padding:0 56px;min-height:80px;
  display:flex;align-items:center;gap:24px}
.vic-hd__logo{display:flex;align-items:center;gap:10px;text-decoration:none;flex:0 0 auto}
.vic-hd__crest{width:28px;height:28px;border-radius:6px;flex:0 0 auto;
  background:#0B1F5C;position:relative}
body.brand-children .vic-hd__crest{background:#0E5FC0}
body.brand-high .vic-hd__crest{background:#78182C}
.vic-hd__names{display:flex;flex-direction:column;line-height:1.1}
.vic-hd__name{font-family:"Fraunces",Georgia,serif;font-size:19px;font-weight:600;color:#0B1F5C}
body.brand-children .vic-hd__name{color:#0A3B7A}
body.brand-high .vic-hd__name{color:#78182C}
.vic-hd__tag{font-family:"Inter",sans-serif;font-size:9px;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:#5A6478;margin-top:3px}

.vic-hd__nav{flex:1 1 auto;display:flex;justify-content:center}
.vic-hd__nav ul{display:flex;align-items:center;gap:28px;list-style:none;margin:0;padding:0}
.vic-hd__nav a{font-family:"Inter",sans-serif;font-size:14px;font-weight:500;color:#0B1F5C;
  text-decoration:none;padding:6px 0;border-bottom:2px solid transparent;white-space:nowrap}
.vic-hd__nav a:hover{color:#D9A83B}
.vic-hd__nav li.is-active a{border-bottom-color:#D9A83B}
body.brand-children .vic-hd__nav a{color:#0A3B7A}
body.brand-high .vic-hd__nav a{color:#78182C}

.vic-hd__actions{flex:0 0 auto;display:flex;align-items:center;gap:10px}
.vic-portal-dd{position:relative}
.vic-portal-btn{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 16px;
  border-radius:999px;border:1px solid rgba(11,31,92,.18);background:#EEF3FC;cursor:pointer;
  font-family:"Inter",sans-serif;font-size:14px;font-weight:500;color:#0B1F5C}
body.brand-high .vic-portal-btn{background:#FBF0F1;border-color:rgba(120,24,44,.2);color:#78182C}
.vic-portal-menu{position:absolute;right:0;top:46px;min-width:190px;background:#fff;
  border:1px solid rgba(11,31,92,.12);border-radius:14px;padding:8px;display:none;
  box-shadow:0 20px 40px -16px rgba(11,31,92,.28);z-index:70}
.vic-portal-dd.is-open .vic-portal-menu{display:block}
.vic-portal-menu a{display:block;padding:9px 12px;border-radius:9px;font-family:"Inter",sans-serif;
  font-size:14px;color:#0B1F5C;text-decoration:none}
.vic-portal-menu a:hover{background:#EEF3FC}
.vic-hd__apply{display:inline-flex;align-items:center;height:38px;padding:0 20px;border-radius:999px;
  background:#0B1F5C;color:#fff;font-family:"Inter",sans-serif;font-size:14px;font-weight:600;
  text-decoration:none;white-space:nowrap}
body.brand-children .vic-hd__apply{background:#0E5FC0}
body.brand-high .vic-hd__apply{background:#78182C}
.vic-hd__apply:hover{opacity:.9;color:#fff}

.vic-hd__burger{display:none;width:40px;height:40px;border-radius:999px;cursor:pointer;
  border:1px solid rgba(11,31,92,.18);background:#fff;
  flex-direction:column;align-items:center;justify-content:center;gap:4px}
.vic-hd__burger span{display:block;width:16px;height:1.5px;background:#0B1F5C;border-radius:2px}
body.brand-high .vic-hd__burger span{background:#78182C}

/* Drawer */
.vic-drawer{position:fixed;inset:0;z-index:80;background:rgba(11,31,92,.35)}
.vic-drawer[hidden]{display:none}
.vic-drawer__panel{position:absolute;right:0;top:0;bottom:0;width:min(88vw,360px);
  background:#fff;padding:88px 24px 32px;overflow-y:auto}
.vic-drawer__nav{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.vic-drawer__nav a{display:block;padding:13px 4px;font-family:"Inter",sans-serif;font-size:16px;
  font-weight:500;color:#0B1F5C;text-decoration:none;border-bottom:1px solid rgba(11,31,92,.08)}
.vic-drawer__group > span{display:block;padding:16px 4px 6px;font-family:"Inter",sans-serif;
  font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#5A6478}
.vic-drawer__group ul{list-style:none;margin:0;padding:0}
.vic-drawer__cta{display:grid;gap:10px;margin-top:24px}
.vic-drawer__cta .vic-btn{width:100%}

@media (max-width:1023px){
  .vic-hd__inner{padding:0 24px;min-height:64px}
  .vic-hd__nav{display:none}
  .vic-hd__burger{display:flex}
  .vic-hd__apply{display:none}
}
@media (max-width:639px){ .vic-hd__inner{padding:0 20px} }

/* Sub-nav sits under the header */
.school-bar{position:sticky;top:80px;z-index:50}
@media (max-width:1023px){ .school-bar{top:64px} }
.school-bar__inner{max-width:1280px;margin:0 auto;padding:0 56px}
@media (max-width:1023px){ .school-bar__inner{padding:0 24px} }
@media (max-width:639px){ .school-bar__inner{padding:0 20px} }
.school-bar__nav li.is-active > a{background:#0B1F5C;color:#fff}
body.brand-children .school-bar__nav li.is-active > a{background:#0E5FC0;color:#fff}
body.brand-high .school-bar__nav li.is-active > a{background:#78182C;color:#fff}

/* ---------------- FOOTER ---------------- */
.vic-ft{background:#0B1F5C !important;color:#fff}
body.brand-children .vic-ft{background:#072A57 !important}
body.brand-high .vic-ft{background:#1C2540 !important}
.vic-ft__inner{max-width:1280px;margin:0 auto;padding:72px 56px 48px;
  display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}
.vic-ft a{color:rgba(255,255,255,.82);text-decoration:none}
.vic-ft a:hover{color:#fff}
.vic-ft__logo{display:flex;align-items:center;gap:10px}
.vic-ft__crest{width:32px;height:32px;border-radius:999px;background:#fff;flex:0 0 auto}
.vic-ft__name{display:block;font-family:"Fraunces",Georgia,serif;font-size:20px;font-weight:600;color:#fff}
.vic-ft__tag{display:block;font-family:"Inter",sans-serif;font-size:9px;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:#D9A83B;margin-top:3px}
body.brand-children .vic-ft__tag{color:#F2A81D}
body.brand-high .vic-ft__tag{color:#C4A03C}
.vic-ft__blurb{font-size:14px;line-height:1.7;color:rgba(255,255,255,.75);margin:18px 0 0;max-width:40ch}
.vic-ft__contact{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:9px;font-size:14px;
  color:rgba(255,255,255,.82)}
.vic-ft__col h4{font-family:"Inter",sans-serif;font-size:11px;font-weight:600;letter-spacing:.22em;
  text-transform:uppercase;color:#D9A83B;margin:0 0 14px}
body.brand-children .vic-ft__col h4{color:#F2A81D}
body.brand-high .vic-ft__col h4{color:#C4A03C}
.vic-ft__col ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:14px}
.vic-ft__bottom{border-top:1px solid rgba(255,255,255,.14)}
.vic-ft__bottominner{max-width:1280px;margin:0 auto;padding:22px 56px;display:flex;
  flex-wrap:wrap;gap:12px;justify-content:space-between;
  font-size:13px;color:rgba(255,255,255,.6)}
@media (max-width:1023px){
  .vic-ft__inner{grid-template-columns:1fr 1fr;padding:56px 24px 40px}
  .vic-ft__bottominner{padding:20px 24px}
}
@media (max-width:639px){
  .vic-ft__inner{grid-template-columns:1fr;padding:48px 20px 32px}
  .vic-ft__bottominner{padding:20px}
}

/* Home hero — hard background */
.vic-home-hero-wrap{background:#0B1F5C !important;color:#fff;position:relative;overflow:hidden}
.vic-home-hero-wrap .vic-home-hero h1,
.vic-home-hero-wrap .vic-stat__n{color:#fff}
.vic-home-hero-wrap .vic-stat__n{color:#0B1F5C}
.vic-home-hero__bg{position:absolute;inset:0;z-index:0}
.vic-home-hero__bg img{width:100%;height:100%;object-fit:cover;display:block}
.vic-home-hero__veil{position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(11,31,92,.92) 0%,rgba(11,31,92,.55) 55%,rgba(11,31,92,.88) 100%)}
.vic-home-hero-wrap > .e-con-inner,
.vic-home-hero-wrap > .elementor-element{position:relative;z-index:2}

/* Headings should never inherit white outside dark bands */
.elementor h1,.elementor h2,.elementor h3{color:var(--brand-text,#0B1F5C)}
.vic-home-hero-wrap h1,.vic-cta h2{color:#fff !important}


/* ==== VIC HOME v2 ==== */

.vic-center{display:flex;justify-content:center;margin-top:48px}
.vic-lead{font-size:18px;line-height:1.63;color:var(--brand-body,#5A6478);margin:24px 0 0;max-width:56ch}

/* Icon chip on the small cards */
.vic-card__ico{width:44px;height:44px;border-radius:14px;background:#EEF3FC;margin-bottom:20px}
body.brand-high .vic-card__ico{background:#FBF0F1}

/* Story / Founder split */
.vic-story{display:grid;gap:64px;align-items:center}
@media (min-width:1024px){ .vic-story{grid-template-columns:5fr 7fr} }
.vic-story--rev .vic-story__media{order:-1}
.vic-story__media{position:relative}
.vic-story__media img{width:100%;aspect-ratio:4/5;object-fit:cover;
  border-radius:32px;display:block}
.vic-story--rev .vic-story__media img{border-radius:var(--card-radius,12px)}
.vic-story__chip{position:absolute;right:-8px;bottom:-28px;max-width:260px;
  background:#FCFBF8;border-top:2px solid #D9A83B;padding:20px;
  box-shadow:0 12px 40px -18px rgba(11,31,92,.25)}
.vic-story__chip strong{display:block;font-family:"Fraunces",Georgia,serif;font-size:30px;
  line-height:1.2;letter-spacing:-.6px;color:#0B1F5C}
.vic-story__chip span{display:block;font-size:12px;line-height:1.63;color:#5A6478;margin-top:4px}
.vic-story__text h2{margin:16px 0 0}
.vic-story__text .vic-prose{margin-top:32px}
@media (max-width:1023px){ .vic-story__chip{position:static;max-width:none;margin-top:16px} }

/* Vision / Mission / Values */
.vic-vmv{display:grid;gap:20px;margin-top:36px}
@media (min-width:640px){ .vic-vmv{grid-template-columns:repeat(3,1fr)} }
.vic-vmv > div{border-left:2px solid #D9A83B;padding-left:16px}
.vic-vmv__k{display:block;font-family:"Inter",sans-serif;font-size:11.52px;font-weight:600;
  letter-spacing:3.2256px;text-transform:uppercase;color:rgba(0,0,0,.85)}
.vic-vmv p{font-size:14px;line-height:1.63;color:rgba(0,0,0,.75);margin:8px 0 0}

/* Founder */
.vic-founder__role{font-family:"Inter",sans-serif;font-size:12px;font-weight:600;
  letter-spacing:1.68px;text-transform:uppercase;color:#5A6478;margin-top:12px}
.vic-quote{margin:32px 0 0;padding:0 0 0 24px;border-left:3px solid #D9A83B;
  font-family:"Fraunces",Georgia,serif;font-size:20px;font-style:italic;line-height:1.63;
  letter-spacing:-.4px;color:#0B1F5C}

/* Dark teacher band */
.vic-band-dark{background:#0B1F5C !important;color:#fff;position:relative;overflow:hidden}
.vic-band-dark::before{content:"";position:absolute;inset:0;opacity:.4;
  background:radial-gradient(circle at 20% 20%,#173886,transparent 50%),
             radial-gradient(circle at 80% 80%,#78182C,transparent 45%)}
.vic-band-dark > .e-con-inner,.vic-band-dark > .elementor-element{position:relative;z-index:1}
.vic-teach{display:grid;gap:64px;align-items:center}
@media (min-width:1024px){ .vic-teach{grid-template-columns:5fr 7fr} }
.vic-teach h2{font-family:"Fraunces",Georgia,serif;font-size:48px;line-height:1.25;
  letter-spacing:-.96px;color:#fff !important;margin:20px 0 0}
.vic-teach h2 em{font-style:italic;color:#E7C66D}
.vic-teach p{font-size:16px;line-height:1.63;color:rgba(255,255,255,.75);margin:24px 0 0}
.vic-teach__grid{display:grid;gap:20px}
@media (min-width:640px){ .vic-teach__grid{grid-template-columns:repeat(2,1fr)} }
.vic-dcard{border-radius:20px;padding:24px;background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(8px)}
.vic-dcard h3{font-family:"Fraunces",Georgia,serif;font-size:20px;line-height:1.4;
  letter-spacing:-.4px;color:#fff !important;margin:0}
.vic-dcard p{font-size:14px;line-height:1.63;color:rgba(255,255,255,.7);margin:8px 0 0}
@media (max-width:767px){ .vic-teach h2{font-size:36px} }

/* Safety split */
.vic-split2{display:grid;gap:64px;align-items:start}
@media (min-width:1024px){ .vic-split2{grid-template-columns:1fr 1fr} }
.vic-split2 h2{margin:16px 0 0}
.vic-safe-grid{display:grid;gap:16px}
@media (min-width:640px){ .vic-safe-grid{grid-template-columns:repeat(2,1fr)} }
.vic-safe{background:#fff;border:1px solid var(--brand-hairline,#DCE4F4);
  border-radius:20px;padding:20px;font-size:16px;font-weight:500;
  color:var(--brand-text,#0B1F5C)}

/* Testimonials */
.vic-testi-head{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-end;
  justify-content:space-between;margin-bottom:48px}
.vic-testi-head h2{margin:16px 0 0;max-width:22ch}
.vic-stars{font-size:14px;color:#D9A83B;letter-spacing:2px}
.vic-stars span{color:var(--brand-body,#5A6478);letter-spacing:normal;margin-left:8px}
.vic-quotecard{margin:0;background:#fff;border:1px solid var(--brand-hairline,#DCE4F4);
  border-radius:28px;padding:32px}
.vic-quotecard blockquote{margin:0;font-family:"Fraunces",Georgia,serif;font-size:18px;
  line-height:1.38;letter-spacing:-.36px;color:var(--brand-text,#0B1F5C)}
.vic-quotecard figcaption{margin-top:24px;padding-top:24px;
  border-top:1px solid var(--brand-hairline,#DCE4F4)}
.vic-quotecard__n{display:block;font-size:16px;font-weight:600;color:var(--brand-text,#0B1F5C)}
.vic-quotecard__r{display:block;font-size:12px;color:var(--brand-body,#5A6478);margin-top:4px}

/* FAQ split */
.vic-faq-split{display:grid;gap:48px;align-items:start}
@media (min-width:1024px){ .vic-faq-split{grid-template-columns:4fr 8fr} }
.vic-faq-split h2{margin:16px 0 0}

/* Home hero spacing */
.vic-home-hero h1{max-width:768px}
.vic-home-hero-wrap .vic-stats{margin-top:0}
.vic-home-hero-wrap .vic-stat{background:rgba(255,255,255,.92)}
.vic-home-hero-wrap .vic-stat__n{color:#0B1F5C !important}
.vic-home-hero-wrap .vic-stat__l{color:#5A6478}

/* Section heading colour safety */
.vic-sec-head h2,.vic-story__text h2,.vic-split2 h2,
.vic-testi-head h2,.vic-faq-split h2{color:var(--brand-text,#0B1F5C)}


/* ==== VIC SECTIONS v3 ==== */

.vic-sec{position:relative;padding:80px 0;background:transparent}
.vic-sec__in{max-width:1280px;margin:0 auto;padding:0 56px}
@media (max-width:1023px){ .vic-sec{padding:64px 0} .vic-sec__in{padding:0 24px} }
@media (max-width:639px){ .vic-sec{padding:56px 0} .vic-sec__in{padding:0 20px} }

.vic-sec--soft{background:linear-gradient(180deg,#F7FAFD 0%,#F1F5FA 100%)}
body.brand-high .vic-sec--soft{background:linear-gradient(180deg,#FCF7F6 0%,#F7F0EF 100%)}
.vic-sec--dark{background:#0B1F5C;overflow:hidden;padding:96px 0}
.vic-sec--dark::before{content:'';position:absolute;inset:0;opacity:.45;background:radial-gradient(circle at 20% 20%,#173886,transparent 50%),radial-gradient(circle at 80% 80%,#78182C,transparent 45%)}
.vic-sec--dark > *{position:relative;z-index:1}
.vic-sec--cta{padding:112px 0}
@media (max-width:639px){ .vic-sec--cta{padding:64px 0} .vic-sec--dark{padding:64px 0} }
.vic-sec--hero{padding:96px 0 112px}
.vic-sec--hero-tall{padding:180px 0 112px}
@media (max-width:1023px){ .vic-sec--hero{padding:72px 0 88px} .vic-sec--hero-tall{padding:120px 0 88px} }
@media (max-width:639px){ .vic-sec--hero{padding:56px 0 64px} .vic-sec--hero-tall{padding:88px 0 64px} }
.vic-sec--split-hero{padding:96px 0 112px}
@media (max-width:639px){ .vic-sec--split-hero{padding:48px 0 64px} }
.vic-sec--center-head .vic-sec-head{margin-left:auto;margin-right:auto;text-align:center}
.vic-sec--center-head .vic-sec-head .vic-eyebrow{justify-content:center}

/* HOME HERO */
.vic-sec--home-hero{padding:0;background:#0B1F5C;overflow:hidden;min-height:100vh;display:flex;align-items:flex-end}
@media (max-width:1023px){ .vic-sec--home-hero{min-height:auto;padding-top:64px} }
.vic-hh__bg{position:absolute;inset:0;z-index:0}
.vic-hh__bg img{width:100%;height:100%;object-fit:cover;display:block}
.vic-hh__veil{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(11,31,92,.92) 0%,rgba(11,31,92,.55) 55%,rgba(11,31,92,.90) 100%)}
.vic-hh__in{position:relative;z-index:2;width:100%;padding-top:96px;padding-bottom:64px}
@media (max-width:639px){ .vic-hh__in{padding-top:56px;padding-bottom:48px} }
.vic-hh__copy{max-width:768px}
.vic-hh__copy h1{font-family:Fraunces,Georgia,serif;font-size:72px;line-height:1.02;letter-spacing:-1.8px;font-weight:500;color:#fff;margin:24px 0 0}
.vic-hh__copy h1 em{font-style:italic;color:#E7C66D}
.vic-hh__copy > p{font-size:18px;line-height:1.63;color:rgba(255,255,255,.85);margin:28px 0 0;max-width:672px}
.vic-hh__note{font-size:13px;color:rgba(255,255,255,.7);margin-top:16px}
@media (max-width:1023px){ .vic-hh__copy h1{font-size:56px} }
@media (max-width:767px){ .vic-hh__copy h1{font-size:44px} }
@media (max-width:639px){ .vic-hh__copy h1{font-size:38px;letter-spacing:-1px} }
.vic-sec--home-hero .vic-stats{margin-top:64px}
@media (max-width:639px){ .vic-sec--home-hero .vic-stats{margin-top:40px} }

/* Feature cards */
.vic-fcard{background:#fff;border:1px solid var(--brand-hairline,#DCE4F4);border-radius:20px;padding:24px;transition:all .3s ease}
.vic-fcard:hover{transform:translateY(-3px);box-shadow:0 12px 40px -18px rgba(11,31,92,.28);border-color:var(--brand-primary,#0B1F5C)}
.vic-fcard__ico{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:14px;background:#EEF3FC;color:var(--brand-primary,#0B1F5C);margin-bottom:20px}
.vic-fcard__ico svg{width:20px;height:20px}
body.brand-high .vic-fcard__ico{background:#FBF0F1}
.vic-fcard__t{font-family:Fraunces,Georgia,serif;font-size:18px;font-weight:500;line-height:1.4;letter-spacing:-.36px;color:var(--brand-text,#0B1F5C)}
.vic-fcard__s{font-size:12px;color:var(--brand-body,#5A6478);margin-top:4px}

/* Steps */
.vic-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;margin-top:56px}
@media (max-width:1023px){ .vic-steps{grid-template-columns:repeat(2,1fr)} }
@media (max-width:639px){ .vic-steps{grid-template-columns:1fr} }
.vic-step{position:relative;padding-top:56px;text-align:center}
@media (max-width:1023px){ .vic-step{text-align:left} }
.vic-step__n{position:absolute;left:50%;top:0;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:999px;border:1px solid var(--brand-gold,#D9A83B);background:#FCFBF8;font-family:Inter,sans-serif;font-size:12px;font-weight:600;color:#7A5A12}
@media (max-width:1023px){ .vic-step__n{left:0;transform:none} }
.vic-step__ico{display:block;color:var(--brand-primary,#0B1F5C);margin:0 auto 16px;width:24px}
@media (max-width:1023px){ .vic-step__ico{margin-left:0} }
.vic-step__ico svg{width:24px;height:24px}
.vic-step h3{font-family:Fraunces,Georgia,serif;font-size:20px;line-height:1.4;letter-spacing:-.4px;color:var(--brand-text,#0B1F5C);margin:0}
.vic-step p{font-size:14px;line-height:1.63;color:var(--brand-body,#5A6478);margin:12px 0 0}
.vic-step__note{display:block;margin-top:16px;font-family:Inter,sans-serif;font-size:12px;font-weight:600;letter-spacing:.96px;text-transform:uppercase;color:#7A5A12}

/* Dark teacher band */
.vic-teach{display:grid;gap:64px;align-items:center}
@media (min-width:1024px){ .vic-teach{grid-template-columns:5fr 7fr} }
.vic-teach h2{font-family:Fraunces,Georgia,serif;font-size:48px;line-height:1.25;letter-spacing:-.96px;color:#fff;margin:20px 0 0}
.vic-teach h2 em{font-style:italic;color:#E7C66D}
.vic-teach__text > p{font-size:16px;line-height:1.63;color:rgba(255,255,255,.75);margin:24px 0 0}
.vic-teach__grid{display:grid;gap:20px}
@media (min-width:640px){ .vic-teach__grid{grid-template-columns:repeat(2,1fr)} }
.vic-dcard{border-radius:20px;padding:24px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12)}
.vic-dcard__ico{display:block;color:#E7C66D;margin-bottom:16px;width:24px}
.vic-dcard__ico svg{width:24px;height:24px}
.vic-dcard h3{font-family:Fraunces,Georgia,serif;font-size:20px;line-height:1.4;letter-spacing:-.4px;color:#fff;margin:0}
.vic-dcard p{font-size:14px;line-height:1.63;color:rgba(255,255,255,.7);margin:8px 0 0}
@media (max-width:767px){ .vic-teach h2{font-size:36px} }

/* Safety */
.vic-safe{background:#fff;border:1px solid var(--brand-hairline,#DCE4F4);border-radius:20px;padding:20px;display:flex;align-items:center;gap:12px;font-size:15px;font-weight:500;color:var(--brand-text,#0B1F5C)}
.vic-safe__ico{flex:0 0 auto;color:var(--brand-gold,#D9A83B);display:flex}
.vic-safe__ico svg{width:20px;height:20px}

/* Page hero */
.vic-phero h1{max-width:896px;margin:20px 0 0}
.vic-phero__sub{font-size:20px;line-height:1.63;color:var(--brand-body,#5A6478);margin:24px 0 0;max-width:672px}
@media (max-width:639px){ .vic-phero__sub{font-size:17px} }

/* Split hero */
.vic-shero{display:grid;gap:56px;align-items:center}
@media (min-width:1024px){ .vic-shero{grid-template-columns:1fr 1fr} }
.vic-shero__text h1{margin:20px 0 0}
.vic-shero__media img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--card-radius,12px);display:block}

/* Stars */
.vic-stars{font-size:14px;color:var(--brand-gold,#D9A83B);letter-spacing:3px;display:flex;align-items:center;gap:10px}
.vic-stars span{color:var(--brand-body,#5A6478);letter-spacing:normal;font-size:14px}

/* School card arrow */
.vic-school-card__cta{color:var(--brand-text,#0B1F5C)}


/* ==== VIC PREMIUM v4 ==== */

/* Retire v2 chrome */
.main-header,.vic-footer{display:none !important}

body.vic-lock{overflow:hidden}

/* ---------- Typographic refinement ---------- */
.elementor h1,.elementor h2,.elementor h3,.vic-sec h1,.vic-sec h2,.vic-sec h3{
  font-family:Fraunces,Georgia,serif;font-weight:400;
  text-wrap:balance;font-feature-settings:'ss01','cv11'}
.vic-sec p,.vic-sec li{text-wrap:pretty}
.vic-eyebrow{display:flex;align-items:center;gap:14px;font-family:Inter,sans-serif;
  font-size:11.52px;font-weight:600;letter-spacing:.28em;text-transform:uppercase}
.gold-rule{display:inline-block;width:40px;height:1px;background:currentColor;opacity:.55}

/* One reveal style */
.vic-rev{opacity:0;transform:translateY(12px);
  transition:opacity .5s cubic-bezier(.22,.61,.36,1),transform .5s cubic-bezier(.22,.61,.36,1)}
.vic-rev.is-vis{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){ .vic-rev{opacity:1;transform:none;transition:none} }

/* ---------- Crest ---------- */
.vic-crest{width:40px;height:40px;flex:0 0 auto;display:block}
.vic-crest--mono{color:#0B1F5C}
.vic-crest--children{color:#0E5FC0}
.vic-crest--high{color:#78182C}
.vic-crest--mono svg{width:100%;height:100%;display:block}
.vic-cycle{position:relative;width:40px;height:40px;flex:0 0 auto;display:block}
.vic-cycle .vic-crest{position:absolute;inset:0;transition:opacity .7s ease,transform .7s ease}
.vic-cycle__b{opacity:0;transform:scale(.94) rotate(-3deg)}
.vic-cycle.is-b .vic-cycle__a{opacity:0;transform:scale(.94) rotate(3deg)}
.vic-cycle.is-b .vic-cycle__b{opacity:1;transform:none}

/* ---------- Header ---------- */
.vic-hd{position:sticky;top:0;z-index:60;background:#FCFBF8;
  border-bottom:1px solid rgba(11,31,92,.08);transition:box-shadow .25s ease}
.vic-hd.is-stuck{box-shadow:0 1px 0 rgba(11,31,92,.06),0 10px 30px -22px rgba(11,31,92,.5)}
.vic-hd[data-brand=children]{background:#FDFDFB}
.vic-hd[data-brand=high]{background:#FCFAF7}
.vic-hd__inner{max-width:1280px;margin:0 auto;padding:0 56px;min-height:84px;
  display:flex;align-items:center;gap:28px}
.vic-hd__logo{display:flex;align-items:center;gap:12px;text-decoration:none;flex:0 0 auto}
.vic-hd__names{display:flex;flex-direction:column;line-height:1.05}
.vic-hd__name{font-family:Fraunces,Georgia,serif;font-size:20px;font-weight:600;
  letter-spacing:-.2px;color:#0B1F5C}
.vic-hd[data-brand=children] .vic-hd__name{color:#0A3B7A}
.vic-hd[data-brand=high] .vic-hd__name{color:#78182C}
.vic-hd__tag{font-family:Inter,sans-serif;font-size:8.5px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:#8A93A6;margin-top:4px}
.vic-hd__nav{flex:1 1 auto;display:flex;justify-content:center}
.vic-hd__nav ul{display:flex;align-items:center;gap:30px;list-style:none;margin:0;padding:0}
.vic-hd__nav a{position:relative;font-family:Inter,sans-serif;font-size:14px;font-weight:500;
  color:#33405C;text-decoration:none;padding:4px 0;white-space:nowrap;transition:color .2s ease}
.vic-hd__nav a::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:1.5px;
  background:#D9A83B;transform:scaleX(0);transform-origin:left;transition:transform .28s cubic-bezier(.22,.61,.36,1)}
.vic-hd__nav a:hover{color:#0B1F5C}
.vic-hd__nav a:hover::after,.vic-hd__nav li.is-active a::after{transform:scaleX(1)}
.vic-hd__nav li.is-active a{color:#0B1F5C}
.vic-hd__actions{flex:0 0 auto;display:flex;align-items:center;gap:10px}
.vic-hd__apply{display:inline-flex;align-items:center;height:40px;padding:0 22px;border-radius:999px;
  background:#0B1F5C;color:#fff;font-family:Inter,sans-serif;font-size:14px;font-weight:600;
  text-decoration:none;white-space:nowrap;transition:transform .2s ease,box-shadow .2s ease;
  box-shadow:0 6px 18px -10px rgba(11,31,92,.9)}
.vic-hd[data-brand=children] .vic-hd__apply{background:#0E5FC0;box-shadow:0 6px 18px -10px rgba(14,95,192,.9)}
.vic-hd[data-brand=high] .vic-hd__apply{background:#78182C;box-shadow:0 6px 18px -10px rgba(120,24,44,.9)}
.vic-hd__apply:hover{transform:translateY(-1px);color:#fff}
.vic-hd__burger{display:none;width:44px;height:44px;border-radius:999px;cursor:pointer;
  border:1px solid rgba(11,31,92,.14);background:#fff;
  flex-direction:column;align-items:center;justify-content:center;gap:4px}
.vic-hd__burger span{display:block;width:17px;height:1.5px;background:#0B1F5C;border-radius:2px;
  transition:transform .25s ease,opacity .2s ease}
.vic-hd__burger[aria-expanded=true] span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.vic-hd__burger[aria-expanded=true] span:nth-child(2){opacity:0}
.vic-hd__burger[aria-expanded=true] span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}

/* ---------- Dropdown panel (opaque, shared) ---------- */
.vic-dd{position:relative}
.vic-dd__btn{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 18px;
  border-radius:999px;border:1px solid rgba(11,31,92,.16);background:#F3F6FC;cursor:pointer;
  font-family:Inter,sans-serif;font-size:14px;font-weight:500;color:#0B1F5C;transition:all .2s ease}
.vic-dd__btn:hover{border-color:rgba(11,31,92,.32)}
.vic-hd[data-brand=high] .vic-dd__btn{background:#FBF0F1;border-color:rgba(120,24,44,.18);color:#78182C}
.vic-dd__caret{transition:transform .25s ease}
.vic-dd.is-open .vic-dd__caret{transform:rotate(180deg)}
.vic-dd__panel{position:absolute;right:0;top:calc(100% + 12px);min-width:264px;z-index:90;
  background:#fff;border:1px solid rgba(11,31,92,.12);border-radius:14px;padding:8px;
  box-shadow:0 20px 40px -12px rgba(0,0,0,.22);
  opacity:0;transform:translateY(-6px);pointer-events:none;transition:opacity .16s ease-out,transform .16s ease-out}
.vic-dd.is-open .vic-dd__panel{opacity:1;transform:none;pointer-events:auto}
@media (prefers-reduced-motion:reduce){ .vic-dd__panel{transform:none;transition:opacity .16s} }
.vic-dd__notch{position:absolute;top:-6px;right:26px;width:11px;height:11px;background:#fff;
  border-left:1px solid rgba(11,31,92,.12);border-top:1px solid rgba(11,31,92,.12);transform:rotate(45deg)}
.vic-dd__item{position:relative;display:block;min-height:44px;padding:9px 14px;border-radius:10px;
  text-decoration:none;transition:background .18s ease}
.vic-dd__item::before{content:'';position:absolute;left:0;top:10px;bottom:10px;width:2px;
  border-radius:2px;background:#D9A83B;opacity:0;transition:opacity .18s ease}
.vic-dd__item:hover,.vic-dd__item:focus-visible{background:rgba(11,31,92,.06)}
.vic-dd__item:hover::before,.vic-dd__item:focus-visible::before{opacity:1}
.vic-dd__l{display:block;font-family:Inter,sans-serif;font-size:14px;font-weight:600;color:#0B1F5C}
.vic-dd__d{display:block;font-size:12px;color:#7A849A;margin-top:2px}

/* See Schools rich menu */
.vic-dd--wide .vic-dd__panel{min-width:660px}
.vic-ss{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.vic-ss__card{position:relative;display:block;padding:22px;border-radius:12px;text-decoration:none;
  background:#FCFBF8;border:1px solid rgba(11,31,92,.1);border-top:3px solid #0B1F5C;
  transition:transform .22s ease,box-shadow .22s ease}
.vic-ss__card--children{border-top-color:#0E5FC0}
.vic-ss__card--high{border-top-color:#78182C}
.vic-ss__card:hover{transform:translateY(-3px);box-shadow:0 18px 36px -16px rgba(0,0,0,.35)}
.vic-ss__crest{width:34px;height:34px;margin-bottom:12px}
.vic-ss__name{display:block;font-family:Fraunces,Georgia,serif;font-size:19px;color:#0B1F5C}
.vic-ss__chip{display:inline-block;margin-left:6px;font-family:Inter,sans-serif;font-size:9.5px;
  font-style:normal;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  padding:3px 8px;border-radius:999px;background:rgba(217,168,59,.18);color:#7A5A12}
.vic-ss__sub{display:block;font-family:Inter,sans-serif;font-size:10.5px;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:#8A93A6;margin-top:5px}
.vic-ss__line{display:block;font-size:13.5px;line-height:1.6;color:#5A6478;margin-top:10px}
.vic-ss__go{display:inline-block;margin-top:14px;font-family:Inter,sans-serif;font-size:13px;
  font-weight:600;color:#0B1F5C}

@media (max-width:1023px){
  .vic-hd__inner{padding:0 24px;min-height:66px;gap:12px}
  .vic-hd__nav{display:none}
  .vic-hd__apply{display:none}
  .vic-hd__burger{display:flex}
  .vic-dd--wide{display:none}
  .vic-hd__actions{margin-left:auto}
  .vic-crest,.vic-cycle{width:34px;height:34px}
}
@media (max-width:639px){ .vic-hd__inner{padding:0 20px} }
@media (max-width:379px){ .vic-hd__names{display:none} }

/* ---------- Drawer ---------- */
.vic-drawer{position:fixed;inset:0;z-index:100}
.vic-drawer[hidden]{display:none}
.vic-drawer__scrim{position:absolute;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(4px)}
.vic-drawer__panel{position:absolute;right:0;top:0;bottom:0;width:88vw;max-width:420px;
  background:linear-gradient(180deg,#0B1F5C 0%,#071747 100%);color:#fff;
  display:flex;flex-direction:column;overflow-y:auto;
  padding-bottom:calc(24px + env(safe-area-inset-bottom));
  animation:vicIn .28s cubic-bezier(.22,.61,.36,1)}
body.brand-children .vic-drawer__panel{background:linear-gradient(180deg,#0E5FC0 0%,#072A57 100%)}
body.brand-high .vic-drawer__panel{background:linear-gradient(180deg,#78182C 0%,#4A0F1C 100%)}
@keyframes vicIn{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}
.vic-drawer__top{display:flex;align-items:center;gap:12px;padding:20px;
  border-bottom:1px solid rgba(255,255,255,.14)}
.vic-drawer__top .vic-crest{color:#fff}
.vic-drawer__name{font-family:Fraunces,Georgia,serif;font-size:18px;color:#fff;flex:1}
.vic-drawer__x{width:40px;height:40px;border-radius:999px;border:1px solid rgba(255,255,255,.25);
  background:transparent;color:#fff;font-size:24px;line-height:1;cursor:pointer}
.vic-drawer__cta{display:grid;gap:12px;padding:20px}
.vic-drawer__cta .vic-btn{width:100%;height:52px}
.vic-drawer__nav{list-style:none;margin:0;padding:0 20px}
.vic-drawer__nav > li > a{display:flex;align-items:center;justify-content:space-between;
  min-height:56px;font-family:Inter,sans-serif;font-size:17px;font-weight:500;color:#fff;
  text-decoration:none;border-bottom:1px solid rgba(255,255,255,.1)}
.vic-drawer__nav > li > a::after{content:'';width:7px;height:7px;border-right:1.5px solid #D9A83B;
  border-top:1.5px solid #D9A83B;transform:rotate(45deg)}
.vic-drawer__grp > span{display:block;padding:22px 0 8px;font-family:Inter,sans-serif;font-size:10.5px;
  font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:#D9A83B}
.vic-drawer__grp ul{list-style:none;margin:0;padding:0}
.vic-drawer__grp a{display:flex;align-items:center;min-height:48px;font-size:15.5px;color:rgba(255,255,255,.88);
  text-decoration:none;border-bottom:1px solid rgba(255,255,255,.08)}
.vic-drawer__foot{margin-top:auto;padding:24px 20px 0;display:grid;gap:10px;
  border-top:1px solid rgba(255,255,255,.14);font-size:14px}
.vic-drawer__foot a{color:rgba(255,255,255,.85);text-decoration:none}
.vic-drawer__foot span{color:rgba(255,255,255,.6);font-size:13px;line-height:1.6}

/* ---------- Floating actions ---------- */
.vic-fab{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:70;
  display:grid;gap:12px;opacity:0;transform:translateY(8px);pointer-events:none;
  transition:opacity .3s ease,transform .3s ease}
.vic-fab.is-in{opacity:1;transform:none;pointer-events:auto}
.vic-fab__b{display:flex;align-items:center;justify-content:center;gap:8px;
  width:56px;height:56px;border-radius:999px;text-decoration:none;overflow:hidden;
  box-shadow:0 8px 24px -8px rgba(0,0,0,.35);transition:width .2s ease}
.vic-fab__b svg{width:22px;height:22px;flex:0 0 auto}
.vic-fab__b span{display:none;font-family:Inter,sans-serif;font-size:14px;font-weight:600;white-space:nowrap}
.vic-fab__b--apply{background:#D9A83B;color:#3B2A06}
.vic-fab__b--wa{background:#25D366;color:#fff}
@media (min-width:1024px){
  .vic-fab__b:hover{width:150px}
  .vic-fab__b:hover span{display:inline}
}
@media (prefers-reduced-motion:reduce){ .vic-fab{transition:none} }

/* ---------- Sub-nav bar ---------- */
.school-bar{position:sticky;top:84px;z-index:50;
  background:#F2F7FE;border-bottom:1px solid #DDEBFC}
body.brand-high .school-bar{background:#FBF5F3;border-bottom-color:#F3E2E4}
@media (max-width:1023px){ .school-bar{top:66px} }
.school-bar__inner{max-width:1280px;margin:0 auto;padding:0 56px;
  display:flex;align-items:center;gap:14px;min-height:52px}
@media (max-width:1023px){ .school-bar__inner{padding:0 24px;min-height:48px} }
@media (max-width:639px){ .school-bar__inner{padding:0 20px} }
.school-bar__name{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;height:34px;
  padding:0 14px;border-radius:999px;background:#fff;border:1px solid #DDEBFC;
  font-family:Inter,sans-serif;font-size:10.5px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:#0A3B7A;white-space:nowrap}
body.brand-high .school-bar__name{border-color:#F3E2E4;color:#78182C}
.school-bar__crest{width:20px;height:20px}
.school-bar__nav{min-width:0;flex:1;overflow-x:auto;scrollbar-width:none;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 20px,#000 calc(100% - 20px),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 20px,#000 calc(100% - 20px),transparent 100%)}
.school-bar__nav::-webkit-scrollbar{display:none}
.school-bar__nav ul{display:flex;align-items:center;gap:4px;list-style:none;margin:0;padding:6px 0}
.school-bar__nav a{display:inline-flex;align-items:center;height:34px;padding:0 15px;border-radius:999px;
  font-family:Inter,sans-serif;font-size:13px;font-weight:500;color:#0A3B7A;text-decoration:none;
  white-space:nowrap;transition:background .2s ease,color .2s ease}
body.brand-high .school-bar__nav a{color:#78182C}
.school-bar__nav a:hover{background:#DDEBFC}
body.brand-high .school-bar__nav a:hover{background:#F3E2E4}
.school-bar__nav li.is-active a{background:#0E5FC0;color:#fff}
body.brand-high .school-bar__nav li.is-active a{background:#78182C;color:#fff}
@media (min-width:1024px){ .school-bar__nav{overflow:visible;mask-image:none;-webkit-mask-image:none} }

/* ---------- Footer ---------- */
.vic-ft{background:#0B1F5C;color:#fff}
body.brand-children .vic-ft{background:#072A57}
body.brand-high .vic-ft{background:#2A1218}
.vic-ft__inner{max-width:1280px;margin:0 auto;padding:80px 56px 52px;
  display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:48px}
.vic-ft a{color:rgba(255,255,255,.8);text-decoration:none;transition:color .2s ease}
.vic-ft a:hover{color:#D9A83B}
.vic-ft__logo{display:flex;align-items:center;gap:12px}
.vic-ft__crest{color:#fff}
.vic-ft__name{display:block;font-family:Fraunces,Georgia,serif;font-size:21px;font-weight:600;color:#fff}
.vic-ft__tag{display:block;font-family:Inter,sans-serif;font-size:8.5px;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:#D9A83B;margin-top:4px}
.vic-ft__blurb{font-size:14px;line-height:1.75;color:rgba(255,255,255,.72);margin:20px 0 0;max-width:42ch}
.vic-ft__contact{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:10px;font-size:13.5px;
  color:rgba(255,255,255,.8);line-height:1.6}
.vic-ft__col h4{font-family:Inter,sans-serif;font-size:10.5px;font-weight:600;letter-spacing:.22em;
  text-transform:uppercase;color:#D9A83B;margin:0 0 16px}
.vic-ft__col ul{list-style:none;margin:0;padding:0;display:grid;gap:11px;font-size:14px}
.vic-ft__bottom{border-top:1px solid rgba(255,255,255,.12)}
.vic-ft__bottominner{max-width:1280px;margin:0 auto;padding:24px 56px;display:flex;flex-wrap:wrap;
  gap:12px;justify-content:space-between;font-size:12.5px;color:rgba(255,255,255,.55)}
@media (max-width:1023px){
  .vic-ft__inner{grid-template-columns:1fr 1fr;padding:56px 24px 40px;gap:36px}
  .vic-ft__bottominner{padding:20px 24px}
}
@media (max-width:639px){
  .vic-ft__inner{grid-template-columns:1fr;padding:48px 20px 32px}
  .vic-ft__bottominner{padding:20px}
}

/* ---------- Premium detail ---------- */
.vic-card,.vic-fcard,.vic-chip,.vic-safe,.vic-quotecard{
  transition:transform .3s cubic-bezier(.22,.61,.36,1),box-shadow .3s ease,border-color .3s ease}
.vic-btn{letter-spacing:.01em}
.vic-btn--gold{box-shadow:0 6px 16px -6px rgba(0,0,0,.35)}
.vic-btn--gold:hover{transform:translateY(-2px);box-shadow:0 12px 24px -8px rgba(0,0,0,.4)}
.vic-btn:focus-visible,.vic-hd__nav a:focus-visible,.vic-dd__btn:focus-visible{
  outline:2px solid #D9A83B;outline-offset:2px}
.vic-cta{box-shadow:0 40px 90px -40px rgba(11,31,92,.55)}
.vic-sec-head h2{letter-spacing:-.96px}
.vic-hero-actions{gap:12px}
.vic-hero-actions .vic-btn{height:52px}
@media (max-width:639px){ .vic-hero-actions .vic-btn{height:50px;width:100%} }


/* ==== VIC ABOUT v5 ==== */

/* Proprietress letter */
.vic-letter{display:grid;gap:64px;align-items:start}
@media (min-width:1024px){ .vic-letter{grid-template-columns:5fr 7fr} }
.vic-letter__media img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--card-radius,12px);display:block;box-shadow:0 30px 80px -30px rgba(11,31,92,.35)}
@media (min-width:1024px){ .vic-letter__media{position:sticky;top:140px} }
.vic-scripture{margin:24px 0 0;padding:0 0 0 24px;border-left:3px solid var(--brand-gold,#D9A83B);font-family:Fraunces,Georgia,serif;font-size:22px;font-style:italic;line-height:1.55;letter-spacing:-.3px;color:var(--brand-text,#0B1F5C)}
.vic-scripture cite{display:block;margin-top:12px;font-family:Inter,sans-serif;font-size:11px;font-style:normal;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--brand-body,#5A6478)}
.vic-prose--letter{margin-top:32px}
.vic-prose--letter p{font-size:18px;line-height:1.75;max-width:65ch;color:rgba(0,0,0,.82);margin:0 0 22px}
.vic-prose--letter p:last-child{margin-bottom:0}
.vic-sig{margin-top:36px;padding-top:24px;border-top:1px solid var(--brand-hairline,#DCE4F4)}
.vic-sig__n{display:block;font-family:Fraunces,Georgia,serif;font-size:22px;color:var(--brand-text,#0B1F5C)}
.vic-sig__r{display:block;font-family:Inter,sans-serif;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--brand-body,#5A6478);margin-top:6px}

/* Timeline */
.vic-tl{list-style:none;margin:0;padding:0;display:grid;gap:0;position:relative}
@media (min-width:1024px){
  .vic-tl{grid-template-columns:repeat(6,1fr);gap:24px}
  .vic-tl::before{content:'';position:absolute;left:0;right:0;top:19px;height:1px;background:var(--brand-hairline,#DCE4F4)}
}
.vic-tl__i{position:relative;padding-top:0;padding-left:34px}
@media (min-width:1024px){ .vic-tl__i{padding-left:0;padding-top:52px} }
.vic-tl__i::before{content:'';position:absolute;left:6px;top:8px;width:11px;height:11px;border-radius:999px;background:#FCFBF8;border:2px solid var(--brand-gold,#D9A83B);z-index:1}
@media (min-width:1024px){ .vic-tl__i::before{left:0;top:14px} }
.vic-tl__i:not(:last-child)::after{content:'';position:absolute;left:11px;top:19px;bottom:-6px;width:1px;background:var(--brand-hairline,#DCE4F4)}
@media (min-width:1024px){ .vic-tl__i::after{display:none} }
.vic-tl__i{padding-bottom:28px}
@media (min-width:1024px){ .vic-tl__i{padding-bottom:0} }
.vic-tl__y{display:block;font-family:Fraunces,Georgia,serif;font-size:22px;letter-spacing:-.4px;color:var(--brand-text,#0B1F5C)}
.vic-tl__t{display:block;font-size:13.5px;line-height:1.65;color:var(--brand-body,#5A6478);margin-top:8px}

/* Roll of honour */
.vic-roll{display:grid;gap:48px}
@media (min-width:768px){ .vic-roll{grid-template-columns:1fr 1fr} }
.vic-roll h4{font-family:Inter,sans-serif;font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--brand-gold,#D9A83B);margin:0 0 16px}
.vic-roll ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.vic-roll li{font-family:Fraunces,Georgia,serif;font-size:17px;color:var(--brand-text,#0B1F5C)}
.vic-roll li em{font-family:Inter,sans-serif;font-size:12px;font-style:normal;color:var(--brand-body,#5A6478)}
.vic-roll__close{margin:32px 0 0;font-size:14px;line-height:1.7;color:var(--brand-body,#5A6478);max-width:60ch}


/* ==== VIC SCHOOLS OVERLAY + FAB v6 ==== */

.vic-fab{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:70;display:grid;gap:12px;opacity:1;transform:none;pointer-events:auto}
.vic-fab__b{display:flex;align-items:center;justify-content:center;gap:9px;width:56px;height:56px;border-radius:999px;text-decoration:none;overflow:hidden;box-shadow:0 8px 24px -8px rgba(0,0,0,.35);transition:width .2s ease,transform .2s ease}
.vic-fab__b:hover{transform:translateY(-2px)}
.vic-fab__b svg{width:22px;height:22px;flex:0 0 auto}
.vic-fab__b span{display:none;font-family:Inter,sans-serif;font-size:14px;font-weight:600;white-space:nowrap}
.vic-fab__b--call{background:#0B1F5C;color:#fff}
body.brand-children .vic-fab__b--call{background:#0E5FC0}
body.brand-high .vic-fab__b--call{background:#78182C}
.vic-fab__b--wa{background:#25D366;color:#fff}
.vic-fab__b--apply{background:#D9A83B;color:#3B2A06}
@media (min-width:1024px){
  .vic-fab__b{justify-content:flex-start;padding-left:17px}
  .vic-fab__b:hover{width:158px}
  .vic-fab__b:hover span{display:inline}
}
@media (max-width:639px){
  .vic-fab{right:14px;bottom:calc(14px + env(safe-area-inset-bottom));gap:10px}
  .vic-fab__b{width:50px;height:50px}
  .vic-fab__b svg{width:20px;height:20px}
}
@media (prefers-reduced-motion:reduce){ .vic-fab__b{transition:none} }

.vic-ssmodal{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:24px}
.vic-ssmodal[hidden]{display:none}
.vic-ssmodal__scrim{position:absolute;inset:0;background:rgba(6,14,38,.62);backdrop-filter:blur(6px);animation:vicFade .18s ease-out}
@keyframes vicFade{from{opacity:0}to{opacity:1}}
.vic-ssmodal__panel{position:relative;z-index:1;width:100%;max-width:760px;background:#fff;border-radius:20px;padding:12px;box-shadow:0 40px 90px -30px rgba(0,0,0,.5);animation:vicPop .22s cubic-bezier(.22,.61,.36,1)}
@keyframes vicPop{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){ .vic-ssmodal__panel,.vic-ssmodal__scrim{animation:none} }
.vic-ssmodal__head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px 14px}
.vic-ssmodal__head span{font-family:Inter,sans-serif;font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:#8A93A6}
.vic-ssmodal__x{width:36px;height:36px;border-radius:999px;cursor:pointer;border:1px solid rgba(11,31,92,.14);background:#fff;color:#0B1F5C;font-size:22px;line-height:1}
.vic-ssmodal__x:hover{background:#F3F6FC}

.vic-ss{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:639px){ .vic-ss{grid-template-columns:1fr} }
.vic-ss__card{position:relative;display:block;padding:26px 22px;border-radius:14px;text-decoration:none;background:#FCFBF8;border:1px solid rgba(11,31,92,.1);border-top:3px solid #0B1F5C;transition:transform .22s ease,box-shadow .22s ease}
.vic-ss__card--children{border-top-color:#0E5FC0}
.vic-ss__card--high{border-top-color:#78182C}
.vic-ss__card:hover{transform:translateY(-3px);box-shadow:0 20px 40px -18px rgba(0,0,0,.4)}
.vic-ss__card.is-here{background:#F3F6FC}
.vic-ss__crest{width:56px;height:56px;display:block;margin-bottom:14px}
.vic-ss__name{display:block;font-family:Fraunces,Georgia,serif;font-size:20px;line-height:1.25;color:#0B1F5C}
.vic-ss__card--children .vic-ss__name{color:#0A3B7A}
.vic-ss__card--high .vic-ss__name{color:#78182C}
.vic-ss__chip{display:inline-block;margin-left:6px;font-family:Inter,sans-serif;font-size:9px;font-style:normal;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:rgba(217,168,59,.2);color:#7A5A12;vertical-align:middle}
.vic-ss__sub{display:block;font-family:Inter,sans-serif;font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#8A93A6;margin-top:6px}
.vic-ss__line{display:block;font-size:14px;line-height:1.6;color:#5A6478;margin-top:12px}
.vic-ss__go{display:inline-block;margin-top:16px;font-family:Inter,sans-serif;font-size:13.5px;font-weight:600;color:#0B1F5C}
.vic-ss__card--children .vic-ss__go{color:#0E5FC0}
.vic-ss__card--high .vic-ss__go{color:#78182C}

button.vic-ss-open{cursor:pointer;font-family:Inter,sans-serif;font-size:15px;font-weight:600;height:52px;padding:0 28px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;background:transparent;border:1px solid rgba(255,255,255,.45);color:#fff;transition:all .15s ease}
button.vic-ss-open:hover{border-color:#fff;background:rgba(255,255,255,.08)}
button.vic-ss-open:focus-visible{outline:2px solid #D9A83B;outline-offset:2px}
@media (max-width:639px){ button.vic-ss-open{height:50px;width:100%} }


/* ==== VIC LOGO SWITCH v7 ==== */

.vic-hd__logo--switch{display:flex;align-items:center;gap:12px;flex:0 0 auto}
.vic-logo-switch{padding:0;border:0;background:transparent;cursor:pointer;line-height:0;
  border-radius:10px;position:relative;transition:transform .2s ease}
.vic-logo-switch:hover{transform:scale(1.06)}
.vic-logo-switch:focus-visible{outline:2px solid #D9A83B;outline-offset:3px}
.vic-logo-switch::after{content:'';position:absolute;right:-2px;bottom:-2px;
  width:12px;height:12px;border-radius:999px;background:#D9A83B;
  border:2px solid #FCFBF8}
.vic-hd__logo--switch .vic-hd__names{text-decoration:none;line-height:1.05;
  display:flex;flex-direction:column}

/* Crest sizing is uniform whether it is a PNG or the drawn fallback */
.vic-crest,.vic-cycle{width:44px;height:44px;flex:0 0 auto;display:block}
.vic-cycle{position:relative}
.vic-cycle .vic-crest{position:absolute;inset:0;width:100%;height:100%}
img.vic-crest{object-fit:contain}
@media (max-width:1023px){ .vic-crest,.vic-cycle{width:36px;height:36px} }

/* Drawer must sit above everything and be tappable */
.vic-drawer{position:fixed;inset:0;z-index:130}
.vic-drawer[hidden]{display:none !important}
.vic-drawer__scrim{position:absolute;inset:0;background:rgba(0,0,0,.55);
  backdrop-filter:blur(4px);cursor:pointer}
.vic-drawer__panel{position:absolute;right:0;top:0;bottom:0;z-index:1}

/* Burger must be visible and tappable at tablet and below */
@media (max-width:1023px){
  .vic-hd__burger{display:flex !important}
  .vic-hd__nav{display:none !important}
}
@media (min-width:1024px){ .vic-hd__burger{display:none !important} }


/* ══════════════════════════════════════════════════════════════════════
   VIC REFINE v5
   Sticky glass chrome · type hierarchy · section rhythm · aligned modal
   Appended last: this block is the final word on everything it touches.
   ══════════════════════════════════════════════════════════════════════ */

/* ── 1 ── Brand-aware surface tokens ─────────────────────────────────── */
:root{
  --band-tint:#F4F7FD;
  --band-ivory:#FBFAF6;
  --glass:rgba(255,255,255,.72);
  --glass-solid:rgba(255,255,255,.85);
  --bar-glass:rgba(240,245,253,.68);
  --glass-line:rgba(11,31,92,.10);
}
body.brand-children{
  --band-tint:#EFF6FE; --band-ivory:#F9FCFF;
  --bar-glass:rgba(238,246,254,.70); --glass-line:rgba(14,95,192,.13);
}
body.brand-high{
  --band-tint:#FBF3F2; --band-ivory:#FCF9F5;
  --bar-glass:rgba(251,243,242,.72); --glass-line:rgba(120,24,44,.13);
}

/* ── 2 ── Sticky glass chrome ────────────────────────────────────────── */
/* The header markup sits inside an ElementsKit template wrapper whose own
   parent is <body>; that wrapper is the only ancestor tall enough to let a
   sticky element travel. Stick it, and let the bars inside ride along. */
.ekit-template-content-header{position:sticky;top:0;z-index:100}

.vic-hd{
  position:static !important; top:auto !important;
  background:var(--glass) !important;
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid var(--glass-line) !important;
  box-shadow:none !important;
  transition:background .3s ease, box-shadow .3s ease;
}
.vic-hd[data-brand=children],
.vic-hd[data-brand=high]{background:var(--glass) !important}
body.vic-scrolled .vic-hd{
  background:var(--glass-solid) !important;
  box-shadow:0 1px 0 var(--glass-line), 0 20px 44px -36px rgba(11,31,92,.95) !important;
}
@supports not ((backdrop-filter:blur(4px)) or (-webkit-backdrop-filter:blur(4px))){
  .vic-hd{background:rgba(255,255,255,.97) !important}
}

/* Sub-nav is part of the same glass stack */
.school-bar{
  position:static !important; top:auto !important;
  background:var(--bar-glass) !important;
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid var(--glass-line) !important;
}

/* Reading-progress hairline, pinned to the bottom edge of the stack */
.vic-prog{position:absolute;left:0;bottom:-1px;height:2px;width:0;z-index:4;
  background:linear-gradient(90deg,var(--brand-gold,#D9A83B),#E7C66D);
  pointer-events:none;transition:width .12s linear}
@media (prefers-reduced-motion:reduce){ .vic-prog{transition:none} }

/* Long school names must never push the burger around */
.vic-hd__name{max-width:min(46vw,340px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:1023px){
  .vic-hd__name{font-size:16.5px;max-width:min(52vw,260px)}
  .vic-hd__tag{font-size:8px;letter-spacing:.16em}
}
.vic-hd__name-short{display:none}
@media (max-width:479px){
  .vic-hd__names{display:flex !important}
  .vic-hd__name-full{display:none}
  .vic-hd__name-short{display:inline}
  .vic-hd__name{font-size:15px;max-width:52vw}
  .vic-hd__tag{display:none}
}

/* ── 3 ── Brand switcher in the header ───────────────────────────────── */
.vic-dd--brand{position:relative}
.vic-dd--brand .vic-dd__btn{
  height:auto;padding:6px 12px 6px 6px;gap:12px;border-radius:14px;
  border:1px solid transparent;background:transparent;text-align:left}
.vic-dd--brand .vic-dd__btn:hover{background:rgba(11,31,92,.05);border-color:transparent}
.vic-dd--brand.is-open .vic-dd__btn{background:rgba(11,31,92,.06)}
.vic-dd--brand .vic-hd__names{align-items:flex-start}
.vic-dd--brand .vic-dd__caret{opacity:.45;margin-left:2px;flex:0 0 auto}
.vic-dd--brand .vic-dd__panel{left:0;right:auto;min-width:330px;padding:10px}
.vic-dd--brand .vic-dd__notch{left:30px;right:auto}
.vic-bp__item{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:12px}
.vic-bp__item img,.vic-bp__item .vic-crest{width:30px;height:30px}
.vic-bp__txt{min-width:0}
@media (max-width:1023px){ .vic-dd--brand .vic-dd__panel{min-width:288px} }
@media (max-width:399px){ .vic-dd--brand .vic-dd__panel{min-width:min(280px,88vw)} }

/* ── 4 ── Hero: one focal point ──────────────────────────────────────── */
.vic-hh__copy h1{
  font-size:clamp(40px,5.6vw,84px);line-height:1.0;letter-spacing:-2.2px;
  font-weight:500;margin:26px 0 0;max-width:none}
.vic-hh__copy > p{font-size:17.5px;line-height:1.7;color:rgba(255,255,255,.78);
  margin:30px 0 0;max-width:60ch}
.vic-hh__copy{max-width:900px}

/* Stats step down: they support the headline, they don't compete with it */
.vic-sec--home-hero .vic-stats{
  background:transparent;border-radius:0;gap:0;overflow:visible;
  border-top:1px solid rgba(255,255,255,.20);margin-top:64px}
.vic-sec--home-hero .vic-stat{
  background:transparent !important;padding:24px 32px 4px 0;
  border-right:1px solid rgba(255,255,255,.14)}
.vic-sec--home-hero .vic-stat:last-child{border-right:0}
.vic-sec--home-hero .vic-stat__n{
  font-family:Inter,sans-serif;font-size:22px;font-weight:600;line-height:1.25;
  letter-spacing:-.2px;color:#fff !important}
.vic-sec--home-hero .vic-stat__l{
  font-size:9.5px;letter-spacing:.2em;color:rgba(255,255,255,.55);margin-top:7px}
@media (max-width:767px){
  .vic-sec--home-hero .vic-stats{margin-top:40px}
  .vic-sec--home-hero .vic-stat{padding:18px 20px 4px 0}
  .vic-sec--home-hero .vic-stat:nth-child(2n){border-right:0}
}

/* ── 5 ── Section rhythm ─────────────────────────────────────────────── */
.vic-sec{padding:104px 0}
@media (max-width:1023px){ .vic-sec{padding:76px 0} }
@media (max-width:639px){ .vic-sec{padding:60px 0} }
.vic-sec--dark{padding:120px 0}
.vic-sec--cta{padding:120px 0}
@media (max-width:639px){ .vic-sec--dark,.vic-sec--cta{padding:72px 0} }
.vic-sec--home-hero{padding:0}

/* Alternating surfaces so the page reads as chapters, not one white scroll */
.elementor-element-272fda8 .vic-sec,
.elementor-element-0f3b6fa .vic-sec,
.elementor-element-adf1a39 .vic-sec{background:var(--band-tint)}
.elementor-element-a41e981 .vic-sec{
  background:var(--band-ivory);
  border-top:1px solid var(--glass-line);border-bottom:1px solid var(--glass-line)}
.elementor-element-feadbe9 .vic-sec,
.elementor-element-b9ffe01 .vic-sec,
.elementor-element-6eb2637 .vic-sec{background:#fff}

/* ── 6 ── Air between a heading and what follows it ──────────────────── */
.vic-sec-head{max-width:720px}
.vic-sec-head h2{margin:20px 0 0}
.vic-sec-head p{margin:22px 0 0;font-size:17.5px;line-height:1.68}
.vic-sec-head + *{margin-top:68px}
@media (max-width:1023px){ .vic-sec-head + *{margin-top:48px} }
@media (max-width:639px){ .vic-sec-head + *{margin-top:36px} }

/* ── 7 ── Type discipline: one scale, nothing louder than its rank ───── */
.vic-sec h2{font-size:44px;line-height:1.16;letter-spacing:-1.1px;font-weight:400}
@media (max-width:1023px){ .vic-sec h2{font-size:36px;letter-spacing:-.8px} }
@media (max-width:639px){ .vic-sec h2{font-size:29px;letter-spacing:-.5px} }
.vic-sec h3{font-weight:500}
.vic-eyebrow{font-size:10.5px;letter-spacing:.26em;font-weight:600}
.vic-eyebrow .gold-rule{width:28px}
.vic-story__chip strong{font-size:26px;letter-spacing:-.4px}
.vic-story__chip{border-radius:14px}
.vic-quotecard blockquote{font-size:17.5px;line-height:1.55}

/* ── 8 ── "Why families choose Victoria": one clean column ───────────── */
.elementor-element-272fda8 .vic-grid-4{
  grid-template-columns:1fr;gap:0;
  border-top:1px solid var(--glass-line)}
.elementor-element-272fda8 .vic-fcard{
  display:grid;grid-template-columns:52px minmax(230px,300px) 1fr;
  align-items:center;gap:30px;padding:26px 6px;
  background:transparent;border:0;border-radius:0;
  border-bottom:1px solid var(--glass-line);
  transition:background .25s ease,padding-left .25s ease}
.elementor-element-272fda8 .vic-fcard:hover{
  transform:none;box-shadow:none;background:rgba(255,255,255,.72);padding-left:16px}
.elementor-element-272fda8 .vic-fcard__ico{
  margin:0;width:46px;height:46px;border-radius:13px;
  background:#fff;border:1px solid var(--glass-line)}
.elementor-element-272fda8 .vic-fcard__t{font-size:19.5px;line-height:1.32;margin:0}
.elementor-element-272fda8 .vic-fcard__s{
  font-size:15px;line-height:1.66;margin:0;max-width:62ch}
@media (max-width:899px){
  .elementor-element-272fda8 .vic-fcard{
    grid-template-columns:46px 1fr;gap:8px 18px;align-items:start;padding:22px 4px}
  .elementor-element-272fda8 .vic-fcard__t{align-self:center}
  .elementor-element-272fda8 .vic-fcard__s{grid-column:2;margin-top:6px}
  .elementor-element-272fda8 .vic-fcard:hover{padding-left:4px}
}

/* ── 9 ── Choose your school ─────────────────────────────────────────── */
.elementor-element-0f3b6fa .vic-school-grid{gap:36px}
.vic-school-card{border-radius:22px}
.vic-school-card__body{padding:34px}
.vic-school-card__body h3{font-size:27px;letter-spacing:-.5px}

/* ── 10 ── Admissions: everything on one axis ────────────────────────── */
.elementor-element-b9ffe01 .vic-sec-head{margin-left:0;margin-right:0;text-align:left}
.elementor-element-b9ffe01 .vic-eyebrow{justify-content:flex-start}
.elementor-element-b9ffe01 .vic-step{text-align:left}
.elementor-element-b9ffe01 .vic-step__n{left:0;transform:none}
.elementor-element-b9ffe01 .vic-step__ico{margin-left:0;margin-right:0}
.elementor-element-b9ffe01 .vic-center{justify-content:flex-start;margin-top:56px}
.elementor-element-b9ffe01 .vic-steps{gap:36px}

/* ── 11 ── School chooser overlay: aligned edges, equal cards ────────── */
.vic-ssmodal{padding:28px}
.vic-ssmodal__scrim{background:rgba(6,14,38,.55);
  -webkit-backdrop-filter:blur(12px) saturate(140%);backdrop-filter:blur(12px) saturate(140%)}
.vic-ssmodal__panel{
  max-width:1040px;padding:38px;border-radius:26px;
  background:linear-gradient(180deg,#FFFFFF 0%,#FBFCFE 100%);
  border:1px solid rgba(11,31,92,.07);
  box-shadow:0 60px 130px -44px rgba(6,14,38,.6)}
.vic-ssmodal__head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:24px;
  padding:0 0 26px;margin:0 0 28px;border-bottom:1px solid rgba(11,31,92,.09)}
.vic-ssmodal__eyebrow{display:block;font-family:Inter,sans-serif;font-size:10.5px;
  font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:#9AA3B5}
.vic-ssmodal__title{display:block;margin-top:12px;font-family:Fraunces,Georgia,serif;
  font-size:29px;line-height:1.18;letter-spacing:-.7px;font-weight:400;color:#0B1F5C}
.vic-ssmodal__x{width:40px;height:40px;flex:0 0 auto;display:flex;align-items:center;
  justify-content:center;border-radius:999px;border:1px solid rgba(11,31,92,.12);
  background:#fff;color:#0B1F5C;cursor:pointer;transition:all .2s ease}
.vic-ssmodal__x:hover{background:#0B1F5C;color:#fff;border-color:#0B1F5C}

.vic-ss{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}
.vic-ss__card{
  position:relative;display:flex;flex-direction:column;height:100%;
  padding:28px 24px 24px;border-radius:18px;overflow:hidden;
  background:#fff;border:1px solid rgba(11,31,92,.09);border-top:1px solid rgba(11,31,92,.09);
  box-shadow:0 1px 2px rgba(11,31,92,.05);
  transition:transform .28s cubic-bezier(.22,.61,.36,1),box-shadow .28s ease,border-color .28s ease}
.vic-ss__card::before{content:'';position:absolute;left:0;right:0;top:0;height:3px;background:#0B1F5C}
.vic-ss__card--children::before{background:#0E5FC0}
.vic-ss__card--high::before{background:#78182C}
.vic-ss__card:hover{transform:translateY(-4px);
  box-shadow:0 26px 50px -24px rgba(11,31,92,.38);border-color:rgba(11,31,92,.16)}
.vic-ss__card.is-here{background:#FAFBFE}
.vic-ss__top{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px}
.vic-ss__crest{width:48px;height:48px;object-fit:contain;margin:0;display:block}
.vic-ss__chip{margin:0;font-size:9px;letter-spacing:.14em;padding:4px 9px;
  background:rgba(11,31,92,.07);color:#5A6478}
.vic-ss__name{display:block;margin-top:20px;font-family:Fraunces,Georgia,serif;
  font-size:19px;line-height:1.3;letter-spacing:-.3px;color:#0B1F5C;min-height:2.6em}
.vic-ss__card--children .vic-ss__name{color:#0A3B7A}
.vic-ss__card--high .vic-ss__name{color:#78182C}
.vic-ss__sub{display:block;margin-top:2px;font-family:Inter,sans-serif;font-size:9.5px;
  font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#9AA3B5}
.vic-ss__line{display:block;margin-top:14px;font-size:14px;line-height:1.62;color:#5A6478}
.vic-ss__go{display:inline-flex;align-items:center;gap:7px;margin-top:auto;padding-top:22px;
  font-family:Inter,sans-serif;font-size:13.5px;font-weight:600;color:#0B1F5C}
.vic-ss__card--children .vic-ss__go{color:#0E5FC0}
.vic-ss__card--high .vic-ss__go{color:#78182C}
.vic-ss__go svg{transition:transform .25s ease}
.vic-ss__card:hover .vic-ss__go svg{transform:translateX(4px)}
@media (max-width:899px){
  .vic-ssmodal{padding:16px}
  .vic-ssmodal__panel{padding:24px;border-radius:20px;max-height:88vh;overflow-y:auto}
  .vic-ssmodal__head{padding-bottom:20px;margin-bottom:20px}
  .vic-ssmodal__title{font-size:23px}
  .vic-ss{grid-template-columns:1fr;gap:12px}
  .vic-ss__name{min-height:0;margin-top:14px}
  .vic-ss__go{padding-top:16px}
}

/* Keep the wide header "See Schools" menu in step with the overlay */
.vic-dd--wide .vic-ss{grid-template-columns:1fr 1fr}
.vic-dd--wide .vic-ss__name{min-height:0}

/* ── 12 ── Floating actions: call + WhatsApp only ────────────────────── */
.vic-fab{right:24px;bottom:calc(24px + env(safe-area-inset-bottom));gap:14px}
.vic-fab__b{width:54px;height:54px;
  box-shadow:0 14px 32px -14px rgba(6,14,38,.55);
  border:1px solid rgba(255,255,255,.16)}
.vic-fab__b svg{width:26px;height:26px}
.vic-fab__b--wa{background:#25D366;color:#fff}
.vic-fab__b--call{background:#0B1F5C;color:#fff}
body.brand-children .vic-fab__b--call{background:#0E5FC0}
body.brand-high .vic-fab__b--call{background:#78182C}
.vic-fab__b--apply{display:none !important}
@media (min-width:1024px){
  .vic-fab__b{padding-left:14px;justify-content:flex-start}
  .vic-fab__b:hover{width:160px}
}
@media (max-width:639px){
  .vic-fab{right:16px;bottom:calc(16px + env(safe-area-inset-bottom));gap:11px}
  .vic-fab__b{width:50px;height:50px}
  .vic-fab__b svg{width:24px;height:24px}
}


/* ═════════════════════════════════════════════════════════════
   VIC REFINE v6 — stat air · paired list · inline picker ·
   glass admissions · sub-nav rail · hairline borders
   ═════════════════════════════════════════════════════════════ */

/* Solid twin of the translucent sub-nav, for gradient fades */
:root{--bar-solid:#F0F5FD}
body.brand-children{--bar-solid:#EEF6FE}
body.brand-high{--bar-solid:#FBF3F2}

/* ── 1 ── Hero stats: air on both sides of every divider ───────────── */
.vic-sec--home-hero .vic-stat{padding:26px 34px 6px 34px}
.vic-sec--home-hero .vic-stat:first-child{padding-left:0}
.vic-sec--home-hero .vic-stat:last-child{padding-right:0}
@media (max-width:767px){
  .vic-sec--home-hero .vic-stat{padding:20px 22px 6px 22px}
  .vic-sec--home-hero .vic-stat:nth-child(2n+1){padding-left:0}
  .vic-sec--home-hero .vic-stat:nth-child(2n){padding-right:0}
}

/* ── 2 ── "Why families choose Victoria": paired from tablet up ────── */
@media (min-width:900px){
  .elementor-element-272fda8 .vic-grid-4{grid-template-columns:1fr 1fr;column-gap:64px}
  .elementor-element-272fda8 .vic-fcard{
    grid-template-columns:46px 1fr;gap:2px 20px;align-items:start;padding:26px 6px}
  .elementor-element-272fda8 .vic-fcard__ico{grid-row:span 2;align-self:start;margin-top:2px}
  .elementor-element-272fda8 .vic-fcard__t{grid-column:2;align-self:center;font-size:18px}
  .elementor-element-272fda8 .vic-fcard__s{grid-column:2;margin-top:7px;font-size:14.5px;max-width:46ch}
  .elementor-element-272fda8 .vic-fcard:hover{padding-left:6px;background:rgba(255,255,255,.62)}
}

/* ── 3 ── Inline "See Schools" picker (replaces the full-screen modal) */
.vic-sspick{position:relative;display:inline-flex}
.vic-sspick__btn{gap:8px}
.vic-sspick__caret{opacity:.7;transition:transform .25s ease}
.vic-sspick.is-open .vic-sspick__caret{transform:rotate(180deg)}
.vic-sspick__pop{
  position:absolute;left:0;top:calc(100% + 12px);z-index:90;min-width:304px;
  display:grid;gap:4px;padding:8px;border-radius:16px;background:#fff;
  border:1px solid rgba(11,31,92,.10);
  box-shadow:0 26px 52px -22px rgba(6,14,38,.45);
  opacity:0;transform:translateY(-6px) scale(.985);pointer-events:none;
  transition:opacity .18s ease, transform .2s cubic-bezier(.22,.61,.36,1)}
.vic-sspick.is-open .vic-sspick__pop{opacity:1;transform:none;pointer-events:auto}
.vic-sspick__pop::before{content:'';position:absolute;top:-6px;left:30px;width:11px;height:11px;
  background:#fff;border-left:1px solid rgba(11,31,92,.10);border-top:1px solid rgba(11,31,92,.10);
  transform:rotate(45deg)}
.vic-sspick__opt{
  position:relative;display:grid;grid-template-columns:32px 1fr;align-items:center;gap:12px;
  padding:11px 13px;border-radius:11px;text-decoration:none;
  opacity:0;transform:translateY(8px);
  transition:opacity .3s ease, transform .3s cubic-bezier(.22,.61,.36,1), background .18s ease}
.vic-sspick.is-open .vic-sspick__opt{opacity:1;transform:none;
  transition-delay:calc(.09s + var(--i,0) * .09s)}
.vic-sspick__opt:hover{background:rgba(11,31,92,.06)}
.vic-sspick__opt .vic-crest{width:30px;height:30px}
.vic-sspick__l{display:block;font-family:Inter,sans-serif;font-size:14px;font-weight:600;color:#0B1F5C}
.vic-sspick__d{display:block;font-size:11.5px;color:#7A849A;margin-top:2px}
@media (prefers-reduced-motion:reduce){
  .vic-sspick__pop,.vic-sspick__opt{transition:opacity .12s ease}
  .vic-sspick__opt{transform:none}
}
@media (max-width:639px){
  .vic-sspick{display:flex;width:100%}
  .vic-sspick__btn{width:100%}
  .vic-sspick__pop{min-width:0;width:100%}
}

/* ── 4 ── Admissions path: light glass cards, one idea each ────────── */
.elementor-element-b9ffe01 .vic-steps{gap:20px}
.elementor-element-b9ffe01 .vic-step{
  position:relative;display:flex;flex-direction:column;text-align:left;
  padding:26px 22px 22px;border-radius:20px;
  background:rgba(255,255,255,.58);
  -webkit-backdrop-filter:blur(18px) saturate(170%);
  backdrop-filter:blur(18px) saturate(170%);
  border:1px solid rgba(255,255,255,.8);
  box-shadow:0 1px 2px rgba(11,31,92,.04), 0 20px 44px -32px rgba(11,31,92,.55);
  transition:transform .3s cubic-bezier(.22,.61,.36,1), box-shadow .3s ease}
.elementor-element-b9ffe01 .vic-step:hover{transform:translateY(-3px);
  box-shadow:0 1px 2px rgba(11,31,92,.05), 0 30px 58px -30px rgba(11,31,92,.6)}
.elementor-element-b9ffe01 .vic-step__n{
  position:absolute;top:20px;right:20px;left:auto;transform:none;
  width:28px;height:28px;font-size:10px;font-weight:600;
  background:transparent;border:1px solid rgba(11,31,92,.14);color:#98A1B4}
.elementor-element-b9ffe01 .vic-step__ico{margin:0 0 16px;color:var(--brand-primary,#0B1F5C)}
.elementor-element-b9ffe01 .vic-step h3{font-size:18.5px;line-height:1.34;padding-right:34px}
.elementor-element-b9ffe01 .vic-step h3::before{
  display:block;margin-bottom:10px;font-family:Inter,sans-serif;font-size:9.5px;font-weight:600;
  letter-spacing:.24em;text-transform:uppercase;color:#8A7434}
.elementor-element-b9ffe01 .vic-step:nth-child(1) h3::before{content:'Enquire'}
.elementor-element-b9ffe01 .vic-step:nth-child(2) h3::before{content:'Visit'}
.elementor-element-b9ffe01 .vic-step:nth-child(3) h3::before{content:'Assessment'}
.elementor-element-b9ffe01 .vic-step:nth-child(4) h3::before{content:'Offer'}
.elementor-element-b9ffe01 .vic-step p{margin-top:11px;font-size:14.5px;line-height:1.62}
.elementor-element-b9ffe01 .vic-step__note{
  margin-top:auto;padding-top:18px;border-top:1px solid rgba(11,31,92,.09);
  font-size:10.5px;letter-spacing:.14em;color:#6B7488}
@media (max-width:639px){
  .elementor-element-b9ffe01 .vic-step{padding:22px 20px 20px}
}

/* ── 5 ── The same light glass on the other card surfaces ──────────── */
.vic-safe,.vic-quotecard{
  background:rgba(255,255,255,.6);
  -webkit-backdrop-filter:blur(16px) saturate(160%);
  backdrop-filter:blur(16px) saturate(160%);
  border:1px solid rgba(255,255,255,.78);
  box-shadow:0 1px 2px rgba(11,31,92,.04), 0 16px 38px -30px rgba(11,31,92,.5)}
.vic-quotecard{border-radius:22px;padding:30px}
.vic-safe{border-radius:16px}

/* ── 6 ── School sub-nav: crest only, spaced, obviously scrollable ─── */
.school-bar__inner{gap:18px;min-height:48px}
.school-bar__name{display:none}
.school-bar__home{display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;flex:0 0 auto;border-radius:11px;text-decoration:none;
  background:rgba(255,255,255,.8);border:1px solid var(--glass-line);
  transition:background .2s ease,border-color .2s ease}
.school-bar__home:hover{background:#fff;border-color:rgba(11,31,92,.2)}
.school-bar__crest{width:22px;height:22px}
.school-bar__rail{position:relative;flex:1 1 auto;min-width:0;display:flex;align-items:center}
.school-bar__nav{flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none;
  -webkit-mask-image:none;mask-image:none;scroll-behavior:smooth}
.school-bar__nav::-webkit-scrollbar{display:none}
.school-bar__nav ul{gap:6px;padding:6px 0}
.school-bar__nav a{height:33px;padding:0 16px;font-size:13px}
.school-bar__more{display:none;padding:0}
.school-bar__rail.is-scrollable::after{content:'';position:absolute;right:0;top:0;bottom:0;
  width:72px;pointer-events:none;opacity:1;transition:opacity .25s ease;
  background:linear-gradient(90deg,rgba(240,245,253,0),var(--bar-solid))}
.school-bar__rail.is-scrollable.at-end::after{opacity:0}
.school-bar__rail.is-scrollable .school-bar__more{
  display:inline-flex;align-items:center;justify-content:center;
  position:absolute;right:0;top:50%;margin-top:-14px;width:28px;height:28px;
  border-radius:999px;cursor:pointer;background:#fff;color:#0B1F5C;
  border:1px solid var(--glass-line);box-shadow:0 4px 14px -6px rgba(11,31,92,.45);
  animation:vicNudge 2.2s ease-in-out 3}
body.brand-high .school-bar__rail.is-scrollable .school-bar__more{color:#78182C}
.school-bar__rail.is-scrollable.at-end .school-bar__more{display:none}
@keyframes vicNudge{0%,100%{transform:translateX(0)}50%{transform:translateX(3px)}}
@media (prefers-reduced-motion:reduce){
  .school-bar__rail.is-scrollable .school-bar__more{animation:none}
  .school-bar__nav{scroll-behavior:auto}
}

/* ── 7 ── Every border down to a hairline ────────────────────────── */
body.brand-high{--card-border:1px solid rgba(120,24,44,.20)}
body.brand-high .vic-card,
body.brand-high .vic-chip,
body.brand-high .vic-fcard{border:1px solid rgba(120,24,44,.18)}
.vic-fcard{border-width:1px}
.vic-quote{border-left-width:2px}
.vic-vmv > div{border-left-width:1px}
.vic-story__chip{border-top-width:1px}
.vic-ss__card::before{height:2px}
.vic-dcard{border-color:rgba(255,255,255,.11)}
.vic-hd__nav a::after{height:1px}
.vic-step__n{border-width:1px}
.vic-drawer__nav > li > a::after{border-right-width:1.2px;border-top-width:1.2px}
.vic-school-card{border-width:1px}


/* ═════════════════════════════════════════════════════════════
   VIC REFINE v7 — CTA eyebrow fix · stacking · drawer · glass buttons
   ═════════════════════════════════════════════════════════════ */

/* ── 1 ── The gold eyebrow must never render as a gold block ───────────
   A grouped rule set background-color on the eyebrow as well as the rule,
   which painted a solid bar over "Begin the Journey" on every brand page. */
.vic-eyebrow,
.vic-cta .vic-eyebrow,
.vic-cta .text-eyebrow,
.vic-cta .text-eyebrow-light,
.text-eyebrow-light{background-color:transparent !important;background-image:none !important}
.gold-rule,
.vic-cta .gold-rule{background-color:currentColor !important}
body.brand-children .vic-cta .gold-rule{background-color:#F2A81D !important}
body.brand-high .vic-cta .gold-rule{background-color:#C4A03C !important}

/* ── 2 ── Header and its dropdowns stack above the sub-nav ─────────────
   The sub-nav's backdrop-filter was compositing over the Portal panel,
   which made the panel's first row unclickable. */
.vic-hd{position:relative !important;z-index:3}
.school-bar{position:relative !important;z-index:2}
.vic-dd__panel,.vic-sspick__pop{z-index:130}

/* ── 3 ── Drawer: legible crest, properly centred close ─────────────── */
.vic-drawer__top{gap:14px;padding:18px 20px}
.vic-drawer__top .vic-crest{
  width:42px;height:42px;padding:6px;border-radius:12px;box-sizing:border-box;
  background:#fff;object-fit:contain;
  box-shadow:0 2px 10px -4px rgba(0,0,0,.45)}
.vic-drawer__top .vic-crest--mono{color:#0B1F5C}
.vic-drawer__name{font-size:17px;line-height:1.25}
.vic-drawer__x{
  display:inline-flex !important;align-items:center;justify-content:center;
  width:40px;height:40px;min-width:40px;min-height:40px;flex:0 0 auto;
  padding:0 !important;margin:0;font-size:0;line-height:0;border-radius:999px;
  background:rgba(255,255,255,.08) !important;
  border:1px solid rgba(255,255,255,.28) !important;color:#fff !important;
  transition:background .2s ease}
.vic-drawer__x:hover{background:rgba(255,255,255,.18) !important}
.vic-drawer__x svg{display:block;width:16px;height:16px}

/* ── 4 ── Translucent brand-blue buttons ─────────────────────────── */
:root{--btn-glass:43,108,176}
body.brand-children{--btn-glass:14,95,192}
body.brand-high{--btn-glass:120,24,44}

.vic-sspick__btn{
  background:rgba(var(--btn-glass),.30) !important;
  -webkit-backdrop-filter:blur(10px) saturate(150%);
  backdrop-filter:blur(10px) saturate(150%);
  border:1px solid rgba(255,255,255,.32) !important;
  color:#fff !important;
  transition:background .22s ease, border-color .22s ease}
.vic-sspick__btn:hover,
.vic-sspick.is-open .vic-sspick__btn{
  background:rgba(var(--btn-glass),.50) !important;
  border-color:rgba(255,255,255,.56) !important}
.vic-sspick__btn:focus-visible{outline:2px solid rgba(255,255,255,.7);outline-offset:2px}

.vic-cta .vic-btn--ghost{
  background:rgba(var(--btn-glass),.26);
  -webkit-backdrop-filter:blur(10px) saturate(150%);
  backdrop-filter:blur(10px) saturate(150%);
  border-color:rgba(255,255,255,.32)}
.vic-cta .vic-btn--ghost:hover{
  background:rgba(var(--btn-glass),.48);
  border-color:rgba(255,255,255,.56)}

/* Hero ghost buttons follow the same system */
.vic-sec--home-hero .vic-btn--ghost,
.vic-sec--split-hero .vic-btn--ghost{
  background:rgba(var(--btn-glass),.22);
  -webkit-backdrop-filter:blur(10px) saturate(150%);
  backdrop-filter:blur(10px) saturate(150%)}
.vic-sec--home-hero .vic-btn--ghost:hover,
.vic-sec--split-hero .vic-btn--ghost:hover{background:rgba(var(--btn-glass),.44)}


/* ═════════════════════════════════════════════════════════════
   VIC REFINE v8 — branded media panels, club cards, page heroes
   Panels stand in for photography. Register a photo under the same slot
   key and vic_panel() renders the photograph instead — nothing else changes.
   ═════════════════════════════════════════════════════════════ */

:root{
  --crest-url:url('/wp-content/uploads/logos/victoria-children-school.png');
  --hero-a:#0B1F5C; --hero-b:#1B3F91;
}
body.brand-children{--hero-a:#0E5FC0;--hero-b:#062449}
body.brand-high{
  --crest-url:url('/wp-content/uploads/logos/victoria-high-school.png');
  --hero-a:#78182C;--hero-b:#3B0B14;
}

/* ── Panel ────────────────────────────────────────────────────────── */
.vic-panel{position:relative;display:block;overflow:hidden;border-radius:16px;isolation:isolate;
  background:linear-gradient(140deg,var(--hero-a),var(--hero-b))}
.vic-panel--wide{aspect-ratio:16/9}
.vic-panel--card{aspect-ratio:4/3}
.vic-panel--tall{aspect-ratio:4/5}
.vic-panel--photo img{width:100%;height:100%;object-fit:cover;display:block}
.vic-panel--t1{background:linear-gradient(140deg,#0B1F5C,#1B3F91)}
.vic-panel--t2{background:linear-gradient(140deg,#0E5FC0,#062449)}
.vic-panel--t3{background:linear-gradient(140deg,#78182C,#3B0B14)}
.vic-panel--t4{background:linear-gradient(140deg,#123A7A,#0B1F5C)}
.vic-panel__grain{position:absolute;inset:0;opacity:.45;
  background-image:radial-gradient(rgba(255,255,255,.20) 1px,transparent 1px);
  background-size:13px 13px}
.vic-panel__crest{position:absolute;right:-8%;bottom:-16%;width:46%;aspect-ratio:1;opacity:.07;
  background:var(--crest-url) center/contain no-repeat;filter:brightness(0) invert(1)}
.vic-panel__mark{position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:11px;color:#fff}
.vic-panel__icon{width:42px;height:42px;opacity:.95;stroke-width:1.35}
.vic-panel__label{font-family:Inter,sans-serif;font-size:9.5px;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;opacity:.72}
.vic-panel::after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;
  background:linear-gradient(90deg,var(--brand-gold,#D9A83B),transparent)}

/* ── Clubs and societies ──────────────────────────────────────────── */
.vic-clubgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media (max-width:1023px){ .vic-clubgrid{grid-template-columns:repeat(2,1fr);gap:18px} }
@media (max-width:639px){ .vic-clubgrid{grid-template-columns:1fr;gap:16px} }
.vic-club{display:flex;flex-direction:column;background:#fff;border-radius:18px;overflow:hidden;
  border:1px solid var(--glass-line,rgba(11,31,92,.10));
  box-shadow:0 1px 2px rgba(11,31,92,.04);
  transition:transform .3s cubic-bezier(.22,.61,.36,1), box-shadow .3s ease, border-color .3s ease}
.vic-club:hover{transform:translateY(-4px);
  box-shadow:0 26px 52px -26px rgba(11,31,92,.4);border-color:rgba(11,31,92,.16)}
.vic-club .vic-panel{border-radius:0}
.vic-club__body{display:flex;flex-direction:column;flex:1;padding:20px 20px 18px}
.vic-club__name{font-family:Fraunces,Georgia,serif;font-size:18px;font-weight:500;line-height:1.3;
  letter-spacing:-.3px;color:var(--brand-text,#0B1F5C);margin:0}
.vic-club__desc{font-size:14px;line-height:1.62;color:var(--brand-body,#5A6478);margin:9px 0 0}
.vic-club__cta{margin-top:auto;padding-top:18px;display:inline-flex;align-items:center;gap:7px;
  font-family:Inter,sans-serif;font-size:13px;font-weight:600;text-decoration:none;
  color:var(--brand-primary,#0B1F5C)}
.vic-club__cta svg{transition:transform .25s ease}
.vic-club:hover .vic-club__cta svg{transform:translateX(4px)}

/* ── Timetable cards with media ───────────────────────────────────── */
.vic-card--media{padding:0;overflow:hidden;display:flex;flex-direction:column}
.vic-card--media .vic-panel{border-radius:0;flex:0 0 auto}
.vic-card--media .vic-card__eyebrow{padding:22px 24px 0}
.vic-card--media .vic-card__title{padding:0 24px;margin-top:10px}
.vic-card--media .vic-card__body{padding:0 24px 24px;margin-top:10px}

/* ── Page heroes get a real backdrop ───────────────────────────────── */
.vic-sec--hero,.vic-sec--hero-tall{
  position:relative;overflow:hidden;
  background-color:var(--hero-a);
  background-image:linear-gradient(140deg,var(--hero-a) 0%,var(--hero-b) 100%);
  background-size:cover;background-position:center}
/* With a photograph registered for the page, the gradient becomes its veil. */
.vic-sec--hero,.vic-sec--hero-tall{
  background-image:linear-gradient(150deg,
      color-mix(in srgb, var(--hero-a) 80%, transparent) 0%,
      color-mix(in srgb, var(--hero-b) 62%, transparent) 100%),
    var(--hero-photo, none)}
@supports not (color: color-mix(in srgb, red 50%, blue)){
  .vic-sec--hero,.vic-sec--hero-tall{
    background-image:linear-gradient(150deg,rgba(11,31,92,.9),rgba(27,63,145,.8)),var(--hero-photo,none)}
}
.vic-sec--hero::before,.vic-sec--hero-tall::before{
  content:'';position:absolute;inset:0;z-index:0;opacity:.4;
  background-image:radial-gradient(rgba(255,255,255,.16) 1px,transparent 1px);
  background-size:16px 16px}
.vic-sec--hero::after,.vic-sec--hero-tall::after{
  content:'';position:absolute;right:-6%;bottom:-38%;width:46%;aspect-ratio:1;z-index:0;
  opacity:.09;pointer-events:none;
  background:var(--crest-url) center/contain no-repeat;filter:brightness(0) invert(1)}
.vic-sec--hero > *,.vic-sec--hero-tall > *{position:relative;z-index:1}
.vic-sec--hero h1,.vic-sec--hero-tall h1,
.vic-sec--hero .vic-phero__sub,.vic-sec--hero-tall .vic-phero__sub{color:#fff !important}
.vic-sec--hero .vic-eyebrow,.vic-sec--hero-tall .vic-eyebrow{color:#E7C66D}
.vic-sec--hero .vic-eyebrow .gold-rule,
.vic-sec--hero-tall .vic-eyebrow .gold-rule{background-color:#E7C66D !important}
.vic-sec--hero .vic-btn--outline,.vic-sec--hero-tall .vic-btn--outline{
  border-color:rgba(255,255,255,.45);color:#fff}
.vic-sec--hero .vic-btn--outline:hover,.vic-sec--hero-tall .vic-btn--outline:hover{
  background:rgba(255,255,255,.12);border-color:#fff;color:#fff}
@media (prefers-reduced-motion:no-preference){
  .vic-sec--hero-tall{padding-bottom:120px}
}


/* ═════════════════════════════════════════════════════════════
   VIC REFINE v9 — apply pulse · letter deck · lightbox · FAQ
   ═════════════════════════════════════════════════════════════ */

/* ── 1 ── A slow gold pulse on Apply ─────────────────────────────────── */
.vic-hd__apply{position:relative;padding-right:36px}
.vic-hd__apply::after{content:'';position:absolute;right:17px;top:50%;margin-top:-4px;
  width:8px;height:8px;border-radius:999px;background:#F2C14E;
  animation:vicApplyPulse 3.2s cubic-bezier(.4,0,.6,1) infinite}
@keyframes vicApplyPulse{
  0%,100%{opacity:.5;box-shadow:0 0 0 0 rgba(242,193,78,.55)}
  45%{opacity:1;box-shadow:0 0 0 7px rgba(242,193,78,0)}
  60%{opacity:1;box-shadow:0 0 0 0 rgba(242,193,78,0)}
}
@media (prefers-reduced-motion:reduce){
  .vic-hd__apply::after{animation:none;opacity:.95}
}

/* ── 2 ── Founder's letter as a card deck ────────────────────────────── */
.vic-letterdeck{display:grid;gap:18px;margin-top:30px}
.vic-lcard{position:relative;display:grid;grid-template-columns:56px 1fr;gap:20px;
  padding:24px 26px;border-radius:18px;
  background:rgba(255,255,255,.66);
  -webkit-backdrop-filter:blur(16px) saturate(160%);
  backdrop-filter:blur(16px) saturate(160%);
  border:1px solid var(--glass-line,rgba(11,31,92,.10));
  box-shadow:0 1px 2px rgba(11,31,92,.04), 0 18px 40px -32px rgba(11,31,92,.5)}
.vic-lcard__n{font-family:Fraunces,Georgia,serif;font-size:19px;line-height:1;
  color:var(--brand-gold,#D9A83B);letter-spacing:-.4px;padding-top:4px}
.vic-lcard__n i{display:block;font-style:normal;font-family:Inter,sans-serif;
  font-size:10px;letter-spacing:.14em;color:var(--brand-body,#5A6478);opacity:.7;margin-top:5px}
.vic-lcard__body p{margin:0 0 14px;font-size:16.5px;line-height:1.72;color:rgba(0,0,0,.8)}
.vic-lcard__body p:last-child{margin-bottom:0}
.vic-lcard__body p:first-child::first-letter{font-family:Fraunces,Georgia,serif;font-size:1em}
.vic-lcard:first-child .vic-lcard__body p:first-child::first-letter{
  float:left;font-family:Fraunces,Georgia,serif;font-size:3.1em;line-height:.86;
  padding:4px 12px 0 0;color:var(--brand-text,#0B1F5C)}
@media (max-width:639px){
  .vic-lcard{grid-template-columns:1fr;gap:12px;padding:20px}
  .vic-lcard__n{display:flex;align-items:baseline;gap:8px;padding-top:0}
  .vic-lcard__n i{margin-top:0}
  .vic-lcard__body p{font-size:15.5px}
}

/* Reveal items one after another */
.vic-revi{opacity:0;transform:translateY(16px);
  transition:opacity .6s cubic-bezier(.22,.61,.36,1), transform .6s cubic-bezier(.22,.61,.36,1)}
.vic-revi.is-in{opacity:1;transform:none;transition-delay:calc(var(--i,0) * .07s)}
@media (prefers-reduced-motion:reduce){
  .vic-revi{opacity:1;transform:none;transition:none}
}

/* ── 3 ── Lightbox ────────────────────────────────────────────────── */
.vic-sec img,.vic-club img{cursor:zoom-in}
.vic-lb{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:28px}
.vic-lb[hidden]{display:none}
.vic-lb__scrim{position:absolute;inset:0;background:rgba(4,10,28,.82);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:zoom-out}
.vic-lb__panel{position:relative;z-index:1;width:min(92vw,1180px);max-height:92vh;
  display:flex;flex-direction:column;
  animation:vicLbIn .26s cubic-bezier(.22,.61,.36,1)}
@keyframes vicLbIn{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){ .vic-lb__panel{animation:none} }
.vic-lb__fig{margin:0;display:flex;flex-direction:column;min-height:0;
  background:#fff;border-radius:20px;overflow:hidden;
  box-shadow:0 60px 130px -40px rgba(0,0,0,.7)}
.vic-lb__img{display:block;width:100%;max-height:70vh;object-fit:contain;background:#0B1F5C}
.vic-lb__cap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:16px;padding:18px 22px}
.vic-lb__txt{font-family:Inter,sans-serif;font-size:14px;line-height:1.5;
  color:var(--brand-body,#5A6478);max-width:52ch}
.vic-lb__txt:empty{display:none}
.vic-lb__cta{display:flex;flex-wrap:wrap;gap:10px;margin-left:auto}
.vic-lb__cta .vic-btn{height:44px;padding:0 20px;font-size:14px}
.vic-lb__cta .vic-btn--ghost{border-color:rgba(11,31,92,.28);color:var(--brand-text,#0B1F5C);background:transparent}
.vic-lb__cta .vic-btn--ghost:hover{background:rgba(11,31,92,.06)}
.vic-lb__x{position:absolute;top:-14px;right:-14px;z-index:3;width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;border-radius:999px;cursor:pointer;
  background:#fff;color:#0B1F5C;border:0;box-shadow:0 8px 22px -8px rgba(0,0,0,.6)}
.vic-lb__nav{position:absolute;top:50%;margin-top:-22px;z-index:3;width:44px;height:44px;
  display:flex;align-items:center;justify-content:center;border-radius:999px;cursor:pointer;
  background:rgba(255,255,255,.9);color:#0B1F5C;border:0;
  box-shadow:0 8px 22px -8px rgba(0,0,0,.55);transition:background .2s ease}
.vic-lb__nav:hover{background:#fff}
.vic-lb__nav--prev{left:-16px}
.vic-lb__nav--next{right:-16px}
@media (max-width:767px){
  .vic-lb{padding:14px}
  .vic-lb__panel{width:100%}
  .vic-lb__img{max-height:56vh}
  .vic-lb__cap{padding:16px;flex-direction:column;align-items:stretch}
  .vic-lb__cta{margin-left:0}
  .vic-lb__cta .vic-btn{flex:1;justify-content:center}
  .vic-lb__x{top:-6px;right:-6px;width:36px;height:36px}
  .vic-lb__nav--prev{left:-4px}
  .vic-lb__nav--next{right:-4px}
}

/* ── 3b ── School home heroes match the main site's cinematic one ──── */
.vic-sec--split-hero{
  position:relative;overflow:hidden;
  background-color:var(--hero-a);
  background-image:linear-gradient(150deg,
      color-mix(in srgb, var(--hero-a) 84%, transparent) 0%,
      color-mix(in srgb, var(--hero-b) 66%, transparent) 100%),
    var(--hero-photo, none);
  background-size:cover;background-position:center;
  padding:112px 0 120px}
@supports not (color: color-mix(in srgb, red 50%, blue)){
  .vic-sec--split-hero{background-image:linear-gradient(150deg,rgba(11,31,92,.88),rgba(27,63,145,.7)),var(--hero-photo,none)}
}
@media (max-width:639px){ .vic-sec--split-hero{padding:72px 0 76px} }
.vic-sec--split-hero::before{content:'';position:absolute;inset:0;z-index:0;opacity:.3;
  background-image:radial-gradient(rgba(255,255,255,.16) 1px,transparent 1px);background-size:16px 16px}
.vic-sec--split-hero > *{position:relative;z-index:1}
.vic-sec--split-hero h1,
.vic-sec--split-hero .vic-shero__text p,
.vic-sec--split-hero .vic-phero__sub{color:#fff !important}
.vic-sec--split-hero .vic-eyebrow{color:#E7C66D}
.vic-sec--split-hero .vic-eyebrow .gold-rule{background-color:#E7C66D !important}
.vic-sec--split-hero .vic-shero__media img{
  border-radius:22px;box-shadow:0 40px 90px -40px rgba(0,0,0,.8);
  border:1px solid rgba(255,255,255,.18)}
.vic-sec--split-hero .vic-btn--outline{border-color:rgba(255,255,255,.45);color:#fff}
.vic-sec--split-hero .vic-btn--outline:hover{background:rgba(255,255,255,.12);border-color:#fff;color:#fff}

/* ── 4 ── FAQ ────────────────────────────────────────────────────── */
.vic-faq{max-width:900px;display:grid;gap:12px}
.vic-faq__item{
  border:1px solid var(--glass-line,rgba(11,31,92,.10));border-radius:16px;
  background:rgba(255,255,255,.62);
  -webkit-backdrop-filter:blur(14px) saturate(155%);
  backdrop-filter:blur(14px) saturate(155%);
  box-shadow:0 1px 2px rgba(11,31,92,.03);
  transition:border-color .25s ease, box-shadow .25s ease, background .25s ease}
.vic-faq__item:hover{border-color:rgba(11,31,92,.2)}
.vic-faq__item[open]{background:rgba(255,255,255,.86);
  box-shadow:0 1px 2px rgba(11,31,92,.04), 0 20px 44px -32px rgba(11,31,92,.5)}
.vic-faq__item summary{padding:20px 22px;gap:20px;font-size:17px;line-height:1.4;
  align-items:flex-start}
.vic-faq__item summary::after{
  content:'';flex:0 0 auto;width:28px;height:28px;border-radius:999px;
  border:1px solid var(--glass-line,rgba(11,31,92,.14));
  background:
    linear-gradient(currentColor,currentColor) center/11px 1.5px no-repeat,
    linear-gradient(currentColor,currentColor) center/1.5px 11px no-repeat;
  color:var(--brand-gold,#D9A83B);
  transition:transform .3s cubic-bezier(.22,.61,.36,1), background-size .3s ease}
.vic-faq__item[open] summary::after{transform:rotate(90deg);
  background:linear-gradient(currentColor,currentColor) center/11px 1.5px no-repeat}
.vic-faq__a{padding:0 22px 22px;max-width:none}
.vic-faq__a p{font-size:15px;line-height:1.68;color:var(--brand-body,#5A6478)}
@media (max-width:639px){
  .vic-faq__item summary{padding:17px 18px;font-size:16px;gap:14px}
  .vic-faq__a{padding:0 18px 18px}
}


/* ═════════════════════════════════════════════════════════════
   VIC REFINE v10 — bare logo · portal pulse · hero picture moved down
   ═════════════════════════════════════════════════════════════ */

/* ── 1 ── The brand lockup is a wordmark, not a button ──────────────── */
.vic-dd--brand .vic-dd__btn,
.vic-hd[data-brand] .vic-dd--brand .vic-dd__btn{
  background:transparent !important;
  background-image:none !important;
  border:0 !important;
  box-shadow:none !important;
  border-radius:12px}
.vic-dd--brand .vic-dd__btn:hover,
.vic-hd[data-brand] .vic-dd--brand .vic-dd__btn:hover{
  background:rgba(11,31,92,.045) !important}
.vic-dd--brand.is-open .vic-dd__btn,
.vic-hd[data-brand] .vic-dd--brand.is-open .vic-dd__btn{
  background:rgba(11,31,92,.06) !important}
body.brand-high .vic-dd--brand .vic-dd__btn:hover,
body.brand-high .vic-dd--brand.is-open .vic-dd__btn{background:rgba(120,24,44,.05) !important}
/* Caret stays optically tied to the wordmark */
.vic-dd--brand .vic-dd__caret{align-self:center;margin-left:4px}

/* ── 2 ── A slow gold pulse before "Portal" ────────────────────────── */
.vic-dd[data-dd="portal"] .vic-dd__btn{position:relative;padding-left:32px}
.vic-dd[data-dd="portal"] .vic-dd__btn::before{
  content:'';position:absolute;left:15px;top:50%;margin-top:-4px;
  width:8px;height:8px;border-radius:999px;background:#F2C14E;
  animation:vicApplyPulse 3.2s cubic-bezier(.4,0,.6,1) infinite}
@media (prefers-reduced-motion:reduce){
  .vic-dd[data-dd="portal"] .vic-dd__btn::before{animation:none;opacity:.95}
}

/* ── 3 ── School hero: headline alone, photograph below it ────────────
   The framed picture used to sit beside the headline and fight it for
   attention. It now runs wide underneath, so the words land first. */
.vic-sec--split-hero .vic-shero{display:block}
.vic-sec--split-hero .vic-shero__text{max-width:880px}
.vic-sec--split-hero .vic-shero__media{margin-top:60px;position:relative}
.vic-sec--split-hero .vic-shero__media::before{
  content:'';position:absolute;left:0;top:-30px;width:44px;height:1px;
  background:#E7C66D;opacity:.8}
.vic-sec--split-hero .vic-shero__media img{
  width:100%;aspect-ratio:21/9;object-fit:cover;border-radius:24px;
  border:1px solid rgba(255,255,255,.20);
  box-shadow:0 50px 100px -46px rgba(0,0,0,.85)}
@media (max-width:1023px){
  .vic-sec--split-hero .vic-shero__media{margin-top:48px}
  .vic-sec--split-hero .vic-shero__media img{aspect-ratio:16/9;border-radius:20px}
}
@media (max-width:639px){
  .vic-sec--split-hero .vic-shero__media{margin-top:38px}
  .vic-sec--split-hero .vic-shero__media::before{top:-22px}
  .vic-sec--split-hero .vic-shero__media img{aspect-ratio:16/10;border-radius:16px}
}


/* ═════════════════════════════════════════════════════════════
   VIC REFINE v11 — phone header · lightbox close · gold hero CTA ·
   one-column contact · gallery albums
   ═════════════════════════════════════════════════════════════ */

/* ── 1 ── Phone header: everything fits, nothing touches the edge ──── */
@media (max-width:639px){
  .vic-hd__inner{padding:0 18px;gap:8px;min-height:62px}
  .vic-crest,.vic-cycle{width:30px;height:30px}
  .vic-dd--brand .vic-dd__btn{padding:4px 6px 4px 2px;gap:8px}
  .vic-hd__name{font-size:14.5px;letter-spacing:-.1px}
  .vic-hd__actions{gap:7px}
  .vic-dd[data-dd="portal"] .vic-dd__btn{height:34px;padding:0 11px 0 25px;font-size:12.5px}
  .vic-dd[data-dd="portal"] .vic-dd__btn::before{left:11px;width:7px;height:7px;margin-top:-3.5px}
  .vic-dd__caret{width:10px;height:10px}
  .vic-hd__burger{width:38px;height:38px}
  .vic-hd__burger span{width:15px}
}
@media (max-width:479px){
  .vic-hd__inner{padding:0 16px;gap:6px}
  .vic-hd__name{font-size:13.5px;max-width:38vw}
  .vic-dd[data-dd="portal"] .vic-dd__btn{height:32px;padding:0 9px 0 23px;font-size:12px}
  .vic-hd__burger{width:36px;height:36px}
}
@media (max-width:359px){
  .vic-dd[data-dd="portal"] .vic-dd__btn{font-size:0;padding:0 10px 0 22px;width:38px}
  .vic-dd[data-dd="portal"] .vic-dd__caret{display:none}
}

/* ── 2 ── Lightbox close: on the panel, centred, unmistakable ──────── */
.vic-lb__x{
  top:12px;right:12px;width:42px;height:42px;
  background:rgba(11,31,92,.92) !important;color:#fff !important;
  border:1px solid rgba(255,255,255,.35) !important;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  box-shadow:0 10px 26px -8px rgba(0,0,0,.8);
  display:flex !important;align-items:center;justify-content:center;
  padding:0 !important;line-height:0}
.vic-lb__x:hover{background:#0B1F5C !important}
.vic-lb__x svg{display:block;width:17px;height:17px}
body.brand-high .vic-lb__x{background:rgba(120,24,44,.92) !important}
body.brand-high .vic-lb__x:hover{background:#78182C !important}
@media (max-width:767px){
  .vic-lb__x{top:10px;right:10px;width:40px;height:40px}
}

/* ── 3 ── The hero's first button is always gold ──────────────────── */
.vic-sec--split-hero .vic-hero-actions .vic-btn--solid,
.vic-sec--hero .vic-hero-actions .vic-btn--solid,
.vic-sec--hero-tall .vic-hero-actions .vic-btn--solid,
.vic-sec--home-hero .vic-hero-actions .vic-btn--solid{
  background:var(--brand-gold,#D9A83B) !important;
  color:#3B2A06 !important;
  border:0 !important;
  box-shadow:0 10px 26px -12px rgba(0,0,0,.6) !important}
body.brand-children .vic-sec--split-hero .vic-hero-actions .vic-btn--solid{background:#F2A81D !important}
body.brand-high .vic-sec--split-hero .vic-hero-actions .vic-btn--solid{background:#E2B23C !important;color:#3B1109 !important}
.vic-sec--split-hero .vic-hero-actions .vic-btn--solid:hover,
.vic-sec--hero .vic-hero-actions .vic-btn--solid:hover,
.vic-sec--hero-tall .vic-hero-actions .vic-btn--solid:hover{transform:translateY(-2px)}

/* Hero CTA row spacing when injected */
.vic-phero .vic-hero-actions{margin-top:32px}
@media (max-width:639px){ .vic-phero .vic-hero-actions{margin-top:26px} }

/* ── 4 ── Contact: one item per row on phones ─────────────────────── */
@media (max-width:767px){
  .vic-grid-4,.vic-contact{grid-template-columns:1fr !important;gap:14px}
}
.vic-contact .vic-fcard{
  display:grid;grid-template-columns:48px 1fr;align-items:center;gap:16px;
  padding:20px;border-radius:18px;text-decoration:none;
  background:rgba(255,255,255,.7);
  -webkit-backdrop-filter:blur(16px) saturate(160%);
  backdrop-filter:blur(16px) saturate(160%);
  border:1px solid var(--glass-line,rgba(11,31,92,.10));
  box-shadow:0 1px 2px rgba(11,31,92,.04), 0 16px 36px -30px rgba(11,31,92,.5)}
.vic-contact .vic-fcard:hover{transform:translateY(-3px);
  box-shadow:0 24px 48px -26px rgba(11,31,92,.4)}
.vic-contact .vic-fcard__ico{margin:0;width:48px;height:48px;border-radius:14px}
.vic-contact .vic-fcard__t{grid-column:2;font-size:16.5px;margin:0}
.vic-contact .vic-fcard__s{grid-column:2;font-size:13.5px;margin-top:3px;word-break:break-word}

/* ── 4b ── Forms people can actually read ───────────────────────── */
.vic-form__grid{gap:22px;max-width:820px}
.vic-field > span{font-size:12.5px;font-weight:700;letter-spacing:.1em;
  color:var(--brand-text,#0B1F5C);text-transform:uppercase}
.vic-form input,.vic-form select,.vic-form textarea{
  min-height:54px;padding:14px 17px;border-radius:14px;font-size:16.5px;
  border:1.5px solid rgba(11,31,92,.22);
  background:#fff;color:var(--brand-text,#0B1F5C);
  box-shadow:0 1px 2px rgba(11,31,92,.04)}
.vic-form textarea{min-height:150px;line-height:1.6}
.vic-form input::placeholder,.vic-form textarea::placeholder{color:#98A1B4;opacity:1}
.vic-form input:hover,.vic-form select:hover,.vic-form textarea:hover{
  border-color:rgba(11,31,92,.36)}
.vic-form input:focus,.vic-form select:focus,.vic-form textarea:focus{
  outline:none;border-color:var(--brand-primary,#0B1F5C);
  box-shadow:0 0 0 4px rgba(11,31,92,.12)}
body.brand-high .vic-form input:focus,
body.brand-high .vic-form select:focus,
body.brand-high .vic-form textarea:focus{box-shadow:0 0 0 4px rgba(120,24,44,.13)}
.vic-form__actions{margin-top:8px;gap:14px}
.vic-form__actions .vic-btn{height:56px;padding:0 30px;font-size:15.5px}
.vic-form__note{font-size:13.5px;line-height:1.6;color:var(--brand-body,#5A6478)}
.vic-form__done{padding:30px;border-radius:18px;font-size:17px;
  border:1px solid var(--glass-line,rgba(11,31,92,.12))}
.vic-form__done strong{font-family:Fraunces,Georgia,serif;font-size:21px;display:block}
.vic-form__done p{margin:10px 0 0;font-size:15px;color:var(--brand-body,#5A6478)}
@media (max-width:639px){
  .vic-form__grid{gap:18px}
  .vic-form input,.vic-form select,.vic-form textarea{min-height:52px;font-size:16px}
  .vic-form__actions{flex-direction:column;align-items:stretch}
  .vic-form__actions .vic-btn{width:100%}
}

/* ── 5 ── Gallery albums ───────────────────────────────────────── */
.vic-galbar{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:34px}
.vic-galpill{
  height:38px;padding:0 17px;border-radius:999px;cursor:pointer;
  font-family:Inter,sans-serif;font-size:13px;font-weight:600;
  color:var(--brand-text,#0B1F5C);
  background:rgba(255,255,255,.72) !important;
  border:1px solid var(--glass-line,rgba(11,31,92,.12)) !important;
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  transition:background .2s ease,color .2s ease,border-color .2s ease}
.vic-galpill:hover{border-color:rgba(11,31,92,.28) !important}
.vic-galpill.is-on{
  background:var(--brand-primary,#0B1F5C) !important;color:#fff !important;
  border-color:var(--brand-primary,#0B1F5C) !important}
@media (max-width:639px){
  .vic-galbar{gap:8px;margin-bottom:26px;
    flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;
    padding-bottom:4px}
  .vic-galbar::-webkit-scrollbar{display:none}
  .vic-galpill{flex:0 0 auto;height:36px;padding:0 15px;font-size:12.5px}
}
.vic-gallery__item{position:relative;margin:0;border-radius:16px;overflow:hidden;
  aspect-ratio:4/3;background:var(--brand-hairline,#DCE4F4)}
.vic-gallery__item[hidden]{display:none !important}
.vic-gallery__item img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .6s cubic-bezier(.22,.61,.36,1)}
.vic-gallery__item:hover img{transform:scale(1.05)}
.vic-gallery__item figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:26px 14px 12px;
  font-family:Inter,sans-serif;font-size:11px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:#fff;
  background:linear-gradient(180deg,rgba(6,14,38,0),rgba(6,14,38,.72));
  opacity:0;transition:opacity .3s ease}
.vic-gallery__item:hover figcaption{opacity:1}
@media (hover:none){ .vic-gallery__item figcaption{opacity:1} }
.vic-galnone{margin:28px 0 0;font-size:15px;color:var(--brand-body,#5A6478)}


/* ═════════════════════════════════════════════════════════════
   VIC REFINE v12 — per-page FAQ · three campuses with maps · MetForm
   ═════════════════════════════════════════════════════════════ */

/* ── 1 ── The injected FAQ band ─────────────────────────────────────── */
.vic-sec--faq{background:var(--band-tint);
  border-top:1px solid var(--glass-line);border-bottom:1px solid var(--glass-line)}
.vic-sec--faq .vic-faq-split{display:grid;gap:48px;align-items:start}
@media (min-width:1024px){ .vic-sec--faq .vic-faq-split{grid-template-columns:5fr 7fr;gap:64px} }
.vic-sec--faq .vic-sec-head{max-width:none}
.vic-sec--faq .vic-sec-head + *{margin-top:0}
.vic-faq__ask{display:inline-flex;align-items:center;gap:8px;margin-top:26px;
  font-family:Inter,sans-serif;font-size:14px;font-weight:600;text-decoration:none;
  color:var(--brand-primary,#0B1F5C)}
.vic-faq__ask svg{transition:transform .25s ease}
.vic-faq__ask:hover svg{transform:translateX(4px)}
@media (min-width:1024px){
  .vic-sec--faq .vic-sec-head{position:sticky;top:150px}
}

/* ── 2 ── Campuses ────────────────────────────────────────────────── */
.vic-sec--campus{background:#fff}
.vic-campusgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media (max-width:1023px){ .vic-campusgrid{grid-template-columns:1fr;gap:20px} }
.vic-campus{display:flex;flex-direction:column;overflow:hidden;border-radius:20px;
  background:#fff;border:1px solid var(--glass-line,rgba(11,31,92,.10));
  box-shadow:0 1px 2px rgba(11,31,92,.04);
  transition:transform .3s cubic-bezier(.22,.61,.36,1), box-shadow .3s ease}
.vic-campus:hover{transform:translateY(-4px);box-shadow:0 26px 52px -26px rgba(11,31,92,.4)}
.vic-campus__map{position:relative;aspect-ratio:16/10;background:var(--brand-hairline,#DCE4F4)}
.vic-campus__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;
  filter:grayscale(.25) contrast(1.03)}
.vic-campus__body{display:flex;flex-direction:column;flex:1;padding:22px}
.vic-campus__stage{font-family:Inter,sans-serif;font-size:9.5px;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--brand-gold,#D9A83B)}
.vic-campus__name{font-family:Fraunces,Georgia,serif;font-size:19px;font-weight:500;
  line-height:1.3;letter-spacing:-.3px;color:var(--brand-text,#0B1F5C);margin:9px 0 0}
.vic-campus__addr{font-size:14.5px;line-height:1.62;color:var(--brand-body,#5A6478);margin:10px 0 0}
.vic-campus__dir{display:inline-flex;align-items:center;gap:7px;margin-top:auto;padding-top:18px;
  font-family:Inter,sans-serif;font-size:13px;font-weight:600;text-decoration:none;
  color:var(--brand-primary,#0B1F5C)}
.vic-campus__dir svg{transition:transform .25s ease}
.vic-campus:hover .vic-campus__dir svg{transform:translateX(4px)}

/* Footer address block gains labels */
.vic-ft__contact strong{display:block;font-family:Inter,sans-serif;font-size:9.5px;
  font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  color:var(--brand-gold,#D9A83B);margin-bottom:3px}
.vic-ft__contact li{line-height:1.6}

/* ── 3 ── MetForm, wearing the site's clothes ───────────────────────── */
.vic-mfwrap{max-width:820px}
.vic-mfwrap .metform-input-wrapper,
.vic-mfwrap .mf-input-wrapper{margin-bottom:20px}
.vic-mfwrap label,
.vic-mfwrap .mf-input-label{
  font-family:Inter,sans-serif !important;font-size:12.5px !important;font-weight:700 !important;
  letter-spacing:.1em !important;text-transform:uppercase !important;
  color:var(--brand-text,#0B1F5C) !important;margin-bottom:9px !important;display:block}
.vic-mfwrap input[type=text],.vic-mfwrap input[type=email],.vic-mfwrap input[type=tel],
.vic-mfwrap input[type=number],.vic-mfwrap input[type=url],.vic-mfwrap input[type=date],
.vic-mfwrap select,.vic-mfwrap textarea{
  width:100% !important;min-height:54px !important;padding:14px 17px !important;
  border-radius:14px !important;font-size:16.5px !important;
  font-family:Inter,sans-serif !important;
  border:1.5px solid rgba(11,31,92,.22) !important;background:#fff !important;
  color:var(--brand-text,#0B1F5C) !important;
  box-shadow:0 1px 2px rgba(11,31,92,.04) !important;
  transition:border-color .2s ease, box-shadow .2s ease}
.vic-mfwrap textarea{min-height:150px !important;line-height:1.6 !important}
.vic-mfwrap input:focus,.vic-mfwrap select:focus,.vic-mfwrap textarea:focus{
  outline:none !important;border-color:var(--brand-primary,#0B1F5C) !important;
  box-shadow:0 0 0 4px rgba(11,31,92,.12) !important}
body.brand-high .vic-mfwrap input:focus,
body.brand-high .vic-mfwrap select:focus,
body.brand-high .vic-mfwrap textarea:focus{box-shadow:0 0 0 4px rgba(120,24,44,.13) !important}
.vic-mfwrap ::placeholder{color:#98A1B4 !important;opacity:1}
.vic-mfwrap button[type=submit],
.vic-mfwrap .metform-btn,
.vic-mfwrap .mf-btn{
  display:inline-flex !important;align-items:center;justify-content:center;
  height:56px !important;padding:0 32px !important;border:0 !important;
  border-radius:999px !important;cursor:pointer;
  font-family:Inter,sans-serif !important;font-size:15.5px !important;font-weight:600 !important;
  background:var(--brand-gold,#D9A83B) !important;color:#3B2A06 !important;
  box-shadow:0 10px 26px -12px rgba(0,0,0,.5) !important;
  transition:transform .2s ease, box-shadow .2s ease}
.vic-mfwrap button[type=submit]:hover,
.vic-mfwrap .mf-btn:hover{transform:translateY(-2px)}
.vic-mfwrap .mf-required,
.vic-mfwrap .required{color:#C0392B !important}
.vic-mfwrap .mf-success,
.vic-mfwrap .metform-success-massage{
  padding:26px !important;border-radius:18px !important;
  background:rgba(255,255,255,.85) !important;
  border:1px solid var(--glass-line,rgba(11,31,92,.12)) !important;
  font-size:16.5px !important;color:var(--brand-text,#0B1F5C) !important}
@media (max-width:639px){
  .vic-mfwrap input[type=text],.vic-mfwrap input[type=email],.vic-mfwrap input[type=tel],
  .vic-mfwrap select,.vic-mfwrap textarea{min-height:52px !important;font-size:16px !important}
  .vic-mfwrap button[type=submit],.vic-mfwrap .mf-btn{width:100% !important}
}


/* ═════════════════════════════════════════════════════════════
   VIC REFINE v13 — FAQ accordion: one answer at a time
   ═════════════════════════════════════════════════════════════ */

.vic-faq{display:grid;gap:10px}

.vic-faq__item{
  position:relative;overflow:hidden;
  border-radius:18px;
  border:1px solid var(--glass-line,rgba(11,31,92,.10));
  background:rgba(255,255,255,.66);
  -webkit-backdrop-filter:blur(14px) saturate(155%);
  backdrop-filter:blur(14px) saturate(155%);
  box-shadow:0 1px 2px rgba(11,31,92,.03);
  transition:border-color .3s ease, box-shadow .3s ease, background .3s ease}
.vic-faq__item::before{
  content:'';position:absolute;left:0;top:14px;bottom:14px;width:2px;border-radius:0 2px 2px 0;
  background:var(--brand-gold,#D9A83B);
  transform:scaleY(0);transform-origin:center;
  transition:transform .34s cubic-bezier(.22,.61,.36,1)}
.vic-faq__item:hover{border-color:rgba(11,31,92,.2);background:rgba(255,255,255,.8)}
.vic-faq__item.is-open,
.vic-faq__item[open]{
  background:#fff;
  border-color:rgba(11,31,92,.16);
  box-shadow:0 1px 2px rgba(11,31,92,.04), 0 26px 54px -34px rgba(11,31,92,.6)}
.vic-faq__item.is-open::before,
.vic-faq__item[open]::before{transform:scaleY(1)}

.vic-faq__item summary{
  list-style:none;cursor:pointer;
  display:flex;align-items:flex-start;justify-content:space-between;gap:22px;
  padding:22px 24px;
  font-family:Fraunces,Georgia,serif;font-size:17.5px;font-weight:500;line-height:1.42;
  letter-spacing:-.25px;color:var(--brand-text,#0B1F5C);
  transition:color .2s ease}
.vic-faq__item summary::-webkit-details-marker{display:none}
.vic-faq__item summary::marker{content:''}
.vic-faq__item:hover summary{color:var(--brand-primary,#0B1F5C)}

/* The marker: a ring that fills and turns as the answer opens */
.vic-faq__item summary::after{
  content:'';flex:0 0 auto;width:30px;height:30px;margin-top:1px;border-radius:999px;
  border:1px solid var(--glass-line,rgba(11,31,92,.16));
  background-color:transparent;
  background-image:
    linear-gradient(currentColor,currentColor),
    linear-gradient(currentColor,currentColor);
  background-size:11px 1.6px, 1.6px 11px;
  background-position:center, center;
  background-repeat:no-repeat;
  color:var(--brand-gold,#D9A83B);
  transition:transform .34s cubic-bezier(.22,.61,.36,1),
             background-size .3s ease, background-color .3s ease,
             border-color .3s ease, color .3s ease}
.vic-faq__item.is-open summary::after,
.vic-faq__item[open] summary::after{
  transform:rotate(90deg);
  background-size:11px 1.6px, 0 11px;
  background-color:var(--brand-primary,#0B1F5C);
  border-color:var(--brand-primary,#0B1F5C);
  color:#fff}

.vic-faq__a{
  padding:0 24px 22px;max-width:none;
  opacity:1;transition:opacity .28s ease}
.vic-faq__a p{
  margin:0;padding-top:4px;
  font-size:15.5px;line-height:1.72;color:var(--brand-body,#5A6478);
  max-width:62ch;
  border-top:1px solid var(--glass-line,rgba(11,31,92,.09));
  padding-top:18px}

/* Closed items keep their answer out of the flow until the script opens them */
.vic-faq__item:not([open]) .vic-faq__a{opacity:0}
.vic-faq__item.is-open .vic-faq__a{opacity:1}

.vic-faq__item summary:focus-visible{
  outline:2px solid var(--brand-gold,#D9A83B);outline-offset:-3px;border-radius:18px}

@media (max-width:639px){
  .vic-faq{gap:9px}
  .vic-faq__item summary{padding:18px 18px;font-size:16px;gap:14px}
  .vic-faq__item summary::after{width:27px;height:27px}
  .vic-faq__a{padding:0 18px 18px}
  .vic-faq__a p{font-size:15px;padding-top:15px}
}

@media (prefers-reduced-motion:reduce){
  .vic-faq__item,.vic-faq__item::before,
  .vic-faq__item summary,.vic-faq__item summary::after,
  .vic-faq__a{transition:none}
}



/* ---
   VIC MOTION v1 — Luxury Motion Playbook
   One signature moment (the seal) + one quiet motion language everywhere.
   --- */

:root{
  --ease-luxury:cubic-bezier(.16,1,.3,1);
  --ease-soft:cubic-bezier(.4,0,.2,1);
  --mo-gold:#C7A252;
  --mo-gold-deep:#9C7A2E;
  --mo-micro:180ms;
  --mo-short:450ms;
  --mo-med:650ms;
  --mo-long:1100ms;
  --mo-shadow:11,31,92;
  --mo-accent:11,31,92;
}
body.brand-children{ --mo-shadow:14,95,192;  --mo-accent:14,95,192; }
body.brand-high{     --mo-shadow:120,24,44;  --mo-accent:120,24,44; }

/* --- 2. Section entrance: mask reveal --- */
.vic-rv{
  opacity:0;
  clip-path:inset(0 0 100% 0);
  transform:translateY(12px);
  transition:clip-path var(--mo-med) var(--ease-luxury),
             transform var(--mo-med) var(--ease-luxury),
             opacity 420ms var(--ease-luxury);
  transition-delay:var(--rvd,0ms);
  will-change:clip-path,transform}
.vic-rv.is-in{opacity:1;clip-path:inset(0 0 0 0);transform:none}
.vic-rv.is-done{clip-path:none;transform:none;will-change:auto;transition:none}

/* --- 2. Cards --- */
.vic-hv{
  transition:transform 400ms var(--ease-soft),
             box-shadow 400ms var(--ease-soft),
             border-color 400ms var(--ease-soft),
             background-color 400ms var(--ease-soft)}
.vic-hv:hover,.vic-hv:focus-within{
  transform:translateY(-6px);
  border-color:rgba(199,162,82,.4);
  box-shadow:0 24px 48px -12px rgba(var(--mo-shadow),.18)}
.vic-hv .vic-panel,
.vic-hv .vic-card__media,
.vic-hv .vic-school-card__media,
.vic-hv figure,
.vic-hv picture{overflow:hidden}
.vic-hv img:not(.vic-crest){transition:transform 400ms var(--ease-soft)}
.vic-hv:hover img:not(.vic-crest){transform:scale(1.05)}

/* --- 2. Buttons: no bounce. Deepen + a gold hairline appears --- */
.vic-btn{
  transition:background-color 200ms var(--ease-soft),
             color 200ms var(--ease-soft),
             border-color 200ms var(--ease-soft),
             box-shadow 200ms var(--ease-soft),
             filter 200ms var(--ease-soft),
             transform 80ms var(--ease-soft)}
.vic-btn:hover{box-shadow:0 0 0 1px rgba(199,162,82,.9)}
.vic-btn--gold:hover,.vic-btn--solid:hover{filter:brightness(.94) saturate(1.06)}
.vic-btn:active{transform:scale(.98)}
.vic-btn:focus-visible{outline:2px solid var(--mo-gold);outline-offset:2px}

/* --- 2. Nav links: a gold line draws, nothing flashes --- */
.vic-hd__nav a,
.school-bar__nav a{position:relative}
.vic-hd__nav a::after{
  content:'';position:absolute;left:0;right:0;bottom:-5px;height:1.5px;
  background:var(--mo-gold);border-radius:2px;
  transform:scaleX(0);transform-origin:left center;
  transition:transform 250ms var(--ease-soft)}
.vic-hd__nav a:hover::after,
.vic-hd__nav a:focus-visible::after{transform:scaleX(1)}

/* Sub-nav sliding indicator */
.school-bar__nav ul{position:relative}
.school-bar__ind{
  position:absolute;left:0;bottom:2px;height:2px;width:0;border-radius:2px;
  background:rgb(var(--mo-accent));pointer-events:none;opacity:0;
  transition:transform 300ms var(--ease-luxury),
             width 300ms var(--ease-luxury),
             opacity 220ms var(--ease-soft)}
.school-bar__nav.has-ind .school-bar__ind{opacity:1}

/* --- 2. Brand dropdown --- */
.vic-dd__panel .vic-dd__item{
  transition:opacity 300ms var(--ease-luxury) var(--ddd,0ms),
             transform 300ms var(--ease-luxury) var(--ddd,0ms)}

/* --- 1. The Seal Unlock --- */
.vic-seal{position:relative;display:inline-flex;transform-origin:50% 50%}
.vic-seal__ring{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  pointer-events:none;overflow:visible;opacity:0;
  transition:opacity 400ms var(--ease-soft)}
.vic-seal__ring circle{
  fill:none;stroke:var(--mo-gold);stroke-width:1;stroke-linecap:round;
  stroke-dasharray:var(--mo-c,200);stroke-dashoffset:var(--mo-c,200);
  transform:rotate(-90deg);transform-origin:50% 50%}
.vic-seal.is-armed .vic-seal__ring{opacity:1}
.vic-seal.is-draw .vic-seal__ring circle{
  transition:stroke-dashoffset 700ms cubic-bezier(.65,0,.35,1);
  stroke-dashoffset:0}
.vic-seal.is-pulse{animation:vicSealPulse 400ms cubic-bezier(.34,1.56,.64,1)}
.vic-seal.is-set .vic-seal__ring{opacity:.42}
@keyframes vicSealPulse{
  0%{transform:scale(1)}
  55%{transform:scale(1.03)}
  100%{transform:scale(1)}
}

/* --- 2. Header compression --- */
.vic-hd__inner{transition:padding 350ms var(--ease-soft)}
.vic-hd .vic-cycle{transition:transform 350ms var(--ease-soft)}
body.vic-scrolled .vic-hd .vic-cycle{transform:scale(.86)}

/* --- 2. CTA band: the one gold sheen --- */
.vic-cta{position:relative;overflow:hidden;isolation:isolate}
.vic-cta__inner{position:relative;z-index:2}
.vic-sheen{
  position:absolute;top:-60%;left:0;width:42%;height:220%;z-index:1;
  pointer-events:none;opacity:0;
  background:linear-gradient(100deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,.06) 38%,
    rgba(199,162,82,.20) 50%,
    rgba(255,255,255,.06) 62%,
    rgba(255,255,255,0) 100%);
  transform:translateX(-120%) rotate(8deg)}
.vic-cta.is-sheen .vic-sheen{animation:vicSheen 1400ms var(--ease-luxury) forwards}
@keyframes vicSheen{
  0%{opacity:0;transform:translateX(-120%) rotate(8deg)}
  14%{opacity:1}
  86%{opacity:1}
  100%{opacity:0;transform:translateX(330%) rotate(8deg)}
}
.vic-cta .vic-cta__actions > *{
  transition:opacity 450ms var(--ease-luxury) var(--crd,0ms),
             transform 450ms var(--ease-luxury) var(--crd,0ms)}
.vic-cta.has-stagger .vic-cta__actions > *{opacity:0;transform:scale(.95)}
.vic-cta.has-stagger.is-sheen .vic-cta__actions > *{opacity:1;transform:none}

/* --- 3. Homepage hero --- */
@media (min-width:768px){
  .vic-hh__bg img{
    transform-origin:52% 46%;
    animation:vicKen 14s linear forwards}
}
@keyframes vicKen{from{transform:scale(1)}to{transform:scale(1.06)}}

/* Line-by-line headline reveal (words share their line's delay) */
.vic-w{
  display:inline-block;overflow:hidden;
  padding-bottom:.14em;margin-bottom:-.14em;vertical-align:bottom}
.vic-w > i{
  display:inline-block;font-style:inherit;
  transform:translateY(112%);
  transition:transform 720ms var(--ease-luxury);
  transition-delay:var(--wd,0ms)}
.vic-hh__copy.is-lines .vic-w > i{transform:none}

/* Count-up + year digit roll */
.vic-stat__n{font-variant-numeric:tabular-nums}
.vic-dg{display:inline-block;overflow:hidden;vertical-align:bottom;
  padding-bottom:.1em;margin-bottom:-.1em}
.vic-dg > i{
  display:inline-block;font-style:normal;transform:translateY(108%);
  transition:transform 620ms var(--ease-luxury);
  transition-delay:var(--dgd,0ms)}
.vic-stat__n.is-in .vic-dg > i{transform:none}

/* 3. the 1971 chip gets its own hairline */
.vic-uline{position:relative;display:inline-block}
.vic-uline::after{
  content:'';position:absolute;left:0;right:0;bottom:-6px;height:1px;
  background:var(--mo-gold);
  transform:scaleX(0);transform-origin:left center;
  transition:transform 500ms var(--ease-luxury) 120ms}
.vic-uline.is-in::after{transform:scaleX(1)}

/* 3. Admissions: four steps are a path, not four boxes */
.vic-steps{position:relative}
.vic-steps__line{
  position:absolute;left:6%;right:6%;top:var(--sl-top,56px);height:1px;z-index:0;
  pointer-events:none;
  background:linear-gradient(90deg,
    rgba(199,162,82,0) 0%,
    rgba(199,162,82,.55) 10%,
    rgba(199,162,82,.55) 90%,
    rgba(199,162,82,0) 100%);
  transform:scaleX(0);transform-origin:left center;
  transition:transform 800ms var(--ease-luxury)}
.vic-steps.is-path .vic-steps__line{transform:scaleX(1)}
.vic-steps .vic-step{position:relative;z-index:1}
@media (max-width:1023px){ .vic-steps__line{display:none} }

/* 3. School cards foreshadow their sub-brand */
.vic-school-card{transition:background-color 400ms var(--ease-soft),
  transform 400ms var(--ease-soft), box-shadow 400ms var(--ease-soft),
  border-color 400ms var(--ease-soft)}
.vic-school-card[data-mo-brand="children"]:hover{background-color:rgba(14,95,192,.06)}
.vic-school-card[data-mo-brand="high"]:hover{background-color:rgba(120,24,44,.06)}

/* 9. Schools page: the two cards take their places */
.vic-school-grid.vic-sides .vic-school-card{
  opacity:0;
  transition:opacity 700ms var(--ease-luxury),transform 700ms var(--ease-luxury)}
.vic-school-grid.vic-sides .vic-school-card:nth-child(1){transform:translateX(-120px)}
.vic-school-grid.vic-sides .vic-school-card:nth-child(2){transform:translateX(120px)}
.vic-school-grid.vic-sides.is-in .vic-school-card{opacity:1;transform:none}
@media (max-width:767px){
  .vic-school-grid.vic-sides .vic-school-card:nth-child(1),
  .vic-school-grid.vic-sides .vic-school-card:nth-child(2){transform:translateY(18px)}
}

/* --- 4. About: timeline draws as you scroll --- */
.vic-tl__stroke{
  position:absolute;background:var(--mo-gold);opacity:.85;
  pointer-events:none;z-index:0;border-radius:2px}
.vic-tl__i::before{
  transition:background-color 350ms var(--ease-soft),
             border-color 350ms var(--ease-soft),
             transform 350ms cubic-bezier(.34,1.56,.64,1)}
.vic-tl__i.is-lit::before{
  background-color:var(--mo-gold);border-color:var(--mo-gold);transform:scale(1.12)}

/* 4. the Psalm mark is placed before the ink */
.vic-scripture{position:relative}
.vic-scripture::before{
  content:'\201C';position:absolute;left:-.36em;top:-.34em;
  font-family:Fraunces,Georgia,serif;font-size:3.1em;line-height:1;
  color:var(--mo-gold);opacity:0;
  transform:translateY(6px);
  transition:opacity 420ms var(--ease-luxury),transform 420ms var(--ease-luxury)}
.vic-scripture.is-in::before{opacity:.5;transform:none}
@media (max-width:767px){ .vic-scripture::before{display:none} }

/* --- 7. Gallery: categories cross-fade, never snap --- */
.vic-gallery{transition:opacity 200ms var(--ease-soft)}
.vic-galwrap.is-swapping .vic-gallery{opacity:0}
.vic-galpill{position:relative;transition:color 250ms var(--ease-soft),
  background-color 250ms var(--ease-soft),border-color 250ms var(--ease-soft)}
.vic-galpill::after{
  content:'';position:absolute;left:14px;right:14px;bottom:6px;height:1.5px;
  background:var(--mo-gold);border-radius:2px;
  transform:scaleX(0);transform-origin:left center;
  transition:transform 250ms var(--ease-soft)}
.vic-galpill:hover::after,.vic-galpill.is-on::after{transform:scaleX(1)}

/* 7. Lightbox grows out of the tile you clicked */
.vic-lb__panel{transform-origin:var(--lb-ox,50%) var(--lb-oy,50%)}
.vic-lb:not([hidden]) .vic-lb__panel{animation:vicLbIn 420ms var(--ease-luxury) both}
@keyframes vicLbIn{
  from{opacity:0;transform:scale(.90)}
  to{opacity:1;transform:scale(1)}
}

/* --- 3. Testimonials: parents skim, so it advances itself on phones --- */
@media (max-width:767px){
  .vic-testi-head + .vic-grid-3{
    display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;
    padding-bottom:4px;margin-inline:-20px;padding-inline:20px}
  .vic-testi-head + .vic-grid-3::-webkit-scrollbar{display:none}
  .vic-testi-head + .vic-grid-3 > .vic-quotecard{
    flex:0 0 86%;scroll-snap-align:center}
  .vic-testi-dots{
    display:flex;justify-content:center;gap:8px;margin-top:18px}
  .vic-testi-dots button{
    width:7px;height:7px;padding:0;border-radius:999px;border:0;cursor:pointer;
    background:rgba(var(--mo-accent),.22);
    transition:background-color 250ms var(--ease-soft),transform 250ms var(--ease-soft)}
  .vic-testi-dots button.is-on{background:var(--mo-gold);transform:scale(1.35)}
}
@media (min-width:768px){ .vic-testi-dots{display:none} }

/* --- 8. Contact: one small purposeful gesture per icon --- */
.vic-fcard__ico{transition:transform 300ms var(--ease-soft),
  color 300ms var(--ease-soft),background-color 300ms var(--ease-soft)}
.vic-fcard:hover .vic-fcard__ico[data-mo="phone"]{transform:rotate(-8deg)}
.vic-fcard:hover .vic-fcard__ico[data-mo="mail"]{transform:translateY(-3px)}
.vic-fcard:hover .vic-fcard__ico[data-mo="chat"]{animation:vicChat 620ms var(--ease-soft)}
.vic-fcard:hover .vic-fcard__ico[data-mo="pin"]{animation:vicPin 520ms cubic-bezier(.34,1.56,.64,1)}
@keyframes vicChat{
  0%{transform:scale(1)}45%{transform:scale(1.09)}100%{transform:scale(1)}
}
@keyframes vicPin{
  0%{transform:translateY(-9px)}60%{transform:translateY(1px)}100%{transform:translateY(0)}
}
.vic-campus__map{overflow:hidden}

/* --- 2. Floating pills: one breath, once --- */
.vic-fab__b.is-breathe{animation:vicBreathe 1000ms var(--ease-soft) 1}
@keyframes vicBreathe{
  0%{transform:scale(1)}50%{transform:scale(1.06)}100%{transform:scale(1)}
}

/* --- 2. FAQ accordion refinements --- */
.vic-faq__item:hover{
  background:rgba(var(--mo-accent),.04);
  border-color:rgba(var(--mo-accent),.18)}
.vic-faq__item.is-open:hover,.vic-faq__item[open]:hover{background:#fff}
.vic-faq__item summary::after{
  transition:transform 300ms var(--ease-luxury),
             background-size 300ms var(--ease-luxury),
             background-color 300ms var(--ease-soft),
             border-color 300ms var(--ease-soft),
             color 300ms var(--ease-soft)}
.vic-faq__item.is-open summary::after,
.vic-faq__item[open] summary::after{transform:rotate(180deg)}

/* 13. Standalone FAQ page reads top-to-bottom, so give it room */
body.page-faq-standalone .vic-faq{max-width:920px;margin-inline:auto;gap:12px}
body.page-faq-standalone .vic-faq__item summary{padding:26px 28px;font-size:18.5px}

/* --- Accessibility & performance floor --- */
@media (max-width:767px){
  .vic-hh__bg img{animation:none !important}
}
@media (prefers-reduced-motion:reduce){
  .vic-rv,.vic-rv.is-in{opacity:1;clip-path:none;transform:none;transition:none}
  .vic-w > i,.vic-dg > i{transform:none !important;transition:none}
  .vic-hh__bg img{animation:none !important}
  .vic-sheen{display:none}
  .vic-seal__ring circle{stroke-dashoffset:0;transition:none}
  .vic-seal.is-pulse{animation:none}
  .vic-fab__b.is-breathe{animation:none}
  .vic-school-grid.vic-sides .vic-school-card{opacity:1 !important;transform:none !important}
  .vic-uline::after{transform:scaleX(1)}
  .vic-steps__line{transform:scaleX(1)}
  .vic-hv,.vic-hv:hover,.vic-btn,.vic-btn:hover,.vic-btn:active{transition:none;transform:none}
  .vic-lb:not([hidden]) .vic-lb__panel{animation:none}
  .vic-scripture::before{opacity:.5;transform:none;transition:none}
  .vic-fcard:hover .vic-fcard__ico{animation:none;transform:none}
}




/* ---
   VIC MOTION v2 - directional entrances.
   v1 gave everything one quiet reveal. v2 gives each kind of block its own
   direction so the page assembles itself: text from the left, media from the
   right, cards fanning in from both sides, figures bumping into place.
   --- */

/* Sideways travel must never create a horizontal scrollbar. */
.vic-sec{overflow-x:clip}

.vic-rv{
  opacity:0;
  clip-path:none;
  transform:none;
  filter:none;
  transition:transform 860ms var(--ease-luxury),
             opacity 560ms var(--ease-luxury),
             filter 640ms var(--ease-luxury),
             clip-path 860ms var(--ease-luxury);
  transition-delay:var(--rvd,0ms);
  will-change:transform,opacity;
  backface-visibility:hidden}
.vic-rv.is-in{opacity:1;transform:none;filter:none;clip-path:inset(0 0 0 0)}
.vic-rv.is-done{clip-path:none;will-change:auto;transition:none}

/* --- The directions --- */
.vic-rv--l{transform:translate3d(calc(var(--rvx,72px) * -1),0,0)}
.vic-rv--r{transform:translate3d(var(--rvx,72px),0,0)}
.vic-rv--u{transform:translate3d(0,var(--rvy,44px),0)}

/* A card that bumps into place, with just enough overshoot to feel physical. */
.vic-rv--pop{
  transform:translate3d(0,32px,0) scale(.93);
  transition-timing-function:cubic-bezier(.34,1.42,.5,1)}

/* Cards that swing in from a side, on a shallow 3D hinge. */
.vic-rv--tl{
  transform:perspective(1300px) translate3d(calc(var(--rvx,78px) * -1),14px,0) rotateY(10deg) scale(.96);
  transform-origin:left center;
  transition-timing-function:cubic-bezier(.2,.9,.3,1)}
.vic-rv--tr{
  transform:perspective(1300px) translate3d(var(--rvx,78px),14px,0) rotateY(-10deg) scale(.96);
  transform-origin:right center;
  transition-timing-function:cubic-bezier(.2,.9,.3,1)}

/* A tile that drops in slightly off-square and straightens. */
.vic-rv--spin{
  transform:translate3d(0,36px,0) rotate(var(--rvr,-3deg)) scale(.93);
  transition-timing-function:cubic-bezier(.34,1.38,.5,1)}

/* Headings: the block comes into focus, the words carry the movement. */
.vic-rv--head{filter:blur(7px);transform:none}

.vic-rv--mask{clip-path:inset(0 0 100% 0);transform:translate3d(0,18px,0)}

/* Shorter travel on phones so nothing has far to come from. */
@media (max-width:767px){
  .vic-rv{--rvx:34px;--rvy:30px}
  .vic-rv--tl,.vic-rv--tr{transform:translate3d(0,28px,0) scale(.95)}
}

/* --- Section headings rise line by line --- */
.vic-sec-head .vic-w > i,
.vic-shero__text .vic-w > i{transform:translateY(112%)}
.vic-sec-head.is-in .vic-w > i,
.vic-shero__text.is-in .vic-w > i{transform:none}

/* The eyebrow's gold rule draws itself in behind the label. */
.vic-eyebrow .gold-rule{transform-origin:left center;
  transition:transform 700ms var(--ease-luxury) 300ms}
.vic-rv .gold-rule{transform:scaleX(0)}
.vic-rv.is-in .gold-rule{transform:scaleX(1)}

/* --- Photographs are unveiled, not faded in --- */
.vic-curtain{position:relative;overflow:hidden;isolation:isolate}
.vic-curtain::after{
  content:'';position:absolute;inset:-1px;z-index:4;pointer-events:none;
  background:linear-gradient(115deg,
    rgb(var(--mo-accent)) 0%,
    rgb(var(--mo-accent)) 58%,
    var(--mo-gold) 100%);
  transform:translateX(0);
  transition:transform 900ms cubic-bezier(.76,0,.24,1) var(--cvd,0ms)}
.vic-curtain.is-in::after{transform:translateX(103%)}
.vic-curtain img{transform:scale(1.10);
  transition:transform 1200ms var(--ease-luxury) var(--cvd,0ms)}
.vic-curtain.is-in img{transform:scale(1)}

/* --- The header arrives --- */
.vic-hd{animation:vicHdIn 720ms var(--ease-luxury) both}
@keyframes vicHdIn{
  from{opacity:0;transform:translateY(-16px)}
  to{opacity:1;transform:none}
}

/* --- Figures land with a little weight --- */
.vic-stat__n.is-in{animation:vicFigure 620ms cubic-bezier(.34,1.5,.5,1) both}
@keyframes vicFigure{
  0%{transform:scale(.88)}
  60%{transform:scale(1.03)}
  100%{transform:scale(1)}
}

/* --- The four admissions steps arrive along their path --- */
.vic-steps.is-path .vic-step__n{animation:vicStepN 520ms cubic-bezier(.34,1.5,.5,1) both;
  animation-delay:var(--rvd,0ms)}
@keyframes vicStepN{
  0%{opacity:0;transform:translateX(-14px) scale(.8)}
  100%{opacity:1;transform:none}
}

@media (prefers-reduced-motion:reduce){
  .vic-rv,.vic-rv.is-in,
  .vic-rv--l,.vic-rv--r,.vic-rv--u,.vic-rv--pop,
  .vic-rv--tl,.vic-rv--tr,.vic-rv--spin,.vic-rv--head,.vic-rv--mask{
    opacity:1 !important;transform:none !important;filter:none !important;
    clip-path:none !important;transition:none !important}
  .vic-sec-head .vic-w > i,.vic-shero__text .vic-w > i{transform:none !important}
  .vic-rv .gold-rule{transform:none}
  .vic-curtain::after{display:none}
  .vic-curtain img{transform:none !important;transition:none}
  .vic-hd{animation:none}
  .vic-stat__n.is-in{animation:none}
  .vic-steps.is-path .vic-step__n{animation:none}
}

/* ── Photography focal point ─────────────────────────────────────────────
   The school's own photographs are group shots: faces sit in the upper
   third and the floor fills the bottom. Centre-cropping them cuts heads
   off, so every photographic frame anchors above centre. */
.vic-panel--photo img,
.vic-school-card__media img,
.vic-story__media img,
.vic-shero__media img,
.vic-letter__media img,
.vic-hero-split__media img,
.vic-curtain img,
.vic-gallery__item img{object-position:center 30%}
.vic-hh__bg img{object-position:center 34%}

/* The school's photography is landscape throughout, so the three portrait
   frames (story, letter, school hero) take a landscape crop instead of
   squeezing a wide group shot into a 4:5 box. */
.vic-story__media img,
.vic-letter__media img,
.vic-shero__media img{aspect-ratio:4/3}

.vic-story__media img,
.vic-letter__media img,
.vic-shero__media img{object-position:center 22%}

/* ═══ VIC REFINE v14 — status dots ═══════════════════════════════════ */
/* The Portal dot warms to orange so it reads against the pale pill. */
.vic-dd[data-dd="portal"] .vic-dd__btn::before{background:#EF8A2B;animation:vicPortalPulse 3.2s cubic-bezier(.4,0,.6,1) infinite}
@keyframes vicPortalPulse{
  0%,100%{opacity:.55;box-shadow:0 0 0 0 rgba(239,138,43,.6)}
  45%{opacity:1;box-shadow:0 0 0 7px rgba(239,138,43,0)}
  60%{opacity:1;box-shadow:0 0 0 0 rgba(239,138,43,0)}
}
/* A white dot blinks in front of See Schools, the way Portal does. */
.vic-sspick__btn{display:inline-flex;align-items:center;justify-content:center;gap:9px}
.vic-sspick__btn::before{
  content:'';flex:0 0 auto;width:8px;height:8px;border-radius:999px;background:#FFFFFF;
  animation:vicSeePulse 2.6s cubic-bezier(.4,0,.6,1) infinite}
@keyframes vicSeePulse{
  0%,100%{opacity:.45;box-shadow:0 0 0 0 rgba(255,255,255,.7)}
  45%{opacity:1;box-shadow:0 0 0 7px rgba(255,255,255,0)}
  60%{opacity:1;box-shadow:0 0 0 0 rgba(255,255,255,0)}
}
@media (prefers-reduced-motion:reduce){
  .vic-sspick__btn::before,
  .vic-dd[data-dd="portal"] .vic-dd__btn::before{animation:none;opacity:.95}
}


/* === VIC REFINE v15 - proprietress / staff / call list ================= */

/* -- The Proprietress -------------------------------------------------- */
.vic-prop{display:grid;gap:48px;align-items:start}
@media (min-width:1024px){ .vic-prop{grid-template-columns:5fr 7fr;gap:72px} }
.vic-prop__media{margin:0;position:relative}
.vic-prop__media img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 22%;
  border-radius:var(--card-radius,12px);display:block;
  box-shadow:0 30px 80px -34px rgba(11,31,92,.38)}
.vic-prop__plate{display:block;margin-top:20px;padding-top:16px;
  border-top:1px solid var(--brand-hairline,rgba(11,31,92,.14))}
.vic-prop__plate strong{display:block;font-family:"Fraunces",Georgia,serif;
  font-size:22px;font-weight:500;letter-spacing:-.2px;color:var(--brand-text,#0B1F5C)}
.vic-prop__plate span{display:block;margin-top:4px;font-size:13px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--brand-body,#5A6377)}
.vic-prop__plate--letter{max-width:420px}
.vic-prop__body h2{margin:16px 0 0;max-width:20ch}
.vic-prop__body p{font-size:18px;line-height:1.62;color:var(--brand-body,#5A6377);margin:22px 0 0}
.vic-prop__more{display:inline-flex;align-items:center;gap:8px;margin-top:28px;
  font-size:14px;font-weight:600;letter-spacing:.02em;color:var(--brand-primary,#0B1F5C);
  text-decoration:none;border-bottom:1px solid rgba(11,31,92,.22);padding-bottom:3px}
.vic-prop__more:hover{border-bottom-color:currentColor}
body.brand-high .vic-prop__more{color:#78182C;border-bottom-color:rgba(120,24,44,.25)}
body.brand-children .vic-prop__more{color:#0E5FC0;border-bottom-color:rgba(14,95,192,.25)}

/* -- Staff teaser ------------------------------------------------------ */
.vic-staffgrid{display:grid;gap:24px;margin-top:48px}
@media (min-width:768px){ .vic-staffgrid{grid-template-columns:repeat(3,1fr)} }
.vic-staffcard{display:block;text-decoration:none;color:inherit;
  border:1px solid var(--brand-hairline,rgba(11,31,92,.12));border-radius:var(--card-radius,12px);
  overflow:hidden;background:#fff;transition:transform .3s ease,box-shadow .3s ease}
.vic-staffcard:hover{transform:translateY(-3px);box-shadow:0 26px 60px -32px rgba(11,31,92,.35)}
.vic-staffcard .vic-panel{border-radius:0}
.vic-staffcard__body{padding:24px}
.vic-staffcard__body h3{margin:0;font-size:19px}
.vic-staffcard__body p{margin:8px 0 0;font-size:14px;line-height:1.6;color:var(--brand-body,#5A6377)}
.vic-staff__cta{margin-top:40px}

/* -- Named people ------------------------------------------------------ */
.vic-people{display:grid;gap:24px;margin-top:8px}
@media (min-width:640px){ .vic-people{grid-template-columns:repeat(2,1fr)} }
@media (min-width:1024px){ .vic-people{grid-template-columns:repeat(4,1fr)} }
.vic-person{border:1px solid var(--brand-hairline,rgba(11,31,92,.12));
  border-radius:var(--card-radius,12px);overflow:hidden;background:#fff}
.vic-person__media{aspect-ratio:4/5;overflow:hidden;background:#EEF1F7}
.vic-person__media img{width:100%;height:100%;object-fit:cover;object-position:center 20%;display:block}
.vic-person__media--empty{display:grid;place-items:center;
  background:linear-gradient(150deg,#0B1F5C,#1B3F91)}
.vic-person__crest{width:52px;height:52px;border-radius:999px;
  border:1px solid rgba(255,255,255,.4);opacity:.65;background:rgba(255,255,255,.08)}
.vic-person__body{padding:20px}
.vic-person__role{margin:0;font-size:17px}
.vic-person__note{margin:6px 0 0;font-size:13px;line-height:1.55;color:var(--brand-body,#5A6377)}
body.brand-high .vic-person__media--empty{background:linear-gradient(150deg,#78182C,#3B0B14)}
body.brand-children .vic-person__media--empty{background:linear-gradient(150deg,#0E5FC0,#062449)}

/* -- Teaching roles ---------------------------------------------------- */
.vic-roles + .vic-roles{margin-top:48px}
.vic-roles__h{margin:0 0 20px;font-size:14px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--brand-body,#5A6377);padding-bottom:12px;
  border-bottom:1px solid var(--brand-hairline,rgba(11,31,92,.12))}
.vic-roles__grid{display:grid;gap:16px}
@media (min-width:600px){ .vic-roles__grid{grid-template-columns:repeat(2,1fr)} }
@media (min-width:960px){ .vic-roles__grid{grid-template-columns:repeat(3,1fr)} }
.vic-role{display:flex;align-items:center;gap:14px;padding:16px 18px;background:#fff;
  border:1px solid var(--brand-hairline,rgba(11,31,92,.12));border-radius:var(--card-radius,12px)}
.vic-role__crest{flex:0 0 auto;width:34px;height:34px;border-radius:999px;
  background:linear-gradient(150deg,#0B1F5C,#1B3F91);opacity:.9}
body.brand-high .vic-role__crest{background:linear-gradient(150deg,#78182C,#3B0B14)}
body.brand-children .vic-role__crest{background:linear-gradient(150deg,#0E5FC0,#062449)}
.vic-role__name{font-size:15px;font-weight:600;color:var(--brand-text,#0B1F5C)}
.vic-role__meta{margin-left:auto;font-size:11px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--brand-body,#5A6377)}

/* -- The call list ----------------------------------------------------- */
.vic-calls{display:grid;gap:16px;margin-top:40px}
@media (min-width:768px){ .vic-calls{grid-template-columns:repeat(2,1fr)} }
@media (min-width:1100px){ .vic-calls{grid-template-columns:repeat(3,1fr)} }
.vic-call{display:block;padding:22px 24px;text-decoration:none;background:#fff;
  border:1px solid var(--brand-hairline,rgba(11,31,92,.12));border-radius:var(--card-radius,12px);
  transition:border-color .25s ease,transform .25s ease}
.vic-call:hover{transform:translateY(-2px);border-color:rgba(11,31,92,.3)}
.vic-call__role{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--brand-body,#5A6377)}
.vic-call__num{display:block;margin-top:8px;font-family:"Fraunces",Georgia,serif;
  font-size:24px;letter-spacing:-.4px;color:var(--brand-text,#0B1F5C)}
.vic-call__note{display:block;margin-top:6px;font-size:13px;color:var(--brand-body,#5A6377)}


/* === VIC REFINE v16 - glass chrome / pill select / popover =============== */

/* -- 1. Header and sub-nav: frosted glass, the way iOS does it ------------ */
.vic-hd{
  background:rgba(252,251,248,.72) !important;
  -webkit-backdrop-filter:saturate(180%) blur(20px);
  backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid rgba(11,31,92,.07);
  box-shadow:0 1px 0 rgba(255,255,255,.65) inset,0 10px 30px -24px rgba(11,31,92,.5)}
body.brand-children .vic-hd{background:rgba(253,253,251,.72) !important}
body.brand-high .vic-hd{background:rgba(252,250,247,.72) !important}
@supports not (backdrop-filter:blur(1px)){
  .vic-hd{background:#FCFBF8 !important}
}

.school-bar{
  background:rgba(255,255,255,.58) !important;
  -webkit-backdrop-filter:saturate(180%) blur(18px);
  backdrop-filter:saturate(180%) blur(18px);
  border-bottom:1px solid rgba(11,31,92,.06)}
body.brand-children .school-bar{background:rgba(240,246,255,.6) !important}
body.brand-high .school-bar{background:rgba(253,246,247,.62) !important}
@supports not (backdrop-filter:blur(1px)){
  .school-bar{background:var(--brand-tint) !important}
}

/* -- 2. The crest needs room to breathe ----------------------------------- */
.vic-hd__inner{gap:28px}
.vic-hd__logo{gap:12px}
.vic-dd--brand .vic-dd__btn{padding-left:8px;padding-right:10px;gap:12px}
.vic-crest{padding:1px}
.school-bar__home{display:inline-flex;align-items:center;padding:0 10px 0 2px;margin-right:2px}
.school-bar__inner{gap:16px}

/* -- 3. Selected nav item: the fill is the signal, no underline ----------- */
.vic-hd__nav a::after{content:none !important}
.vic-hd__nav a{padding:6px 14px;border-radius:999px;border-bottom:0;
  transition:background .2s ease,color .2s ease}
.vic-hd__nav a:hover{background:rgba(11,31,92,.05)}
.vic-hd__nav li.is-active a{
  color:var(--brand-primary,#0B1F5C);
  background:rgba(11,31,92,.07);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
body.brand-children .vic-hd__nav li.is-active a{background:rgba(14,95,192,.09);color:#0A3B7A}
body.brand-high .vic-hd__nav li.is-active a{background:rgba(120,24,44,.09);color:#78182C}

/* Sub-nav keeps its solid pill and nothing else. */
.school-bar__nav a::after{content:none !important}
.school-bar__nav li.is-active a{box-shadow:none;border-bottom:0}
.school-bar__nav li a{border-bottom:0 !important;text-decoration:none}

/* -- 4. Album pills: a border and one ring on select, not a standing rule -- */
.vic-galpill::after{content:none !important}
.vic-galpill{
  position:relative;
  border:1px solid var(--glass-line,rgba(11,31,92,.14)) !important;
  background:rgba(255,255,255,.6) !important;
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  backdrop-filter:saturate(160%) blur(14px)}
.vic-galpill.is-on{
  background:var(--brand-primary,#0B1F5C) !important;color:#fff !important;
  border-color:var(--brand-primary,#0B1F5C) !important;
  box-shadow:0 10px 24px -14px rgba(11,31,92,.75)}
body.brand-children .vic-galpill.is-on{background:#0E5FC0 !important;border-color:#0E5FC0 !important}
body.brand-high .vic-galpill.is-on{background:#78182C !important;border-color:#78182C !important}
.vic-galpill.is-on::before{
  content:'';position:absolute;inset:-3px;border-radius:999px;pointer-events:none;
  border:1.5px solid currentColor;color:var(--brand-primary,#0B1F5C);
  animation:vicPillRing 620ms cubic-bezier(.22,1,.36,1) 1 both}
body.brand-children .vic-galpill.is-on::before{color:#0E5FC0}
body.brand-high .vic-galpill.is-on::before{color:#78182C}
@keyframes vicPillRing{
  0%{transform:scale(.84);opacity:.85}
  65%{opacity:.3}
  100%{transform:scale(1.22);opacity:0}
}
@media (prefers-reduced-motion:reduce){
  .vic-galpill.is-on::before{animation:none;opacity:0}
}

/* -- 5. See Schools popover must never be clipped ------------------------- */
.vic-sspick__pop{
  z-index:400;
  background:rgba(255,255,255,.88);
  -webkit-backdrop-filter:saturate(180%) blur(22px);
  backdrop-filter:saturate(180%) blur(22px);
  border:1px solid rgba(255,255,255,.6);
  box-shadow:0 30px 60px -24px rgba(6,14,38,.55);
  max-height:min(360px,58vh);overflow:auto}
.vic-sec:has(.vic-sspick.is-open),
.vic-sec__in:has(.vic-sspick.is-open),
.vic-cta:has(.vic-sspick.is-open),
.vic-cta__inner:has(.vic-sspick.is-open),
.vic-hh__in:has(.vic-sspick.is-open),
.vic-hero-actions:has(.vic-sspick.is-open),
.vic-cta__actions:has(.vic-sspick.is-open){overflow:visible !important}
.vic-sec--cta .vic-sspick__pop{top:auto;bottom:calc(100% + 12px)}
@media (max-width:639px){
  .vic-sspick{display:flex;width:100%}
  .vic-sspick__pop{left:0;right:0;min-width:0;width:100%}
}

/* -- 6. Feature cards, the same glass ------------------------------------- */
.vic-fcard{
  background:rgba(255,255,255,.62);
  -webkit-backdrop-filter:saturate(170%) blur(16px);
  backdrop-filter:saturate(170%) blur(16px);
  border:1px solid rgba(255,255,255,.6);
  box-shadow:0 18px 40px -28px rgba(11,31,92,.55);
  border-radius:16px;
  transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s ease}
a.vic-fcard:hover{transform:translateY(-3px);box-shadow:0 26px 54px -26px rgba(11,31,92,.6)}
.vic-fcard__ico{
  background:rgba(11,31,92,.06);border-radius:12px;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
body.brand-children .vic-fcard__ico{background:rgba(14,95,192,.08)}
body.brand-high .vic-fcard__ico{background:rgba(120,24,44,.08)}

/* The call list gets the same treatment, with a way to act on it. */
.vic-call{
  background:rgba(255,255,255,.62);
  -webkit-backdrop-filter:saturate(170%) blur(16px);
  backdrop-filter:saturate(170%) blur(16px);
  border:1px solid rgba(255,255,255,.6);
  box-shadow:0 18px 40px -28px rgba(11,31,92,.55)}
.vic-call__actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.vic-call__act{
  display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;
  border-radius:999px;font-size:12.5px;font-weight:600;text-decoration:none;
  border:1px solid rgba(11,31,92,.16);color:var(--brand-primary,#0B1F5C);
  background:rgba(255,255,255,.7);transition:all .2s ease}
.vic-call__act:hover{border-color:rgba(11,31,92,.36);transform:translateY(-1px)}
.vic-call__act--wa{color:#0B7A47;border-color:rgba(11,122,71,.25)}
.vic-call__act--wa:hover{border-color:rgba(11,122,71,.5)}

/* v16b - WordPress writes width/height on every image; the tiles still fill. */
.vic-gallery__item img,
.vic-panel--photo img,
.vic-person__media img,
.vic-school-card__media img{width:100% !important;height:100% !important;object-fit:cover}


/* === VIC REFINE v17 - bare crest / ring select / contact cards =========== */

/* -- 1. The sub-nav crest stands on its own: no chip, no border ----------- */
.school-bar__home{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  border-radius:0 !important;
  display:inline-flex !important;
  align-items:center;justify-content:center;
  width:44px;height:44px;padding:0 !important;margin:0 6px 0 0;
  transition:transform .35s cubic-bezier(.22,1,.36,1)}
.school-bar__home:hover{background:transparent !important;transform:translateY(-1px) scale(1.04)}
.school-bar__crest{
  width:30px !important;height:30px !important;
  object-fit:contain;display:block;margin:0 !important}

/* -- 2. Selected sub-nav item: a ring that draws itself and stays --------- */
.school-bar__nav a{
  position:relative;border-bottom:0 !important;text-decoration:none;
  transition:background .28s cubic-bezier(.22,1,.36,1),
             color .28s cubic-bezier(.22,1,.36,1)}
.school-bar__nav a::after{content:none !important}
.school-bar__nav li.is-active a{box-shadow:none}
.school-bar__nav li.is-active a::before{
  content:'';position:absolute;inset:3px;border-radius:999px;pointer-events:none;
  border:1px solid rgba(255,255,255,.5);
  animation:vicRingSettle 560ms cubic-bezier(.22,1,.36,1) both}
@keyframes vicRingSettle{
  0%{transform:scale(.7);opacity:0}
  60%{opacity:.85}
  100%{transform:scale(1);opacity:1}
}
@media (prefers-reduced-motion:reduce){
  .school-bar__nav li.is-active a::before{animation:none}
}

/* The main nav follows the same rule: fill, never a rule underneath. */
.vic-hd__nav a::after{content:none !important}
.vic-hd__nav a{border-bottom:0 !important}

/* -- 3. Officer cards: tap the portrait, get the line --------------------- */
.vic-person--live .vic-person__media{
  position:relative;width:100%;border:0;padding:0;cursor:pointer;
  background:#EEF1F7;display:block;overflow:hidden;
  -webkit-appearance:none;appearance:none}
.vic-person--live .vic-person__media img{
  transition:transform .6s cubic-bezier(.22,1,.36,1)}
.vic-person--live:hover .vic-person__media img{transform:scale(1.04)}
.vic-person__hint{
  position:absolute;left:12px;right:12px;bottom:12px;
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  height:34px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.01em;
  color:#0B1F5C;background:rgba(255,255,255,.82);
  -webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);
  border:1px solid rgba(255,255,255,.7);
  opacity:0;transform:translateY(6px);
  transition:opacity .32s cubic-bezier(.22,1,.36,1),transform .32s cubic-bezier(.22,1,.36,1)}
.vic-person--live:hover .vic-person__hint,
.vic-person--live:focus-within .vic-person__hint{opacity:1;transform:translateY(0)}
@media (hover:none){
  .vic-person__hint{opacity:1;transform:none}
}
.vic-person--live.is-open .vic-person__hint{opacity:0;transform:translateY(6px)}

.vic-person__pop{
  display:grid;gap:10px;margin-top:0;
  max-height:0;opacity:0;overflow:hidden;
  transition:max-height .42s cubic-bezier(.22,1,.36,1),
             opacity .3s ease,margin-top .42s cubic-bezier(.22,1,.36,1)}
.vic-person.is-open .vic-person__pop{max-height:170px;opacity:1;margin-top:14px}
.vic-person__num{
  font-family:"Fraunces",Georgia,serif;font-size:21px;letter-spacing:-.3px;
  color:var(--brand-text,#0B1F5C)}
.vic-person__acts{display:flex;gap:8px;flex-wrap:wrap}
.vic-person__act{
  display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;
  border-radius:999px;font-size:12.5px;font-weight:600;text-decoration:none;
  border:1px solid rgba(11,31,92,.16);color:var(--brand-primary,#0B1F5C);
  background:rgba(255,255,255,.72);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  transition:transform .25s cubic-bezier(.22,1,.36,1),border-color .25s ease}
.vic-person__act:hover{transform:translateY(-1px);border-color:rgba(11,31,92,.36)}
.vic-person__act--wa{color:#0B7A47;border-color:rgba(11,122,71,.25)}
.vic-person__act--wa:hover{border-color:rgba(11,122,71,.5)}
.vic-person{transition:transform .38s cubic-bezier(.22,1,.36,1),box-shadow .38s ease}
.vic-person--live:hover{transform:translateY(-3px);box-shadow:0 26px 54px -30px rgba(11,31,92,.5)}

/* -- 4. Motion, evened out across the furniture --------------------------- */
.vic-staffcard,.vic-call,.vic-fcard,.vic-galpill,.vic-btn,.vic-school-card{
  transition:transform .34s cubic-bezier(.22,1,.36,1),
             box-shadow .34s cubic-bezier(.22,1,.36,1),
             border-color .28s ease,background-color .28s ease,color .28s ease}
.vic-gallery__item img{transition:transform .7s cubic-bezier(.22,1,.36,1)}
.vic-gallery__item:hover img{transform:scale(1.05)}

/* ===== VIC REFINE v18 — selected sub-nav item: no underline ===== */
.school-bar__ind{display:none!important}

/* ===== VIC REFINE v19 — selected sub-nav item: quiet ===== */
/* No ring, no outline, no underline. The filled pill alone marks the page,
   and it settles in once instead of announcing itself. */
.school-bar__nav li.is-active a::before{content:none!important;animation:none!important;border:0!important}
.school-bar__nav li.is-active a{box-shadow:none!important;border:0!important;outline:0!important;
  transform-origin:50% 50%;
  animation:vicPillSettle 420ms cubic-bezier(.22,1,.36,1) both}
@keyframes vicPillSettle{
  from{opacity:.45;transform:scale(.94)}
  to{opacity:1;transform:scale(1)}}
.school-bar__nav li a{transition:background-color .28s cubic-bezier(.22,1,.36,1),color .28s cubic-bezier(.22,1,.36,1),transform .18s cubic-bezier(.22,1,.36,1)}
.school-bar__nav li a:active{transform:scale(.965)}
@media (prefers-reduced-motion:reduce){
  .school-bar__nav li.is-active a{animation:none}
  .school-bar__nav li a:active{transform:none}}


/* ===== VIC REFINE v20 — navigation that fits, centres, and says where you are ===== */
:root{--vic-e:cubic-bezier(.22,1,.36,1)}

/* ---------- 1. The header can never run off the edge ---------- */
.vic-hd__inner{
  max-width:1280px;margin:0 auto;display:flex;align-items:center;
  padding-left:max(clamp(16px,3vw,56px), env(safe-area-inset-left)) !important;
  padding-right:max(clamp(16px,3vw,56px), env(safe-area-inset-right)) !important;
  gap:clamp(10px,1.6vw,28px) !important}
.vic-hd__logo{min-width:0;flex:0 1 auto}
.vic-hd__logo .vic-dd__btn{min-width:0;max-width:100%}
.vic-hd__names{min-width:0;max-width:clamp(96px,30vw,260px)}
.vic-hd__name,.vic-hd__tag{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vic-hd__nav{min-width:0}
.vic-hd__actions{flex:0 0 auto;margin-left:auto}
@media (max-width:359px){ .vic-hd__names{display:none !important} }

/* Tighten the row before anything is ever clipped. */
@media (max-width:1439px){
  .vic-hd__tag{display:none}
  .vic-hd__nav ul{gap:clamp(0px,.4vw,6px)}
  .vic-hd__nav > ul > li > a{padding-left:clamp(8px,.9vw,14px);padding-right:clamp(8px,.9vw,14px);
    font-size:clamp(13px,.95vw,14.5px)}
}
/* Below this width seven destinations cannot sit in a row honestly — so they don't. */
@media (max-width:1179px){
  .vic-hd__nav{display:none !important}
  .vic-hd__apply{display:none !important}
  .vic-hd__burger{display:inline-flex !important}
}
@media (min-width:1180px){ .vic-hd__burger{display:none !important} }

/* ---------- 2. A hamburger that says what it is ---------- */
.vic-hd__burger{
  width:auto !important;min-width:40px;height:40px;padding:0 13px 0 11px;
  display:inline-flex !important;flex-direction:row !important;align-items:center;justify-content:center;gap:9px !important;
  border-radius:999px;cursor:pointer;
  background:rgba(255,255,255,.55);border:1px solid rgba(11,31,92,.14);
  -webkit-backdrop-filter:blur(14px) saturate(1.6);backdrop-filter:blur(14px) saturate(1.6);
  box-shadow:0 1px 2px rgba(11,31,92,.06);
  transition:background .22s var(--vic-e),transform .18s var(--vic-e),box-shadow .22s var(--vic-e)}
.vic-hd__burger:hover{background:rgba(255,255,255,.78);box-shadow:0 6px 18px -12px rgba(11,31,92,.6)}
.vic-hd__burger:active{transform:scale(.96)}
.vic-hd__bars{display:flex;flex-direction:column;justify-content:center;gap:4px;
  width:17px;height:13.5px;font-style:normal;flex:0 0 auto}
.vic-hd__burgerlab{font-style:normal;font-family:"Inter",system-ui,sans-serif;
  font-size:13px;font-weight:600;letter-spacing:.005em;color:#0B1F5C;line-height:1}
body.brand-children .vic-hd__burgerlab{color:#0A3B7A}
body.brand-high .vic-hd__burgerlab{color:#78182C}
@media (max-width:379px){
  .vic-hd__burgerlab{display:none}
  .vic-hd__burger{width:40px !important;padding:0}
}

/* ---------- 3. About carries Staff, so the row stays short ---------- */
.vic-hd__nav > ul > li{position:relative}
.vic-hd__nav > ul > li > a{display:inline-flex;align-items:center;gap:5px}
.vic-sub__caret{opacity:.5;transition:transform .26s var(--vic-e),opacity .26s var(--vic-e)}
.vic-hd__nav li.has-sub::after{content:'';position:absolute;left:0;right:0;top:100%;height:14px}
.vic-hd__nav .vic-sub{
  position:absolute;top:calc(100% + 12px);left:50%;
  transform:translateX(-50%) translateY(-8px) scale(.98);
  min-width:214px;list-style:none;margin:0;padding:7px;border-radius:18px;z-index:90;
  background:rgba(255,255,255,.70);
  -webkit-backdrop-filter:blur(28px) saturate(1.9);backdrop-filter:blur(28px) saturate(1.9);
  border:1px solid rgba(255,255,255,.62);
  box-shadow:0 28px 64px -34px rgba(11,31,92,.6),inset 0 1px 0 rgba(255,255,255,.75);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .26s var(--vic-e),transform .26s var(--vic-e),visibility .26s}
.vic-hd__nav li.has-sub:hover > .vic-sub,
.vic-hd__nav li.has-sub:focus-within > .vic-sub{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0) scale(1)}
.vic-hd__nav li.has-sub:hover > a .vic-sub__caret{transform:rotate(180deg);opacity:.9}
.vic-hd__nav .vic-sub li{display:block}
.vic-hd__nav .vic-sub a{display:block;padding:10px 14px;border-radius:12px;white-space:nowrap;
  font-family:"Inter",system-ui,sans-serif;font-size:14px;font-weight:500;color:#0B1F5C;text-decoration:none;
  transition:background .18s var(--vic-e)}
body.brand-children .vic-hd__nav .vic-sub a{color:#0A3B7A}
body.brand-high .vic-hd__nav .vic-sub a{color:#78182C}
.vic-hd__nav .vic-sub a:hover{background:rgba(11,31,92,.07)}
.vic-hd__nav .vic-sub li.is-active > a{background:rgba(11,31,92,.10);font-weight:600}

/* ---------- 4. The school bar: centred, spread, unclipped ---------- */
@media (min-width:1024px){
  .school-bar__inner{display:grid !important;
    grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:12px}
  .school-bar__rail{justify-content:center;overflow:visible}
  .school-bar__nav{flex:0 1 auto;width:100%;overflow:visible;
    -webkit-mask-image:none;mask-image:none}
  .school-bar__nav ul{justify-content:center;gap:clamp(4px,1.1vw,18px);flex-wrap:nowrap}
  .school-bar__nav a{padding:0 clamp(12px,1.1vw,20px)}
  .school-bar__more{display:none !important}
  .school-bar__rail.is-scrollable::after{display:none}
}
@media (max-width:1023px){
  .school-bar__inner{
    padding-left:max(16px, env(safe-area-inset-left)) !important;
    padding-right:max(16px, env(safe-area-inset-right)) !important}
}

/* ---------- 5. The drawer: glass, and oriented ---------- */
.vic-drawer__panel{
  overflow-y:auto;overscroll-behavior:contain;
  padding-bottom:max(28px, env(safe-area-inset-bottom));
  border-left:1px solid rgba(255,255,255,.16)}
@supports ((-webkit-backdrop-filter:blur(2px)) or (backdrop-filter:blur(2px))){
  .vic-drawer__panel{
    background:linear-gradient(180deg,rgba(11,31,92,.86) 0%,rgba(6,18,54,.93) 100%) !important;
    -webkit-backdrop-filter:blur(30px) saturate(1.7);backdrop-filter:blur(30px) saturate(1.7)}
  body.brand-children .vic-drawer__panel{
    background:linear-gradient(180deg,rgba(14,95,192,.86) 0%,rgba(7,42,87,.94) 100%) !important}
  body.brand-high .vic-drawer__panel{
    background:linear-gradient(180deg,rgba(120,24,44,.86) 0%,rgba(74,15,28,.94) 100%) !important}
}

.vic-drawer__here{margin:0 20px 16px;padding:12px 14px;border-radius:16px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.20);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.vic-drawer__herelab{display:block;font-family:"Inter",system-ui,sans-serif;font-size:10px;
  letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.62);margin-bottom:6px}
.vic-drawer__herepath{display:flex;flex-wrap:wrap;align-items:baseline;gap:7px}
.vic-drawer__hereschool{font-family:"Inter",system-ui,sans-serif;font-size:12.5px;color:rgba(255,255,255,.78)}
.vic-drawer__heresep{color:rgba(255,255,255,.45)}
.vic-drawer__herepage{font-family:"Fraunces",Georgia,serif;font-size:18px;font-weight:600;color:#fff;line-height:1.15}

.vic-drawer__sect{padding:0 20px;margin-bottom:16px}
.vic-drawer__sectlab{display:block;padding:4px 4px 6px;font-family:"Inter",system-ui,sans-serif;
  font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.vic-drawer__sect--here{margin:0 12px 18px;padding:6px 8px 8px;border-radius:18px;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.13)}
.vic-drawer__sect--here .vic-drawer__sectlab{color:rgba(217,168,59,.95)}
.vic-drawer__nav{padding:0 !important;margin:0;list-style:none}
.vic-drawer__nav li.is-active > a{background:rgba(255,255,255,.16);border-radius:12px;
  padding-left:12px;padding-right:12px;font-weight:600}
.vic-drawer__nav li.is-active > a::before{content:'';width:6px;height:6px;border-radius:50%;
  background:#D9A83B;margin-right:10px;flex:0 0 auto}
.vic-drawer__nav--schools li.is-active > a{background:rgba(255,255,255,.16)}

/* Nested items sit inline inside the drawer, never as a floating panel. */
.vic-drawer__nav .vic-sub{position:static;opacity:1;visibility:visible;pointer-events:auto;
  transform:none;min-width:0;margin:0;padding:0 0 4px 16px;list-style:none;
  background:none;border:0;box-shadow:none;border-radius:0;
  -webkit-backdrop-filter:none;backdrop-filter:none}
.vic-drawer__nav .vic-sub a{display:flex;align-items:center;padding:11px 4px;
  font-family:"Inter",system-ui,sans-serif;font-size:14.5px;color:rgba(255,255,255,.82)}
.vic-drawer__nav .vic-sub__caret{display:none}
.vic-drawer__nav .vic-sub li.is-active > a{background:rgba(255,255,255,.16);border-radius:10px;padding-left:12px}

/* ---------- 6. Glass, iPhone-flavoured ---------- */
@supports ((-webkit-backdrop-filter:blur(2px)) or (backdrop-filter:blur(2px))){
  .vic-hd{
    background:rgba(255,255,255,.60) !important;
    -webkit-backdrop-filter:blur(26px) saturate(1.9);backdrop-filter:blur(26px) saturate(1.9);
    border-bottom:1px solid rgba(255,255,255,.55)}
  body.brand-children .vic-hd,.vic-hd[data-brand=children]{background:rgba(248,251,255,.60) !important}
  body.brand-high .vic-hd,.vic-hd[data-brand=high]{background:rgba(255,250,250,.62) !important}
  body.vic-scrolled .vic-hd{background:rgba(255,255,255,.80) !important;
    box-shadow:0 10px 34px -26px rgba(11,31,92,.7)}
  .school-bar{
    -webkit-backdrop-filter:blur(20px) saturate(1.8);backdrop-filter:blur(20px) saturate(1.8);
    border-bottom:1px solid rgba(11,31,92,.07)}
}

@media (prefers-reduced-motion:reduce){
  .vic-hd__nav .vic-sub{transition:opacity .01ms}
  .vic-hd__burger:active{transform:none}
}

/* v20b — drawer rows read left to right, always */
.vic-drawer__nav > li > a{justify-content:flex-start !important;gap:0}
.vic-drawer__nav > li > a::after{margin-left:auto}
.vic-drawer__nav .vic-sub a{justify-content:flex-start}

/* v20c — the burger belongs to narrow screens only; this must be the last word */
@media (min-width:1180px){ .vic-hd__burger{display:none !important} }
@media (max-width:1179px){ .vic-hd__burger{display:inline-flex !important} }

/* v20d — the school bar centres when it fits and scrolls when it doesn't, never spills */
@media (min-width:1024px){
  .school-bar__nav{overflow-x:auto !important;overflow-y:hidden;scrollbar-width:none}
  .school-bar__nav::-webkit-scrollbar{display:none}
  .school-bar__nav ul{width:max-content;margin-left:auto;margin-right:auto;justify-content:center}
  .school-bar__rail{overflow:hidden}
}


/* ===== VIC REFINE v21 — the About page, given air ===== */

/* A band of real photographs, so the page breathes between the reading. */
.vic-sec--band .vic-sec-head{margin-bottom:34px}
.vic-sec-head__lede{max-width:62ch;margin:14px 0 0;font-family:"Inter",system-ui,sans-serif;
  font-size:15.5px;line-height:1.75;color:var(--brand-body,#5A6478)}
.vic-band{display:grid;gap:18px;grid-template-columns:1fr}
@media (min-width:640px){ .vic-band{grid-template-columns:repeat(2,1fr)} }
@media (min-width:1024px){ .vic-band{grid-template-columns:repeat(3,1fr);gap:22px} }
.vic-band__cell{position:relative;margin:0;border-radius:20px;overflow:hidden;
  background:rgba(255,255,255,.55);border:1px solid rgba(255,255,255,.62);
  box-shadow:0 26px 60px -40px rgba(11,31,92,.55);
  -webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);
  transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .45s cubic-bezier(.22,1,.36,1)}
.vic-band__cell:hover{transform:translateY(-4px);box-shadow:0 34px 70px -38px rgba(11,31,92,.6)}
.vic-band__img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;
  object-position:center 32%;transition:transform .8s cubic-bezier(.22,1,.36,1)}
.vic-band__cell:hover .vic-band__img{transform:scale(1.035)}
.vic-band__cell figcaption{position:absolute;left:0;right:0;bottom:0;padding:38px 16px 14px;
  font-family:"Inter",system-ui,sans-serif;font-size:12.5px;line-height:1.45;color:#fff;
  background:linear-gradient(180deg,rgba(9,18,40,0),rgba(9,18,40,.85));
  opacity:0;transform:translateY(8px);
  transition:opacity .38s cubic-bezier(.22,1,.36,1),transform .38s cubic-bezier(.22,1,.36,1)}
.vic-band__cell:hover figcaption,.vic-band__cell:focus-within figcaption{opacity:1;transform:none}
@media (hover:none){ .vic-band__cell figcaption{opacity:1;transform:none} }

/* The roll of honour reads as two plates, not two naked lists. */
.vic-roll{gap:22px !important}
.vic-roll > div{padding:26px 26px 28px;border-radius:22px;
  background:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.72);
  box-shadow:0 24px 56px -42px rgba(11,31,92,.5);
  -webkit-backdrop-filter:blur(16px) saturate(1.5);backdrop-filter:blur(16px) saturate(1.5)}
.vic-roll > div > h4{margin:0 !important}
.vic-roll > div > h4::after{content:'';display:block;width:34px;height:2px;border-radius:2px;
  background:var(--brand-gold,#D9A83B);margin:12px 0 2px;opacity:.85}
.vic-roll ul{gap:0 !important}
.vic-roll li{display:flex;align-items:baseline;gap:10px;padding:11px 0;
  border-bottom:1px solid rgba(11,31,92,.07)}
.vic-roll li:last-child{border-bottom:0}
.vic-roll li::before{content:'';flex:0 0 auto;width:5px;height:5px;border-radius:50%;
  background:var(--brand-gold,#D9A83B);opacity:.75;transform:translateY(-3px)}
.vic-roll__close{margin-top:26px !important;padding:16px 18px;border-radius:16px;
  background:rgba(11,31,92,.04);border:1px solid rgba(11,31,92,.07);max-width:none !important}

/* Nothing important should sit under the floating call buttons. */
@media (max-width:767px){
  .vic-sec--cta{padding-bottom:96px}
}


/* ===== VIC REFINE v22 — the Proprietress, the Portal, the FAQ, the story ===== */

/* ---------- 1. The letter: portrait and plate are one column, words are the other ---------- */
.vic-letter__media{position:relative}
.vic-prop__plate--letter{margin-top:16px;padding:16px 18px;border-radius:16px;
  background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.82);
  box-shadow:0 22px 54px -40px rgba(11,31,92,.5);
  -webkit-backdrop-filter:blur(14px) saturate(1.5);backdrop-filter:blur(14px) saturate(1.5)}
.vic-prop__plate--letter strong{display:block;font-family:"Fraunces",Georgia,serif;
  font-size:20px;line-height:1.2;letter-spacing:-.3px;color:var(--brand-text,#0B1F5C)}
.vic-prop__plate--letter span{display:block;margin-top:6px;font-family:"Inter",system-ui,sans-serif;
  font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--brand-body,#5A6478)}
@media (min-width:1024px){
  .vic-letter{grid-template-columns:5fr 7fr !important;gap:72px !important;align-items:start}
  .vic-letter__media{position:sticky;top:112px;align-self:start}
  .vic-letter__body{min-width:0}
  .vic-letter__body > p,.vic-letter__body .vic-prose p{max-width:66ch}
}
@media (min-width:1024px){
  .vic-tl{max-width:880px}
  .vic-grid-3 > *{height:100%}
}

/* ---------- 2. Nothing paints over an open dropdown ---------- */
.vic-hd{z-index:120 !important}
.school-bar{z-index:1 !important}
.vic-dd__panel{z-index:400 !important;background:#fff !important;
  border:1px solid rgba(11,31,92,.08);
  box-shadow:0 34px 84px -44px rgba(11,31,92,.7),0 2px 10px rgba(11,31,92,.07)}
/* Glass is lovely until two blurred layers argue about who is on top. */
body:has(.vic-dd.is-open) .school-bar{
  -webkit-backdrop-filter:none !important;backdrop-filter:none !important;z-index:0 !important}
body:has(.vic-dd.is-open) .vic-hd{
  -webkit-backdrop-filter:none !important;backdrop-filter:none !important;
  background:rgba(255,255,255,.98) !important;z-index:400 !important}
body.brand-children:has(.vic-dd.is-open) .vic-hd{background:rgba(250,252,255,.98) !important}
body.brand-high:has(.vic-dd.is-open) .vic-hd{background:rgba(255,251,251,.98) !important}

/* ---------- 3. One thing blinks, and it is the Portal ---------- */
.vic-hd__apply::after{content:none !important;animation:none !important}
.vic-hd__apply{padding-right:22px !important}
.vic-dd[data-dd="portal"] .vic-dd__btn::before{
  background:#F2703A !important;
  box-shadow:0 0 0 3px rgba(242,112,58,.16)}

/* ---------- 4. On a phone the Portal leads and the Menu follows ---------- */
@media (max-width:1179px){
  .vic-dd[data-dd="portal"] .vic-dd__btn{
    width:auto !important;height:40px !important;
    padding:0 14px 0 29px !important;
    font-size:13.5px !important;font-weight:600 !important;letter-spacing:.005em;
    border-radius:999px;color:var(--brand-text,#0B1F5C) !important;
    background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(255,246,241,.86)) !important;
    border:1px solid rgba(242,112,58,.38) !important;
    box-shadow:0 8px 20px -12px rgba(242,112,58,.85),inset 0 1px 0 rgba(255,255,255,.95) !important}
  .vic-dd[data-dd="portal"] .vic-dd__btn::before{
    left:13px !important;width:8px !important;height:8px !important;margin-top:-4px !important}
  .vic-dd[data-dd="portal"] .vic-dd__caret{display:inline-flex !important;opacity:.55;margin-left:4px}
  .vic-hd__burger{height:40px;
    background:rgba(255,255,255,.40);border-color:rgba(11,31,92,.10);box-shadow:none}
  .vic-hd__burgerlab{font-size:12.5px;font-weight:500;opacity:.82}
}
@media (max-width:409px){
  .vic-hd__burgerlab{display:none}
  .vic-hd__burger{width:40px !important;padding:0}
  .vic-dd[data-dd="portal"] .vic-dd__btn{font-size:13px !important;padding:0 12px 0 27px !important}
}

/* ---------- 5. The FAQ opens like a drawer, not a switch ---------- */
.vic-faq__a{will-change:height}
.vic-faq__item.is-open .vic-faq__a{opacity:1}
.vic-faq__a p{opacity:0;transform:translateY(7px);
  transition:opacity .48s cubic-bezier(.22,1,.36,1) .07s,transform .48s cubic-bezier(.22,1,.36,1) .07s}
.vic-faq__item.is-open .vic-faq__a p{opacity:1;transform:none}
.vic-faq__item{transition:background .3s cubic-bezier(.22,1,.36,1),border-color .3s cubic-bezier(.22,1,.36,1),
  box-shadow .45s cubic-bezier(.22,1,.36,1)}
.vic-faq__item.is-open{box-shadow:0 26px 60px -44px rgba(11,31,92,.6)}
.vic-faq__item summary{transition:color .25s cubic-bezier(.22,1,.36,1)}
@media (prefers-reduced-motion:reduce){
  .vic-faq__a p{opacity:1;transform:none;transition:none}
}

/* ---------- 6. Our Story, composed rather than stacked ---------- */
.vic-story__media{position:relative}
.vic-story__media img{aspect-ratio:4/5;object-fit:cover;object-position:center 26%;
  border-radius:22px;box-shadow:0 44px 96px -54px rgba(11,31,92,.6)}
@media (max-width:1023px){ .vic-story__media img{aspect-ratio:5/4} }
.vic-story__chip{position:absolute !important;left:16px;right:16px;bottom:16px;top:auto;
  max-width:min(320px,80%);margin-top:0 !important;
  padding:15px 18px;border:1px solid rgba(255,255,255,.62);border-top-width:1px;border-radius:18px;
  background:rgba(255,255,255,.74) !important;
  -webkit-backdrop-filter:blur(20px) saturate(1.7);backdrop-filter:blur(20px) saturate(1.7);
  box-shadow:0 26px 64px -36px rgba(11,31,92,.65)}
.vic-story__chip strong{font-size:27px !important;letter-spacing:-.5px}
.vic-story__chip strong::after{content:'';display:block;width:26px;height:2px;border-radius:2px;
  background:var(--brand-gold,#D9A83B);margin:9px 0 0}
.vic-story__chip span{margin-top:9px !important;font-size:12.5px;line-height:1.55}
@media (max-width:639px){ .vic-story__chip{max-width:none;left:12px;right:12px;bottom:12px} }
@media (min-width:1024px){
  .vic-story{gap:72px !important;align-items:center}
  .vic-story__text .vic-prose p{max-width:62ch}
}

/* v22b — the year plate stays legible over any photograph */
.vic-story__chip{background:rgba(255,255,255,.86) !important;
  -webkit-backdrop-filter:blur(24px) saturate(1.25);backdrop-filter:blur(24px) saturate(1.25)}
.vic-story__chip strong{color:#0B1F5C}
.vic-story__chip span{color:#4A5468}


/* ===== VIC REFINE v23 — lighter shadows, a smaller header, a working FAQ, a rail ===== */

/* ---------- 1. Photographs sit on the page, they do not hover above it ---------- */
.vic-letter__media img,.vic-story__media img,.vic-prop__media img,
.vic-band__cell,.vic-roll > div,.vic-quotecard,.vic-tcard,
.vic-person__media,.vic-school-card,.vic-panel,.vic-panel img,
.vic-staffcard,.vic-gallery__item,.vic-story__chip,.vic-prop__plate,
.vic-prop__plate--letter,.vic-stat,.vic-safe,.vic-faq__item{
  box-shadow:0 6px 18px -16px rgba(11,31,92,.38) !important}
.vic-band__cell:hover,.vic-school-card:hover,.vic-tcard:hover{
  box-shadow:0 10px 26px -20px rgba(11,31,92,.45) !important}
.vic-faq__item.is-open{
  box-shadow:0 8px 22px -18px rgba(11,31,92,.42) !important}

/* ---------- 2. The header compacts instead of dropping words ---------- */
.vic-hd__names{flex:1 1 auto;min-width:0;max-width:none !important}
.vic-hd__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
@media (max-width:1179px){
  .vic-hd__inner{gap:8px !important}
}
@media (max-width:480px){
  .vic-hd__inner{
    gap:7px !important;
    padding-left:max(13px, env(safe-area-inset-left)) !important;
    padding-right:max(13px, env(safe-area-inset-right)) !important}
  .vic-hd__names{display:flex !important}
  .vic-hd__name{font-size:13.5px;letter-spacing:-.1px}
  .vic-hd__tag{display:none}
  .vic-dd--brand .vic-dd__btn{padding:2px 2px 2px 0 !important;gap:7px}
  .vic-hd .vic-crest{width:31px;height:31px}
  .vic-dd--brand .vic-dd__caret{display:none}
  .vic-hd__burger{height:36px !important;padding:0 11px 0 9px !important;gap:7px !important}
  .vic-hd__bars{width:15px;height:12px;gap:3.5px}
  .vic-hd__burgerlab{display:inline !important;font-size:12px}
  .vic-dd[data-dd="portal"] .vic-dd__btn{
    height:36px !important;font-size:12px !important;padding:0 11px 0 25px !important}
  .vic-dd[data-dd="portal"] .vic-dd__btn::before{
    left:11px !important;width:7px !important;height:7px !important;margin-top:-3.5px !important}
  .vic-dd[data-dd="portal"] .vic-dd__caret{display:none !important}
}
@media (max-width:360px){
  .vic-hd__name{font-size:12.5px}
  .vic-hd__burgerlab,.vic-dd[data-dd="portal"] .vic-dd__btn{font-size:11.5px !important}
  .vic-hd__burger{padding:0 9px 0 8px !important}
  .vic-dd[data-dd="portal"] .vic-dd__btn{padding:0 9px 0 23px !important}
}

/* ---------- 3. The FAQ: one class, one transition, nothing to fall out of step ---------- */
.vic-faq[data-vic-acc] .vic-faq__item[open]:not(.is-open){
  background:rgba(255,255,255,.66);
  border-color:var(--glass-line,rgba(11,31,92,.10))}
.vic-faq[data-vic-acc] .vic-faq__item[open]:not(.is-open):hover{
  background:rgba(255,255,255,.82);border-color:rgba(11,31,92,.2)}
.vic-faq[data-vic-acc] .vic-faq__item[open]:not(.is-open)::before{transform:scaleY(0)}
.vic-faq[data-vic-acc] .vic-faq__item[open]:not(.is-open) summary::after{
  transform:none;
  background-size:11px 1.6px, 1.6px 11px;
  background-color:transparent;
  border-color:var(--glass-line,rgba(11,31,92,.16));
  color:var(--brand-gold,#D9A83B)}
.vic-faq[data-vic-acc] .vic-faq__item.is-open{background:#fff;border-color:rgba(11,31,92,.16)}

.vic-faq[data-vic-acc] .vic-faq__a{
  display:grid;grid-template-rows:0fr;overflow:hidden;
  padding:0 !important;opacity:.001;
  transition:grid-template-rows .54s cubic-bezier(.22,1,.36,1),opacity .3s ease}
.vic-faq[data-vic-acc] .vic-faq__a > *{
  min-height:0;overflow:hidden;
  margin:0 !important;padding:18px 24px 22px !important;
  border-top:1px solid var(--glass-line,rgba(11,31,92,.09))}
.vic-faq[data-vic-acc] .vic-faq__item.is-open .vic-faq__a{grid-template-rows:1fr;opacity:1}
@media (max-width:639px){
  .vic-faq[data-vic-acc] .vic-faq__a > *{padding:15px 18px 18px !important}
}
@media (prefers-reduced-motion:reduce){
  .vic-faq[data-vic-acc] .vic-faq__a{transition:opacity .01ms}
}

/* ---------- 4. Testimonials: a rail you can push with your thumb ---------- */
.vic-sec--testi{overflow:hidden}
.vic-testi{position:relative}
.vic-testi__rail{
  display:flex;gap:18px;overflow-x:auto;overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;scroll-padding-left:0;
  scrollbar-width:none;padding:4px 2px 6px;margin:0 -2px;
  scroll-behavior:smooth}
.vic-testi__rail::-webkit-scrollbar{display:none}
.vic-testi__rail:focus-visible{outline:2px solid var(--brand-gold,#D9A83B);outline-offset:4px;border-radius:26px}
.vic-tcard{
  position:relative;flex:0 0 88%;max-width:420px;scroll-snap-align:start;
  margin:0;padding:26px 26px 24px;border-radius:26px;
  background:rgba(255,255,255,.74);
  border:1px solid var(--glass-line,rgba(11,31,92,.10));
  -webkit-backdrop-filter:blur(16px) saturate(1.5);backdrop-filter:blur(16px) saturate(1.5);
  transition:transform .4s cubic-bezier(.22,1,.36,1),border-color .3s ease}
@media (min-width:640px){ .vic-tcard{flex-basis:60%} }
@media (min-width:1024px){ .vic-tcard{flex-basis:calc((100% - 36px) / 3)} }
.vic-tcard:hover{transform:translateY(-3px);border-color:rgba(11,31,92,.18)}
.vic-tcard__mark{
  position:absolute;top:10px;right:20px;font-family:"Fraunces",Georgia,serif;
  font-size:64px;line-height:1;color:var(--brand-gold,#D9A83B);opacity:.22;pointer-events:none}
.vic-tcard blockquote{
  margin:0;font-family:"Fraunces",Georgia,serif;font-size:17.5px;line-height:1.5;
  letter-spacing:-.28px;color:var(--brand-text,#0B1F5C)}
.vic-tcard figcaption{
  display:flex;align-items:center;gap:13px;margin-top:22px;padding-top:18px;
  border-top:1px solid var(--glass-line,rgba(11,31,92,.09))}
.vic-tcard__av{
  flex:0 0 auto;width:46px;height:46px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;
  font-family:"Inter",system-ui,sans-serif;font-size:15px;font-weight:600;letter-spacing:.02em;
  color:#fff;background:linear-gradient(145deg,#16307A,#0B1F5C);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28)}
body.brand-children .vic-tcard__av{background:linear-gradient(145deg,#2A7AD8,#0E5FC0)}
body.brand-high .vic-tcard__av{background:linear-gradient(145deg,#9B2740,#78182C)}
.vic-tcard__who{display:flex;flex-direction:column;min-width:0}
.vic-tcard__who b{
  font-family:"Inter",system-ui,sans-serif;font-size:15px;font-weight:600;
  color:var(--brand-text,#0B1F5C);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vic-tcard__who em{
  font-style:normal;font-family:"Inter",system-ui,sans-serif;font-size:12.5px;
  color:var(--brand-body,#5A6478);margin-top:2px}

.vic-testi__ctl{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px}
.vic-testi.is-static .vic-testi__ctl{display:none}
.vic-testi__dots{display:flex;gap:7px}
.vic-testi__dot{
  width:7px;height:7px;padding:0;border:0;border-radius:999px;cursor:pointer;
  background:rgba(11,31,92,.18);
  transition:width .3s cubic-bezier(.22,1,.36,1),background .3s ease}
.vic-testi__dot.is-on{width:22px;background:var(--brand-gold,#D9A83B)}
.vic-testi__arrows{display:flex;gap:8px}
.vic-testi__btn{
  width:40px;height:40px;border-radius:999px;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  color:var(--brand-text,#0B1F5C);
  background:rgba(255,255,255,.72);
  border:1px solid var(--glass-line,rgba(11,31,92,.12));
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  transition:background .25s ease,transform .18s cubic-bezier(.22,1,.36,1),opacity .25s ease}
.vic-testi__btn:hover:not(:disabled){background:#fff;transform:translateY(-1px)}
.vic-testi__btn:active:not(:disabled){transform:scale(.95)}
.vic-testi__btn:disabled{opacity:.32;cursor:default}
body.brand-children .vic-testi__btn{color:#0A3B7A}
body.brand-high .vic-testi__btn{color:#78182C}
@media (max-width:639px){
  .vic-testi__arrows{display:none}
  .vic-testi__ctl{justify-content:center;margin-top:16px}
}

/* v23b — the theme's blockquote rule has no business in a testimonial card */
.vic-tcard blockquote{border:0 !important;padding:0 !important;quotes:none;background:none}
.vic-tcard blockquote::before,.vic-tcard blockquote::after{content:none}

/* v23c — the collapsed answer must measure zero, so the padding moves inside */
.vic-faq[data-vic-acc] .vic-faq__a > *{padding:0 !important;border-top:0 !important}
.vic-faq[data-vic-acc] .vic-faq__inner{min-height:0;overflow:hidden;padding:0 !important}
.vic-faq[data-vic-acc] .vic-faq__inner > *{
  margin:0 !important;padding:18px 24px 22px !important;
  border-top:1px solid var(--glass-line,rgba(11,31,92,.09)) !important}
@media (max-width:639px){
  .vic-faq[data-vic-acc] .vic-faq__inner > *{padding:15px 18px 18px !important}
}

/* v23d — a plus that becomes a minus, declared in one place */
.vic-faq[data-vic-acc] .vic-faq__item summary::after{
  background-image:linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor) !important;
  background-position:center center,center center !important;
  background-repeat:no-repeat,no-repeat !important}
.vic-faq[data-vic-acc] .vic-faq__item[open]:not(.is-open) summary::after{
  background-size:11px 1.6px,1.6px 11px !important}
.vic-faq[data-vic-acc] .vic-faq__item.is-open summary::after{
  background-size:11px 1.6px,0 11px !important;
  transform:rotate(180deg);
  background-color:var(--brand-primary,#0B1F5C);
  border-color:var(--brand-primary,#0B1F5C);color:#fff}

/* v23e — the word Menu stays, at every width. Earlier rules hid it; they don't now. */
@media (max-width:480px){
  .vic-hd__burger{width:auto !important;min-width:0 !important;padding:0 11px 0 9px !important}
  .vic-hd__burgerlab{display:inline-block !important;white-space:nowrap}
}
@media (max-width:360px){
  .vic-hd__burger{padding:0 9px 0 8px !important;gap:6px !important}
  .vic-hd__bars{width:14px;height:11px;gap:3px}
}


/* ===== VIC REFINE v24 — the mobile header breathes, the rail runs by itself ===== */

/* ---------- 1. The school switcher shows it is a switcher, at every width ---------- */
.vic-dd--brand .vic-dd__caret{display:inline-flex !important;flex:0 0 auto;opacity:.4;
  transition:opacity .25s cubic-bezier(.22,1,.36,1),transform .3s cubic-bezier(.22,1,.36,1)}
.vic-dd--brand:hover .vic-dd__caret,
.vic-dd--brand.is-open .vic-dd__caret{opacity:.75}
@media (max-width:480px){
  .vic-dd--brand .vic-dd__caret{display:inline-flex !important;width:11px;height:11px;margin-left:1px;opacity:.45}
}

/* ---------- 2. Room to breathe ---------- */
@media (max-width:1179px){
  .vic-hd__inner{min-height:64px}
}
@media (max-width:480px){
  .vic-hd__inner{
    min-height:62px;
    gap:10px !important;
    padding-left:max(15px, env(safe-area-inset-left)) !important;
    padding-right:max(15px, env(safe-area-inset-right)) !important}
  .vic-hd .vic-crest{width:33px;height:33px}
  .vic-dd--brand .vic-dd__btn{padding:5px 8px 5px 4px !important;gap:9px;border-radius:14px}
  .vic-hd__name{font-size:14px;letter-spacing:-.15px;line-height:1.15}
  /* If it has to be cut, let it fade out rather than end in a stump. */
  .vic-hd__names{
    -webkit-mask-image:linear-gradient(to right,#000 82%,transparent 100%);
    mask-image:linear-gradient(to right,#000 82%,transparent 100%)}
  .vic-hd__name{text-overflow:clip}
  .vic-hd__actions{gap:9px !important}
}

/* ---------- 3. A quieter Portal ---------- */
.vic-dd[data-dd="portal"] .vic-dd__btn{
  border-color:rgba(242,112,58,.20) !important;
  box-shadow:0 1px 2px rgba(11,31,92,.04) !important}
.vic-dd[data-dd="portal"] .vic-dd__btn:hover,
.vic-dd[data-dd="portal"].is-open .vic-dd__btn{
  border-color:rgba(242,112,58,.34) !important;
  box-shadow:0 3px 10px -7px rgba(242,112,58,.6) !important}
.vic-dd[data-dd="portal"] .vic-dd__btn::before{
  box-shadow:0 0 0 2px rgba(242,112,58,.12) !important}
@media (max-width:1179px){
  .vic-dd[data-dd="portal"] .vic-dd__btn{
    background:linear-gradient(180deg,rgba(255,255,255,.95),rgba(255,248,244,.88)) !important}
}

/* ---------- 4. The rail runs on its own ---------- */
.vic-testi__rail.is-auto{scroll-snap-type:none;scroll-behavior:auto}
.vic-testi{
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 14px,#000 calc(100% - 22px),transparent 100%);
  mask-image:linear-gradient(to right,transparent 0,#000 14px,#000 calc(100% - 22px),transparent 100%)}
@media (max-width:639px){
  .vic-testi{
    -webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 18px),transparent 100%);
    mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 18px),transparent 100%)}
}
.vic-tcard[data-clone="1"]{pointer-events:none}

/* v24b — fade the name only when it is actually cut off */
@media (max-width:480px){
  .vic-hd__names{-webkit-mask-image:none;mask-image:none}
  .vic-hd__names.is-clipped{
    -webkit-mask-image:linear-gradient(to right,#000 78%,transparent 100%);
    mask-image:linear-gradient(to right,#000 78%,transparent 100%)}
  .vic-hd__names.is-clipped .vic-hd__name{text-overflow:clip}
  .vic-hd__names:not(.is-clipped) .vic-hd__name{text-overflow:ellipsis}
}
.vic-hd__names{flex:0 1 auto !important}


/* ===== VIC REFINE v25 — a flowing position bar, and staff on the About pages ===== */

/* ---------- 1. Position reads the same at three testimonials or thirty ---------- */
.vic-testi__dots{display:none !important}
.vic-testi__prog{
  position:relative;flex:0 1 140px;height:4px;border-radius:999px;overflow:hidden;
  background:rgba(11,31,92,.10)}
body.brand-high .vic-testi__prog{background:rgba(120,24,44,.12)}
.vic-testi__thumb{
  position:absolute;left:0;top:0;bottom:0;width:34%;border-radius:999px;
  background:var(--brand-gold,#D9A83B);
  will-change:transform,width}
@media (max-width:639px){
  .vic-testi__ctl{justify-content:center}
  .vic-testi__prog{flex:0 1 120px}
}

/* ---------- 2. The staff preview on an About page ---------- */
.vic-sec--staffpeek .vic-sec-head{margin-bottom:32px}
.vic-staffpeek{display:grid;gap:18px;grid-template-columns:1fr}
@media (min-width:640px){ .vic-staffpeek{grid-template-columns:repeat(2,1fr)} }
@media (min-width:1024px){ .vic-staffpeek{grid-template-columns:repeat(4,1fr);gap:22px} }
.vic-sec--staffpeek .vic-people{display:contents}
.vic-staffpeek__cta{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:34px}
.vic-staffpeek__note{
  font-family:"Inter",system-ui,sans-serif;font-size:14px;line-height:1.6;
  color:var(--brand-body,#5A6478);max-width:52ch;margin:0}
.vic-staffpeek__go{
  display:inline-flex;align-items:center;gap:9px;
  height:46px;padding:0 22px;border-radius:999px;text-decoration:none;
  font-family:"Inter",system-ui,sans-serif;font-size:14.5px;font-weight:600;
  color:#fff;background:var(--brand-primary,#0B1F5C);
  box-shadow:0 6px 16px -12px rgba(11,31,92,.7);
  transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .25s ease}
body.brand-children .vic-staffpeek__go{background:#0E5FC0}
body.brand-high .vic-staffpeek__go{background:#78182C}
.vic-staffpeek__go:hover{transform:translateY(-1px);color:#fff}
.vic-staffpeek__go svg{transition:transform .25s cubic-bezier(.22,1,.36,1)}
.vic-staffpeek__go:hover svg{transform:translateX(3px)}
@media (prefers-reduced-motion:reduce){
  .vic-staffpeek__go,.vic-staffpeek__go svg{transition:none}
}

/* ===== VIC REFINE v26 — one dot per testimonial, flowing with the scroll ===== */
.vic-testi__prog{display:none !important}
.vic-testi__dots{display:flex !important;align-items:center;gap:6px;flex-wrap:nowrap}
.vic-testi__dots.is-many{gap:5px}
.vic-testi__dot{
  flex:0 0 auto;width:7px;height:7px;padding:0;border:0;border-radius:999px;cursor:pointer;
  background:var(--brand-gold,#D9A83B);opacity:.3;
  transition:width .28s cubic-bezier(.22,1,.36,1),opacity .28s ease,transform .28s cubic-bezier(.22,1,.36,1)}
.vic-testi__dot:hover{opacity:.9}
@media (prefers-reduced-motion:reduce){ .vic-testi__dot{transition:none} }


/* ===== VIC REFINE v27 — each school wears its crest in the menu ===== */

.vic-drawer__nav--schools > li + li{margin-top:8px}
.vic-drawer__nav--schools > li > a{
  display:grid !important;
  grid-template-columns:auto minmax(0,1fr) auto;
  grid-template-rows:auto auto;
  align-items:center;
  column-gap:13px;
  padding:11px 13px !important;
  border-radius:15px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  transition:background .25s cubic-bezier(.22,1,.36,1),border-color .25s ease}
.vic-drawer__nav--schools > li > a:hover{background:rgba(255,255,255,.12)}

.vic-drawer__mark{
  grid-column:1;grid-row:1 / span 2;
  width:34px !important;height:34px !important;flex:0 0 auto;
  padding:3px;border-radius:10px;object-fit:contain;
  background:rgba(255,255,255,.94);
  box-shadow:0 1px 3px rgba(0,0,0,.18)}
.vic-drawer__mark.vic-crest--mono{color:#0B1F5C}

.vic-drawer__schoolname{
  grid-column:2;grid-row:1;min-width:0;
  font-family:"Inter",system-ui,sans-serif;font-size:15px;font-weight:600;line-height:1.25;
  color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vic-drawer__stage{
  grid-column:2;grid-row:2;margin-top:3px;
  font-family:"Inter",system-ui,sans-serif;font-size:10.5px;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.58)}
.vic-drawer__nav--schools > li > a::after{
  grid-column:3;grid-row:1 / span 2;margin-left:0 !important;align-self:center}

/* The school you are already in: no stray dot, just a gold ring on its crest. */
.vic-drawer__nav--schools li.is-active > a::before{display:none !important;content:none !important}
.vic-drawer__nav--schools li.is-active > a{
  background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.22);
  padding-left:13px !important;padding-right:13px !important}
.vic-drawer__nav--schools li.is-active .vic-drawer__mark{
  box-shadow:0 0 0 2px rgba(217,168,59,.95),0 1px 3px rgba(0,0,0,.18)}

@media (max-width:360px){
  .vic-drawer__mark{width:30px !important;height:30px !important}
  .vic-drawer__schoolname{font-size:14px}
}
@media (prefers-reduced-motion:reduce){
  .vic-drawer__nav--schools > li > a{transition:none}
}

/* v27b — a school's name wraps rather than getting cut short */
.vic-drawer__schoolname{
  white-space:normal !important;overflow:visible !important;text-overflow:clip !important;
  font-size:14.5px;line-height:1.26}
.vic-drawer__nav--schools > li > a{column-gap:11px;padding:10px 12px !important}
@media (max-width:360px){ .vic-drawer__schoolname{font-size:13.5px} }


/* ===== VIC REFINE v28 — the film gallery and its player ===== */

.vic-sec--films{position:relative;overflow:hidden}
.vic-sec--films::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(60% 46% at 12% 0%, rgba(217,168,59,.10), transparent 62%),
    radial-gradient(52% 40% at 92% 12%, rgba(11,31,92,.07), transparent 66%)}
body.brand-children .vic-sec--films::before{
  background:radial-gradient(60% 46% at 12% 0%, rgba(14,95,192,.10), transparent 62%)}
body.brand-high .vic-sec--films::before{
  background:radial-gradient(60% 46% at 12% 0%, rgba(120,24,44,.10), transparent 62%)}
.vic-sec--films > .vic-sec__in{position:relative;z-index:1}

/* ---------- 1. The category pills ---------- */
.vic-vidbar{
  display:flex;flex-wrap:wrap;gap:8px;margin:26px 0 22px}
.vic-vidpill{
  appearance:none;cursor:pointer;
  padding:9px 16px;border-radius:999px;
  font-family:"Inter",system-ui,sans-serif;font-size:13.5px;font-weight:500;letter-spacing:-.01em;
  color:var(--brand-text,#0B1F5C);
  background:rgba(255,255,255,.62);
  border:1px solid var(--glass-line,rgba(11,31,92,.10));
  -webkit-backdrop-filter:blur(14px) saturate(1.6);backdrop-filter:blur(14px) saturate(1.6);
  transition:background .26s cubic-bezier(.22,1,.36,1),color .26s ease,
             border-color .26s ease,transform .18s cubic-bezier(.22,1,.36,1)}
.vic-vidpill:hover{background:rgba(255,255,255,.86);border-color:rgba(11,31,92,.18)}
.vic-vidpill:active{transform:scale(.97)}
.vic-vidpill.is-on{
  color:#fff;background:var(--brand-text,#0B1F5C);border-color:transparent;font-weight:600}
body.brand-children .vic-vidpill.is-on{background:#0E5FC0}
body.brand-high .vic-vidpill.is-on{background:#78182C}
.vic-vidpill:focus-visible{outline:2px solid var(--brand-gold,#D9A83B);outline-offset:3px}

/* ---------- 2. The grid of stills ---------- */
.vic-vidgrid{
  display:grid;gap:20px;
  grid-template-columns:repeat(auto-fill,minmax(248px,1fr))}
@media (min-width:1100px){ .vic-vidgrid{gap:24px} }

.vic-vid{
  appearance:none;padding:0;cursor:pointer;text-align:left;
  display:flex;flex-direction:column;gap:0;
  border-radius:22px;overflow:hidden;
  background:rgba(255,255,255,.66);
  border:1px solid var(--glass-line,rgba(11,31,92,.10));
  -webkit-backdrop-filter:blur(16px) saturate(1.5);backdrop-filter:blur(16px) saturate(1.5);
  box-shadow:0 6px 18px -16px rgba(11,31,92,.38);
  transition:transform .42s cubic-bezier(.22,1,.36,1),
             box-shadow .42s cubic-bezier(.22,1,.36,1),
             border-color .3s ease}
.vic-vid:hover,.vic-vid:focus-visible{
  transform:translateY(-4px);
  border-color:rgba(11,31,92,.18);
  box-shadow:0 14px 30px -24px rgba(11,31,92,.5)}
.vic-vid:focus-visible{outline:2px solid var(--brand-gold,#D9A83B);outline-offset:3px}
.vic-vid:active{transform:translateY(-1px) scale(.994)}

.vic-vid__shot{
  position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:#0B1F5C}
.vic-vid__shot img{
  width:100%;height:100%;object-fit:cover;display:block;
  transform:scale(1.005);
  transition:transform .8s cubic-bezier(.22,1,.36,1),filter .5s ease}
.vic-vid:hover .vic-vid__shot img{transform:scale(1.055)}
.vic-vid__shot::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(6,16,46,0) 38%,rgba(6,16,46,.5) 100%);
  opacity:.85;transition:opacity .4s ease}
.vic-vid:hover .vic-vid__shot::after{opacity:.6}

.vic-vid__play{
  position:absolute;left:50%;top:50%;width:58px;height:58px;margin:-29px 0 0 -29px;
  display:grid;place-items:center;color:#fff;z-index:2;
  border-radius:999px;
  background:rgba(12,22,50,.30);
  -webkit-backdrop-filter:blur(8px) saturate(1.4);backdrop-filter:blur(8px) saturate(1.4);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35);
  transition:transform .42s cubic-bezier(.22,1,.36,1),background .32s ease}
.vic-vid__play svg{width:30px;height:30px;transform:translateX(1px)}
.vic-vid:hover .vic-vid__play{transform:scale(1.1);background:rgba(217,168,59,.9);color:#0B1F5C}
body.brand-high .vic-vid:hover .vic-vid__play{background:rgba(217,168,59,.92)}
.vic-vid__play::before{
  content:'';position:absolute;inset:-6px;border-radius:999px;
  border:1px solid rgba(255,255,255,.34);opacity:0;transform:scale(.86);
  transition:opacity .5s ease,transform .6s cubic-bezier(.22,1,.36,1)}
.vic-vid:hover .vic-vid__play::before{opacity:1;transform:scale(1)}

.vic-vid__meta{display:flex;flex-direction:column;gap:5px;padding:15px 17px 17px}
.vic-vid__tag{
  font-family:"Inter",system-ui,sans-serif;font-size:10px;font-weight:600;
  letter-spacing:.15em;text-transform:uppercase;color:var(--brand-gold,#B98C24)}
.vic-vid__title{
  font-family:"Fraunces",Georgia,serif;font-size:16.5px;font-weight:600;line-height:1.28;
  letter-spacing:-.24px;color:var(--brand-text,#0B1F5C)}
.vic-vid__school{
  font-style:normal;font-family:"Inter",system-ui,sans-serif;font-size:12px;
  color:var(--brand-body,#5A6478)}

.vic-vidgrid.is-shuffling .vic-vid:not([hidden]){animation:vicVidIn .5s cubic-bezier(.22,1,.36,1) both}
.vic-vidgrid.is-shuffling .vic-vid:not([hidden]):nth-child(2){animation-delay:.03s}
.vic-vidgrid.is-shuffling .vic-vid:not([hidden]):nth-child(3){animation-delay:.06s}
.vic-vidgrid.is-shuffling .vic-vid:not([hidden]):nth-child(4){animation-delay:.09s}
.vic-vidgrid.is-shuffling .vic-vid:not([hidden]):nth-child(n+5){animation-delay:.12s}
@keyframes vicVidIn{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
.vic-vidnone{margin-top:22px;font-family:"Inter",system-ui,sans-serif;color:var(--brand-body,#5A6478)}

/* ---------- 3. The player ---------- */
html.vic-vlb-on{overflow:hidden}
.vic-vlb{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;
  padding:max(18px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom))}
.vic-vlb[hidden]{display:none}
.vic-vlb__scrim{
  position:absolute;inset:0;cursor:pointer;
  background:rgba(6,14,38,.58);
  -webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);
  opacity:0;transition:opacity .34s ease}
.vic-vlb.is-on .vic-vlb__scrim{opacity:1}

.vic-vlb__box{
  position:relative;z-index:1;width:100%;max-width:940px;
  max-height:calc(100dvh - 36px);overflow-y:auto;overscroll-behavior:contain;
  padding:14px;border-radius:28px;
  background:rgba(255,255,255,.80);
  border:1px solid rgba(255,255,255,.62);
  -webkit-backdrop-filter:blur(34px) saturate(1.9);backdrop-filter:blur(34px) saturate(1.9);
  box-shadow:0 30px 70px -44px rgba(6,14,38,.72),inset 0 1px 0 rgba(255,255,255,.75);
  opacity:0;transform:translateY(16px) scale(.975);
  transition:opacity .38s cubic-bezier(.22,1,.36,1),transform .46s cubic-bezier(.22,1,.36,1)}
.vic-vlb.is-on .vic-vlb__box{opacity:1;transform:none}
.vic-vlb__box::-webkit-scrollbar{width:0}

.vic-vlb__x{
  position:absolute;top:20px;right:20px;z-index:4;
  width:34px;height:34px;border-radius:999px;cursor:pointer;
  display:grid;place-items:center;color:#fff;
  background:rgba(12,22,50,.42);border:1px solid rgba(255,255,255,.26);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  transition:background .24s ease,transform .2s cubic-bezier(.22,1,.36,1)}
.vic-vlb__x:hover{background:rgba(12,22,50,.68);transform:rotate(90deg)}
.vic-vlb__x:focus-visible{outline:2px solid var(--brand-gold,#D9A83B);outline-offset:2px}

.vic-vlb__frame{
  position:relative;width:100%;aspect-ratio:16/9;
  border-radius:20px;overflow:hidden;background:#05070F}
.vic-vlb__frame.is-portrait{
  aspect-ratio:9/16;height:min(58vh,520px);width:auto;margin:0 auto}
.vic-vlb__slot,.vic-vlb__slot iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vic-vlb__frame.is-portrait .vic-vlb__slot{position:relative}

.vic-vlb__body{padding:18px 8px 6px}
.vic-vlb__tag{
  display:block;font-family:"Inter",system-ui,sans-serif;font-size:10px;font-weight:600;
  letter-spacing:.15em;text-transform:uppercase;color:var(--brand-gold,#B98C24);margin-bottom:7px}
.vic-vlb__body h3{
  margin:0;font-family:"Fraunces",Georgia,serif;font-size:clamp(19px,2.4vw,25px);
  font-weight:600;line-height:1.22;letter-spacing:-.4px;color:var(--brand-text,#0B1F5C)}
.vic-vlb__desc{
  margin:10px 0 0;font-family:"Inter",system-ui,sans-serif;font-size:14.5px;line-height:1.62;
  color:var(--brand-body,#5A6478);max-width:60ch}

.vic-vlb__ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.vic-vlb__cta{
  display:inline-flex;align-items:center;gap:7px;
  padding:11px 19px;border-radius:999px;text-decoration:none;
  font-family:"Inter",system-ui,sans-serif;font-size:13.5px;font-weight:600;letter-spacing:-.01em;
  color:var(--brand-text,#0B1F5C);
  background:rgba(255,255,255,.72);
  border:1px solid var(--glass-line,rgba(11,31,92,.12));
  transition:background .26s ease,transform .18s cubic-bezier(.22,1,.36,1),
             box-shadow .26s ease,border-color .26s ease}
.vic-vlb__cta:hover{background:#fff;transform:translateY(-1px);border-color:rgba(11,31,92,.2)}
.vic-vlb__cta:active{transform:scale(.975)}
.vic-vlb__cta--go{
  color:#fff;background:var(--brand-text,#0B1F5C);border-color:transparent;
  box-shadow:0 8px 20px -16px rgba(11,31,92,.9)}
.vic-vlb__cta--go:hover{background:#12296F;color:#fff}
body.brand-children .vic-vlb__cta--go{background:#0E5FC0}
body.brand-children .vic-vlb__cta--go:hover{background:#0B4EA0}
body.brand-high .vic-vlb__cta--go{background:#78182C}
body.brand-high .vic-vlb__cta--go:hover{background:#611322}
.vic-vlb__cta--wa{color:#0B7A43;border-color:rgba(11,122,67,.24);background:rgba(233,250,241,.82)}
.vic-vlb__cta--wa:hover{background:#E4F8EC}

.vic-vlb__nav{
  display:flex;align-items:center;gap:12px;margin-top:20px;padding-top:15px;
  border-top:1px solid var(--glass-line,rgba(11,31,92,.09))}
.vic-vlb__step{
  width:36px;height:36px;border-radius:999px;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  color:var(--brand-text,#0B1F5C);
  background:rgba(255,255,255,.7);border:1px solid var(--glass-line,rgba(11,31,92,.12));
  transition:background .24s ease,transform .18s cubic-bezier(.22,1,.36,1)}
.vic-vlb__step:hover{background:#fff;transform:translateY(-1px)}
.vic-vlb__step:active{transform:scale(.94)}
.vic-vlb__count{
  font-family:"Inter",system-ui,sans-serif;font-size:12.5px;color:var(--brand-body,#5A6478);
  letter-spacing:.02em}

@media (min-width:900px){
  .vic-vlb__box:has(.vic-vlb__frame.is-portrait){
    display:grid;grid-template-columns:auto minmax(300px,1fr);
    gap:22px;align-items:center;max-width:860px;padding:16px}
  .vic-vlb__box:has(.vic-vlb__frame.is-portrait) .vic-vlb__frame{height:min(70vh,600px)}
  .vic-vlb__box:has(.vic-vlb__frame.is-portrait) .vic-vlb__body{padding:0 10px 0 0}
}
@media (max-width:639px){
  .vic-vlb{padding:10px 10px max(14px,env(safe-area-inset-bottom))}
  .vic-vlb__box{padding:10px;border-radius:22px;max-height:calc(100dvh - 24px)}
  .vic-vlb__frame{border-radius:16px}
  .vic-vlb__frame.is-portrait{height:min(52vh,460px)}
  .vic-vlb__body{padding:15px 6px 4px}
  .vic-vlb__desc{font-size:14px}
  .vic-vlb__cta{flex:1 1 auto;justify-content:center}
  .vic-vlb__x{top:16px;right:16px;width:31px;height:31px}
  .vic-vidgrid{gap:16px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
  .vic-vid__play{width:50px;height:50px;margin:-25px 0 0 -25px}
  .vic-vid__play svg{width:26px;height:26px}
}
@media (max-width:400px){
  .vic-vidgrid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .vic-vid,.vic-vid__shot img,.vic-vid__play,.vic-vlb__box,.vic-vlb__scrim{transition-duration:.01ms}
  .vic-vidgrid.is-shuffling .vic-vid{animation:none}
}

/* ===== VIC REFINE v29 - where a call to action lands ===== */
.vic-anchor{display:block;width:0;height:0;overflow:hidden;scroll-margin-top:150px}
@media (max-width:1023px){ .vic-anchor{scroll-margin-top:124px} }
.vic-formshell{border-radius:26px;transition:box-shadow .5s ease}
.vic-formshell.is-landed{animation:vicLand 2.2s cubic-bezier(.22,1,.36,1) 1}
@keyframes vicLand{0%{box-shadow:0 0 0 0 rgba(217,168,59,0)}16%{box-shadow:0 0 0 7px rgba(217,168,59,.24)}46%{box-shadow:0 0 0 4px rgba(217,168,59,.12)}100%{box-shadow:0 0 0 0 rgba(217,168,59,0)}}
@media (prefers-reduced-motion:reduce){ .vic-formshell.is-landed{animation:none} }

/* ===== VIC REFINE v30 - the campus maps ===== */
.vic-sec--map{position:relative}
.vic-map{margin-top:26px}
.vic-map__pick{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:18px}
.vic-map__tab{
  appearance:none;cursor:pointer;text-align:left;
  display:flex;flex-direction:column;gap:3px;
  padding:11px 18px;border-radius:18px;
  background:rgba(255,255,255,.62);
  border:1px solid var(--glass-line,rgba(11,31,92,.10));
  -webkit-backdrop-filter:blur(14px) saturate(1.6);backdrop-filter:blur(14px) saturate(1.6);
  transition:background .26s cubic-bezier(.22,1,.36,1),border-color .26s ease,
             transform .18s cubic-bezier(.22,1,.36,1),box-shadow .26s ease}
.vic-map__tab em{
  font-style:normal;font-family:"Inter",system-ui,sans-serif;font-size:10px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--brand-gold,#B98C24)}
.vic-map__tab b{
  font-family:"Inter",system-ui,sans-serif;font-size:13.5px;font-weight:600;letter-spacing:-.01em;
  color:var(--brand-text,#0B1F5C)}
.vic-map__tab:hover{background:rgba(255,255,255,.88);transform:translateY(-1px)}
.vic-map__tab:active{transform:scale(.985)}
.vic-map__tab.is-on{
  background:var(--brand-text,#0B1F5C);border-color:transparent;
  box-shadow:0 10px 24px -20px rgba(11,31,92,.9)}
.vic-map__tab.is-on b{color:#fff}
.vic-map__tab.is-on em{color:rgba(217,168,59,.95)}
body.brand-high .vic-map__tab.is-on{background:#78182C}
body.brand-children .vic-map__tab.is-on{background:#0E5FC0}
.vic-map__tab:focus-visible{outline:2px solid var(--brand-gold,#D9A83B);outline-offset:3px}

.vic-map__grid{display:grid;gap:18px;grid-template-columns:1fr}
@media (min-width:900px){
  .vic-map__grid{grid-template-columns:minmax(0,1.35fr) minmax(280px,.78fr);gap:22px;align-items:stretch}
}

.vic-map__frame{
  position:relative;border-radius:24px;overflow:hidden;min-height:280px;
  aspect-ratio:16/10;
  background:linear-gradient(140deg,rgba(11,31,92,.06),rgba(217,168,59,.07));
  border:1px solid var(--glass-line,rgba(11,31,92,.10));
  box-shadow:0 6px 18px -16px rgba(11,31,92,.38)}
@media (min-width:900px){ .vic-map__frame{aspect-ratio:auto;height:100%;min-height:360px} }
.vic-map__frame iframe{
  position:absolute;inset:0;width:100%;height:100%;border:0;
  opacity:0;transform:scale(1.02);
  transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1)}
.vic-map__frame.is-ready iframe{opacity:1;transform:none}
.vic-map__wait{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}
.vic-map__wait span{
  width:26px;height:26px;border-radius:999px;
  border:2px solid rgba(11,31,92,.16);border-top-color:var(--brand-gold,#D9A83B);
  animation:vicSpin .9s linear infinite}
@keyframes vicSpin{to{transform:rotate(360deg)}}

.vic-map__cards{position:relative;display:grid}
.vic-map__card{
  grid-area:1/1;align-self:stretch;
  display:flex;flex-direction:column;gap:9px;
  padding:24px 24px 22px;border-radius:24px;
  background:rgba(255,255,255,.70);
  border:1px solid var(--glass-line,rgba(11,31,92,.10));
  -webkit-backdrop-filter:blur(18px) saturate(1.6);backdrop-filter:blur(18px) saturate(1.6);
  box-shadow:0 6px 18px -16px rgba(11,31,92,.38);
  opacity:0;visibility:hidden;transform:translateY(8px);pointer-events:none;
  transition:opacity .38s ease,transform .48s cubic-bezier(.22,1,.36,1),visibility .38s}
.vic-map__card.is-on{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.vic-map__stage{
  font-family:"Inter",system-ui,sans-serif;font-size:10px;font-weight:600;
  letter-spacing:.15em;text-transform:uppercase;color:var(--brand-gold,#B98C24)}
.vic-map__name{
  margin:0;font-family:"Fraunces",Georgia,serif;font-size:19px;font-weight:600;
  line-height:1.24;letter-spacing:-.3px;color:var(--brand-text,#0B1F5C)}
.vic-map__addr{
  font-style:normal;font-family:"Inter",system-ui,sans-serif;font-size:14.5px;line-height:1.6;
  color:var(--brand-body,#5A6478)}
.vic-map__line{margin-top:2px}
.vic-map__call{
  font-family:"Inter",system-ui,sans-serif;font-size:14.5px;font-weight:600;text-decoration:none;
  color:var(--brand-text,#0B1F5C);border-bottom:1px solid rgba(217,168,59,.55);padding-bottom:1px}
.vic-map__call:hover{border-bottom-color:var(--brand-gold,#D9A83B)}
body.brand-high .vic-map__call{color:#78182C}
body.brand-children .vic-map__call{color:#0A3B7A}
.vic-map__acts{display:flex;flex-wrap:wrap;gap:9px;margin-top:auto;padding-top:16px}
.vic-map__act{
  display:inline-flex;align-items:center;gap:7px;
  padding:10px 16px;border-radius:999px;text-decoration:none;
  font-family:"Inter",system-ui,sans-serif;font-size:13px;font-weight:600;letter-spacing:-.01em;
  color:var(--brand-text,#0B1F5C);
  background:rgba(255,255,255,.74);
  border:1px solid var(--glass-line,rgba(11,31,92,.12));
  transition:background .24s ease,transform .18s cubic-bezier(.22,1,.36,1),border-color .24s ease}
.vic-map__act:hover{background:#fff;transform:translateY(-1px);border-color:rgba(11,31,92,.2)}
.vic-map__act:active{transform:scale(.975)}
.vic-map__act--go{color:#fff;background:var(--brand-text,#0B1F5C);border-color:transparent;
  box-shadow:0 8px 20px -16px rgba(11,31,92,.9)}
.vic-map__act--go:hover{background:#12296F;color:#fff}
body.brand-children .vic-map__act--go{background:#0E5FC0}
body.brand-children .vic-map__act--go:hover{background:#0B4EA0}
body.brand-high .vic-map__act--go{background:#78182C}
body.brand-high .vic-map__act--go:hover{background:#611322}
@media (max-width:639px){
  .vic-map__tab{flex:1 1 calc(50% - 5px);padding:10px 14px}
  .vic-map__tab b{font-size:12.5px}
  .vic-map__card{padding:20px 19px 19px;border-radius:20px}
  .vic-map__frame{border-radius:20px;min-height:240px}
  .vic-map__act{flex:1 1 auto;justify-content:center}
}
@media (prefers-reduced-motion:reduce){
  .vic-map__frame iframe,.vic-map__card{transition-duration:.01ms}
  .vic-map__wait span{animation:none}
}

/* ===== VIC REFINE v31 - film player fixes ===== */
/* The theme collapses inline SVG unless it is told a size. */
.vic-vlb__step svg,.vic-vlb__x svg,.vic-map__act svg,.vic-vlb__cta svg{
  flex:0 0 auto;width:14px;height:14px;display:block}
.vic-map__act svg{width:15px;height:15px}
.vic-vid__play svg{width:30px;height:30px;flex:0 0 auto}

/* The close button sits above the player, not on top of YouTube own controls. */
.vic-vlb__x{position:relative;top:auto;right:auto;margin:2px 2px 10px auto}
@media (min-width:900px){
  .vic-vlb__box:has(.vic-vlb__frame.is-portrait) .vic-vlb__x{
    position:absolute;top:14px;right:14px;margin:0;z-index:5}
}
.vic-vlb__x{background:rgba(11,31,92,.10);border-color:rgba(11,31,92,.14);color:var(--brand-text,#0B1F5C)}
.vic-vlb__x:hover{background:rgba(11,31,92,.20)}

/* ===== VIC REFINE v32 — player, map, portals and socials ===== */

/* ---------- 1. The film player: one aligned top row, edge-to-edge on a phone ---------- */
.vic-vlb__top{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:4px 6px 0;margin-bottom:11px;min-height:34px}
.vic-vlb__top .vic-vlb__tag{margin:0;line-height:1.1}
.vic-vlb__x{position:static;top:auto;right:auto;margin:0;flex:0 0 auto}
.vic-vlb__body{padding:16px 6px 4px}

@media (min-width:900px){
  .vic-vlb__box:has(.vic-vlb__frame.is-portrait){
    grid-template-columns:auto minmax(300px,1fr);
    grid-template-rows:auto 1fr;align-items:start}
  .vic-vlb__box:has(.vic-vlb__frame.is-portrait) .vic-vlb__top{
    grid-column:1 / -1;grid-row:1;margin-bottom:4px}
  .vic-vlb__box:has(.vic-vlb__frame.is-portrait) .vic-vlb__frame{grid-row:2}
  .vic-vlb__box:has(.vic-vlb__frame.is-portrait) .vic-vlb__body{grid-row:2;align-self:center}
}

/* A landscape film on a phone gets the whole width of the screen. */
@media (max-width:639px){
  .vic-vlb{padding:0;place-items:end center}
  .vic-vlb__box{
    max-width:100%;width:100%;
    border-radius:26px 26px 0 0;
    padding:8px 14px max(16px,env(safe-area-inset-bottom));
    max-height:96dvh;
    transform:translateY(26px)}
  .vic-vlb.is-on .vic-vlb__box{transform:none}
  .vic-vlb__top{padding:2px 2px 0;margin-bottom:9px}
  .vic-vlb__frame{
    width:calc(100% + 28px);margin-left:-14px;margin-right:-14px;
    border-radius:0}
  .vic-vlb__frame.is-portrait{
    width:auto;margin:0 auto;border-radius:16px;height:min(56vh,480px)}
  .vic-vlb__body{padding:16px 2px 2px}
  .vic-vlb__body h3{font-size:19px}
  .vic-vlb__ctas{display:grid;grid-template-columns:1fr 1fr;gap:9px}
  .vic-vlb__cta{width:100%;justify-content:center;padding:12px 10px;font-size:13px}
  .vic-vlb__cta--wa{grid-column:1 / -1}
  .vic-vlb__nav{justify-content:center;gap:16px;margin-top:16px;padding-top:14px}
}

/* ---------- 2. The map: contained, aligned, and clearly switchable ---------- */
.vic-map{overflow:hidden}
.vic-map__grid{min-width:0}
.vic-map__grid > *{min-width:0;max-width:100%}
.vic-map__frame{max-width:100%}
.vic-map__frame iframe{max-width:100%}

.vic-map__hint{
  display:flex;align-items:center;gap:9px;margin:0 0 11px;
  font-family:"Inter",system-ui,sans-serif;font-size:12.5px;font-weight:500;
  letter-spacing:.01em;color:var(--brand-body,#5A6478)}
.vic-map__hintdot{
  position:relative;width:7px;height:7px;border-radius:999px;flex:0 0 auto;
  background:var(--brand-gold,#D9A83B)}
.vic-map__hintdot::after{
  content:'';position:absolute;inset:-4px;border-radius:999px;
  border:1px solid rgba(217,168,59,.6);
  animation:vicHintPulse 2.4s cubic-bezier(.22,1,.36,1) infinite}
@keyframes vicHintPulse{
  0%{transform:scale(.6);opacity:0}
  35%{opacity:.9}
  100%{transform:scale(1.5);opacity:0}}

.vic-map__pick{gap:10px}
.vic-map__tab{
  flex-direction:row;align-items:center;gap:11px;
  padding:12px 17px;min-width:0}
.vic-map__tabmark{
  display:grid;place-items:center;width:30px;height:30px;border-radius:999px;flex:0 0 auto;
  color:var(--brand-text,#0B1F5C);
  background:rgba(11,31,92,.07);
  transition:background .26s ease,color .26s ease,transform .3s cubic-bezier(.22,1,.36,1)}
.vic-map__tabmark svg{width:15px;height:15px;display:block}
.vic-map__tabtxt{display:flex;flex-direction:column;gap:2px;min-width:0}
.vic-map__tab.is-on .vic-map__tabmark{
  background:rgba(255,255,255,.18);color:#fff;transform:scale(1.04)}
.vic-map__tab:not(.is-on):hover .vic-map__tabmark{background:rgba(217,168,59,.2)}

.vic-map__frame{transition:opacity .4s ease}
.vic-map__frame:not(.is-ready){opacity:.55}

@media (max-width:639px){
  .vic-map__pick{display:grid;grid-template-columns:1fr;gap:8px}
  .vic-map__tab{width:100%;padding:11px 14px}
  .vic-map__tab b{font-size:13.5px;white-space:normal;overflow:visible}
  .vic-map__tab em{font-size:9.5px}
  .vic-map__frame{min-height:230px;aspect-ratio:4/3}
  .vic-map__acts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .vic-map__act{width:100%;justify-content:center;padding:11px 8px;font-size:12.5px}
  .vic-map__card{gap:8px}
}
@media (max-width:359px){
  .vic-map__acts{grid-template-columns:1fr}
}

/* ---------- 3. Choosing a portal ---------- */
.vic-dd__lead{
  display:block;padding:9px 13px 7px;
  font-family:"Inter",system-ui,sans-serif;font-size:10px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--brand-body,#5A6478)}
.vic-dd__more{
  display:block;margin-top:5px;padding:9px 13px;border-radius:12px;text-decoration:none;
  font-family:"Inter",system-ui,sans-serif;font-size:12.5px;font-weight:500;
  color:var(--brand-body,#5A6478);
  border-top:1px solid var(--glass-line,rgba(11,31,92,.09))}
.vic-dd__more:hover{color:var(--brand-text,#0B1F5C)}
.vic-dd__item .vic-ext{margin-left:6px;opacity:.45;vertical-align:-1px}

.vic-pick{display:grid;gap:8px}
.vic-pick--dd{padding:0 6px 4px}
.vic-pick__row{
  display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;
  padding:12px 14px;border-radius:16px;text-decoration:none;
  background:rgba(255,255,255,.66);
  border:1px solid var(--glass-line,rgba(11,31,92,.10));
  transition:background .26s cubic-bezier(.22,1,.36,1),transform .2s cubic-bezier(.22,1,.36,1),
             border-color .26s ease,box-shadow .26s ease}
.vic-pick__row:hover{
  background:#fff;transform:translateY(-1px);
  border-color:rgba(11,31,92,.2);box-shadow:0 10px 24px -20px rgba(11,31,92,.6)}
.vic-pick__row:active{transform:scale(.99)}
.vic-pick__mark{width:34px;height:34px;flex:0 0 auto}
.vic-pick__txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.vic-pick__txt b{
  font-family:"Inter",system-ui,sans-serif;font-size:14px;font-weight:600;letter-spacing:-.01em;
  color:var(--brand-text,#0B1F5C);line-height:1.25}
.vic-pick__txt em{
  font-style:normal;font-family:"Inter",system-ui,sans-serif;font-size:11.5px;
  color:var(--brand-body,#5A6478)}
.vic-pick__row .vic-ext{color:var(--brand-gold,#B98C24);opacity:.75;flex:0 0 auto}
.vic-pick__row--children:hover{border-color:rgba(14,95,192,.3)}
.vic-pick__row--high:hover{border-color:rgba(120,24,44,.3)}

.vic-sec--portal .vic-pick--wide{grid-template-columns:1fr;gap:12px;max-width:760px}
@media (min-width:760px){
  .vic-sec--portal .vic-pick--wide{grid-template-columns:1fr 1fr}
  .vic-sec--portal .vic-pick__row{padding:20px 22px;border-radius:20px}
  .vic-sec--portal .vic-pick__mark{width:44px;height:44px}
  .vic-sec--portal .vic-pick__txt b{font-size:16px}
}
.vic-pick__note{
  margin:18px 0 0;max-width:62ch;
  font-family:"Inter",system-ui,sans-serif;font-size:13.5px;line-height:1.6;
  color:var(--brand-body,#5A6478)}

/* ---------- 4. The social accounts ---------- */
.vic-social{display:flex;gap:9px;margin:18px 0 0;padding:0;list-style:none}
.vic-social__a{
  display:grid;place-items:center;width:38px;height:38px;border-radius:999px;
  transition:background .24s ease,color .24s ease,transform .2s cubic-bezier(.22,1,.36,1)}
.vic-social__a svg{width:17px;height:17px;display:block}
.vic-social__a:hover{transform:translateY(-2px)}
.vic-social__a:active{transform:scale(.94)}

.vic-social--ft .vic-social__a{
  color:rgba(255,255,255,.72);background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.14)}
.vic-social--ft .vic-social__a:hover{color:#fff;background:rgba(255,255,255,.2)}
.vic-social--ft .vic-social__a--youtube:hover{background:rgba(255,0,0,.72);border-color:transparent}
.vic-social--ft .vic-social__a--facebook:hover{background:rgba(24,119,242,.78);border-color:transparent}
.vic-social--ft .vic-social__a--tiktok:hover{background:rgba(0,0,0,.6);border-color:rgba(255,255,255,.28)}

.vic-social--drawer{margin-top:16px;gap:10px}
.vic-social--drawer .vic-social__a{
  color:rgba(255,255,255,.8);background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.18);width:40px;height:40px}
.vic-social--drawer .vic-social__a:hover{color:#fff;background:rgba(255,255,255,.24)}

@media (prefers-reduced-motion:reduce){
  .vic-map__hintdot::after{animation:none}
  .vic-pick__row,.vic-social__a,.vic-map__tabmark{transition-duration:.01ms}
}


/* ===== VIC REFINE v33 - the footer ===== */

/* ---------- 1. The brand column ---------- */
.vic-ft__logo{align-items:center;gap:13px}
.vic-ft__crest{width:42px;height:42px;padding:4px;border-radius:999px;background:#fff}
.vic-ft__blurb{max-width:44ch;margin:20px 0 0}

.vic-ft__reach{list-style:none;margin:22px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.vic-ft__reach a{
  display:inline-flex;align-items:center;gap:8px;
  padding:9px 14px;border-radius:999px;
  font-family:"Inter",system-ui,sans-serif;font-size:13px;font-weight:500;line-height:1;
  color:rgba(255,255,255,.88);
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
  transition:background .24s ease,border-color .24s ease,color .24s ease,transform .2s cubic-bezier(.22,1,.36,1)}
.vic-ft__reach a:hover{background:rgba(255,255,255,.17);border-color:rgba(255,255,255,.3);color:#fff;transform:translateY(-1px)}
.vic-ft__reach a:active{transform:scale(.98)}
.vic-ft__reach .vic-ft__wa:hover{background:rgba(37,211,102,.22);border-color:rgba(37,211,102,.5)}
.vic-ft__ico{flex:0 0 auto;opacity:.75}
.vic-ft__reach a:hover .vic-ft__ico{opacity:1}

.vic-ft .vic-social--ft{margin-top:24px}

/* ---------- 2. The link columns ---------- */
.vic-ft__col ul{gap:11px}
.vic-ft__col a{display:inline-block;padding:1px 0;line-height:1.45}

/* ---------- 3. The campus band ---------- */
.vic-ft__band{border-top:1px solid rgba(255,255,255,.12)}
.vic-ft__bandinner{max-width:1280px;margin:0 auto;padding:36px 56px 40px}
.vic-ft__bandhead{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;margin:0 0 20px}
.vic-ft__bandhead h4{
  font-family:"Inter",system-ui,sans-serif;font-size:10.5px;font-weight:600;
  letter-spacing:.22em;text-transform:uppercase;color:var(--brand-gold,#D9A83B);margin:0}
.vic-ft__bandhead p{margin:0;font-size:13.5px;color:rgba(255,255,255,.62)}

.vic-ft__campuses{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.vic-ft__campus{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:13px;align-items:start;
  padding:16px 18px;border-radius:14px;text-decoration:none;
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.11);
  transition:background .26s ease,border-color .26s ease,transform .22s cubic-bezier(.22,1,.36,1)}
.vic-ft__campus:hover{background:rgba(255,255,255,.1);border-color:rgba(217,168,59,.45);transform:translateY(-2px)}
.vic-ft__campus:active{transform:scale(.995)}
.vic-ft__campusmark{
  display:grid;place-items:center;width:34px;height:34px;border-radius:999px;flex:0 0 auto;
  color:var(--brand-gold,#D9A83B);background:rgba(217,168,59,.14);
  transition:background .26s ease}
.vic-ft__campus:hover .vic-ft__campusmark{background:rgba(217,168,59,.26)}
.vic-ft__campusmark .vic-ft__ico{opacity:1}
.vic-ft__campustxt{display:flex;flex-direction:column;gap:5px;min-width:0}
.vic-ft__campustxt b{
  font-family:"Inter",system-ui,sans-serif;font-size:12px;font-weight:600;
  letter-spacing:.02em;color:#fff;line-height:1.3}
.vic-ft__campustxt em{
  font-style:normal;font-size:13px;line-height:1.55;color:rgba(255,255,255,.7)}
.vic-ft__campustxt i{
  font-style:normal;font-family:"Inter",system-ui,sans-serif;font-size:11px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--brand-gold,#D9A83B);
  opacity:.85;margin-top:2px}
.vic-ft__campus:hover .vic-ft__campustxt i{opacity:1}

/* ---------- 4. The bottom bar ---------- */
.vic-ft__bottominner{align-items:center;gap:14px 24px}
.vic-ft__copy{flex:0 1 auto}
.vic-ft__badges{display:flex;flex-wrap:wrap;gap:8px}
.vic-ft__badges em{
  font-style:normal;font-family:"Inter",system-ui,sans-serif;
  font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  padding:5px 10px;border-radius:6px;white-space:nowrap;
  color:rgba(255,255,255,.72);background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.11)}
.vic-ft__badges em:first-child{color:var(--brand-gold,#D9A83B);background:rgba(217,168,59,.12);border-color:rgba(217,168,59,.3)}

.vic-ft__top{
  display:inline-flex;align-items:center;gap:8px;
  font-family:"Inter",system-ui,sans-serif;font-size:11.5px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;
  padding:9px 14px;border-radius:999px;
  color:rgba(255,255,255,.72) !important;
  border:1px solid rgba(255,255,255,.16);
  transition:color .24s ease,border-color .24s ease,background .24s ease}
.vic-ft__top:hover{color:#fff !important;border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.08)}
.vic-ft__top .vic-ft__ico{opacity:.8}

/* ---------- 5. On a phone ---------- */
@media (max-width:1023px){
  .vic-ft__bandinner{padding:32px 24px 36px}
  .vic-ft__campuses{grid-template-columns:1fr 1fr}
}
@media (max-width:767px){
  .vic-ft__campuses{grid-template-columns:1fr}
}
@media (max-width:639px){
  .vic-ft__inner{grid-template-columns:1fr 1fr;gap:32px 20px}
  .vic-ft__brand{grid-column:1 / -1}
  .vic-ft__bandinner{padding:28px 20px 32px}
  .vic-ft__bandhead{flex-direction:column;gap:6px}
  .vic-ft__reach{gap:7px}
  .vic-ft__reach a{font-size:12.5px;padding:9px 12px}
  .vic-ft__bottominner{flex-direction:column;align-items:flex-start;gap:16px;text-align:left}
  .vic-ft__top{align-self:stretch;justify-content:center}
  .vic-ft__crest{width:38px;height:38px}
}
@media (max-width:379px){
  .vic-ft__inner{grid-template-columns:1fr}
}

@media (prefers-reduced-motion:reduce){
  .vic-ft__campus,.vic-ft__reach a,.vic-ft__top{transition-duration:.01ms}
}


/* ===== VIC REFINE v34 - landing on a section ===== */

/* If the browser ever scrolls to an anchor itself, it should still stop with
   the heading clear of the header and a band of space above it. */
.vic-sec[id], .vic-anchor, [data-vic-aimed]{
  scroll-margin-top:164px}
@media (min-width:900px){
  .vic-sec[id], .vic-anchor{scroll-margin-top:224px}
}

/* A gold rule rests on the section you were sent to, then lets go. */
.vic-landed{position:relative}
.vic-landed::before{
  content:'';position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,
    rgba(217,168,59,0) 0%,
    var(--brand-gold,#D9A83B) 18%,
    var(--brand-gold,#D9A83B) 82%,
    rgba(217,168,59,0) 100%);
  transform-origin:50% 50%;
  animation:vicLandRule 2.4s cubic-bezier(.22,1,.36,1) 1 both;
  pointer-events:none;z-index:3}
.vic-landed::after{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:2;
  background:radial-gradient(120% 60% at 50% 0%, rgba(217,168,59,.13) 0%, rgba(217,168,59,0) 70%);
  animation:vicLandWash 2.4s cubic-bezier(.22,1,.36,1) 1 both}

@keyframes vicLandRule{
  0%   {opacity:0;transform:scaleX(.25)}
  14%  {opacity:1;transform:scaleX(1)}
  62%  {opacity:1}
  100% {opacity:0}
}
@keyframes vicLandWash{
  0%   {opacity:0}
  16%  {opacity:1}
  58%  {opacity:1}
  100% {opacity:0}
}

/* The form shells keep their own, quieter version. */
.vic-formshell.vic-landed::after{
  background:radial-gradient(120% 80% at 50% 0%, rgba(217,168,59,.16) 0%, rgba(217,168,59,0) 72%);
  border-radius:inherit}

@media (prefers-reduced-motion:reduce){
  .vic-landed::before,.vic-landed::after{animation:none;opacity:0}
}


/* ===== VIC REFINE v35 - the landing, made cheap ===== */

/* The browser does the scrolling now, so the offset has to live here.
   Roughly the sticky header plus 80px of air on a phone, 120px on a laptop,
   which is the band of context above the heading. */
.vic-sec[id], .vic-anchor, .vic-formshell{scroll-margin-top:148px}
@media (min-width:900px){
  .vic-sec[id], .vic-anchor, .vic-formshell{scroll-margin-top:206px}
}

/* v34 washed the whole section in a radial gradient on arrival. Repainting a
   full-height block is exactly what makes a phone feel like it is thinking,
   so that is gone. What is left is a 3px rule, which the compositor can
   handle on its own. */
.vic-landed::after{content:none !important}

.vic-landed{position:relative}
.vic-landed::before{
  content:'';position:absolute;left:0;right:0;top:0;height:3px;z-index:3;
  pointer-events:none;
  background:linear-gradient(90deg,
    rgba(217,168,59,0) 0%,
    var(--brand-gold,#D9A83B) 20%,
    var(--brand-gold,#D9A83B) 80%,
    rgba(217,168,59,0) 100%);
  transform:scaleX(.4);
  opacity:0;
  animation:vicRule 1.9s cubic-bezier(.22,1,.36,1) both}

@keyframes vicRule{
  0%   {opacity:0;transform:scaleX(.4)}
  18%  {opacity:1;transform:scaleX(1)}
  64%  {opacity:1;transform:scaleX(1)}
  100% {opacity:0;transform:scaleX(1)}
}

@media (prefers-reduced-motion:reduce){
  .vic-landed::before{animation:none;opacity:0}
}


/* ===== VIC REFINE v36 - glass that a phone can afford ===== */

/* backdrop-filter is the most expensive thing on this site. The header and
   the school bar are stuck to the top of the window, so the browser has to
   re-sample and re-blur whatever is sliding underneath them on every single
   frame of every scroll. On a laptop that is free. On a mid-range Android it
   is the whole reason a scroll feels like the phone is thinking.

   The design already declares what it should look like with no blur at all,
   in its own @supports fallbacks. Below 900px we simply use that, which is a
   difference almost nobody can see on a small screen and one every phone can
   feel. Everything above 900px is untouched. */

@media (max-width:899px){

  .vic-hd{
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
    background:rgba(255,255,255,.97) !important}

  body.brand-children .vic-hd,
  body.brand-high .vic-hd{background:rgba(255,255,255,.97) !important}

  .school-bar{
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
    background:var(--brand-tint,#F4F6FB) !important}

  .vic-hd__burger,
  .vic-hd__nav li.is-active a,
  .vic-drawer__here{
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important}

  /* The cards keep their glass, at a radius a phone can draw quickly.
     Blur cost climbs steeply with the radius, so 6px is a fraction of 16px
     and reads almost the same over a flat section background. */
  .vic-faq__item,
  .vic-lcard,
  .vic-dcard,
  .vic-safe,
  .vic-step,
  .vic-sspick__btn,
  .vic-btn--ghost,
  .vic-pick__row,
  .vic-campus,
  .vic-map__card{
    -webkit-backdrop-filter:blur(6px) !important;
    backdrop-filter:blur(6px) !important}

  /* Scrims sit over a frozen page, so they only ever draw once. Left alone. */
}

/* A phone that has told us it wants less motion gets no blur at all. */
@media (prefers-reduced-motion:reduce){
  .vic-hd,.school-bar{
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important}
}

/* vic-refine37: double-click/double-tap home shortcut on the brand lockup should not zoom or select text */
.vic-dd--brand,.vic-dd--brand .vic-dd__btn{touch-action:manipulation;-webkit-user-select:none;user-select:none;}
