/* Vanguard Federal Logistics — theme utility styles */

:root{
  --vfl-navy:#0B2447; --vfl-navy-deep:#081A33; --vfl-red:#B3272D; --vfl-red-deep:#8C1F24;
  --vfl-ink:#101828; --vfl-muted:#5B6472; --vfl-border:#D9DCE3; --vfl-bg:#F4F5F7; --vfl-white:#FFFFFF;
}

body{ overflow-x:hidden; }
.wp-site-blocks{ overflow-x:hidden; }

/* ---------- Header ---------- */
.vfl-header{ position:sticky; top:0; z-index:100; background:#fff; border-bottom:1px solid var(--vfl-border); }
.vfl-header-inner{ max-width:1200px; margin:0 auto; display:flex; align-items:center; justify-content:space-between; padding:10px 24px; gap:24px; }
.vfl-logo{ display:flex; align-items:center; gap:10px; text-decoration:none !important; flex-shrink:0; }
.vfl-logo svg, .vfl-logo img{ height:68px; width:auto; display:block; }
.vfl-header .vfl-logo img{ height:100px; width:auto; display:block; }
.vfl-footer .vfl-logo img{ height:84px; width:auto; display:block; }
.vfl-nav-wrap{ display:flex; align-items:center; gap:28px; flex:1; justify-content:flex-end; }
.vfl-primary-nav ul{ display:flex; list-style:none; margin:0; padding:0; gap:26px; }
.vfl-primary-nav a{ font-family: var(--wp--preset--font-family--archivo), Arial, sans-serif; font-weight:700; font-size:0.95rem; color:var(--vfl-navy); text-decoration:none; letter-spacing:.01em; padding:8px 0; }
.vfl-primary-nav a:hover{ color:var(--vfl-red); }
.vfl-header-cta{ display:inline-block; background:var(--vfl-red); color:#fff !important; font-family: var(--wp--preset--font-family--archivo), Arial, sans-serif; font-weight:700; font-size:0.92rem; text-decoration:none !important; padding:12px 22px; border-radius:2px; white-space:nowrap; }
.vfl-header-cta:hover{ background:var(--vfl-red-deep); color:#fff !important; }
.vfl-menu-toggle{ display:none; background:none; border:1px solid var(--vfl-border); border-radius:2px; padding:8px 10px; cursor:pointer; }
.vfl-menu-toggle span{ display:block; width:22px; height:2px; background:var(--vfl-navy); margin:4px 0; }

@media (max-width: 900px){
  .vfl-nav-wrap{ position:fixed; inset:64px 0 0 0; background:#fff; flex-direction:column; align-items:stretch; justify-content:flex-start; padding:24px; gap:20px; transform:translateX(100%); transition:transform .18s ease; overflow-y:auto; }
  .vfl-nav-wrap.is-open{ transform:translateX(0); }
  .vfl-primary-nav ul{ flex-direction:column; gap:4px; }
  .vfl-primary-nav a{ display:block; padding:14px 4px; border-bottom:1px solid var(--vfl-border); }
  .vfl-header-cta{ text-align:center; }
  .vfl-menu-toggle{ display:block; }
}

/* ---------- Sections & bands ---------- */
.vfl-section{ padding:64px 24px; }
.vfl-section-inner{ max-width:1200px; margin:0 auto; }
.vfl-section-tight{ padding:40px 24px; }
.vfl-band-navy{ background:var(--vfl-navy); color:#fff; }
.vfl-band-navy h2, .vfl-band-navy h3{ color:#fff; }
.vfl-band-navy p{ color:#C9D2E0; }
.vfl-band-navy a:not(.wp-block-button__link){ color:#fff; }
.vfl-band-deep{ background:var(--vfl-navy-deep); color:#fff; }

.vfl-kicker{ font-family: var(--wp--preset--font-family--archivo), Arial, sans-serif; font-weight:700; font-size:0.8rem; letter-spacing:.08em; text-transform:uppercase; color:var(--vfl-red); margin:0 0 10px; }

/* ---------- Credibility bar ---------- */
.vfl-cred-bar{ background:var(--vfl-navy-deep); color:#fff; padding:18px 24px; }
.vfl-cred-list{ max-width:1200px; margin:0 auto; list-style:none; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:0; padding:0; }
.vfl-cred-list li{ font-size:0.85rem; font-weight:600; letter-spacing:.02em; padding:6px 20px; border-right:1px solid rgba(255,255,255,.22); white-space:nowrap; }
.vfl-cred-list li:last-child{ border-right:none; }
@media (max-width:780px){ .vfl-cred-list li{ border-right:none; padding:5px 12px; flex:1 1 45%; text-align:center; } }

/* ---------- Process strip ---------- */
.vfl-process{ display:flex; align-items:stretch; justify-content:center; gap:0; max-width:1200px; margin:0 auto; flex-wrap:wrap; }
.vfl-process-step{ flex:1 1 0; min-width:150px; text-align:center; padding:0 18px; position:relative; }
.vfl-process-step .num{ font-family: var(--wp--preset--font-family--archivo), Arial, sans-serif; font-weight:800; font-size:1.6rem; color:var(--vfl-red); display:block; margin-bottom:6px; }
.vfl-process-step .label{ font-family: var(--wp--preset--font-family--archivo), Arial, sans-serif; font-weight:700; font-size:1rem; color:#fff; text-transform:uppercase; letter-spacing:.03em; }
.vfl-process-step:not(:last-child)::after{ content:"\2192"; position:absolute; right:-4px; top:2px; color:var(--vfl-red); font-size:1.4rem; }
@media (max-width:780px){ .vfl-process{ flex-direction:column; gap:22px; } .vfl-process-step:not(:last-child)::after{ content:"\2193"; right:auto; left:50%; top:auto; bottom:-20px; transform:translateX(-50%); } }

/* ---------- Cards ---------- */
.vfl-cards{ display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:24px; }
.vfl-cards--3{ grid-template-columns:repeat(3, 1fr); }
.vfl-cards--2{ grid-template-columns:repeat(2, 1fr); }
@media (max-width:900px){ .vfl-cards--3, .vfl-cards--2{ grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); } }
.vfl-card{ background:#fff; border:1px solid var(--vfl-border); border-top:3px solid var(--vfl-navy); padding:28px 26px; border-radius:2px; }
.vfl-card--red{ border-top-color:var(--vfl-red); }
.vfl-card h3{ font-size:1.15rem; margin:0 0 10px; }
.vfl-card p{ color:var(--vfl-muted); margin:0 0 14px; font-size:0.96rem; }
.vfl-card a.vfl-card-link{ font-family: var(--wp--preset--font-family--archivo), Arial, sans-serif; font-weight:700; font-size:0.88rem; color:var(--vfl-navy); text-decoration:none; }
.vfl-card a.vfl-card-link:hover{ color:var(--vfl-red); }
.vfl-card-icon{ margin-bottom:14px; }
.vfl-card-icon svg{ width:34px; height:34px; }

/* ---------- Badges & facts ---------- */
.vfl-badge{ display:inline-block; font-family: var(--wp--preset--font-family--archivo), Arial, sans-serif; font-size:0.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; padding:5px 10px; border:1px solid var(--vfl-navy); color:var(--vfl-navy); border-radius:2px; }
.vfl-fact-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:0; border-top:1px solid var(--vfl-border); border-left:1px solid var(--vfl-border); }
.vfl-fact{ border-right:1px solid var(--vfl-border); border-bottom:1px solid var(--vfl-border); padding:20px 22px; background:#fff; }
.vfl-fact .k{ display:block; font-family: var(--wp--preset--font-family--archivo), Arial, sans-serif; font-size:0.72rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--vfl-muted); margin-bottom:6px; }
.vfl-fact .v{ font-family: var(--wp--preset--font-family--archivo), Arial, sans-serif; font-size:1.15rem; font-weight:800; color:var(--vfl-navy); }

/* ---------- Quote/callout box ---------- */
.vfl-callout{ background:#fff; border:1px solid var(--vfl-border); border-left:4px solid var(--vfl-red); padding:32px; }
.vfl-callout h3{ margin-top:0; }

/* ---------- Hero ---------- */
.vfl-hero{ background:var(--vfl-navy); color:#fff; padding:76px 24px 64px; position:relative; overflow:hidden; }
.vfl-hero-inner{ max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center; }
.vfl-hero h1{ color:#fff; font-size:clamp(2.1rem, 4vw, 3.25rem); line-height:1.08; margin:0 0 20px; }
.vfl-hero p{ color:#C9D2E0; font-size:1.1rem; max-width:46ch; margin:0 0 30px; }
.vfl-hero-ctas{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; }
.vfl-hero-ctas .text-link{ color:#fff; font-weight:700; font-family: var(--wp--preset--font-family--archivo), Arial, sans-serif; text-decoration:underline; align-self:center; }
.vfl-hero-graphic{ justify-self:end; }
@media (max-width:900px){ .vfl-hero-inner{ grid-template-columns:1fr; } .vfl-hero-graphic{ display:none; } }

/* ---------- Footer ---------- */
.vfl-footer{ background:var(--vfl-navy-deep); color:#C9D2E0; padding:56px 24px 0; }
.vfl-footer-inner{ max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:36px; padding-bottom:40px; }
.vfl-footer h4{ color:#fff; font-size:0.85rem; letter-spacing:.05em; text-transform:uppercase; margin:0 0 16px; }
.vfl-footer ul{ list-style:none; margin:0; padding:0; }
.vfl-footer li{ margin-bottom:10px; }
.vfl-footer a{ color:#C9D2E0 !important; text-decoration:none !important; font-size:0.92rem; }
.vfl-footer a:hover{ color:#fff !important; }
.vfl-footer-bottom{ border-top:1px solid rgba(255,255,255,.14); padding:20px 24px; }
.vfl-footer-bottom-inner{ max-width:1200px; margin:0 auto; display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; font-size:0.82rem; color:#8C97AC; }
.vfl-footer-bottom a{ color:#8C97AC !important; text-decoration:none !important; }
.vfl-footer-bottom a:hover{ color:#fff !important; }
@media (max-width:900px){ .vfl-footer-inner{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .vfl-footer-inner{ grid-template-columns:1fr; } }

/* ---------- Forms (Contact Form 7) ---------- */
.vfl-form-wrap{ background:#fff; border:1px solid var(--vfl-border); padding:32px; }
.vfl-form-wrap .wpcf7-form p{ margin:0 0 16px; }
.vfl-form-wrap label{ display:block; font-family: var(--wp--preset--font-family--archivo), Arial, sans-serif; font-weight:700; font-size:0.82rem; letter-spacing:.02em; margin-bottom:6px; color:var(--vfl-navy); }
.vfl-form-wrap input[type=text], .vfl-form-wrap input[type=email], .vfl-form-wrap input[type=tel], .vfl-form-wrap input[type=date], .vfl-form-wrap input[type=file], .vfl-form-wrap select, .vfl-form-wrap textarea{ width:100%; border:1px solid var(--vfl-border); border-radius:2px; padding:11px 12px; font-family: var(--wp--preset--font-family--public-sans), Arial, sans-serif; font-size:0.96rem; box-sizing:border-box; background:#fff; }
.vfl-form-wrap input:focus, .vfl-form-wrap select:focus, .vfl-form-wrap textarea:focus{ outline:2px solid var(--vfl-navy); outline-offset:1px; }
.vfl-form-wrap .wpcf7-form-control-wrap{ display:block; }
.vfl-form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:640px){ .vfl-form-row{ grid-template-columns:1fr; } }
.vfl-form-wrap .wpcf7-submit{ background:var(--vfl-red); color:#fff; border:none; font-family: var(--wp--preset--font-family--archivo), Arial, sans-serif; font-weight:700; padding:14px 30px; border-radius:2px; cursor:pointer; font-size:0.95rem; }
.vfl-form-wrap .wpcf7-submit:hover{ background:var(--vfl-red-deep); }
.vfl-form-wrap .wpcf7-not-valid-tip{ color:var(--vfl-red); font-size:0.82rem; margin-top:4px; }
.vfl-form-wrap .wpcf7-response-output{ border-radius:2px; margin-top:16px !important; }

/* ---------- Misc ---------- */
.vfl-divider{ height:1px; background:var(--vfl-border); border:none; margin:0; }
.vfl-section-head{ max-width:760px; margin:0 0 40px; }
.vfl-section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.vfl-two-col{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }
@media (max-width:900px){ .vfl-two-col{ grid-template-columns:1fr; } }
.vfl-list-check{ list-style:none; margin:0; padding:0; }
.vfl-list-check li{ position:relative; padding:6px 0 6px 26px; color:var(--vfl-ink); }
.vfl-list-check li::before{ content:""; position:absolute; left:0; top:14px; width:9px; height:9px; background:var(--vfl-red); }
.vfl-table{ width:100%; border-collapse:collapse; }
.vfl-table th, .vfl-table td{ text-align:left; padding:12px 14px; border:1px solid var(--vfl-border); font-size:0.94rem; }
.vfl-table th{ background:var(--vfl-bg); font-family: var(--wp--preset--font-family--archivo), Arial, sans-serif; font-size:0.8rem; text-transform:uppercase; letter-spacing:.03em; color:var(--vfl-navy); }
