/*
Theme Name: Velocity Strategies: Agenda
Theme URI: https://velocity-strategies.com/
Author: Dependent Media
Author URI: https://dependentmedia.com/
Description: "Agenda": a restrained block theme for Velocity Strategies, a Sacramento public affairs firm (Sierra direction, 2026-11). The logo's navy, red and bolt yellow; League Spartan (like the logo's caps) with Merriweather; buttons, photos and labels cut on the bolt's slant; how-we-work set as a hearing agenda. Only the home banner moves. No page builder.
Version: 1.0.0
Requires at least: 6.8
Requires PHP: 8.1
License: Proprietary (made for Velocity Strategies)
Text Domain: vst-agenda
*/

@font-face { font-family: "League Spartan"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("assets/fonts/league-spartan-latin-400-700.woff2") format("woff2"); }
@font-face { font-family: "Merriweather"; font-style: normal; font-weight: 400; font-display: swap; src: url("assets/fonts/merriweather-latin-400.woff2") format("woff2"); }
@font-face { font-family: "Merriweather"; font-style: normal; font-weight: 700; font-display: swap; src: url("assets/fonts/merriweather-latin-700.woff2") format("woff2"); }
@font-face { font-family: "Merriweather"; font-style: italic; font-weight: 400; font-display: swap; src: url("assets/fonts/merriweather-latin-italic-400.woff2") format("woff2"); }

:root {
	--navy: #223066;        /* the logo's V and VELOCITY */
	--navy-deep: #18224A;
	--red: #C33833;         /* the logo's STRATEGIES: small labels (5.3:1 on white) */
	--bolt: #FEBF0F;        /* the logo's bolt: slant marks and focus on navy only, never text on white */
	--text: #2C3140;
	--muted: #565C6C;
	--paper: #F3F4F7;       /* cool civic paper bands */
	--line: #D8DBE4;
	--field: #7D8396;       /* form borders, 3.9:1 on white */
	--error: #A3231F;
	--display: "League Spartan", Futura, "Century Gothic", "Avenir Next", sans-serif;
	--serif: Merriweather, Georgia, "Times New Roman", serif;
	--wrap: 1200px;
	--gut: clamp(20px, 4vw, 40px);
	--sec: clamp(56px, 8vw, 104px);
}

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 96px; }
body { margin: 0; background: #fff; color: var(--text); font: 400 1.0625rem/1.75 var(--serif); text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--navy); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--navy); outline-offset: 3px; }
h1, h2, h3, h4 { font-family: var(--display); font-weight: 700; color: var(--navy); line-height: 1.08; letter-spacing: -.01em; margin: 0 0 .5em; text-wrap: balance; }
h1 { font-size: clamp(2.35rem, 1.6rem + 3.2vw, 4.1rem); letter-spacing: -.02em; }
h2 { font-size: clamp(1.85rem, 1.4rem + 1.7vw, 2.75rem); }
h3 { font-size: clamp(1.25rem, 1.1rem + .5vw, 1.5rem); line-height: 1.15; }
h4 { font-size: 1.125rem; }
p, ul, ol, dl { margin: 0 0 1.1em; }
strong { font-weight: 700; }
::selection { background: var(--bolt); color: var(--navy-deep); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.vst-ico { width: 1.15em; height: 1.15em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.vst-ico--play { fill: currentColor; stroke: none; }

/* The logo's slant: a navy stroke and a bolt-yellow stroke, leaning like the bolt. */
.vst-slant { display: inline-block; width: 22px; height: 14px; flex: none; background: linear-gradient(to right, var(--navy) 0 5px, transparent 5px 9px, var(--bolt) 9px 14px, transparent 14px); transform: skewX(-20deg); }

.vst-label { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; font: 600 .8125rem/1.3 var(--display); letter-spacing: .14em; text-transform: uppercase; color: var(--red); }
.vst-label span:last-child { padding-top: .15em; }

/* Buttons: square navy blocks whose right end is cut on the bolt's slant. Focus = a white ring inside (the cut would clip an outer one). */
.vst-btn, .vst-nf .submit-wrap input[type="submit"] {
	display: inline-flex; align-items: center; gap: .55em; min-height: 52px; padding: .8em 2.3em .7em 1.35em; border: 0; border-radius: 0;
	background: var(--navy); color: #fff; font: 600 1rem/1.1 var(--display); letter-spacing: .03em; text-decoration: none; cursor: pointer;
	clip-path: polygon(0 0, 100% 0, calc(100% - 18px) 100%, 0 100%); transition: background-color .18s ease;
}
.vst-btn:hover, .vst-nf .submit-wrap input[type="submit"]:hover { background: var(--navy-deep); color: #fff; text-decoration: none; }
.vst-btn:hover span { text-decoration: underline; text-decoration-color: var(--bolt); text-decoration-thickness: 2px; text-underline-offset: .25em; }
.vst-btn:focus-visible, .vst-nf .submit-wrap input[type="submit"]:focus-visible { outline: 2px solid #fff; outline-offset: -6px; background: var(--navy-deep); box-shadow: inset 0 -4px 0 var(--bolt); }
.vst-link { display: inline-flex; align-items: center; gap: .45em; font: 600 1.0625rem/1.2 var(--display); color: var(--navy); text-decoration: underline; text-decoration-color: var(--bolt); text-decoration-thickness: 2px; text-underline-offset: .3em; }
.vst-link:hover { text-decoration-color: var(--navy); }
.vst-link .vst-ico { stroke-width: 2.2; }

.vst-skip { position: absolute; left: 12px; top: -60px; z-index: 100; padding: 10px 16px; background: var(--navy); color: #fff; font: 600 1rem var(--display); }
.vst-skip:focus { top: 12px; outline: 3px solid var(--bolt); outline-offset: 0; }

/* ---------- header (sticky) ---------- */
.vst-header { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid var(--line); transition: box-shadow .2s ease; }
.vst-header.is-scrolled { box-shadow: 0 6px 18px rgba(24, 34, 74, .08); }
.admin-bar .vst-header { top: 32px; }
.vst-bar__in { display: flex; align-items: center; gap: 20px; max-width: calc(var(--wrap) + 2 * var(--gut)); margin: 0 auto; padding: 14px var(--gut); }
.vst-brand { display: block; flex: none; line-height: 0; }
.vst-logo { width: auto; height: 44px; }
.vst-nav { display: none; margin-left: auto; }
.vst-menu { list-style: none; margin: 0; padding: 0; }
.vst-menu--bar { display: flex; align-items: center; gap: 2px; }
.vst-menu--bar > li { position: relative; }
.vst-menu__link, .vst-menu__toggle { display: inline-flex; align-items: center; gap: 4px; min-height: 44px; padding: 8px 12px; border: 0; background: none; color: var(--navy); font: 500 1rem/1 var(--display); letter-spacing: .01em; text-decoration: none; cursor: pointer; position: relative; }
.vst-menu__toggle .vst-ico { width: 18px; height: 18px; transition: transform .15s; }
.vst-menu__toggle[aria-expanded="true"] .vst-ico { transform: rotate(180deg); }
.vst-menu--bar .vst-menu__link:hover, .vst-menu--bar .vst-menu__toggle:hover { color: var(--navy-deep); }
.vst-menu--bar > li > a::after, .vst-menu--bar > li > button::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 6px; height: 3px; background: var(--bolt); transform: skewX(-20deg) scaleX(0); transform-origin: left; transition: transform .18s ease; }
.vst-menu--bar > li > a:hover::after, .vst-menu--bar > li > button:hover::after { transform: skewX(-20deg) scaleX(1); }
.vst-menu--bar > li.is-in > a::after, .vst-menu--bar > li.is-in > button::after { transform: skewX(-20deg) scaleX(1); background: var(--navy); }
.vst-sub { list-style: none; margin: 0; padding: 0; }
.vst-menu--bar .vst-sub { position: absolute; left: 4px; top: 100%; min-width: 270px; padding: 10px 0; background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--navy); box-shadow: 0 14px 30px rgba(24, 34, 74, .12); display: none; }
.vst-menu--bar .is-open > .vst-sub { display: block; }
.vst-menu--bar .vst-sub::before { content: ""; position: absolute; left: 0; right: 0; top: -14px; height: 12px; } /* hover bridge */
.vst-sub a { display: block; padding: 9px 20px; color: var(--navy); font: 500 1rem/1.3 var(--display); text-decoration: none; }
.vst-sub a:hover, .vst-sub a[aria-current] { background: var(--paper); text-decoration: underline; text-decoration-color: var(--bolt); text-decoration-thickness: 2px; text-underline-offset: .25em; }
.vst-bar__cta { display: flex; align-items: center; gap: 14px; margin-left: auto; }
.vst-nav + .vst-bar__cta { margin-left: 8px; }
.vst-bar__tel { display: none; align-items: center; gap: 6px; color: var(--navy); font: 600 1.0625rem var(--display); text-decoration: none; white-space: nowrap; }
.vst-bar__tel:hover { text-decoration: underline; }
.vst-bar__book { display: none; }
.vst-bar__menu { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 14px; border: 1.5px solid var(--navy); border-radius: 0; background: #fff; color: var(--navy); font: 600 1rem var(--display); cursor: pointer; }
.vst-bar__menu .vst-ico--close, .vst-bar__menu[aria-expanded="true"] .vst-ico--menu { display: none; }
.vst-bar__menu[aria-expanded="true"] .vst-ico--close { display: inline; }
.vst-panel { border-top: 1px solid var(--line); background: #fff; max-height: calc(100vh - 72px); overflow-y: auto; padding: 8px var(--gut) 24px; }
.vst-panel[hidden] { display: none; }
.vst-menu--panel > li { border-bottom: 1px solid var(--line); }
.vst-menu--panel .vst-menu__link, .vst-menu--panel .vst-menu__toggle { width: 100%; justify-content: space-between; padding: 14px 2px; font-size: 1.125rem; }
.vst-menu--panel .vst-sub { display: none; padding: 0 0 10px 14px; border-left: 3px solid var(--bolt); margin: 0 0 12px 2px; }
.vst-menu--panel .is-open > .vst-sub { display: block; }
.vst-menu--panel [aria-current="page"] { text-decoration: underline; text-decoration-color: var(--bolt); text-decoration-thickness: 2px; }
.vst-panel__contact { display: flex; align-items: center; gap: 8px; margin: 18px 0 0; font: 600 1.125rem var(--display); }
@media (max-width: 359px) { /* the narrowest phones: logo + Menu must fit in 320 px */
	.vst-bar__in { gap: 10px; }
	.vst-logo { height: 36px; }
	.vst-bar__menu { padding: 8px 10px; }
}
@media (min-width: 768px) {
	.vst-bar__book { display: inline-flex; }
	.vst-bar__tel { display: inline-flex; }
}
@media (min-width: 1200px) {
	.vst-nav { display: block; }
	.vst-bar__menu, .vst-panel { display: none !important; }
	.vst-logo { height: 48px; }
}

/* ---------- layout ---------- */
.vst-main { display: block; }
/* Sections span the page; their content sits in the 1200 px column through side padding (so narrower children stay left-aligned). */
.vst-wrap { max-width: var(--wrap); margin-left: auto; margin-right: auto; }
.vst-sec { padding: var(--sec) max(var(--gut), calc((100% - var(--wrap)) / 2)); }
.vst-sec + .vst-sec:not(.vst-sec--paper) { padding-top: 0; }
.vst-sec--paper { background: var(--paper); }
.vst-sec--paper + .vst-sec:not(.vst-sec--paper) { padding-top: var(--sec); }
.vst-sec--tight { padding-top: clamp(40px, 5vw, 64px); padding-bottom: clamp(40px, 5vw, 64px); }
.vst-intro { display: grid; gap: 8px 56px; }
.vst-intro > * { margin-left: 0; margin-right: 0; }
.vst-lede { font-size: clamp(1.125rem, 1.05rem + .3vw, 1.25rem); line-height: 1.7; color: var(--text); }
.vst-prose { max-width: 760px; }
.vst-prose > :last-child { margin-bottom: 0; }
.vst-prose h2 { margin-top: 1.4em; }
.vst-prose h3 { margin-top: 1.5em; }
.vst-prose ul:not([class]), .vst-ruled { list-style: none; padding: 0; }
.vst-prose ul:not([class]) li { position: relative; padding-left: 26px; margin: 0 0 .5em; }
.vst-prose ul:not([class]) li::before { content: ""; position: absolute; left: 2px; top: .62em; width: 12px; height: 7px; background: linear-gradient(to right, var(--navy) 0 4px, transparent 4px 7px, var(--bolt) 7px); transform: skewX(-20deg); }
.vst-cols { display: grid; gap: 32px 56px; align-items: start; }
.vst-cols > * { margin-left: 0; margin-right: 0; }
@media (min-width: 900px) {
	.vst-intro { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: start; }
	.vst-cols { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
	.vst-cols--wide-left { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
	.vst-cols--wide-right { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
}

/* Section heading row: label + H2 at left, a short lede at right on wide screens. */
.vst-shead { margin-bottom: clamp(28px, 4vw, 48px); }
.vst-shead h2 { margin-bottom: .35em; }
.vst-shead p:not(.vst-label) { max-width: 680px; color: var(--muted); margin-bottom: 0; }

/* Ruled two-column list (services, campaign tools) */
.vst-ruled { margin: 0 0 1.4em; columns: 2 260px; column-gap: 48px; }
.vst-ruled li { break-inside: avoid; padding: 11px 0 10px 28px; border-bottom: 1px solid var(--line); font: 500 1.0625rem/1.35 var(--display); color: var(--navy); position: relative; }
.vst-ruled li::before { content: ""; position: absolute; left: 2px; top: 1.05em; width: 13px; height: 8px; background: linear-gradient(to right, var(--navy) 0 4px, transparent 4px 8px, var(--bolt) 8px); transform: skewX(-20deg); }

/* ---------- photos: square corners, one corner cut on the slant ---------- */
.vst-photo { margin: 0; position: relative; }
.vst-photo img { width: 100%; height: 100%; object-fit: cover; background: var(--paper); clip-path: polygon(0 0, calc(100% - 34px) 0, 100% 34px, 100% 100%, 0 100%); }
.vst-photo figcaption { margin-top: 10px; font: 500 .9375rem/1.4 var(--display); color: var(--muted); padding-left: 14px; border-left: 3px solid var(--bolt); }
.vst-photo--wide img { aspect-ratio: 3 / 2; }
.vst-photo--card img { aspect-ratio: 3 / 2; }
.vst-photo--opp img { aspect-ratio: 4 / 3; }
.vst-photo--tall img { aspect-ratio: 3 / 4; }
.vst-photo--portrait img { aspect-ratio: 5 / 7; object-position: center top; }
.vst-img--tower-monopine { object-position: center 70%; }
.vst-img--tower-water { object-position: center 30%; }
.vst-img--tower-flagpole { object-position: 60% 40%; }
.vst-img--tower-monopole { object-position: center 0%; }

/* ---------- home hero: an editorial spread. Headline top-left, the photos in a tall slab cut like the bolt (a parallelogram) in
   the middle, the supporting text bottom-right, so the page reads along the bolt's diagonal. ---------- */
.vst-hero { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px 40px; padding: clamp(32px, 5vw, 64px) max(var(--gut), calc((100% - var(--wrap)) / 2)) clamp(40px, 5vw, 64px); background: #fff; }
.vst-hero__head h1 { margin: 0 0 22px; }
.vst-hero__body { max-width: 34em; }
.vst-hero__sub { font-size: clamp(1.0625rem, 1rem + .3vw, 1.1875rem); line-height: 1.7; margin-bottom: 1.4em; }
.vst-hero__act { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin: 0 0 28px; }
.vst-hero__facts { list-style: none; margin: 0; padding: 16px 0 0; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 8px 20px; font: 600 .8125rem/1.3 var(--display); letter-spacing: .12em; text-transform: uppercase; color: var(--navy); }
.vst-hero__facts li { display: inline-flex; align-items: center; gap: 10px; }
.vst-hero__facts li + li::before { content: ""; width: 6px; height: 16px; background: var(--bolt); transform: skewX(-20deg); }

.vst-banner { position: relative; --cut: 28px; }
.vst-banner__stage { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--paper); clip-path: polygon(var(--cut) 0, 100% 0, calc(100% - var(--cut)) 100%, 0 100%); }
.vst-banner__frame { position: relative; }
.vst-banner__frame::before { content: ""; position: absolute; top: 0; bottom: 0; left: -22px; width: 100%; background: var(--bolt); clip-path: polygon(var(--cut) 0, calc(var(--cut) + 8px) 0, 8px 100%, 0 100%); }
.vst-banner__slide { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity 1.6s ease; }
.vst-banner__slide.is-on { opacity: 1; }
.vst-banner__slide img { width: 100%; height: 100%; object-fit: cover; }
.vst-banner__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; padding-top: 10px; }
.vst-banner__cap { flex: 1 1 100%; margin: 0; font: 500 .9375rem/1.35 var(--display); color: var(--muted); }
.vst-banner__ctl { display: flex; align-items: center; gap: 2px; flex: none; margin-left: -10px; }
.vst-banner__dot { width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border: 0; background: none; cursor: pointer; }
.vst-banner__dot span { width: 22px; height: 8px; border: 1.5px solid var(--navy); transform: skewX(-20deg); transition: background-color .2s; }
.vst-banner__dot[aria-current] span { background: var(--navy); }
.vst-banner__dot:hover span { background: var(--bolt); }
.vst-banner__pause { width: 44px; height: 44px; display: grid; place-items: center; margin-left: 8px; padding: 0; border: 1.5px solid var(--navy); border-radius: 0; background: #fff; color: var(--navy); cursor: pointer; }
.vst-banner__pause .vst-ico { width: 20px; height: 20px; stroke-width: 2.4; }
.vst-banner__pause .vst-ico--play, .vst-banner__pause.is-paused .vst-ico--pause { display: none; }
.vst-banner__pause.is-paused .vst-ico--play { display: block; }
.vst-banner__pause:hover { background: var(--paper); }
@media (min-width: 640px) and (max-width: 1099px) {
	.vst-hero { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); }
	.vst-hero__head { grid-column: 1 / -1; }
	.vst-hero__media { grid-column: 1; }
	.vst-hero__body { grid-column: 2; align-self: end; padding-bottom: 60px; }
	.vst-banner { --cut: 48px; }
	.vst-banner__stage { aspect-ratio: 4 / 5; }
}
@media (min-width: 1100px) {
	.vst-hero { grid-template-columns: minmax(0, 4.6fr) minmax(0, 3.2fr) minmax(0, 4.2fr); gap: 0 44px; min-height: min(700px, calc(100vh - 77px)); align-items: stretch; }
	.vst-hero__head { align-self: start; padding-top: 8px; }
	.vst-hero__head h1 { font-size: clamp(3rem, 1.2rem + 3.2vw, 4.25rem); line-height: 1.02; }
	.vst-hero__media { display: flex; flex-direction: column; }
	.vst-banner { flex: 1; display: flex; flex-direction: column; --cut: 64px; }
	.vst-banner__frame { flex: 1; display: flex; }
	.vst-banner__stage { flex: 1; aspect-ratio: auto; min-height: 470px; }
	.vst-banner__bar { height: 104px; align-content: flex-start; }
	.vst-hero__head { display: flex; flex-direction: column; align-self: stretch; padding-bottom: 104px; }
	.vst-hero__head .vst-hero__facts { margin-top: auto; }
	.vst-hero__body { align-self: end; padding-bottom: 104px; }
}

/* ---------- practice cards ---------- */
.vst-cards { display: grid; gap: 40px 32px; }
.vst-cards__card { position: relative; display: flex; flex-direction: column; }
.vst-cards__card .vst-photo { margin-bottom: 22px; }
.vst-cards__h { margin-bottom: .45em; }
.vst-cards__h a { color: var(--navy); text-decoration: none; }
.vst-cards__h a::after { content: ""; position: absolute; inset: 0; }
.vst-cards__card:hover .vst-cards__h a, .vst-cards__h a:focus-visible { text-decoration: underline; text-decoration-color: var(--bolt); text-decoration-thickness: 3px; text-underline-offset: .2em; }
.vst-cards__h a:focus-visible { outline: none; }
.vst-cards__card:focus-within { outline: 3px solid var(--navy); outline-offset: 8px; }
.vst-cards__card p { margin-bottom: .8em; }
.vst-more { margin-top: auto !important; display: inline-flex; align-items: center; gap: .4em; font: 600 1rem var(--display); color: var(--navy); }
.vst-cards__board { aspect-ratio: 3 / 2; margin-bottom: 22px; padding: clamp(18px, 2.4vw, 28px); background: var(--navy); color: #fff; clip-path: polygon(0 0, calc(100% - 34px) 0, 100% 34px, 100% 100%, 0 100%); display: flex; flex-direction: column; justify-content: center; }
.vst-cards__board-h { margin: 0 0 12px; font: 600 .8125rem/1.3 var(--display); letter-spacing: .14em; text-transform: uppercase; color: var(--bolt); }
.vst-cards__board ul { list-style: none; margin: 0; padding: 0; columns: 2; column-gap: 20px; }
.vst-cards__board li { font: 500 1rem/1.3 var(--display); padding: 6px 0; border-bottom: 1px solid rgba(255, 255, 255, .22); break-inside: avoid; }
/* the campaign-team panel beside text (policy page) */
.vst-board--aside { aspect-ratio: auto; padding: clamp(24px, 3vw, 36px); }
.vst-cols .vst-photo--tall { max-width: 420px; }
@media (min-width: 800px) { .vst-cards--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .vst-cards--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---------- sectors ---------- */
.vst-sectors { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); column-gap: 32px; border-top: 2px solid var(--navy); }
.vst-sectors li { display: flex; align-items: center; gap: 12px; padding: 12px 0 11px; border-bottom: 1px solid var(--line); font: 500 1.0625rem/1.3 var(--display); color: var(--navy); }
.vst-sectors li::before { content: ""; width: 6px; height: 15px; flex: none; background: var(--bolt); transform: skewX(-20deg); }

/* ---------- the agenda (how we work) ---------- */
.vst-agenda { list-style: none; margin: 0; padding: 0; display: grid; column-gap: 56px; counter-reset: none; }
.vst-agenda__item { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 0 20px; padding: 26px 0 22px; border-top: 1px solid var(--line); }
.vst-agenda__item:first-child { border-top: 2px solid var(--navy); }
.vst-agenda__no { margin: 0; font: 700 2rem/1 var(--display); color: var(--navy); font-variant-numeric: lining-nums tabular-nums; }
.vst-agenda__no span { display: block; margin-bottom: 6px; font-size: .75rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--red); }
.vst-agenda__h { margin: 0 0 .35em; font-size: 1.3rem; }
.vst-agenda__item p:last-child { margin: 0; }
@media (min-width: 900px) {
	.vst-agenda__item { grid-template-columns: 96px minmax(0, 1fr); }
	.vst-agenda__no { font-size: 2.5rem; }
	.vst-agenda { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-flow: row; }
	.vst-agenda__item:nth-child(2) { border-top: 2px solid var(--navy); }
}

/* ---------- who we serve ---------- */
.vst-aud { display: grid; gap: 28px 32px; }
.vst-aud__item { position: relative; padding: 26px 0 0; border-top: 3px solid var(--navy); }
.vst-aud__item::before { content: ""; position: absolute; left: 0; top: -3px; width: 44px; height: 3px; background: var(--bolt); }
.vst-aud__h { font-size: 1.3rem; margin-bottom: .45em; }
.vst-aud__item p { margin-bottom: .8em; }
.vst-aud__tags { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.vst-aud__tags li { padding: 7px 12px 5px; border: 1px solid var(--line); background: #fff; font: 500 .9375rem/1.2 var(--display); color: var(--navy); }
.vst-sec--paper .vst-aud__tags li { background: #fff; }
@media (min-width: 700px) { .vst-aud { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .vst-aud:not(.vst-aud--full) { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.vst-aud--full { gap: 44px 56px; }

/* ---------- founder + record ---------- */
.vst-founder { display: grid; gap: 32px 64px; align-items: start; }
.vst-founder .vst-photo { max-width: 260px; }
@media (min-width: 900px) { .vst-founder .vst-photo { max-width: 340px; } }
.vst-founder__txt h2 { margin-bottom: .45em; }
.vst-record-short { list-style: none; margin: 24px 0 26px; padding: 0; border-top: 2px solid var(--navy); }
.vst-record-short li { padding: 12px 0 11px; border-bottom: 1px solid var(--line); font-size: 1rem; line-height: 1.5; }
.vst-record-short strong { display: block; font: 600 1.0625rem/1.3 var(--display); color: var(--navy); }
.vst-record { margin: 0 0 1.4em; border-top: 2px solid var(--navy); }
.vst-record > div { display: grid; gap: 2px 32px; padding: 14px 0 13px; border-bottom: 1px solid var(--line); }
.vst-record dt { font: 600 1.0625rem/1.35 var(--display); color: var(--navy); }
.vst-record dd { margin: 0; color: var(--text); font-size: 1rem; }
@media (min-width: 700px) { .vst-record > div { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }
@media (min-width: 900px) { .vst-founder { grid-template-columns: 320px minmax(0, 1fr); } }

/* ---------- opportunities ---------- */
.vst-opps { display: grid; gap: 36px 28px; }
.vst-opps__card { position: relative; display: flex; flex-direction: column; }
.vst-opps__card .vst-photo, .vst-opps__none { margin-bottom: 18px; }
.vst-opps__none { aspect-ratio: 4 / 3; display: flex; flex-direction: column; justify-content: center; padding: clamp(18px, 2vw, 26px); background: var(--navy); color: #fff; clip-path: polygon(0 0, calc(100% - 34px) 0, 100% 34px, 100% 100%, 0 100%); }
.vst-opps__none-k { margin: 0 0 10px; font: 600 .8125rem/1.3 var(--display); letter-spacing: .14em; text-transform: uppercase; color: var(--bolt); }
.vst-opps__none .vst-opps__none-t { margin: 0; font: 600 1.25rem/1.25 var(--display); }
.vst-opps__h { font-size: 1.25rem; margin-bottom: .4em; }
.vst-opps__h a { color: var(--navy); text-decoration: none; }
.vst-opps__h a::after { content: ""; position: absolute; inset: 0; }
.vst-opps__card:hover .vst-opps__h a { text-decoration: underline; text-decoration-color: var(--bolt); text-decoration-thickness: 3px; text-underline-offset: .2em; }
.vst-opps__h a:focus-visible { outline: none; }
.vst-opps__card:focus-within { outline: 3px solid var(--navy); outline-offset: 8px; }
.vst-opps__card p { margin: 0; font-size: 1rem; }
@media (min-width: 640px) { .vst-opps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .vst-opps { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* ---------- wireless site types ---------- */
.vst-types { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; }
.vst-types figcaption { font-family: var(--serif); font-weight: 400; font-size: .9375rem; line-height: 1.5; color: var(--text); }
.vst-types figcaption strong { display: block; font: 700 1.125rem/1.2 var(--display); color: var(--navy); }
.vst-types__k { display: block; font: 600 .75rem/1.3 var(--display); letter-spacing: .14em; text-transform: uppercase; color: var(--red); margin-bottom: 2px; }
@media (min-width: 800px) { .vst-types { grid-template-columns: repeat(5, minmax(0, 1fr)); } .vst-types--3 { grid-template-columns: repeat(3, minmax(0, 260px)); } }

/* ---------- project path (drawing board to opening day) ---------- */
.vst-path { list-style: none; margin: 0 0 1.4em; padding: 0; display: grid; gap: 0; counter-reset: step; }
.vst-path li { position: relative; padding: 16px 0 16px 46px; border-left: 2px solid var(--navy); margin-left: 10px; counter-increment: step; }
.vst-path li::before { content: counter(step); position: absolute; left: -14px; top: 14px; width: 26px; height: 26px; display: grid; place-items: center; background: var(--navy); color: #fff; font: 700 .875rem/1 var(--display); }
.vst-path strong { display: block; font: 700 1.1875rem/1.2 var(--display); color: var(--navy); }
.vst-path span { font-size: 1rem; color: var(--muted); }
@media (min-width: 900px) {
	.vst-path { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
	.vst-path li { border-left: 0; border-top: 2px solid var(--navy); margin: 0; padding: 26px 8px 0 0; }
	.vst-path li::before { left: 0; top: -14px; }
	.vst-path li::after { content: ""; position: absolute; right: 12px; top: -8px; width: 8px; height: 14px; background: var(--bolt); transform: skewX(-20deg); }
	.vst-path li:last-child::after { display: none; }
}

/* ---------- inner page head ---------- */
.vst-head { padding: clamp(28px, 4vw, 44px) max(var(--gut), calc((100% - var(--wrap)) / 2)) clamp(36px, 5vw, 60px); background: var(--paper); border-bottom: 1px solid var(--line); }
.vst-head h1 { max-width: 20ch; margin-bottom: .35em; }
.vst-head .vst-lede { max-width: 46em; margin-bottom: 0; }
.vst-crumbs ol { list-style: none; margin: 0 0 22px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 0; font: 500 .9375rem/1.4 var(--display); color: var(--muted); }
.vst-crumbs li + li::before { content: "/"; margin: 0 10px; color: var(--red); font-weight: 600; }
.vst-crumbs a { color: var(--navy); }

/* ---------- closing call to action ---------- */
.vst-cta { display: grid; gap: 20px 48px; align-items: center; padding: clamp(32px, 4vw, 48px) 0; border-top: 4px solid var(--navy); border-bottom: 1px solid var(--line); position: relative; }
.vst-cta::before { content: ""; position: absolute; left: 0; top: -4px; width: 120px; height: 4px; background: var(--bolt); }
.vst-cta__h { font-size: clamp(2rem, 1.4rem + 2.4vw, 3.25rem); margin: 0 0 .2em; }
.vst-cta__txt p { margin: 0; font-size: 1.125rem; max-width: 34em; }
.vst-cta__act { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.vst-cta__or { font: 500 1.0625rem var(--display); }
@media (min-width: 900px) { .vst-cta { grid-template-columns: minmax(0, 1fr) auto; } }

/* ---------- contact ---------- */
.vst-ccard { padding: clamp(22px, 3vw, 32px); background: var(--paper); border-top: 4px solid var(--navy); }
.vst-ccard__h { margin: 0 0 12px; font: 700 1.375rem/1.2 var(--display); color: var(--navy); }
.vst-ccard__steps { margin: 0 0 18px; padding-left: 1.3em; }
.vst-ccard__steps li { margin-bottom: .35em; }
.vst-ccard__list { list-style: none; margin: 0 0 16px; padding: 14px 0 0; border-top: 1px solid var(--line); }
.vst-ccard__list li { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 10px; font: 500 1.0625rem/1.45 var(--display); color: var(--navy); }
.vst-ccard__list .vst-ico { margin-top: .15em; }
.vst-ccard__note { font-size: .9375rem; color: var(--text); margin: 0 0 .8em; }
.vst-ccard__note:last-child { margin: 0; }

/* ---------- Ninja Forms (the theme styles the fields) ---------- */
.vst-form { scroll-margin-top: 110px; }
.vst-nf .nf-form-title { display: none; }
.vst-nf .nf-form-fields-required { margin: 0 0 18px; font-size: .9375rem; color: var(--muted); }
.vst-nf .nf-field-container { margin: 0 0 20px; }
.vst-nf .nf-field-label label, .vst-nf .nf-field-label .nf-label-span, .vst-nf legend { display: block; margin: 0 0 6px; font: 600 1rem/1.3 var(--display); color: var(--navy); }
.vst-nf .ninja-forms-req-symbol { color: var(--error); margin-left: 2px; }
.vst-nf .nf-field-description { margin: 6px 0 0; font-size: .9375rem; line-height: 1.55; color: var(--muted); }
.vst-nf .nf-field-description p { margin: 0; }
.vst-nf .desc-after_field .nf-field-description { order: 20; } /* Ninja Forms' structure CSS would put it above the input */
.vst-nf .field-wrap { flex-wrap: wrap; }
.vst-nf input[type="text"], .vst-nf input[type="email"], .vst-nf input[type="tel"], .vst-nf input[type="number"], .vst-nf select, .vst-nf textarea {
	width: 100%; min-height: 50px; padding: 12px 14px 10px; font: 400 1rem/1.4 var(--serif); color: var(--text); background: #fff;
	border: 1.5px solid var(--field); border-radius: 0; appearance: none;
}
.vst-nf select { padding-right: 40px; background-image: linear-gradient(45deg, transparent 50%, var(--navy) 50%), linear-gradient(135deg, var(--navy) 50%, transparent 50%); background-position: calc(100% - 22px) 52%, calc(100% - 16px) 52%; background-size: 6px 6px; background-repeat: no-repeat; }
.vst-nf textarea { min-height: 150px; resize: vertical; }
.vst-nf input:focus-visible, .vst-nf select:focus-visible, .vst-nf textarea:focus-visible { outline: 3px solid var(--navy); outline-offset: 1px; border-color: var(--navy); }
.vst-nf .listradio-wrap ul, .vst-nf .listcheckbox-wrap ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 10px; }
.vst-nf .listradio-wrap li, .vst-nf .listcheckbox-wrap li { position: relative; margin: 0; }
.vst-nf .listradio-wrap input, .vst-nf .listcheckbox-wrap input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.vst-nf .listradio-wrap .nf-field-element li label, .vst-nf .listcheckbox-wrap .nf-field-element li label { margin: 0; }
.vst-nf .listradio-wrap li label, .vst-nf .listcheckbox-wrap li label { display: inline-flex; align-items: center; gap: 9px; min-height: 46px; padding: 9px 16px 7px; border: 1.5px solid var(--field); background: #fff; font: 500 1rem/1.25 var(--display); color: var(--navy); cursor: pointer; }
.vst-nf .listradio-wrap li label::before, .vst-nf .listcheckbox-wrap li label::before { content: ""; width: 14px; height: 14px; border: 1.5px solid var(--navy); flex: none; margin-top: -2px; }
.vst-nf .listradio-wrap li label::before { border-radius: 50%; }
.vst-nf .listradio-wrap input:checked + label, .vst-nf .listradio-wrap li label.nf-checked-label, .vst-nf .listcheckbox-wrap input:checked + label, .vst-nf .listcheckbox-wrap li label.nf-checked-label { border-color: var(--navy); background: var(--paper); box-shadow: inset 0 -3px 0 var(--bolt); }
.vst-nf .listradio-wrap input:checked + label::before, .vst-nf .listradio-wrap li label.nf-checked-label::before, .vst-nf .listcheckbox-wrap input:checked + label::before, .vst-nf .listcheckbox-wrap li label.nf-checked-label::before { background: var(--navy); box-shadow: inset 0 0 0 2.5px #fff; }
.vst-nf .listradio-wrap input:focus-visible + label, .vst-nf .listcheckbox-wrap input:focus-visible + label { outline: 3px solid var(--navy); outline-offset: 2px; }
.vst-nf .nf-error .ninja-forms-field, .vst-nf .nf-error input, .vst-nf .nf-error textarea, .vst-nf .nf-error select { border-color: var(--error); border-width: 2px; }
.vst-nf .nf-error-msg, .vst-nf .nf-error-required { color: var(--error); font: 600 .9375rem/1.4 var(--display); margin-top: 6px; }
.vst-nf .nf-form-errors .nf-error-msg { padding: 12px 14px; background: #FBEDEC; border-left: 4px solid var(--error); margin: 0 0 16px; }
.vst-nf .nf-field-element { position: relative; }
.vst-nf .submit-wrap { margin-top: 6px; }
.vst-nf .submit-wrap input[type="submit"] { min-height: 54px; padding-right: 2.6em; font-size: 1.0625rem; }
@media (min-width: 640px) {
	.vst-nf nf-fields-wrap { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 20px; }
	.vst-nf nf-field { grid-column: 1 / -1; }
	.vst-nf nf-field:has(.vst-half) { grid-column: auto; }
}
.vst-thanks { padding: clamp(24px, 3vw, 36px); background: var(--paper); border-top: 4px solid var(--navy); }
.vst-thanks:focus { outline: none; }
.vst-thanks__check { width: 56px; height: 56px; display: grid; place-items: center; margin-bottom: 16px; background: var(--navy); color: #fff; clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%); }
.vst-thanks__check .vst-ico { width: 30px; height: 30px; stroke-width: 2.4; }
.vst-thanks h2 { font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem); }
.vst-thanks ol { padding-left: 1.3em; }
.vst-confetti { position: fixed; inset: 0; z-index: 90; pointer-events: none; }

/* ---------- footer: the one dark band ---------- */
.vst-foot { background: var(--navy-deep); color: rgba(255, 255, 255, .9); font-size: 1rem; padding-bottom: 0; }
.vst-foot a { color: #fff; text-decoration: none; }
.vst-foot a:hover { text-decoration: underline; text-decoration-color: var(--bolt); }
.vst-foot :focus-visible { outline-color: var(--bolt); }
.vst-foot__in { max-width: calc(var(--wrap) + 2 * var(--gut)); margin: 0 auto; padding: clamp(48px, 6vw, 72px) var(--gut) 36px; display: grid; gap: 36px 40px; }
.vst-foot__plate { display: inline-block; padding: 14px 22px 14px 18px; background: #fff; line-height: 0; clip-path: polygon(0 0, 100% 0, calc(100% - 16px) 100%, 0 100%); }
.vst-foot__plate .vst-logo { height: 52px; }
.vst-foot__plate:focus-visible { outline: 3px solid var(--bolt); outline-offset: -3px; }
.vst-foot__about { margin: 20px 0 16px; max-width: 30em; line-height: 1.65; }
.vst-foot__facts { list-style: none; margin: 0; padding: 0; }
.vst-foot__facts li { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; font: 500 1.0625rem/1.4 var(--display); }
.vst-foot__facts .vst-ico { color: var(--bolt); }
.vst-foot__facts a { text-decoration: underline; text-decoration-color: rgba(254, 191, 15, .7); text-underline-offset: .2em; }
.vst-foot__h { margin: 4px 0 14px; font: 600 .8125rem/1.3 var(--display); letter-spacing: .16em; text-transform: uppercase; color: var(--bolt); }
.vst-foot__col ul { list-style: none; margin: 0; padding: 0; }
.vst-foot__col li { margin-bottom: 8px; }
.vst-foot__col a { font: 500 1.0625rem/1.4 var(--display); }
.vst-foot__base { max-width: calc(var(--wrap) + 2 * var(--gut)); margin: 0 auto; padding: 18px var(--gut) 24px; border-top: 1px solid rgba(255, 255, 255, .18); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 24px; font-size: .875rem; color: rgba(255, 255, 255, .82); }
.vst-foot__base p { margin: 0; }
.vst-foot__base a.vst-credit { color: #fff; text-decoration: underline; text-underline-offset: .18em; text-decoration-color: rgba(255, 255, 255, .6); }
.vst-foot__base a.vst-credit:hover, .vst-foot__base a.vst-credit:focus-visible { text-decoration: underline; text-decoration-color: var(--bolt); }
@media (min-width: 700px) { .vst-foot__in { grid-template-columns: repeat(3, minmax(0, 1fr)); } .vst-foot__co { grid-column: 1 / -1; } }
@media (min-width: 1100px) { .vst-foot__in { grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)); } .vst-foot__co { grid-column: auto; } }

/* ---------- phone bar: phones only, exactly Call + Schedule (one Schedule button until a phone is published) ---------- */
.vst-callbar { display: none; }
@media (max-width: 767px) {
	body { padding-bottom: 64px; }
	.vst-callbar { display: grid; grid-template-columns: 1fr 1.5fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -6px 16px rgba(24, 34, 74, .1); padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); gap: 8px; }
	.vst-callbar--one { grid-template-columns: 1fr; }
	.vst-callbar a { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; font: 600 1.0625rem/1 var(--display); text-decoration: none; }
	.vst-foot .vst-callbar a { color: var(--navy); text-decoration: none; }
	.vst-callbar__call { border: 1.5px solid var(--navy); color: var(--navy) !important; background: #fff; }
	.vst-foot .vst-callbar .vst-callbar__book { background: var(--navy); color: #fff; clip-path: polygon(0 0, 100% 0, calc(100% - 14px) 100%, 0 100%); padding-right: 14px; }
	.vst-callbar a:focus-visible { outline: 3px solid var(--navy); outline-offset: 2px; }
	.vst-foot .vst-callbar .vst-callbar__book:focus-visible { outline: 2px solid #fff; outline-offset: -6px; }
}

/* ---------- 404 ---------- */
.vst-404 { max-width: 760px; }

/* ---------- the one quiet fade-in ---------- */
.vst-js .vst-rise { opacity: 0; transform: translateY(14px); transition: opacity .7s ease, transform .7s ease; }
.vst-js .vst-rise.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
	.vst-js .vst-rise { opacity: 1; transform: none; }
}

/* core block bits used in pages */
.wp-block-group { box-sizing: border-box; }
.wp-block-image { margin: 0; }
.wp-block-image.vst-photo { margin-bottom: 24px; }
.wp-block-columns { gap: 32px 56px; }
.vst-sec .wp-block-heading:first-child { margin-top: 0; }
