@import url("https://api.fontshare.com/v2/css?f[]=clash-display@400,500,600,700&f[]=satoshi@400,500,700&display=swap");
:root{--navy:#0B1F3A;--deep:#07152A;--red:#B22234;--ink:#172033;--muted:#667085;--pale:#F5F7FA;--bluepale:#DCE8F5}*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;background:#fff;color:var(--ink);font-family:Satoshi,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}.font-display,.footer-hero h2,.navbar-brand{font-family:"Clash Display",Satoshi,sans-serif}.site-container{max-width:1400px}.site-header{height:76px;background:rgba(255,255,255,.64);backdrop-filter:blur(18px);border-bottom:1px solid rgba(23,32,51,.08);z-index:1030}.site-header .navbar{min-height:76px}.brand-logo{height:48px;width:auto}.navbar-nav .nav-link{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--ink);padding:.75rem .65rem}.navbar-nav .nav-link:hover,.navbar-nav .nav-link.active{color:var(--red)}.phone-link{color:var(--deep);text-decoration:none;font-weight:700;font-size:.9rem}.nav-estimate{font-size:13px;text-align:center}.btn-red{background:var(--red);border:1px solid var(--red);color:#fff;text-decoration:none;border-radius:0;padding:.8rem 1.2rem;font-weight:700;display:inline-flex;align-items:center;gap:.45rem}.btn-red:hover{background:#941d2b;border-color:#941d2b;color:#fff}.btn-navy{background:var(--navy);border:1px solid var(--navy);color:#fff;border-radius:0;text-decoration:none}.btn-outline-light{color:#fff;border:1px solid rgba(255,255,255,.45);background:transparent;border-radius:0;text-decoration:none;padding:.78rem 1.1rem;display:inline-flex;align-items:center;gap:.45rem}.site-footer{background:#07152A;color:#fff;position:relative;overflow:hidden}.footer-hero{border-bottom:1px solid rgba(255,255,255,.1);padding:4rem 0 3.25rem;margin-bottom:2rem}.footer-eyebrow{font-size:12px;letter-spacing:.25em;text-transform:uppercase;color:rgba(220,232,245,.6)}.footer-hero h2{font-size:clamp(2.5rem,5vw,4.8rem);line-height:.95;text-transform:uppercase;margin:0;color:#fff}.footer-hero h2 span{color:var(--red)}.footer-logo{height:56px;width:auto;background:#fff;padding:6px}.footer-copy,.footer-license{color:rgba(220,232,245,.62);font-size:.9rem;line-height:1.65}.footer-license{color:rgba(220,232,245,.8);font-weight:600}.site-footer h3{font-size:12px;text-transform:uppercase;letter-spacing:.22em;color:rgba(220,232,245,.55);margin-bottom:1rem}.site-footer ul{list-style:none;padding:0;margin:0}.site-footer li{margin:.55rem 0;color:rgba(255,255,255,.8);font-size:.9rem}.site-footer a{color:inherit;text-decoration:none}.site-footer a:hover{color:#fff}.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:1.25rem;color:rgba(220,232,245,.42);font-size:.75rem}#main-content{padding-top:76px}.satellite-note,.satellite-estimate-note{border-left:3px solid var(--red);background:rgba(178,34,52,.05);padding:1rem 1.1rem;color:var(--muted)}.stars{color:#e4a400;letter-spacing:.1em}.google-score{border-radius:0}.gallery-item button{border:0;padding:0;background:transparent}.gallery-item img{cursor:zoom-in}.gallery-modal-img{max-height:80vh;width:auto;max-width:100%}.filter-btn.active{background:var(--navy)!important;color:#fff!important;border-color:var(--navy)!important}@media(max-width:1199px){.header-actions{margin:.5rem 0 1rem}.nav-estimate{max-width:none}.navbar-nav{padding-top:.75rem}}@media(max-width:767px){.site-header{height:auto}.site-header .navbar{min-height:76px}.footer-hero{padding-top:3rem}.footer-hero h2{font-size:2.8rem}}

.navbar-toggler{border:1px solid rgba(11,31,58,.25);border-radius:0}.navbar-toggler:focus{box-shadow:none}.btn-navy:hover{background:#07152A;color:#fff;border-color:#07152A}.is-selected{background:#0B1F3A!important;color:#fff!important;border-color:#0B1F3A!important}.attention{animation:attention .5s ease}.review-summary{border-left:3px solid #B22234;background:rgba(178,34,52,.05);padding:1rem 1.1rem;color:#667085}.review-stars{font-size:.9rem}.review-card-wrap{min-height:100%}.form-control,.form-select{border-radius:0;border-color:rgba(11,31,58,.16);padding:.8rem 1rem}.form-control:focus,.form-select:focus{border-color:#B22234;box-shadow:0 0 0 .15rem rgba(178,34,52,.1)}.gallery-item img{transition:transform .7s ease}.gallery-item:hover img{transform:scale(1.04)}.gallery-item .group-hover\:opacity-100{opacity:0}.gallery-item:hover .group-hover\:opacity-100{opacity:1}@keyframes attention{50%{transform:translateX(4px)}}

.btn-red{font-size:13px;min-height:44px}.btn-outline-light{font-size:13px;min-height:44px}.btn-navy{font-size:13px;min-height:44px}.hero-media{min-height:100svh}.object-cover{object-fit:cover!important}.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.review-card-wrap{display:flex}.review-card-wrap>div{width:100%}

/* FINAL UI REPAIR PASS */
html{scroll-padding-top:76px}
body{overflow-x:hidden}
img,video{max-width:100%}
.hero-media,.hero-video{height:100svh;min-height:680px}
.hero-video{width:100%;object-fit:cover;object-position:center}

/* Restore source geometry where the Bootstrap conversion needs explicit sizing. */
main section{position:relative}
[class~="min-h-[100svh]"]{min-height:100svh}
[class~="pt-[76px]"]{padding-top:76px}
[class~="py-20"]{padding-top:5rem;padding-bottom:5rem}
[class~="py-24"]{padding-top:6rem;padding-bottom:6rem}
[class~="py-28"]{padding-top:7rem;padding-bottom:7rem}
[class~="py-32"]{padding-top:8rem;padding-bottom:8rem}
[class~="py-36"]{padding-top:9rem;padding-bottom:9rem}
[class~="px-5"]{padding-left:1.25rem;padding-right:1.25rem}
[class~="px-6"]{padding-left:1.5rem;padding-right:1.5rem}
[class~="px-10"]{padding-left:2.5rem;padding-right:2.5rem}
[class~="p-4"]{padding:1rem}
[class~="p-5"]{padding:1.25rem}
[class~="p-6"]{padding:1.5rem}
[class~="p-8"]{padding:2rem}
[class~="p-9"]{padding:2.25rem}
[class~="p-10"]{padding:2.5rem}
[class~="p-12"]{padding:3rem}
[class~="mt-2"]{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-8{margin-top:2rem}.mt-9{margin-top:2.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-14{margin-top:3.5rem}.mt-16{margin-top:4rem}
[class~="mb-4"]{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mb-12{margin-bottom:3rem}.mb-14{margin-bottom:3.5rem}.mb-16{margin-bottom:4rem}
[class~="gap-3"]{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-14{gap:3.5rem}
[class~="w-1.5"]{width:.375rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-10{width:2.5rem}.w-12{width:3rem}
[class~="h-1.5"]{height:.375rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-10{height:2.5rem}.h-12{height:3rem}
[class~="text-[#172033]"]{color:#172033!important}
[class~="text-[#0B1F3A]"]{color:#0B1F3A!important}
[class~="text-[#B22234]"]{color:#B22234!important}
[class~="text-[#667085]"]{color:#667085!important}
[class~="text-[#DCE8F5]/60"]{color:rgba(220,232,245,.6)!important}
[class~="text-[#DCE8F5]/70"]{color:rgba(220,232,245,.7)!important}
[class~="text-[#DCE8F5]/80"]{color:rgba(220,232,245,.8)!important}
[class~="text-[#DCE8F5]/85"]{color:rgba(220,232,245,.85)!important}
[class~="bg-[#0B1F3A]"]{background-color:#0B1F3A!important}
[class~="bg-[#07152A]"]{background-color:#07152A!important}
[class~="bg-[#F5F7FA]"]{background-color:#F5F7FA!important}
[class~="bg-[#B22234]"]{background-color:#B22234!important}
[class~="font-display"]{font-family:"Clash Display",Satoshi,sans-serif!important}
[class~="tracking-tight"]{letter-spacing:-.025em!important}
[class~="tracking-[0.1em]"]{letter-spacing:.1em!important}.tracking-\[0\.12em\]{letter-spacing:.12em!important}.tracking-\[0\.15em\]{letter-spacing:.15em!important}.tracking-\[0\.2em\]{letter-spacing:.2em!important}.tracking-\[0\.25em\]{letter-spacing:.25em!important}.tracking-\[0\.3em\]{letter-spacing:.3em!important}.tracking-\[0\.35em\]{letter-spacing:.35em!important}
[class~="text-[13px]"]{font-size:13px!important}
[class~="text-xs"]{font-size:.75rem!important;line-height:1rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-base{font-size:1rem!important;line-height:1.5rem!important}.text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.text-xl{font-size:1.25rem!important;line-height:1.75rem!important}.text-2xl{font-size:1.5rem!important;line-height:2rem!important}.text-3xl{font-size:1.875rem!important;line-height:2.25rem!important}.text-4xl{font-size:2.25rem!important;line-height:2.5rem!important}.text-5xl{font-size:3rem!important;line-height:1!important}.text-6xl{font-size:3.75rem!important;line-height:1!important}

/* Buttons and CTAs match the original flat editorial treatment. */
.btn-red,.btn-navy,.btn-outline-light{border-radius:0!important;box-shadow:none!important;justify-content:center;white-space:nowrap;line-height:1.25;letter-spacing:.02em;transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}
@media(max-width:400px){.btn-red,.btn-navy,.btn-outline-light{white-space:normal}}
.btn-red{padding:.8rem 1.35rem!important;background:#B22234!important;border:1px solid #B22234!important;color:#fff!important}
.btn-red:hover{background:#941d2b!important;border-color:#941d2b!important;transform:translateY(-1px)}
.btn-navy{padding:.8rem 1.35rem!important;background:#0B1F3A!important;border:1px solid #0B1F3A!important;color:#fff!important}
.btn-navy:hover{background:#07152A!important;border-color:#07152A!important;color:#fff!important;transform:translateY(-1px)}
.btn-outline-light{padding:.8rem 1.35rem!important;background:transparent!important;border:1px solid rgba(255,255,255,.5)!important;color:#fff!important}
.btn-outline-light:hover{background:#fff!important;border-color:#fff!important;color:#07152A!important}

/* Precise image sizing. */
.clip-frame,.gallery-item,.project-card{overflow:hidden}
.clip-frame img{display:block;width:100%;height:100%;object-fit:cover}
.gallery-item{margin:0 0 1rem;break-inside:avoid}
.gallery-item button{display:block;width:100%;padding:0;border:0;background:transparent;overflow:hidden;position:relative}
.gallery-item img{display:block;width:100%;height:auto;min-height:220px;object-fit:cover;transition:transform .6s cubic-bezier(.2,.65,.2,1)}
.gallery-item:hover img{transform:scale(1.035)}
.gallery-grid{column-gap:1rem}
.gallery-grid .gallery-item{break-inside:avoid}
@media(min-width:768px){.gallery-item img{min-height:260px}}
@media(min-width:1200px){.gallery-item img{min-height:320px}}

/* Animation system: source transform snapshots become real scroll reveals. */
[data-reveal]{opacity:0;transform:translateY(36px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.65,.2,1)}
[data-reveal].is-visible{opacity:1;transform:none}
[data-reveal="hero"]{opacity:1;transform:none}
.reduce-motion [data-reveal]{opacity:1!important;transform:none!important;transition:none!important}

/* Marquee stays smooth and doesn't squeeze the page. */
.marquee-track{will-change:transform;animation:marquee 32s linear infinite}
@media(prefers-reduced-motion:reduce){.marquee-track{animation:none}.gallery-item img{transition:none}.btn-red,.btn-navy,.btn-outline-light{transition:none}}

/* Navbar collapse and mobile CTA spacing. */
.site-header .navbar-collapse{align-items:center}
@media(max-width:1199.98px){.header-actions{padding-bottom:1rem}.header-actions .nav-estimate{width:100%;max-width:none}.navbar-nav .nav-link{padding:.6rem 0}.site-header .navbar-collapse{padding-bottom:.5rem}}

/* Form and async states. */
.form-control,.form-select,textarea,input{border-radius:0!important}
.form-status{border-radius:0!important}
button:disabled{cursor:not-allowed}

/* Prevent malformed flex/grid images from stretching cards. */
[class*="col-"] img{max-width:100%}
[class~="aspect-[4/5]"] img{aspect-ratio:4/5;object-fit:cover}
[class~="aspect-[4/3]"] img{aspect-ratio:4/3;object-fit:cover}
[class~="aspect-[16/9]"] img{aspect-ratio:16/9;object-fit:cover}

/* Exact utility colors that previously had invalid font-size declarations. */
[class~="text-[#172033]"]{font-size:inherit!important}
[class~="text-[#0B1F3A]"]{font-size:inherit!important}

/* Gallery modal media sizing. */
#galleryModal .modal-dialog{max-width:min(1200px,95vw)}
#galleryModal .modal-content{border:0;border-radius:0;background:#07152A}
#galleryModal .gallery-modal-img{display:block;max-width:100%;max-height:82vh;width:auto;height:auto;margin:auto;object-fit:contain}

/* Contact Form 7 submit buttons render as <input type="submit">, which can't
   hold an inline SVG icon like the rest of the site's buttons — add a
   matching arrow via CSS so they stay visually consistent. */
.wpcf7-submit.btn-red::after,.wpcf7-submit.btn-navy::after{content:"→";margin-left:.5rem;font-weight:700}
.wpcf7 form.sent .wpcf7-response-output{border-radius:0}


/* =========================================================
   SPLIT HERO — text on solid navy, video in its own frame.
   Append to the END of your theme stylesheet.
   Safe to delete the old .hero-media / .hero-video rules
   (the new hero doesn't use them).
   ========================================================= */

.lrc-hero{
  --hero-video-ratio:16/10;           /* change to 16/9 or 4/3 if you want a different video shape */
  position:relative;
  background:#07152A;
  color:#fff;
  overflow:hidden;
  min-height:calc(100svh - 76px);     /* header is 76px; #main-content already pads 76px */
  display:flex;
  align-items:center;
}
.lrc-hero__bg{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(900px 500px at 12% 8%, rgba(178,34,52,.16), transparent 60%),
    radial-gradient(800px 600px at 95% 100%, rgba(220,232,245,.07), transparent 60%),
    linear-gradient(180deg,#0B1F3A 0%,#07152A 100%);
}
.lrc-hero__bg::after{               /* faint blueprint grid */
  content:"";position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(220,232,245,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(220,232,245,.045) 1px,transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:linear-gradient(90deg,#000 0%,transparent 70%);
          mask-image:linear-gradient(90deg,#000 0%,transparent 70%);
}
.lrc-hero__inner{
  position:relative;z-index:2;
  width:100%;max-width:1400px;margin:0 auto;
  padding:3.5rem 1.25rem 4rem;
  display:grid;grid-template-columns:1fr;gap:3rem;align-items:center;
}

/* ---------- copy ---------- */
.lrc-hero__eyebrow{
  display:flex;align-items:center;gap:.75rem;
  margin:0 0 1.5rem;
  font-size:.75rem;line-height:1.4;text-transform:uppercase;letter-spacing:.3em;
  color:rgba(220,232,245,.8);
}
.lrc-hero__eyebrow span{display:block;width:2.5rem;height:1px;background:#B22234;flex:none}
.lrc-hero__title{
  margin:0;
  font-family:"Clash Display",Satoshi,sans-serif;
  font-weight:700;text-transform:uppercase;
  font-size:clamp(2.25rem,4.4vw,4.4rem);
  line-height:.95;letter-spacing:-.025em;color:#fff;
}
.lrc-hero__title .line{display:block}
.lrc-hero__title .line--soft{color:#DCE8F5}
.lrc-hero__title .accent{color:#B22234}
.lrc-hero__lead{
  margin:1.75rem 0 0;max-width:38rem;
  font-size:1.0625rem;line-height:1.65;color:rgba(220,232,245,.88);
}
.lrc-hero__note{
  margin:1.25rem 0 0;max-width:38rem;padding:.9rem 1.1rem;
  border-left:3px solid #B22234;background:rgba(255,255,255,.04);
  font-size:.9375rem;line-height:1.6;color:rgba(220,232,245,.78);
}
.lrc-hero__note strong{color:#fff}
.lrc-hero__actions{display:flex;flex-direction:column;gap:1rem;margin-top:2.25rem;max-width:32rem}
.lrc-hero .btn-red,
.lrc-hero .btn-outline-light{white-space:normal;text-align:left;justify-content:center}
.lrc-hero .btn-red svg{flex:none}

/* ---------- media ---------- */
.lrc-hero__media{position:relative;min-width:0;padding:0 14px 14px 0}   /* room for offset outline */
.lrc-hero__frame{position:relative}
.lrc-hero__frame::before{          /* offset red outline behind the video */
  content:"";position:absolute;inset:0;
  transform:translate(14px,14px);
  border:2px solid #B22234;z-index:0;
}
.lrc-hero__video-box{
  position:relative;z-index:1;overflow:hidden;
  aspect-ratio:var(--hero-video-ratio);
  background:#0B1F3A;
  border:1px solid rgba(220,232,245,.18);
  box-shadow:0 30px 70px -20px rgba(0,0,0,.65);
}
.lrc-hero__video-box video,
.lrc-hero__video-box img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;display:block;
}
.lrc-hero__caption{
  position:relative;z-index:1;
  display:flex;align-items:center;gap:.65rem;
  margin-top:1.1rem;
  font-size:.75rem;text-transform:uppercase;letter-spacing:.2em;
  color:rgba(220,232,245,.7);
}
.lrc-hero__caption i{
  width:.5rem;height:.5rem;border-radius:50%;background:#B22234;flex:none;
  box-shadow:0 0 0 0 rgba(178,34,52,.7);animation:lrcPulse 2s infinite;
}

/* ---------- entrance (CSS only, no JS) ---------- */
.lrc-hero__eyebrow,.lrc-hero__title,.lrc-hero__lead,.lrc-hero__note,.lrc-hero__actions,.lrc-hero__media{
  opacity:0;transform:translateY(24px);
  animation:lrcRise .8s cubic-bezier(.2,.65,.2,1) forwards;
}
.lrc-hero__eyebrow{animation-delay:.05s}
.lrc-hero__title{animation-delay:.15s}
.lrc-hero__lead{animation-delay:.28s}
.lrc-hero__note{animation-delay:.36s}
.lrc-hero__actions{animation-delay:.44s}
.lrc-hero__media{animation-delay:.3s}
@keyframes lrcRise{to{opacity:1;transform:none}}
@keyframes lrcPulse{70%{box-shadow:0 0 0 9px rgba(178,34,52,0)}100%{box-shadow:0 0 0 0 rgba(178,34,52,0)}}

@media(prefers-reduced-motion:reduce){
  .lrc-hero__eyebrow,.lrc-hero__title,.lrc-hero__lead,.lrc-hero__note,.lrc-hero__actions,.lrc-hero__media{
    opacity:1;transform:none;animation:none;
  }
  .lrc-hero__caption i{animation:none}
}

/* ---------- breakpoints ---------- */
@media(min-width:576px){
  .lrc-hero__actions{flex-direction:row;flex-wrap:wrap;max-width:none}
}
@media(min-width:992px){
  .lrc-hero__inner{
    grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
    gap:4rem;padding:4rem 2.5rem 4.5rem;
  }
  .lrc-hero__actions{flex-direction:column;align-items:flex-start;max-width:34rem}
  .lrc-hero__lead{font-size:1.125rem}
}
@media(min-width:1400px){
  .lrc-hero__actions{flex-direction:row;max-width:none}
}
@media(max-width:575.98px){
  .lrc-hero{min-height:0}
  .lrc-hero__inner{padding-top:2.5rem;gap:2.5rem}
  .lrc-hero__media{padding:0 8px 8px 0}
  .lrc-hero__frame::before{transform:translate(8px,8px)}
  .lrc-hero__eyebrow{letter-spacing:.2em}
}