/* Wil Theme 0.3.7 — global experience, editorial and state system. */
body.wil-theme { --wil-season-accent:var(--wil-accessible-accent); --wil-season-secondary:#8f73ff; --wil-season-glow:rgba(22,135,255,.12); }
body.wil-theme:is(.wil-season-halloween,.wil-season-edc,.wil-season-holidays,.wil-season-spring-break,.wil-season-special-trip) { --wil-accent:var(--wil-season-accent); }
body.wil-theme:is(.wil-season-halloween,.wil-season-edc,.wil-season-holidays,.wil-season-spring-break,.wil-season-special-trip) #masthead.wil-header { border-top:2px solid var(--wil-season-accent)!important; }

/* Header actions and page-level header modes. */
body.wil-theme .wil-search-toggle { display:inline-flex; align-items:center; justify-content:center; gap:7px; height:38px; padding:0 9px; border:0; border-radius:999px; color:#fff; background:transparent; cursor:pointer; font:600 12px/1 var(--wil-font); }
body.wil-theme .wil-search-toggle:hover { background:rgba(255,255,255,.08); }
body.wil-theme .wil-search-toggle svg { width:20px; height:20px; }
body.wil-theme .wil-global-cta { display:inline-flex; align-items:center; justify-content:center; min-height:38px; padding:0 15px; border-radius:999px; background:var(--wil-global-cta); color:var(--wil-global-cta-ink)!important; font:750 12px/1 var(--wil-font); text-decoration:none!important; white-space:nowrap; box-shadow:0 0 0 1px rgba(0,0,0,.06); }
body.wil-theme .wil-global-cta:hover { filter:brightness(.92); transform:translateY(-1px); }
body.wil-theme.wil-header-style-transparent #masthead.wil-header { position:absolute; top:var(--wil-admin-offset,0)!important; background:linear-gradient(180deg,rgba(0,0,0,.72),transparent)!important; }
body.wil-theme.wil-header-style-solid #masthead.wil-header { background:rgba(13,13,16,.98)!important; border-bottom:1px solid var(--wil-edge)!important; }
body.wil-theme.wil-header-style-compact #masthead.wil-header,
body.wil-theme.wil-header-style-compact #masthead .wil-header__inner,
body.wil-theme.wil-header-style-compact #masthead .wil-primary-menu { height:54px!important; min-height:54px!important; max-height:54px!important; }
body.wil-theme.wil-header-style-compact #masthead .wil-brand,
body.wil-theme.wil-header-style-compact #masthead .wil-brand__image { height:42px!important; min-height:42px!important; max-height:42px!important; }
body.wil-theme.wil-header-style-hidden #masthead.wil-header { display:none!important; }

/* Scheduled announcement. */
.wil-announcement { position:relative; z-index:1100; background:#dcecff; color:#071a33; border-bottom:1px solid rgba(0,0,0,.12); }
.wil-announcement.is-promo { background:var(--wil-season-accent); color:#07070a; }
.wil-announcement.is-urgent { background:#ffdddf; color:#4d060b; }
.wil-announcement__inner { width:min(100%,var(--wil-container)); min-height:39px; padding:7px 44px; margin:auto; display:flex; align-items:center; justify-content:center; gap:14px; }
.wil-announcement p { margin:0; text-align:center; font-size:13px; line-height:1.45; }
.wil-announcement a { color:inherit!important; font-weight:800; }
.wil-announcement button { position:absolute; right:13px; top:50%; transform:translateY(-50%); width:30px; height:30px; border:0; background:transparent; color:inherit; font-size:22px; cursor:pointer; }

/* Grouped site search. */
body.wil-search-is-open { overflow:hidden; }
.wil-search-overlay[hidden] { display:none!important; }
.wil-search-overlay { position:fixed; inset:0; z-index:2147483000; display:grid; place-items:start center; padding:clamp(12px,5vh,58px) 14px; color:#f8f8fa; }
.wil-search-overlay__backdrop { position:absolute; inset:0; background:rgba(0,0,0,.78); backdrop-filter:blur(12px); }
.wil-search-overlay__panel { position:relative; width:min(920px,100%); max-height:calc(100dvh - 28px); overflow:auto; border:1px solid var(--wil-edge-strong); border-radius:24px; background:#141419; box-shadow:0 35px 100px rgba(0,0,0,.65); padding:clamp(19px,4vw,38px); }
.wil-search-overlay__head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.wil-search-overlay__head span { color:#8fbeff; font-size:11px; text-transform:uppercase; letter-spacing:.18em; font-weight:800; }
.wil-search-overlay__head h2 { margin:4px 0 20px; font-size:clamp(28px,5vw,51px); line-height:1; letter-spacing:-.055em; }
.wil-search-overlay__head button { width:42px; height:42px; flex:0 0 auto; border:1px solid var(--wil-edge); border-radius:50%; background:#202027; color:#fff; font-size:25px; cursor:pointer; }
.wil-search-overlay__form { display:grid; grid-template-columns:24px minmax(0,1fr) auto; align-items:center; gap:10px; min-height:58px; padding:0 9px 0 18px; border:1px solid rgba(255,255,255,.22); border-radius:15px; background:#202027; }
.wil-search-overlay__form svg { width:23px; }
.wil-search-overlay__form input { min-width:0; width:100%; border:0; outline:0; background:transparent; color:#fff; font:600 clamp(16px,2vw,20px)/1.3 var(--wil-font); }
.wil-search-overlay__form input::placeholder { color:#8c8c98; }
.wil-search-overlay__form button { min-height:41px; border:0; border-radius:9px; background:#fff; color:#0b0b0e; padding:0 15px; font-weight:750; cursor:pointer; }
.wil-search-overlay__status { min-height:32px; padding:11px 2px 5px; color:#a8a8b2; font-size:13px; }
.wil-search-overlay__results { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.wil-search-group { border:1px solid var(--wil-edge); border-radius:14px; background:#18181e; padding:15px; }
.wil-search-group h3 { margin:0 0 7px; color:#8fbeff; font-size:11px; text-transform:uppercase; letter-spacing:.15em; }
.wil-search-result { display:grid; grid-template-columns:44px minmax(0,1fr) auto; align-items:center; gap:10px; padding:10px 3px; color:#fff!important; text-decoration:none!important; border-top:1px solid rgba(255,255,255,.07); }
.wil-search-result:first-of-type { border-top:0; }
.wil-search-result img,.wil-search-result__placeholder { width:44px; height:44px; object-fit:cover; border-radius:8px; background:#24242c; }
.wil-search-result strong,.wil-search-result small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.wil-search-result small { color:#9b9ba6; font-size:11px; }
.wil-search-result b { color:#7eb7ff; }
.wil-search-overlay__quick { display:flex; flex-wrap:wrap; gap:7px; margin-top:16px; }
.wil-search-overlay__quick a { padding:8px 12px; border:1px solid var(--wil-edge); border-radius:999px; color:#d7d7df!important; text-decoration:none!important; font-size:12px; }
.wil-search-skeleton { min-height:76px; border-radius:12px; background:linear-gradient(90deg,#19191f 25%,#26262f 50%,#19191f 75%); background-size:200% 100%; animation:wil-shimmer 1.2s linear infinite; }
@keyframes wil-shimmer { to { background-position:-200% 0; } }

/* Heroes, breadcrumbs, long-form navigation and image controls. */
.wil-page-hero { position:relative; min-height:clamp(300px,46vw,610px); display:flex; align-items:flex-end; overflow:hidden; isolation:isolate; background:#101014; border-bottom:1px solid var(--wil-edge); }
.wil-page-hero__image,.wil-page-image img { position:absolute; inset:0; width:100%; height:100%!important; object-fit:cover; object-position:var(--wil-focal-x,50%) var(--wil-focal-y,50%); z-index:-2; }
.wil-page-hero__shade { position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(5,5,8,.94) 0,rgba(5,5,8,.63) 50%,rgba(5,5,8,.15)),linear-gradient(0deg,rgba(5,5,8,.75),transparent 55%); }
.wil-page-hero__content { width:min(100%,var(--wil-container)); margin:auto; padding:clamp(90px,14vw,190px) clamp(18px,3vw,44px) clamp(40px,6vw,80px); }
.wil-page-hero h1 { max-width:950px; margin:0; color:#fff; font-size:clamp(43px,7.6vw,108px); line-height:.94; letter-spacing:-.065em; }
.wil-page-hero__intro { max-width:650px; margin:19px 0 0; color:#d0d0d8; font-size:clamp(17px,2vw,22px); }
.wil-breadcrumbs ol { list-style:none; display:flex; flex-wrap:wrap; gap:5px; padding:0; margin:0 0 19px; font-size:12px; }
.wil-breadcrumbs li:not(:last-child)::after { content:"/"; margin-left:5px; color:#6e6e78; }
.wil-breadcrumbs a { color:#c4c4cd!important; text-decoration:none!important; }
.wil-breadcrumbs [aria-current] { color:#8fbeff; }
.wil-page-image { position:relative; aspect-ratio:16/9; overflow:hidden; border-radius:18px; margin-bottom:30px; background:#19191f; }
.wil-image-ratio-4-3 .wil-page-image { aspect-ratio:4/3; }.wil-image-ratio-3-2 .wil-page-image { aspect-ratio:3/2; }.wil-image-ratio-square .wil-page-image { aspect-ratio:1; }.wil-image-ratio-portrait .wil-page-image { aspect-ratio:4/5; }.wil-image-ratio-auto .wil-page-image { aspect-ratio:auto; min-height:280px; }
.wil-section-nav { position:sticky; top:82px; z-index:20; width:min(100%,var(--wil-container)); margin:0 auto 24px; padding:0 clamp(18px,3vw,44px); }
.wil-section-nav__inner { display:flex; gap:8px; overflow:auto; padding:8px; border:1px solid var(--wil-edge); border-radius:12px; background:rgba(19,19,23,.92); backdrop-filter:blur(14px); scrollbar-width:none; }
.wil-section-nav a { flex:0 0 auto; padding:7px 11px; border-radius:8px; color:#aaaab4!important; text-decoration:none!important; font-size:12px; font-weight:700; }
.wil-section-nav a.is-active { background:#fff; color:#111!important; }
body.admin-bar .wil-section-nav { top:114px; }

/* Recovery and reusable block patterns. */
.wil-error-page { max-width:1000px; }
.wil-error-page .wil-search-form { margin:28px auto; }
.wil-recovery-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:32px 0; text-align:left; }
.wil-recovery-card { position:relative; min-height:145px; display:flex; flex-direction:column; justify-content:flex-end; padding:19px; border:1px solid var(--wil-edge); border-radius:16px; background:#15151a; color:#fff!important; text-decoration:none!important; }
.wil-recovery-card strong { font-size:18px; }.wil-recovery-card span { color:#a7a7b0; font-size:12px; }.wil-recovery-card b { position:absolute; right:17px; top:14px; color:#76b4ff; }
.wil-empty-state { max-width:980px; margin:35px auto; padding:clamp(24px,5vw,60px); border:1px solid var(--wil-edge); border-radius:22px; background:#141419; text-align:center; }
.wil-pattern { margin-block:clamp(45px,7vw,100px); }
.wil-pattern-hero,.wil-pattern-cta { padding:clamp(35px,7vw,100px) clamp(20px,5vw,74px); border:1px solid var(--wil-edge); border-radius:16px; background:#141419; }
.wil-pattern-hero h1 { max-width:1000px; font-size:clamp(42px,7vw,100px); line-height:.96; letter-spacing:-.065em; }
.wil-pattern-media { gap:clamp(24px,5vw,70px); align-items:center!important; }.wil-pattern-media img { min-height:390px; object-fit:cover; border-radius:16px; }.wil-pattern-media__placeholder { min-height:390px; display:grid; place-items:center; border:1px dashed rgba(255,255,255,.28); border-radius:16px; background:#15151a; color:#9999a4; text-align:center; }
.wil-pattern-faq details { border-top:1px solid var(--wil-edge); padding:20px 0; }.wil-pattern-faq summary { cursor:pointer; font-weight:750; font-size:18px; }.wil-pattern-faq details p { color:var(--wil-muted); }
.wil-pattern-testimonials blockquote,.wil-service-card { height:100%; margin:0; padding:24px; border:1px solid var(--wil-edge); border-radius:16px; background:#15151b; }
.wil-service-card.is-featured { border-color:var(--wil-accessible-accent); box-shadow:0 0 0 1px var(--wil-accessible-accent); }.wil-service-price { font-weight:800; color:#8fbeff; }

/* Shared feedback and utility states. */
.wil-state { padding:18px; border:1px solid var(--wil-edge); border-radius:13px; background:#17171c; }.wil-state.is-success { border-color:#3c8f66; }.wil-state.is-error { border-color:#b9535b; }.wil-state.is-notice { border-color:#477eb8; }
.wil-back-to-top { position:fixed; right:18px; bottom:18px; z-index:900; width:44px; height:44px; border:1px solid rgba(255,255,255,.2); border-radius:50%; background:rgba(20,20,25,.88); color:#fff; box-shadow:0 8px 30px rgba(0,0,0,.35); cursor:pointer; backdrop-filter:blur(12px); }
.wil-back-to-top[hidden] { display:none; }
img[data-wil-loaded] { opacity:0; transition:opacity .3s ease; }img[data-wil-loaded].is-loaded { opacity:1; }

@media (max-width:1240px) { body.wil-theme .wil-search-toggle__label { display:none; } body.wil-theme .wil-header__auth { display:none; } }
@media (max-width:921px) { body.wil-theme .wil-header__right>.wil-global-cta { display:inline-flex; } .wil-search-overlay__results { grid-template-columns:1fr; } .wil-recovery-links { grid-template-columns:1fr; } }
@media (max-width:600px) { body.wil-theme .wil-header__right>.wil-global-cta { padding:0 11px; max-width:118px; overflow:hidden; text-overflow:ellipsis; } .wil-search-overlay__form { grid-template-columns:22px minmax(0,1fr); }.wil-search-overlay__form button { display:none; }.wil-search-overlay__panel { border-radius:17px; }.wil-page-hero__content { padding-inline:18px; }.wil-section-nav { padding-inline:10px; }.wil-announcement__inner { padding-inline:38px; } }
@media (prefers-reduced-motion:reduce) { .wil-search-skeleton { animation:none; } img[data-wil-loaded],.wil-global-cta { transition:none!important; } }
