/* ===================================================================
   Cunningham Cleaning Services — Styles v2
   Fonts: Outfit (display) + Manrope (body)
   =================================================================== */
:root{
  --navy:#0F3B6C; --navy-deep:#0A2A50; --ink:#071A30;
  --sky:#2E8BD6; --aqua:#5BC8F5; --mist:#F4F8FC;
  --line:rgba(15,59,108,.10);
  --sec-pad:clamp(4rem,9vw,7rem);
}
*{ -webkit-tap-highlight-color:transparent; }
html{ scroll-behavior:smooth; }
body{ background:#fff; color:var(--ink); font-family:"Manrope",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden; }
.font-display{ font-family:"Outfit",system-ui,sans-serif; }
h1,h2,h3{ letter-spacing:-.02em; line-height:1.08; }
img{ display:block; max-width:100%; }

/* ---------- Glass nav ---------- */
.glass-nav{ background:rgba(255,255,255,.72); backdrop-filter:saturate(180%) blur(18px);
  -webkit-backdrop-filter:saturate(180%) blur(18px); border-bottom:1px solid rgba(255,255,255,.55);
  box-shadow:0 1px 0 var(--line),0 12px 30px -22px rgba(7,26,48,.45); }
.glass-nav.scrolled{ box-shadow:0 1px 0 var(--line),0 18px 40px -24px rgba(7,26,48,.6); }
.nav-link{ position:relative; padding:.55rem .85rem; font-size:.82rem; font-weight:700;
  letter-spacing:.04em; color:rgba(7,26,48,.78); background:none; border:none; cursor:pointer;
  font-family:inherit; display:inline-flex; align-items:center; gap:.3rem; transition:color .2s; text-transform:uppercase; }
.nav-link:hover,.nav-link.is-active{ color:var(--navy); }
.nav-link::after{ content:""; position:absolute; left:.85rem; right:.85rem; bottom:.15rem; height:2px;
  background:var(--sky); transform:scaleX(0); transform-origin:left; transition:transform .26s ease; }
.nav-link:hover::after,.nav-link.is-active::after{ transform:scaleX(1); }
.nav-phone{ color:var(--navy); }
.nav-phone:hover{ color:var(--sky); }

/* ---------- Desktop services dropdown ---------- */
.dd{ position:relative; }
.dd-chev{ transition:transform .25s ease; }
.dd:hover .dd-chev,.dd:focus-within .dd-chev{ transform:rotate(180deg); }
.dd-panel{ position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%) translateY(8px);
  width:340px; background:#fff; border:1px solid var(--line); border-radius:1rem; padding:.5rem;
  box-shadow:0 30px 60px -28px rgba(7,26,48,.5); opacity:0; visibility:hidden; transition:.24s ease; z-index:60; }
.dd:hover .dd-panel,.dd:focus-within .dd-panel{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.dd-link{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.6rem .8rem;
  border-radius:.6rem; font-size:.85rem; font-weight:600; color:var(--ink); transition:background .18s,color .18s; }
.dd-link:hover{ background:var(--mist); color:var(--navy); }
.dd-price{ font-size:.72rem; font-weight:700; color:var(--sky); white-space:nowrap; }
.dd-all{ background:var(--navy); color:#fff; margin-bottom:.35rem; }
.dd-all:hover{ background:var(--navy-deep); color:#fff; }

/* ---------- Signature sparkle ---------- */
.sparkle{ display:inline-block; width:1em; height:1em; background:currentColor;
  -webkit-mask:var(--sp) center/contain no-repeat; mask:var(--sp) center/contain no-repeat;
  --sp:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0c.6 6.3 5.7 11.4 12 12-6.3.6-11.4 5.7-12 12-.6-6.3-5.7-11.4-12-12C6.3 11.4 11.4 6.3 12 0Z'/%3E%3C/svg%3E"); }
.eyebrow{ display:inline-flex; align-items:center; gap:.5rem; font-size:.72rem; font-weight:800;
  letter-spacing:.24em; text-transform:uppercase; color:var(--sky); }
.eyebrow .sparkle{ color:var(--aqua); animation:twinkle 3.2s ease-in-out infinite; }
.eyebrow-light{ color:var(--aqua); }
.eyebrow-light .sparkle{ color:#fff; }
@keyframes twinkle{ 0%,100%{opacity:.55;transform:scale(.82) rotate(0)} 50%{opacity:1;transform:scale(1) rotate(90deg)} }
.rule-accent{ height:3px; width:56px; border-radius:3px; background:linear-gradient(90deg,var(--sky),var(--aqua)); }

/* ---------- Gleam ---------- */
.gleam{ position:relative; overflow:hidden; }
.gleam::before{ content:""; position:absolute; top:0; left:-60%; width:40%; height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent); transform:skewX(-18deg);
  transition:left .7s ease; pointer-events:none; z-index:2; }
.gleam:hover::before{ left:130%; }

/* ---------- Buttons ---------- */
.btn{ display:inline-flex; align-items:center; gap:.55rem; font-weight:700; border-radius:9999px;
  padding:.8rem 1.5rem; line-height:1; font-size:.92rem; transition:transform .2s,box-shadow .25s,background-color .25s,color .2s; cursor:pointer; }
.btn-lg{ padding:1rem 1.9rem; font-size:1rem; }
.btn-primary{ background:var(--navy); color:#fff; box-shadow:0 18px 34px -16px rgba(15,59,108,.7); }
.btn-primary:hover{ background:var(--navy-deep); transform:translateY(-2px); }
.btn-ghost{ background:rgba(255,255,255,.7); color:var(--navy); border:1px solid var(--line); }
.btn-ghost:hover{ background:#fff; transform:translateY(-2px); }
.btn-white{ background:#fff; color:var(--navy); }
.btn-white:hover{ background:var(--mist); transform:translateY(-2px); }
.btn-glass{ background:rgba(255,255,255,.12); color:#fff; border:1px solid rgba(255,255,255,.3);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
.btn-glass:hover{ background:rgba(255,255,255,.22); transform:translateY(-2px); }

/* ---------- Floating WhatsApp ---------- */
.wa-float{ position:fixed; right:1.15rem; bottom:1.15rem; z-index:60; width:60px; height:60px;
  border-radius:9999px; display:grid; place-items:center; background:#25D366; color:#fff;
  box-shadow:0 16px 34px -10px rgba(37,211,102,.6); transition:transform .25s,box-shadow .25s; }
.wa-float:hover{ transform:scale(1.07) translateY(-2px); }
.wa-float::after{ content:""; position:absolute; inset:0; border-radius:9999px;
  box-shadow:0 0 0 0 rgba(37,211,102,.45); animation:wa-pulse 2.4s ease-out infinite; }
@keyframes wa-pulse{ 0%{box-shadow:0 0 0 0 rgba(37,211,102,.45)} 70%{box-shadow:0 0 0 16px rgba(37,211,102,0)} 100%{box-shadow:0 0 0 0 rgba(37,211,102,0)} }

/* ---------- Scroll-reveal ---------- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1); will-change:opacity,transform; }
.reveal.in{ opacity:1; transform:none; }
.reveal[data-delay="1"]{ transition-delay:.08s } .reveal[data-delay="2"]{ transition-delay:.16s }
.reveal[data-delay="3"]{ transition-delay:.24s } .reveal[data-delay="4"]{ transition-delay:.32s }

/* ===================================================================
   VIDEO HERO
   =================================================================== */
.vhero{ position:relative; min-height:100svh; display:flex; align-items:center; overflow:hidden; padding:96px 0 64px; }
.vhero-video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;
  background:#0a2240 url("../images/hero-poster.jpg") center/cover; }
.vhero-overlay{ position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg,rgba(7,26,48,.72) 0%,rgba(7,26,48,.55) 40%,rgba(7,26,48,.78) 100%),
  radial-gradient(900px 500px at 80% 10%,rgba(91,200,245,.22),transparent 60%); }
.vhero-inner{ position:relative; z-index:2; width:100%; }
.vhero-title{ color:#fff; font-weight:900; font-size:clamp(2.6rem,7vw,5.2rem); margin-top:1.25rem; max-width:16ch; }
.vhero-sub{ color:rgba(255,255,255,.85); font-size:clamp(1.05rem,2vw,1.3rem); margin-top:1.4rem; max-width:60ch; line-height:1.55; }
.vhero-sub strong{ color:#fff; font-weight:700; }
.vhero-cta{ display:flex; flex-wrap:wrap; gap:.85rem; margin-top:2.2rem; }
.vhero-trust{ display:flex; align-items:center; gap:.75rem; margin-top:2rem; color:rgba(255,255,255,.85); font-size:.95rem; }
.vhero-trust strong{ color:#fff; }
.vhero-scroll{ position:absolute; left:50%; bottom:1.4rem; transform:translateX(-50%); z-index:2; }
.vhero-mouse{ display:block; width:26px; height:42px; border:2px solid rgba(255,255,255,.6); border-radius:14px; position:relative; }
.vhero-mouse span{ position:absolute; left:50%; top:8px; width:4px; height:8px; margin-left:-2px; border-radius:2px; background:#fff; animation:scrolldot 1.8s infinite; }
@keyframes scrolldot{ 0%{opacity:0;transform:translateY(0)} 30%{opacity:1} 60%{opacity:1;transform:translateY(12px)} 100%{opacity:0;transform:translateY(12px)} }

/* ===================================================================
   PAGE HERO (background image)
   =================================================================== */
.phero{ position:relative; padding:128px 0 72px; overflow:hidden; background:var(--ink); }
.phero::before{ content:""; position:absolute; inset:0; background-image:var(--phero-img); background-size:cover; background-position:center; z-index:0; }
.phero-overlay{ position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg,rgba(7,26,48,.78),rgba(7,26,48,.6)),radial-gradient(800px 420px at 85% 0%,rgba(91,200,245,.25),transparent 60%); }
.phero-inner{ position:relative; z-index:2; }
.phero-crumb{ font-size:.82rem; color:rgba(255,255,255,.7); margin-bottom:1.1rem; }
.phero-crumb a{ color:rgba(255,255,255,.7); } .phero-crumb a:hover{ color:#fff; }
.phero-crumb span{ padding:0 .5rem; } .phero-crumb-cur{ color:#fff; font-weight:600; }
.phero-title{ color:#fff; font-weight:900; font-size:clamp(2.2rem,5.5vw,4rem); margin-top:1rem; max-width:20ch; }
.phero-sub{ color:rgba(255,255,255,.85); font-size:clamp(1rem,1.8vw,1.2rem); margin-top:1.2rem; max-width:62ch; line-height:1.55; }

/* ===================================================================
   SECTION SYSTEM (alternating)
   =================================================================== */
.sec{ position:relative; padding:var(--sec-pad) 0; overflow:hidden; }
.sec-tight{ padding:2.5rem 0; position:relative; }
.sec-light{ background:#fff; }
.sec-light + .sec-light{ background:var(--mist); }
.sec-dark{ background:var(--navy-deep); color:#fff; }
.sec-glow{ position:absolute; top:-10%; left:-5%; width:520px; height:420px; z-index:0; pointer-events:none; background:radial-gradient(circle at center,rgba(91,200,245,.18),transparent 65%); }
.sec-glow-r{ left:auto; right:-5%; }
.sec-title{ font-size:clamp(1.9rem,3.6vw,2.9rem); font-weight:800; color:var(--navy); margin-top:1rem; }
.sec-title-light{ color:#fff; }
.sec-lead{ color:rgba(7,26,48,.7); font-size:1.05rem; line-height:1.65; margin-top:1.1rem; max-width:62ch; }
.sec-lead-light{ color:rgba(255,255,255,.8); }
.prose-p{ color:rgba(7,26,48,.72); line-height:1.75; }

.check-list{ margin-top:1.6rem; display:flex; flex-direction:column; gap:.85rem; }
.check-list li{ display:flex; align-items:flex-start; gap:.75rem; color:rgba(7,26,48,.82); }
.check-list-lg li{ font-size:1.02rem; line-height:1.5; }
.check-ic{ flex-shrink:0; margin-top:.15rem; display:grid; place-items:center; width:1.4rem; height:1.4rem; border-radius:9999px; background:var(--sky); color:#fff; }

.intro-imgwrap{ position:relative; }
.intro-img{ width:100%; height:440px; object-fit:cover; border-radius:1.5rem; box-shadow:0 40px 70px -34px rgba(7,26,48,.5); }
.intro-badge{ position:absolute; left:1rem; bottom:-1.25rem; display:flex; align-items:center; gap:.75rem; background:#fff; padding:.85rem 1.1rem; border-radius:1rem; box-shadow:0 26px 50px -22px rgba(7,26,48,.45); }
.intro-badge-ic{ display:grid; place-items:center; width:2.6rem; height:2.6rem; border-radius:9999px; background:rgba(91,200,245,.18); color:var(--sky); }
.intro-badge-t{ font-weight:800; color:var(--navy); font-size:.92rem; }
.intro-badge-s{ font-size:.74rem; color:rgba(7,26,48,.55); }

/* service cards */
.svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:3rem; }
.svc-card{ border-radius:1.25rem; overflow:hidden; display:flex; flex-direction:column; transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s,border-color .35s; }
.svc-card-light{ background:#fff; border:1px solid var(--line); box-shadow:0 30px 60px -40px rgba(7,26,48,.45); }
.svc-card-light:hover{ transform:translateY(-6px); border-color:rgba(46,139,214,.35); box-shadow:0 44px 74px -34px rgba(15,59,108,.5); }
.svc-card-dark{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); }
.svc-card-dark:hover{ transform:translateY(-6px); background:rgba(255,255,255,.07); border-color:rgba(91,200,245,.4); }
.svc-card-img{ position:relative; height:180px; overflow:hidden; }
.svc-card-img img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.svc-card:hover .svc-card-img img{ transform:scale(1.06); }
.svc-card-ic{ position:absolute; top:.8rem; left:.8rem; display:grid; place-items:center; width:2.4rem; height:2.4rem; border-radius:.7rem; background:rgba(15,59,108,.85); color:#fff; backdrop-filter:blur(4px); z-index:3; }
.svc-card-ic-light{ background:rgba(255,255,255,.9); color:var(--navy); }
.svc-card-body{ padding:1.5rem; display:flex; flex-direction:column; flex:1; }
.svc-card-title{ font-size:1.25rem; font-weight:800; }
.svc-card-light .svc-card-title{ color:var(--navy); }
.svc-card-dark .svc-card-title{ color:#fff; }
.svc-card-blurb{ font-size:.9rem; line-height:1.55; margin-top:.5rem; flex:1; }
.svc-card-light .svc-card-blurb{ color:rgba(7,26,48,.65); }
.svc-card-dark .svc-card-blurb{ color:rgba(255,255,255,.7); }
.svc-card-foot{ display:flex; align-items:center; justify-content:space-between; margin-top:1.25rem; padding-top:1rem; }
.svc-card-light .svc-card-foot{ border-top:1px solid var(--line); }
.svc-card-dark .svc-card-foot{ border-top:1px solid rgba(255,255,255,.12); }
.svc-price{ font-size:.88rem; font-weight:800; color:var(--aqua); }
.svc-price-light{ color:var(--sky); }
.svc-go{ font-size:.85rem; font-weight:700; display:inline-flex; align-items:center; gap:.3rem; transition:gap .25s; }
.svc-card-dark .svc-go{ color:#fff; } .svc-go-light{ color:var(--navy); }
.svc-card:hover .svc-go{ gap:.6rem; }

/* features */
.feat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; }
.feat-card{ background:#fff; border:1px solid var(--line); border-radius:1.1rem; padding:1.6rem; box-shadow:0 30px 60px -42px rgba(7,26,48,.4); transition:transform .3s,box-shadow .3s; }
.feat-card:hover{ transform:translateY(-5px); box-shadow:0 40px 70px -38px rgba(15,59,108,.45); }
.feat-grid-dark .feat-card{ background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.1); box-shadow:none; }
.feat-ic{ display:grid; place-items:center; width:3rem; height:3rem; border-radius:.9rem; background:rgba(46,139,214,.1); color:var(--navy); margin-bottom:1rem; }
.feat-grid-dark .feat-ic{ background:rgba(91,200,245,.14); color:var(--aqua); }
.feat-title{ font-size:1.1rem; font-weight:800; color:var(--navy); }
.feat-grid-dark .feat-title{ color:#fff; }
.feat-text{ font-size:.9rem; line-height:1.6; color:rgba(7,26,48,.65); margin-top:.5rem; }
.feat-grid-dark .feat-text{ color:rgba(255,255,255,.7); }
.why-img{ width:100%; height:400px; object-fit:cover; border-radius:1.5rem; box-shadow:0 40px 70px -34px rgba(7,26,48,.5); }

/* steps */
.step-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; margin-top:3rem; }
.step-card{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); border-radius:1.1rem; padding:1.6rem; }
.step-num{ font-size:2rem; font-weight:900; color:rgba(91,200,245,.5); }
.step-num-light{ color:rgba(91,200,245,.55); }
.step-title{ font-size:1.1rem; font-weight:800; color:#fff; margin-top:.5rem; }
.step-text{ font-size:.9rem; line-height:1.6; color:rgba(255,255,255,.7); margin-top:.5rem; }

/* gallery */
.gal-grid{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; gap:1rem; margin-top:3rem; }
.gal-item{ border-radius:1rem; overflow:hidden; box-shadow:0 24px 50px -30px rgba(7,26,48,.4); }
.gal-item img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.gal-item:hover img{ transform:scale(1.07); }
.gal-item.row-span-2{ grid-row:span 2; }

/* reviews */
.rev-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-top:3rem; }
.rev-card{ background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12); border-radius:1.2rem; padding:1.6rem; }
.rev-quote{ color:rgba(255,255,255,.9); margin-top:1rem; line-height:1.6; font-size:.98rem; }
.rev-by{ margin-top:1.25rem; font-weight:800; color:#fff; font-size:.9rem; }
.rev-by span{ display:block; font-weight:500; color:rgba(255,255,255,.55); font-size:.78rem; margin-top:.15rem; }
.stars{ color:#FFC53D; letter-spacing:2px; }

/* service areas */
.area-chips{ display:flex; flex-wrap:wrap; gap:.55rem; margin-top:1.6rem; }
.area-chip{ display:inline-flex; align-items:center; gap:.35rem; padding:.5rem .85rem; border-radius:9999px; background:#fff; border:1px solid var(--line); font-size:.82rem; font-weight:600; color:var(--navy); }
.area-chip svg{ color:var(--sky); }
.map-wrap{ border-radius:1.25rem; overflow:hidden; height:380px; border:1px solid var(--line); box-shadow:0 30px 60px -34px rgba(7,26,48,.45); }

/* FAQ */
.faq-list{ margin-top:2.5rem; display:flex; flex-direction:column; gap:.85rem; }
.faq-item{ border-radius:1rem; overflow:hidden; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12); }
.faq-item-light{ background:#fff; border:1px solid var(--line); box-shadow:0 20px 44px -34px rgba(7,26,48,.4); }
.faq-q{ list-style:none; cursor:pointer; padding:1.1rem 1.3rem; font-weight:700; color:#fff; display:flex; align-items:center; justify-content:space-between; gap:1rem; font-size:1rem; }
.faq-q-light{ color:var(--navy); }
.faq-q::-webkit-details-marker{ display:none; }
.faq-chev{ flex-shrink:0; transition:transform .3s ease; color:var(--aqua); }
.faq-q-light .faq-chev{ color:var(--sky); }
.faq-item[open] .faq-chev{ transform:rotate(180deg); }
.faq-a{ padding:0 1.3rem 1.2rem; color:rgba(255,255,255,.72); line-height:1.65; font-size:.94rem; }
.faq-a-light{ color:rgba(7,26,48,.7); }

/* price band */
.price-band{ background:#fff; border:1px solid var(--line); border-radius:1.25rem; padding:1.5rem 1.8rem; display:flex; flex-direction:column; gap:1.25rem; box-shadow:0 30px 60px -38px rgba(7,26,48,.45); }
@media(min-width:640px){ .price-band{ flex-direction:row; align-items:center; justify-content:space-between; } }
.price-band-l{ display:flex; align-items:center; gap:1rem; }
.price-band-ic{ display:grid; place-items:center; width:3.5rem; height:3.5rem; border-radius:1rem; background:var(--navy); color:#fff; flex-shrink:0; }
.price-band-lab{ font-size:.72rem; text-transform:uppercase; letter-spacing:.12em; color:rgba(7,26,48,.55); }
.price-band-val{ font-size:1.75rem; font-weight:800; color:var(--navy); }
.svc-detail-img{ width:100%; height:480px; object-fit:cover; border-radius:1.5rem; box-shadow:0 40px 70px -34px rgba(7,26,48,.5); }

/* other services */
.other-card{ display:flex; align-items:center; gap:1rem; padding:1.1rem; border-radius:1rem; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12); transition:transform .3s,background .3s; }
.other-card:hover{ transform:translateY(-4px); background:rgba(255,255,255,.09); }
.other-ic{ display:grid; place-items:center; width:2.75rem; height:2.75rem; border-radius:.8rem; background:rgba(91,200,245,.14); color:var(--aqua); flex-shrink:0; transition:.3s; }
.other-card:hover .other-ic{ background:var(--aqua); color:var(--navy); }
.other-title{ font-weight:700; color:#fff; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.other-price{ font-size:.78rem; color:var(--aqua); font-weight:700; }

/* stats */
.stat-row{ display:flex; gap:2.5rem; margin-top:2.25rem; }
.stat-big{ font-size:2.25rem; font-weight:900; color:var(--navy); }
.stat-small{ font-size:.78rem; color:rgba(7,26,48,.6); margin-top:.2rem; }

/* trust bar */
.trust-bar{ background:#fff; border-bottom:1px solid var(--line); padding:2.25rem 0; }
.trust-cell{ display:flex; align-items:center; gap:.85rem; justify-content:center; }
.trust-ic{ display:grid; place-items:center; width:2.6rem; height:2.6rem; border-radius:.8rem; background:rgba(46,139,214,.1); color:var(--navy); flex-shrink:0; }
.trust-big{ font-size:1.6rem; font-weight:900; color:var(--navy); line-height:1; }
.trust-small{ font-size:.74rem; color:rgba(7,26,48,.6); margin-top:.2rem; }

/* disclaimer */
.disc{ display:flex; align-items:flex-start; gap:1rem; padding:1.3rem 1.5rem; border-radius:1.1rem; }
.disc-light{ background:var(--mist); border:1px solid rgba(46,139,214,.2); }
.disc-dark{ background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14); }
.disc-ic{ flex-shrink:0; margin-top:.1rem; display:grid; place-items:center; width:2.2rem; height:2.2rem; border-radius:9999px; background:rgba(46,139,214,.14); color:var(--sky); }
.disc-text{ font-size:.94rem; line-height:1.6; }
.disc-light .disc-text{ color:rgba(7,26,48,.75); }
.disc-dark .disc-text{ color:rgba(255,255,255,.78); }
.disc-strong{ font-weight:800; }
.disc-light .disc-strong{ color:var(--navy); } .disc-dark .disc-strong{ color:#fff; }

/* contact */
.form-card{ background:#fff; border:1px solid var(--line); border-radius:1.5rem; padding:1.75rem; box-shadow:0 30px 60px -40px rgba(7,26,48,.45); }
@media(min-width:640px){ .form-card{ padding:2.25rem; } }
.form-success{ margin-top:1.5rem; border-radius:.9rem; background:rgba(91,200,245,.12); border:1px solid rgba(46,139,214,.25); padding:1rem 1.25rem; font-size:.9rem; color:var(--navy); }
.fld-label{ display:block; font-size:.85rem; font-weight:700; color:var(--navy); margin-bottom:.4rem; }
.fld{ width:100%; border-radius:.85rem; border:1px solid rgba(15,59,108,.16); background:rgba(244,248,252,.5); padding:.8rem 1rem; font-size:.92rem; font-family:inherit; color:var(--ink); transition:.2s; }
.fld:focus{ outline:none; background:#fff; border-color:var(--sky); box-shadow:0 0 0 3px rgba(91,200,245,.25); }
.contact-list{ margin-top:1.25rem; display:flex; flex-direction:column; gap:1rem; }
.contact-list li{ display:flex; align-items:center; gap:.85rem; }
.contact-ic{ display:grid; place-items:center; width:2.6rem; height:2.6rem; border-radius:9999px; background:rgba(46,139,214,.1); color:var(--navy); flex-shrink:0; }
.contact-ic-wa{ background:rgba(37,211,102,.12); color:#1ebe57; }
.contact-lab{ font-size:.72rem; color:rgba(7,26,48,.55); }
.contact-val{ font-weight:700; color:var(--navy); } .contact-val:hover{ color:var(--sky); }
.contact-rev{ margin-top:1.5rem; padding-top:1.25rem; border-top:1px solid var(--line); display:flex; align-items:center; gap:.6rem; font-size:.85rem; font-weight:700; color:var(--navy); }
.map-card .map-wrap{ height:240px; }

/* footer */
.ft{ background:var(--ink); color:rgba(255,255,255,.7); }
.ft-h{ color:#fff; font-weight:800; font-size:.92rem; margin-bottom:1rem; font-family:"Outfit",sans-serif; }
.ft-list{ display:flex; flex-direction:column; gap:.65rem; font-size:.88rem; }
.ft-list a{ color:rgba(255,255,255,.65); transition:color .2s; } .ft-list a:hover{ color:#fff; }

/* CTA band */
.cta-band{ position:relative; overflow:hidden; background:linear-gradient(135deg,var(--navy) 0%,var(--ink) 100%); }
.cta-bg-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.16; mix-blend-mode:luminosity; z-index:0; }
.cta-glow{ position:absolute; inset:0; opacity:.6; background:radial-gradient(700px 320px at 85% 0%,rgba(91,200,245,.4),transparent 60%); z-index:1; }

/* ===================================================================
   AUTOHOLICS-STYLE SLIDE-IN MOBILE MENU
   =================================================================== */
.hamburger span{ display:block; height:2px; width:24px; background:var(--navy); border-radius:2px; transition:transform .3s,opacity .3s; }
.hamburger.active span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.hamburger.active span:nth-child(2){ opacity:0; }
.hamburger.active span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.mm-backdrop{ position:fixed; inset:0; z-index:70; background:rgba(7,18,34,.55); backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px); opacity:0; transition:opacity .35s ease; }
.mm-backdrop.show{ opacity:1; }
.mm-panel{ position:fixed; top:0; right:0; height:100dvh; width:min(86vw,360px); z-index:80; background:var(--ink); color:#fff; display:flex; flex-direction:column; transform:translateX(100%); transition:transform .45s cubic-bezier(.6,.05,.1,1); box-shadow:-30px 0 60px -20px rgba(0,0,0,.5); }
.mm-panel.open{ transform:translateX(0); }
.mm-head{ display:flex; align-items:center; justify-content:space-between; padding:1.5rem 1.5rem 1.25rem; border-bottom:1px solid rgba(255,255,255,.1); }
.mm-title{ font-family:"Outfit",sans-serif; font-weight:800; letter-spacing:.18em; text-transform:uppercase; font-size:.85rem; color:rgba(255,255,255,.7); }
.mm-close{ display:grid; place-items:center; width:2.5rem; height:2.5rem; border-radius:9999px; background:rgba(255,255,255,.08); color:#fff; transition:background .2s,transform .3s; }
.mm-close:hover{ background:rgba(255,255,255,.16); transform:rotate(90deg); }
.mm-body{ flex:1; overflow-y:auto; padding:1rem .75rem; }
.mm-link{ display:flex; align-items:center; justify-content:space-between; padding:1rem 1.1rem; border-radius:.8rem; font-family:"Outfit",sans-serif; font-weight:700; letter-spacing:.05em; text-transform:uppercase; font-size:1rem; color:#fff; transition:background .2s,color .2s; opacity:0; transform:translateX(24px); }
.mm-panel.open .mm-link,.mm-panel.open .mm-acc{ animation:mmIn .5s cubic-bezier(.2,.7,.2,1) forwards; }
.mm-panel.open .mm-body > *:nth-child(1){ animation-delay:.08s; }
.mm-panel.open .mm-body > *:nth-child(2){ animation-delay:.14s; }
.mm-panel.open .mm-body > *:nth-child(3){ animation-delay:.20s; }
.mm-panel.open .mm-body > *:nth-child(4){ animation-delay:.26s; }
.mm-link:hover,.mm-summary:hover{ background:rgba(255,255,255,.07); color:var(--aqua); }
@keyframes mmIn{ to{ opacity:1; transform:translateX(0); } }
.mm-acc{ opacity:0; transform:translateX(24px); }
.mm-summary{ list-style:none; cursor:pointer; opacity:1; transform:none; }
.mm-summary::-webkit-details-marker{ display:none; }
.mm-chev{ transition:transform .3s ease; color:var(--aqua); }
.mm-acc[open] .mm-chev{ transform:rotate(180deg); }
.mm-sub{ display:flex; flex-direction:column; padding:.25rem .4rem .5rem; }
.mm-sublink{ padding:.7rem 1.1rem .7rem 1.5rem; border-radius:.7rem; font-size:.9rem; font-weight:600; color:rgba(255,255,255,.72); transition:.2s; }
.mm-sublink:hover{ background:rgba(255,255,255,.06); color:#fff; }
.mm-sublink-all{ color:var(--aqua); font-weight:700; }
.mm-foot{ padding:1.25rem 1.5rem 1.75rem; border-top:1px solid rgba(255,255,255,.1); }
.mm-contact{ display:flex; align-items:center; gap:.6rem; padding:.55rem 0; font-size:.88rem; color:rgba(255,255,255,.75); transition:color .2s; }
.mm-contact:hover{ color:var(--aqua); }
.mm-stars{ margin-top:.75rem; color:#FFC53D; font-size:.95rem; letter-spacing:1px; }
.mm-stars span{ color:rgba(255,255,255,.6); font-size:.78rem; letter-spacing:0; margin-left:.4rem; }
body.menu-open{ overflow:hidden; }

/* ===================================================================
   RESPONSIVE
   =================================================================== */
@media(max-width:1024px){
  .svc-grid{ grid-template-columns:repeat(2,1fr); }
  .feat-grid,.step-grid{ grid-template-columns:repeat(2,1fr); }
  .gal-grid{ grid-template-columns:repeat(2,1fr); }
  .rev-grid{ grid-template-columns:1fr 1fr; }
}
@media(max-width:768px){
  .vhero{ padding-top:88px; }
  .svc-grid,.feat-grid,.step-grid,.rev-grid{ grid-template-columns:1fr; }
  .gal-grid{ grid-template-columns:1fr 1fr; grid-auto-rows:150px; }
  .stat-row{ gap:1.5rem; }
  .intro-badge{ left:.5rem; right:.5rem; }
}

a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{ outline:3px solid var(--aqua); outline-offset:2px; border-radius:6px; }
@media(prefers-reduced-motion:reduce){
  .reveal{ opacity:1 !important; transform:none !important; }
  .eyebrow .sparkle,.wa-float::after,.vhero-mouse span{ animation:none !important; }
  .mm-link,.mm-acc{ opacity:1 !important; transform:none !important; animation:none !important; }
  html{ scroll-behavior:auto; } .gleam::before{ display:none; }
  .vhero-video{ display:none; }
}

/* ---- Projects page ---- */
.ba-grid{ display:grid; gap:1.5rem; grid-template-columns:repeat(auto-fit,minmax(290px,1fr)); }
.ba-pair{ background:#fff; border:1px solid #e7eef6; border-radius:1.1rem; padding:.55rem;
  box-shadow:0 14px 34px -20px rgba(15,59,108,.3); }
.ba-cell{ position:relative; overflow:hidden; border-radius:.7rem; }
.ba-cell img{ width:100%; aspect-ratio:4/3; object-fit:cover; display:block; }
.ba-tag{ position:absolute; top:.5rem; left:.5rem; font-size:.62rem; font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; padding:.22rem .55rem; border-radius:.4rem; color:#fff; }
.ba-tag-before{ background:rgba(7,26,48,.82); }
.ba-tag-after{ background:var(--sky); }
.ba-cap{ text-align:center; font-weight:600; color:var(--navy); margin:.65rem 0 .3rem; font-size:.92rem; }
.proj-grid{ display:grid; gap:1.1rem; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); }
.proj-item{ overflow:hidden; border-radius:1rem; box-shadow:0 14px 34px -22px rgba(0,0,0,.5); }
.proj-item img{ width:100%; aspect-ratio:1/1; object-fit:cover; display:block; }
.vid-grid{ display:grid; gap:1.5rem; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); }
.vid-card video{ width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:1rem; background:#0a2240; display:block;
  box-shadow:0 16px 38px -22px rgba(15,59,108,.4); }
.fleet-grid{ display:grid; gap:1.5rem; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); max-width:64rem; margin:0 auto; }
.fleet-grid img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:1.1rem; display:block;
  box-shadow:0 16px 38px -22px rgba(0,0,0,.5); }

/* ---- Gallery page (real photos) ---- */
.masonry{ columns:3; column-gap:1.1rem; }
@media (max-width:900px){ .masonry{ columns:2; } }
@media (max-width:560px){ .masonry{ columns:1; } }
.gal-fig{ position:relative; break-inside:avoid; margin:0 0 1.1rem; border-radius:1rem; overflow:hidden;
  box-shadow:0 14px 34px -22px rgba(15,59,108,.45); }
.gal-fig img{ width:100%; height:auto; display:block; }
.gal-badge{ position:absolute; left:.6rem; bottom:.6rem; font-size:.6rem; font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; padding:.28rem .6rem; border-radius:.45rem; color:#fff; background:rgba(15,59,108,.85); }
.masonry-dark .gal-fig{ box-shadow:0 16px 40px -22px rgba(0,0,0,.65); }
.gal-video{ border-radius:1.1rem; overflow:hidden; background:#0a2240; max-width:430px; margin:0 auto;
  box-shadow:0 18px 42px -22px rgba(15,59,108,.55); }
.gal-video video{ width:100%; height:auto; display:block; max-height:80vh; }

/* ---- Gallery: on-the-road vehicles ---- */
.fleetrow{ display:grid; gap:1.5rem; grid-template-columns:1fr; max-width:34rem; margin:2.5rem auto 0; }
@media (min-width:700px){ .fleetrow{ grid-template-columns:1fr 1fr; max-width:56rem; } }
.fleetrow figure{ border-radius:1.1rem; overflow:hidden; background:#0a2240; box-shadow:0 16px 40px -22px rgba(0,0,0,.6); }
.fleetrow img{ width:100%; height:auto; display:block; }

/* ---- Contact form states ---- */
.form-success{ background:#e9f7ef; color:#12633b; border:1px solid #b7e4c7; border-radius:.7rem;
  padding:.85rem 1rem; font-weight:600; font-size:.92rem; }
.form-error{ background:#fdecec !important; color:#9b2226 !important; border:1px solid #f5c2c2 !important; }
