/* Module 01: production brand values, scoped entirely to public UI. */
.ve-site-header,.home-page .ve-hero {
  --ve-primary:#e02454; --ve-navy:#003a66; --ve-ink:#071a3d;
  --ve-purple:#6f42c1; --ve-soft:#fff5fa; --ve-border:#d6dae3;
  color:var(--ve-ink); font-family:"Mulish",sans-serif;
}
.ve-container { width:100%; max-width:1584px; padding-inline:72px; margin-inline:auto; }
.ve-site-header { position:relative; z-index:100; width:100%; background:white; box-shadow:0 1px 0 #071a3d08; }
.ve-site-header .ve-header-row { position:relative; min-height:92px; display:grid; grid-template-columns:minmax(176px,1fr) auto minmax(176px,1fr); align-items:center; gap:44px; }
.ve-logo { flex:0 0 176px; justify-self:start; display:block; padding-block:6px; }
.ve-logo img { display:block; width:176px; height:auto; }
.ve-visa-strip { background:#f7f8fa; }
.ve-visa-strip__inner { display:flex; min-height:36px; align-items:center; justify-content:space-between; gap:24px; font-size:12px; line-height:1.3; }
.ve-visa-strip__inner>span { font-weight:600; color:#4b5366; }
.ve-visa-strip__links { display:flex; align-items:center; gap:24px; }
.ve-visa-strip a { color:#4b5366; display:inline-flex; min-width:44px; min-height:44px; margin-block:-4px; align-items:center; justify-content:center; }
.ve-visa-strip a:hover { color:var(--ve-primary); text-decoration:underline; }
.ve-desktop-nav { grid-column:2; min-width:0; }
.ve-nav-items { display:flex; align-items:center; justify-content:flex-start; gap:16px; }
.ve-desktop-nav .ve-nav-items { justify-content:center; }
.ve-desktop-nav .ve-assessment { position:absolute; right:72px; top:50%; transform:translateY(-50%); }
.ve-nav-link,.ve-nav-group>summary { color:var(--ve-ink); display:flex; align-items:center; gap:8px; min-height:44px; font-size:14px; font-weight:600; white-space:nowrap; cursor:pointer; text-decoration:none; }
.ve-nav-group { position:relative; }
.ve-nav-group>summary,.ve-menu-toggle { list-style:none; }
.ve-nav-group>summary::-webkit-details-marker,.ve-menu-toggle::-webkit-details-marker { display:none; }
.ve-chevron { width:5px; height:5px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg); margin:-3px 2px 0 1px; opacity:.65; }
.ve-nav-group[open]>summary .ve-chevron { transform:rotate(225deg); margin-top:4px; }
.ve-nav-link:hover,.ve-nav-group>summary:hover,.ve-nav-group[open]>summary { color:var(--ve-primary); }
.ve-nav-group--active>summary,.ve-nav-link--active { color:var(--ve-ink); text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:9px; }
.ve-nav-dropdown { position:absolute; z-index:110; top:calc(100% + 12px); left:-18px; width:260px; padding:8px; background:#fff; border:1px solid var(--ve-border); border-radius:12px; box-shadow:0 14px 34px #071a3d12; }
.ve-desktop-nav .ve-nav-dropdown { max-height:min(70dvh,calc(100dvh - 160px)); overflow-y:auto; overscroll-behavior:contain; }
.ve-nav-group:nth-last-child(-n+3) .ve-nav-dropdown { left:auto; right:-18px; }
.ve-nav-dropdown a { display:flex; align-items:center; justify-content:space-between; min-height:44px; padding:10px 12px; font-size:13px; line-height:1.45; color:var(--ve-ink); border-radius:6px; }
.ve-nav-dropdown a:hover { background:var(--ve-soft); color:#ac1740; }
.ve-nav-dropdown .ve-dropdown-all { border-top:1px solid #eee; margin-top:5px; border-radius:0; font-weight:800; }
.ve-assessment { display:inline-flex; justify-content:center; align-items:center; gap:12px; min-height:48px; padding:12px 20px; font-size:13px; font-weight:800; color:white; border-radius:6px; background:var(--ve-primary); white-space:nowrap; }
.ve-assessment:hover { background:#bc1642; color:white; }
.ve-assessment>svg { flex:none; }
.ve-mobile-drawer { display:none; }
.ve-skip-link { position:absolute; top:-120px; left:20px; background:white; color:var(--ve-ink); padding:12px 20px; border:2px solid var(--ve-primary); border-radius:8px; z-index:200; }
.ve-skip-link:focus { top:12px; }
.ve-site-header :is(a,summary):focus-visible,.ve-hero :is(a,button):focus-visible { outline:3px solid var(--ve-purple); outline-offset:4px; }
.home-page .ve-hero { position:relative; isolation:isolate; overflow:visible; z-index:1; padding:56px 0; min-height:0; display:flex; align-items:center; background:#071a3d; }
.ve-hero-content { position:relative; z-index:2; }
.home-page .ve-hero-content { text-align:center; }
.ve-hero-eyebrow { display:flex; align-items:center; gap:14px; margin:0 0 20px; font-size:11px; font-weight:800; letter-spacing:2.4px; line-height:1.5; color:#e2eaf7; }
.ve-hero-eyebrow>span { display:inline-block; width:44px; height:2px; background:var(--ve-primary); }
.ve-hero h1 { font-family:Georgia,"Times New Roman",serif; font-size:clamp(64px,7.2vw,98px); line-height:1.08; font-weight:400; letter-spacing:-2.8px; color:#fff; margin:0; }
.home-page .ve-hero-eyebrow { justify-content:center; }
.home-page .ve-hero h1 { margin-inline:auto; margin-bottom:16px; }
.home-page .ve-hero-intro { max-width:560px; margin:0 auto 28px; color:#e2eaf7; font-size:16px; line-height:1.8; }
.ve-hero-art { position:absolute; z-index:-1; inset:0; width:100%; overflow:hidden; pointer-events:none; }
.ve-hero-art picture,.ve-hero-art img { width:100%; height:100%; display:block; }
.ve-hero-art img { object-fit:cover; object-position:center 42%; }
.ve-hero-art::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#071a3de8 0%,#071a3dc2 50%,#071a3d9e 100%),linear-gradient(0deg,#071a3d80,transparent 65%); }
.ve-explorer { max-width:1080px; width:100%; }
.ve-explorer-tabs { display:flex; gap:14px; margin-bottom:22px; }
.home-page .ve-explorer { margin-inline:auto; padding:16px; border:1px solid #ffffff24; border-radius:22px; background:linear-gradient(135deg,#12274acc,#071a3dba); box-shadow:0 18px 48px #00000024; backdrop-filter:blur(16px); }
.home-page .ve-explorer-tabs { justify-content:center; gap:4px; width:max-content; max-width:100%; padding:4px; margin:0 auto 14px; border-radius:12px; background:#ffffff0f; }
.home-page .ve-explorer-form { text-align:left; }
.ve-explorer-tab { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; min-width:152px; padding:10px 20px; border:0; border-radius:9px; color:#e2eaf7; font-size:13px; font-weight:800; line-height:1.5; text-decoration:none; background:transparent; }
.ve-explorer-tab svg { width:18px; height:18px; flex-shrink:0; }
.ve-explorer-tab:hover { color:white; background:#ffffff14; }
.ve-explorer-tab.is-active { background:#fff; color:var(--ve-ink); box-shadow:0 2px 8px #00000012; }
.ve-explorer-form { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 216px; align-items:stretch; gap:8px; background:#fff; border:0; border-radius:14px; padding:8px; box-shadow:0 4px 20px #071a3d0a; }
.ve-explorer-form[hidden] { display:none; }
.ve-explorer-field { min-width:0; padding:10px 16px; border-radius:10px; background:#f6f8fc; transition:background-color 160ms; }
.ve-explorer-field:focus-within { background:#fff3f7; }
.home-page .ve-subject-picker__control,.home-page .ve-subject-picker__control:focus-within { padding:0; background:transparent; }
.ve-public-site .ve-explorer-field :is(input,select):focus { background:transparent; }
.ve-explorer-field label { display:block; margin:0 0 4px; font-size:12px; line-height:1.5; font-weight:800; color:var(--ve-ink); }
.ve-explorer-field :is(input,select) { display:block; width:100%; min-height:44px; padding:4px 22px 4px 0; color:var(--ve-ink); font:inherit; font-size:16px; line-height:1.5; border:0; border-radius:0; background-color:transparent; text-overflow:ellipsis; }
.ve-explorer-field :is(input,select):focus { outline:none; box-shadow:none; }
.ve-explorer-field:focus-within label { color:#ac1740; }
.ve-explorer-field :is(input,select):focus-visible { background-color:var(--ve-soft); }
.ve-explorer-field input::placeholder { color:#677086; opacity:1; }
.ve-explorer-field select { cursor:pointer; }
.ve-explorer-field select:has(option:first-child:checked) { color:#677086; }
.ve-search-action { padding-left:0; display:flex; }
.home-page .ve-search-action button { border:0; border-radius:10px; width:100%; min-height:64px; display:flex; align-items:center; justify-content:center; gap:10px; padding:12px 16px; color:white; background:var(--ve-primary); box-shadow:0 4px 12px #e0245420; font-size:14px; font-weight:800; cursor:pointer; transition:background-color 160ms,box-shadow 160ms; }
.ve-search-action button:hover { background:#bc1642; }
.ve-search-action button:active { background:#a91239; }
.ve-search-action button svg { width:22px; height:22px; flex-shrink:0; }
.ve-search-action button span { white-space:nowrap; }
.home-page .ve-hero-support { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:0 8px; margin:16px 0 0; color:#e2eaf7; font-size:13px; line-height:1.8; }
.ve-hero-support a { display:inline-flex; align-items:center; gap:8px; min-height:44px; color:#fff; font-weight:800; text-decoration:underline; text-underline-offset:4px; }
.ve-hero-support a:hover { color:#f4b4c7; }
.home-page .ve-hero a:focus-visible { outline-color:#f4b4c7; }
.home-page .ve-search-action button:focus-visible { outline-color:var(--ve-ink); }
.ve-autocomplete { position:relative; }
.ve-suggestions { position:absolute; top:calc(100% + 14px); left:0; right:0; z-index:10; padding:6px; border:1px solid var(--ve-border); border-radius:10px; background:white; box-shadow:0 10px 28px #071a3d14; max-height:300px; overflow-y:auto; list-style:none; margin:0; }
.ve-suggestions[hidden] { display:none; }
.ve-suggestions li { display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:44px; padding:10px 12px; font-size:14px; line-height:1.4; border-radius:6px; cursor:pointer; }
.ve-suggestions li[aria-selected="true"],.ve-suggestions li:hover { background:#fff0f6; }
.ve-suggestions li small { font-size:11px; color:#677086; white-space:nowrap; }
.ve-suggestion-status { position:absolute; top:calc(100% + 14px); left:0; right:0; padding:14px 18px; background:white; border:1px solid var(--ve-border); border-radius:10px; color:#566078; font-size:13px; z-index:11; }
.ve-suggestion-status:empty { display:none; }
@media (min-width:1200px) and (max-width:1399px) {
  .ve-container { padding-inline:56px; }
  .ve-site-header .ve-header-row { gap:32px; }
  .ve-desktop-nav .ve-assessment { right:56px; }
  .ve-logo { flex-basis:156px; } .ve-logo img { width:156px; }
  .ve-nav-items { gap:12px; }
  .ve-nav-link,.ve-nav-group>summary { font-size:13px; gap:6px; }
  .ve-assessment { font-size:12px; padding-inline:15px; gap:10px; }
}
@media (min-width:1200px) {
  .ve-desktop-nav .ve-nav-items { flex-wrap:nowrap; gap:22px; }
  .ve-desktop-nav .ve-nav-link,.ve-desktop-nav .ve-nav-group>summary { font-size:16px; font-weight:600; line-height:24px; gap:5px; }
  .ve-desktop-nav .ve-chevron { display:inline-flex; align-items:center; justify-content:center; flex:0 0 14px; width:14px; height:14px; border:0; margin:0; transform:none; }
  .ve-desktop-nav .ve-chevron::before { content:""; width:7px; height:7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:translateY(-2px) rotate(45deg); }
  .ve-desktop-nav .ve-nav-group[open]>summary .ve-chevron { transform:rotate(180deg); margin-top:0; }
}
@media (max-width:1199px) {
  .ve-container { padding-inline:32px; }
  .ve-site-header .ve-header-row { min-height:76px; display:flex; justify-content:space-between; }
  .ve-logo { flex-basis:148px; } .ve-logo img { width:148px; }
  .ve-desktop-nav { display:none; } .ve-mobile-drawer { display:block; }
  .ve-menu-toggle { display:flex; align-items:center; justify-content:center; gap:10px; min-height:44px; padding:10px 14px; cursor:pointer; font-size:13px; font-weight:700; background:#f7f8fa; border-radius:8px; }
  .ve-menu-lines { display:block; width:21px; height:14px; border-block:1.5px solid var(--ve-ink); position:relative; }
  .ve-menu-lines::after { content:""; position:absolute; inset:5px 0 auto; border-top:1.5px solid var(--ve-ink); }
  .ve-mobile-drawer[open]>.ve-menu-toggle { background:var(--ve-soft); color:#ac1740; }
  .ve-mobile-drawer[open] .ve-menu-lines { border-color:transparent; }
  .ve-mobile-drawer[open] .ve-menu-lines::before,.ve-mobile-drawer[open] .ve-menu-lines::after { content:""; position:absolute; inset:6px 0 auto; border-top:1.5px solid currentColor; transform:rotate(45deg); }
  .ve-mobile-drawer[open] .ve-menu-lines::after { transform:rotate(-45deg); }
  .ve-drawer-panel { position:absolute; top:100%; left:0; right:0; padding:16px 32px 28px; max-height:calc(100dvh - 112px); overflow:auto; background:white; border-bottom:1px solid var(--ve-border); box-shadow:0 14px 28px #071a3d0c; }
  .ve-drawer-panel .ve-nav-items { display:flex; flex-direction:column; align-items:stretch; gap:0; }
  .ve-drawer-panel .ve-nav-link,.ve-drawer-panel .ve-nav-group>summary { font-size:16px; min-height:48px; padding:12px 8px; justify-content:space-between; white-space:normal; }
  .ve-drawer-panel .ve-nav-dropdown { position:static; width:auto; padding:4px 8px 12px; border:0; box-shadow:none; }
  .ve-drawer-panel .ve-nav-dropdown a { font-size:14px; }
  .ve-drawer-panel .ve-assessment { margin-top:14px; min-height:50px; }
  .ve-hero h1 { font-size:clamp(60px,7.2vw,88px); }
  .ve-explorer { width:100%; }
  .ve-explorer-form { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) 216px; }
  .ve-explorer-field { padding-inline:18px; }
}
@media (max-width:991px) {
  .ve-visa-strip__inner { justify-content:space-between; font-size:11px; gap:10px; }
  .ve-visa-strip__links { gap:8px; }
  .home-page .ve-hero { padding-block:40px; }
  .ve-hero h1 { font-size:clamp(56px,8.5vw,76px); }
  .ve-explorer-form { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .ve-search-action { grid-column:1 / -1; padding:8px 0 0; }
  .home-page .ve-search-action button { min-height:52px; font-size:14px; }
  .ve-search-action button svg { width:22px; height:22px; }
  .ve-search-action button span { position:static; width:auto; height:auto; padding:0; margin:0; overflow:visible; clip:auto; white-space:normal; }
}
@media (max-width:767px) {
  .ve-container { padding-inline:20px; } .ve-visa-strip { display:none; }
  .ve-site-header .ve-header-row { min-height:70px; }
  .ve-logo { flex-basis:136px; padding-block:6px; } .ve-logo img { width:136px; }
  .ve-menu-toggle { padding-inline:12px; }
  .ve-drawer-panel { padding-inline:20px; max-height:calc(100dvh - 70px); }
  .home-page .ve-hero { padding-block:32px; }
  .ve-hero-eyebrow { font-size:10px; letter-spacing:1.8px; gap:10px; margin-bottom:18px; }
  .ve-hero-eyebrow>span { width:24px; }
  .ve-hero h1 { font-size:clamp(44px,10.5vw,68px); line-height:1.08; letter-spacing:-1.8px; max-width:560px; }
  .home-page .ve-hero-intro { max-width:420px; font-size:14px; margin-bottom:24px; }
  .ve-hero-art img { object-position:90% center; }
  .ve-hero-art::after { background:linear-gradient(90deg,#071a3de0,#071a3dbf),linear-gradient(0deg,#071a3d73,transparent); }
  .home-page .ve-explorer { padding:12px; border-radius:16px; }
  .home-page .ve-explorer-tabs { width:100%; margin-bottom:12px; }
  .ve-explorer-tab { flex:1; min-width:0; min-height:46px; padding:10px 8px; font-size:12px; border-radius:8px; }
  .ve-explorer-form { grid-template-columns:minmax(0,1fr); padding:6px; border-radius:12px; gap:6px; }
  .ve-explorer-field { padding:10px; }
  .ve-explorer-field label { font-size:12px; margin-bottom:2px; }
  .ve-explorer-field :is(input,select) { font-size:16px; }
  .ve-search-action { padding-top:0; } .home-page .ve-search-action button { min-height:50px; }
  .home-page .ve-hero-support { display:block; margin-top:14px; font-size:12px; }
  .ve-hero-support a { justify-content:center; }
  .ve-suggestions,.ve-suggestion-status { top:calc(100% + 2px); }
}
@media (prefers-reduced-motion:reduce) {
  .ve-site-header *, .ve-hero * { animation:none!important; transition:none!important; scroll-behavior:auto; }
}
