:root{--navy:#001439;--navy2:#061d45;--gold:#f5a900;--white:#fff}
*{box-sizing:border-box}
html{scroll-behavior:smooth}

/* Single-item navigation: understated navy text with a gold hand-drawn streak. */
.site-nav{position:absolute;z-index:10;top:68px;right:calc(36% + 166px);display:flex;align-items:center}
.site-nav a{position:relative;display:inline-block;padding:8px 4px 13px;color:var(--navy);font-size:20px;font-weight:700;text-decoration:none;letter-spacing:-.02em}
.site-nav a::after{content:"";position:absolute;left:2px;right:1px;bottom:4px;height:5px;background:var(--gold);border-radius:100% 40% 80% 35%;transform:rotate(-2deg);clip-path:polygon(0 35%,100% 0,96% 75%,4% 100%)}
.site-nav a:hover::after{transform:rotate(1deg) scaleX(1.06)}
.site-nav a:focus-visible{outline:2px solid var(--gold);outline-offset:5px;border-radius:3px}
body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--navy);background:#001439}
.hero{position:relative;z-index:4;isolation:isolate;height:985px;min-height:985px;background:#fff;overflow:visible;padding:28px 0 0}
.hero-copy{position:relative;z-index:3;width:65%;max-width:1000px;padding:0 0 0 clamp(36px,4.1vw,64px)}
.logo{display:block;width:clamp(290px,29vw,430px);height:auto;object-fit:contain;margin:0 0 46px -2px}
h1{font-size:clamp(58px,6.25vw,96px);line-height:.98;letter-spacing:-.055em;font-weight:800;font-style:italic;margin:0;max-width:940px}
.headline-swoosh{display:block;width:440px;max-width:54%;height:42px;overflow:visible;margin:14px 0 23px 200px;transform:rotate(-1deg)}
.tagline{font-size:clamp(20px,2.1vw,34px);font-weight:800;font-style:italic;letter-spacing:-.035em;margin:0 0 30px;white-space:nowrap}
.intro-copy{border-left:9px solid var(--gold);border-radius:5px;padding:0 0 0 23px;max-width:910px}
.intro-copy p{font-size:clamp(19px,1.85vw,29px);line-height:1.22;letter-spacing:-.025em;margin:0;max-width:870px}
.hero-media{position:absolute;z-index:6;right:4px;top:4px;width:32.8%;height:calc(100% + 120px);min-height:0;overflow:hidden;border:5px solid var(--gold);border-radius:48px 26px 26px 48px;background:transparent;transform:translateX(-52px)}
.hero-video{display:block;width:100%;height:100%;object-fit:cover;object-position:center center;background:transparent}
.media-outline{display:none}
.hero-navy-underlay{position:absolute;z-index:1;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden}
.hero-gold-sweep{position:absolute;z-index:2;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden}

/* Police appreciation and fleet-booking section — balanced desktop sizing. */
.police-booking{position:relative;z-index:1;background:linear-gradient(180deg,#001439 0%,#061b42 50%,#001439 100%);color:#fff;padding:22px clamp(22px,3.6vw,56px) 58px;margin-top:-1px;overflow:hidden}
.police-row{width:100%;max-width:1440px;margin:0 auto 42px;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);align-items:center;gap:clamp(18px,2.2vw,32px)}
.police-invitation{display:grid;grid-template-columns:clamp(88px,8vw,124px) 4px minmax(0,1fr);align-items:center;gap:clamp(14px,1.7vw,24px);min-width:0}
.police-emblem{width:100%;max-width:124px;margin:auto}
.police-emblem img{display:block;width:100%;height:auto;overflow:visible}
.police-rule,.quote-rule{display:block;width:4px;height:clamp(86px,8vw,112px);background:var(--gold);border-radius:5px}
.police-heading{min-width:0}
.police-heading p{font-size:clamp(17px,1.55vw,24px);font-weight:800;font-style:italic;line-height:1.08;margin:0 0 3px;letter-spacing:-.025em}
.police-heading h2{font-size:clamp(28px,2.75vw,43px);line-height:1.02;color:var(--gold);font-weight:900;font-style:italic;letter-spacing:-.04em;margin:0;white-space:normal}
.police-swoosh{display:block;width:min(85%,280px);height:10px;border-top:6px solid var(--gold);border-radius:50%;margin:9px 0 0 6%;transform:rotate(-1deg)}
.police-quote{display:grid;grid-template-columns:4px minmax(0,1fr);align-items:center;gap:clamp(14px,1.7vw,24px);min-width:0}
.police-quote p{font-size:clamp(17px,1.55vw,24px);line-height:1.22;font-weight:800;font-style:italic;letter-spacing:-.025em;margin:0}
.police-quote strong{color:var(--gold)}
.booking-grid{width:100%;max-width:1440px;margin:0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,3vw,44px);text-align:center}
.booking-step{display:flex;flex-direction:column;align-items:center;min-width:0}
.booking-icon{width:76px;height:76px;border:3px solid var(--gold);border-radius:21px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 1px rgba(245,169,0,.12),0 8px 22px rgba(245,169,0,.1);margin:0 auto 14px;flex:none}
.booking-icon svg{width:46px;height:46px;fill:none;stroke:#fff;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
.booking-step h3{font-size:clamp(18px,1.5vw,24px);font-weight:800;font-style:italic;line-height:1.12;letter-spacing:-.025em;margin:0;min-height:2.25em;display:flex;align-items:center;justify-content:center}
.step-swoosh{display:block;width:120px;height:10px;border-top:6px solid var(--gold);border-radius:50%;margin:7px auto 14px;transform:rotate(-1deg)}
.booking-step p{font-size:clamp(14px,1.05vw,17px);line-height:1.45;margin:0;max-width:390px;color:rgba(255,255,255,.94)}
.story{position:relative;background:linear-gradient(180deg,#001439 0%,#001439 18%,#061b42 55%,#001439 100%);color:#fff;margin-top:0;min-height:1250px;padding:115px 4.2vw 90px}
.story-inner{max-width:1440px;margin:0 auto;text-align:center}
.skyline{display:block;width:min(590px,58vw);height:auto;max-height:220px;object-fit:contain;margin:0 auto 4px}
h2{font-size:clamp(38px,4.2vw,64px);line-height:1.08;font-weight:800;font-style:italic;letter-spacing:-.04em;margin:0}
.story-swoosh{width:260px;height:16px;border-top:8px solid var(--gold);border-radius:50%;margin:12px auto 8px;transform:rotate(-1deg)}
.story-subtitle{font-size:clamp(17px,1.7vw,26px);font-style:italic;margin:0 auto 36px;line-height:1.35}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px;text-align:left;margin:0 0 30px}
.info-card{min-height:128px;border:2px solid #9ab7df;border-radius:22px;background:rgba(255,255,255,.035);display:flex;align-items:center;padding:16px 28px;gap:24px;box-shadow:inset 0 0 18px rgba(255,255,255,.025)}
.pin-icon,.calendar-icon{width:76px;min-width:76px;display:flex;align-items:center;justify-content:center}
.pin-icon svg{width:56px;height:72px;fill:var(--gold)}
.calendar-icon svg{width:62px;height:62px;fill:none;stroke:var(--gold);stroke-width:6;stroke-linecap:round;stroke-linejoin:round}
.calendar-icon .calendar-grid{stroke-width:5}
.card-rule{width:5px;height:82px;background:var(--gold);border-radius:5px;flex:none}
.info-card div{display:flex;flex-direction:column;gap:0}
.eyebrow{font-size:clamp(18px,1.65vw,25px);font-weight:700;font-style:italic}
.info-card strong{font-size:clamp(30px,3.2vw,48px);font-weight:800;font-style:italic;line-height:1.04;white-space:nowrap}
.info-card em{font-size:clamp(15px,1.5vw,22px);font-style:italic;white-space:nowrap}
.story-divider{height:3px;background:#fff;opacity:.95;margin:34px 4px 32px}
.values{text-align:left;display:flex;flex-direction:column;gap:42px;padding:0 18px}
.value-row{display:grid;grid-template-columns:14px 1fr;gap:24px;align-items:stretch}
.value-rule{width:14px;background:var(--gold);border-radius:12px;min-height:78px}
.value-row h3{font-size:clamp(27px,3vw,43px);font-weight:800;font-style:italic;line-height:1.05;margin:0 0 2px;letter-spacing:-.03em}
.value-row p{font-size:clamp(17px,1.65vw,25px);line-height:1.24;margin:0;letter-spacing:-.01em}
.bottom-divider{margin-top:40px;margin-bottom:34px}
.legacy{font-size:clamp(25px,2.7vw,40px);font-weight:800;font-style:italic;color:var(--gold);margin:0 0 16px;letter-spacing:-.03em}
.signature{font-size:clamp(19px,1.8vw,27px);font-weight:800;font-style:italic;margin:0}
.signature span{padding:0 12px}
@media(max-width:900px){
 .site-nav{position:relative;top:auto;right:auto;align-self:flex-end;margin:0 28px 8px 0}
 .site-nav a{font-size:18px;padding:5px 3px 11px}
 .hero{height:auto;min-height:0;padding:22px 0 0;display:flex;flex-direction:column}
 .hero-copy{width:100%;max-width:none;padding:0 28px 28px}
 .logo{width:min(330px,72vw);margin:0 auto 32px}
 h1{font-size:clamp(48px,9vw,76px)}
 .headline-swoosh{margin:18px 0 25px 16%;width:45%}
 .tagline{white-space:normal;font-size:clamp(19px,4.5vw,28px);margin-bottom:20px}
 .intro-copy p{font-size:clamp(17px,3.5vw,22px)}
 .hero-media{position:relative;right:auto;top:auto;width:calc(100% - 32px);height:auto;min-height:0;aspect-ratio:9/16;margin:8px 16px 0;border:4px solid var(--gold);border-radius:42px 24px 24px 42px;background:transparent;transform:none}
 .hero-video{position:absolute;inset:0;object-fit:cover;background:transparent}
 .media-outline{display:none}
 .hero-navy-underlay{display:none}
 .hero-gold-sweep{display:none}
 .story{padding:58px 22px 56px;min-height:0}
 .skyline{width:min(500px,85vw);max-height:180px}
 .story-subtitle{margin-bottom:26px}
 .info-grid{grid-template-columns:1fr;gap:14px}
 .info-card{min-height:106px;padding:12px 16px;gap:15px;border-radius:16px}
 .pin-icon,.calendar-icon{width:52px;min-width:52px}
 .pin-icon svg{width:42px;height:58px}
 .calendar-icon svg{width:46px;height:46px}
 .card-rule{height:68px;width:4px}
 .info-card strong{font-size:clamp(27px,6vw,38px)}
 .info-card em{white-space:normal;font-size:15px}
 .values{gap:28px;padding:0 2px}
 .value-row{grid-template-columns:9px 1fr;gap:15px}
 .value-rule{width:9px;min-height:100%}
 .value-row h3{font-size:29px}
 .value-row p{font-size:17px}
 .story-divider{margin:28px 0}
 .legacy{font-size:25px;line-height:1.15}
}

@media(max-width:1050px){
 .police-booking{padding:30px 24px 48px}
 .police-row{grid-template-columns:minmax(0,1fr);gap:24px;margin-bottom:38px;max-width:760px}
 .police-invitation{grid-template-columns:104px 4px minmax(0,1fr);gap:16px;max-width:760px;margin:0 auto;width:100%}
 .police-emblem{max-width:100px}
 .police-rule,.quote-rule{width:4px;height:92px}
 .police-heading p{font-size:clamp(16px,2.5vw,22px)}
 .police-heading h2{font-size:clamp(27px,4.6vw,38px);white-space:normal}
 .police-quote{max-width:760px;margin:0 auto;gap:16px}
 .police-quote p{font-size:clamp(17px,2.5vw,23px)}
 .booking-grid{max-width:900px;gap:22px}
 .booking-icon{width:68px;height:68px;border-radius:18px}
 .booking-icon svg{width:42px;height:42px}
 .booking-step h3{min-height:2.25em;font-size:clamp(17px,2vw,21px)}
 .booking-step p{font-size:15px}
}
@media(max-width:650px){
 .booking-grid{grid-template-columns:1fr;gap:32px;max-width:520px}
 .booking-step h3{min-height:0;font-size:22px}
 .booking-step p{font-size:16px}
 .police-invitation{grid-template-columns:82px 4px minmax(0,1fr);gap:12px}
 .police-emblem{max-width:80px}
 .police-heading h2{font-size:clamp(24px,7vw,34px)}
 .police-heading p{font-size:clamp(14px,4vw,18px)}
}

@media(max-width:420px){.hero-copy{padding-left:20px;padding-right:20px}h1{font-size:47px}.intro-copy{padding-left:15px;border-left-width:7px}.info-card{padding:11px 12px;gap:11px}.eyebrow{font-size:16px}.info-card strong{font-size:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-video{animation:none}}


/* Final responsive correction: prevent the police/booking section from overflowing narrower screens. */
@media (max-width: 1200px) {
  .police-booking { padding-left: clamp(20px, 3vw, 34px); padding-right: clamp(20px, 3vw, 34px); }
  .police-row {
    grid-template-columns: minmax(0, 1fr);
    max-width: 860px;
    gap: 26px;
  }
  .police-invitation {
    grid-template-columns: 100px 4px minmax(0, 1fr);
    max-width: 860px;
    width: 100%;
    margin: 0 auto;
  }
  .police-emblem { max-width: 96px; }
  .police-heading h2 { font-size: clamp(28px, 4vw, 42px); }
  .police-quote { max-width: 860px; width: 100%; margin: 0 auto; }
}
@media (max-width: 900px) {
  .police-booking { padding: 30px 22px 46px; }
  .police-row { margin-bottom: 34px; gap: 24px; }
  .police-invitation {
    grid-template-columns: 82px 4px minmax(0, 1fr);
    gap: 14px;
  }
  .police-emblem { max-width: 78px; }
  .police-rule, .quote-rule { height: 84px; }
  .police-heading p { font-size: clamp(15px, 2.6vw, 21px); }
  .police-heading h2 { font-size: clamp(25px, 4.6vw, 36px); }
  .police-quote p { font-size: clamp(16px, 2.6vw, 21px); }
  .booking-grid {
    grid-template-columns: 1fr;
    max-width: 560px;
    gap: 32px;
  }
  .booking-step h3 { min-height: 0; font-size: clamp(20px, 3vw, 24px); }
  .booking-step p { max-width: 480px; font-size: 16px; }
}
@media (max-width: 520px) {
  .police-booking { padding: 26px 18px 40px; }
  .police-invitation { grid-template-columns: 66px 3px minmax(0, 1fr); gap: 11px; }
  .police-emblem { max-width: 64px; }
  .police-rule, .quote-rule { width: 3px; height: 76px; }
  .police-heading p { font-size: 14px; }
  .police-heading h2 { font-size: clamp(22px, 6.4vw, 30px); }
  .police-quote { grid-template-columns: 3px minmax(0, 1fr); gap: 12px; }
  .police-quote p { font-size: 15px; }
  .booking-icon { width: 64px; height: 64px; }
  .booking-icon svg { width: 40px; height: 40px; }
}

/* The police appreciation and fleet booking area is a single responsive vector illustration. */
.police-booking-vector{display:block;padding:0!important;margin-top:-8px!important;margin-bottom:0!important;overflow:hidden;background:#001439!important;line-height:0;width:100%}
.police-booking-art{display:block;width:100%;height:auto;max-width:1600px;margin:0 auto;padding:0;object-fit:contain}
.police-booking-vector + .story{border:0;outline:0;box-shadow:none}


/* Custom fleet pricing request area — fills the reserved navy space above the police section. */
.custom-pricing{position:relative;z-index:3;background:#001439;color:#fff;padding:2px 24px 30px;margin:0;text-align:center}
.custom-pricing-inner{width:min(1120px,100%);margin:0 auto}
.custom-pricing-inner{transform:translateY(160px)}
.custom-pricing h2{font-size:clamp(30px,3vw,44px);line-height:1.08;font-weight:800;font-style:italic;letter-spacing:-.04em;margin:0;color:#fff}
.custom-pricing-swoosh{display:block;width:190px;height:16px;margin:8px auto 10px;overflow:visible}
.custom-pricing-swoosh path{fill:#f5a900}
.custom-pricing-intro{font-size:clamp(15px,1.25vw,18px);line-height:1.4;color:rgba(255,255,255,.92);margin:0 0 20px}
.custom-pricing-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;text-align:left}
.custom-pricing-fields label{display:flex;flex-direction:column;gap:7px;color:#fff;font-size:14px;font-weight:700;letter-spacing:.01em;min-width:0}
.custom-pricing-fields input,.custom-pricing-fields select{width:100%;height:48px;border:1.5px solid #f5a900;border-radius:7px;background:#fff;color:#001439;padding:0 13px;font:400 14px Arial,Helvetica,sans-serif;outline:none;min-width:0}
.custom-pricing-fields input::placeholder{color:#738096;opacity:1}
.custom-pricing-fields input:focus,.custom-pricing-fields select:focus{box-shadow:0 0 0 3px rgba(245,169,0,.28);border-color:#ffc229}

@media(max-width:900px){
 .custom-pricing{padding:28px 22px 30px}
 .custom-pricing-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
}
@media(max-width:520px){
 .custom-pricing{padding:26px 18px 28px}
 .custom-pricing h2{font-size:30px}
 .custom-pricing-intro{font-size:14px;margin-bottom:16px}
 .custom-pricing-fields{grid-template-columns:1fr;gap:12px}
 .custom-pricing-fields label{font-size:13px}
 .custom-pricing-fields input,.custom-pricing-fields select{height:46px;font-size:14px}
}


/* Mobile-only layout refinements: keep the quote form and police section in normal flow. */
.police-mobile-content{display:none}
@media(max-width:650px){
  .hero{height:auto!important;min-height:0!important;display:flex;flex-direction:column;overflow:visible}
  .hero-copy{flex:none}
  .hero-media{display:block;position:relative;right:auto;top:auto;flex:none;width:calc(100% - 36px);height:auto;aspect-ratio:9/16;margin:8px 18px 26px;transform:none}
  .hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
  .custom-pricing{position:relative;z-index:2;padding:30px 18px 32px!important;margin:0!important}
  .custom-pricing-inner{transform:none!important;width:100%;max-width:520px;margin:0 auto}
  .custom-pricing h2{font-size:clamp(28px,8vw,34px);line-height:1.08}
  .custom-pricing-intro{font-size:14px;margin:0 0 18px}
  .custom-pricing-fields{display:grid;grid-template-columns:1fr;gap:13px}
  .custom-pricing-fields label{font-size:14px}
  .custom-pricing-fields input,.custom-pricing-fields select{height:48px;font-size:16px}
  .police-booking-vector{padding:0!important;margin:0!important;overflow:visible!important}
  .police-booking-art{display:none!important}
  .police-mobile-content{display:block;background:#001439;color:#fff;padding:34px 20px 42px}
  .police-mobile-intro{text-align:center;max-width:520px;margin:0 auto 34px}
  .police-mobile-kicker{font-size:15px;font-weight:800;font-style:italic;letter-spacing:.02em;margin:0 0 8px}
  .police-mobile-intro h2{font-size:clamp(28px,8vw,38px);font-weight:800;font-style:italic;line-height:1.05;color:#f5a900;margin:0}
  .police-mobile-swoosh{display:block;width:130px;height:8px;border-top:5px solid #f5a900;border-radius:50%;transform:rotate(-2deg);margin:10px auto 16px}
  .police-mobile-quote{font-size:16px;line-height:1.5;font-weight:700;font-style:italic;margin:0 auto;max-width:460px}
  .police-mobile-quote strong{color:#f5a900}
  .police-mobile-steps{display:grid;grid-template-columns:1fr;gap:28px;max-width:520px;margin:0 auto}
  .police-mobile-step{text-align:center;padding:0 6px}
  .police-mobile-icon{display:flex;align-items:center;justify-content:center;width:58px;height:58px;border:3px solid #f5a900;border-radius:17px;color:#fff;font-size:32px;font-weight:700;margin:0 auto 12px}
  .police-mobile-step h3{font-size:21px;line-height:1.2;font-weight:800;font-style:italic;margin:0}
  .police-mobile-step .police-mobile-swoosh{margin:9px auto 12px;width:112px}
  .police-mobile-step p{font-size:15px;line-height:1.5;margin:0 auto;max-width:440px;color:rgba(255,255,255,.94)}
  .story{padding:42px 18px 48px!important;min-height:0!important}
  .skyline{width:min(440px,90vw);max-height:150px}
  .story h2{font-size:clamp(30px,8vw,42px);line-height:1.08}
}


/* Mobile layout v2: explicit inline-safe media fallback and tall booking artwork. */
.police-booking-mobile-art{display:none}
@media screen and (max-width:650px){
  /* iOS can promote the video to a floating native player; use its matching poster on phones. */
  .hero-media{
    display:block!important;
    position:relative!important;
    width:calc(100% - 36px)!important;
    height:auto!important;
    aspect-ratio:9/16!important;
    margin:8px 18px 26px!important;
    overflow:hidden!important;
    background:#071b3d url("assets/hero-poster.jpg") center/cover no-repeat!important;
    transform:none!important;
  }
  .hero-media .hero-video{display:none!important}
  .custom-pricing{
    position:relative!important;
    z-index:2!important;
    padding:30px 18px 32px!important;
    margin:0!important;
    overflow:visible!important;
  }
  .custom-pricing-inner{
    transform:none!important;
    width:100%!important;
    max-width:520px!important;
    margin:0 auto!important;
  }
  .custom-pricing-fields{grid-template-columns:1fr!important}
  .police-booking-vector{
    display:block!important;
    padding:0!important;
    margin:0!important;
    overflow:visible!important;
    line-height:0!important;
  }
  .police-booking-vector .police-booking-art,
  .police-booking-vector .police-mobile-content{display:none!important}
  .police-booking-mobile-art{
    display:block!important;
    width:100%!important;
    max-width:520px!important;
    height:auto!important;
    margin:0 auto!important;
  }
  .story{
    min-height:0!important;
    padding:38px 18px 46px!important;
    margin-top:0!important;
    background:linear-gradient(180deg,#001439 0%,#001439 18%,#061b42 60%,#001439 100%)!important;
    border:0!important;
  }
  .skyline{width:min(420px,90vw)!important;max-height:145px!important}
  .story h2{font-size:clamp(30px,8vw,42px)!important;line-height:1.08!important}
}

/* Custom fleet pricing form submission controls */
.custom-pricing-fields .form-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.custom-pricing-submit{grid-column:1/-1;justify-self:center;min-width:220px;margin:5px auto 0;padding:13px 26px;border:2px solid #f5a900;border-radius:7px;background:#f5a900;color:#001439;font:700 15px Arial,Helvetica,sans-serif;cursor:pointer;transition:background .15s ease,color .15s ease}
.custom-pricing-submit:hover{background:transparent;color:#fff}
.custom-pricing-submit:focus-visible{outline:3px solid rgba(245,169,0,.4);outline-offset:3px}
@media(max-width:650px){.custom-pricing-submit{width:100%;min-height:48px;margin-top:4px}}
