/* =========================================================
   PRIME WRAPS KC — shared design system
   Official University of Kansas palette:
     KU Blue #0051BA · Crimson #E8000D · Jayhawk Yellow #FFC82D
     Night #003459 · Sky #73CBF2 · Signature Grey #85898A
   Edit a value here and it changes across every page.
   ========================================================= */
:root{
  --blue:#0051BA;
  --blue-deep:#003459;
  --crimson:#E8000D;
  --crimson-deep:#C40009;
  --yellow:#FFC82D;
  --sky:#73CBF2;
  --ink:#12233B;
  --muted:#5A6B82;
  --line:#E4E9F1;
  --bg:#FBFCFE;
  --card:#FFFFFF;
  --radius:18px;
  --shadow:0 18px 40px -24px rgba(0,52,89,.45);
  --wrap:1180px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:"Inter",system-ui,-apple-system,sans-serif;
  font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:"Bricolage Grotesque","Inter",sans-serif;line-height:1.05;margin:0;letter-spacing:-.02em;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px;}
section{padding:88px 0;}

a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{
  outline:3px solid var(--yellow);outline-offset:3px;border-radius:6px;
}

/* ===== BUTTONS ===== */
.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:"Inter";font-weight:700;
  font-size:16px;padding:15px 26px;border-radius:999px;border:2px solid transparent;cursor:pointer;transition:transform .12s ease,background .18s ease,color .18s ease;}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--crimson);color:#fff;}
.btn-primary:hover{background:var(--crimson-deep);}
.btn-ghost{background:transparent;color:var(--blue);border-color:var(--blue);}
.btn-ghost:hover{background:var(--blue);color:#fff;}
.btn-light{background:#fff;color:var(--blue);}
.btn-light:hover{background:var(--yellow);color:var(--blue-deep);}
.btn-onblue{background:var(--yellow);color:var(--blue-deep);}
.btn-onblue:hover{background:#fff;color:var(--blue);}

/* ===== HEADER ===== */
header{position:sticky;top:0;z-index:50;background:rgba(251,252,254,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);}
.nav{display:flex;align-items:center;justify-content:space-between;height:72px;}
.logo{font-family:"Bricolage Grotesque";font-weight:800;font-size:22px;color:var(--blue);letter-spacing:-.03em;display:flex;align-items:center;gap:9px;}
.logo .mark{width:16px;height:16px;border-radius:5px;background:var(--crimson);box-shadow:4px 0 0 var(--yellow);}
.nav-links{display:flex;gap:30px;align-items:center;font-weight:600;font-size:15.5px;color:var(--blue-deep);}
.nav-links a:hover,.nav-links a.active{color:var(--crimson);}
.nav-cta{display:flex;align-items:center;gap:18px;}
.nav-phone{font-weight:700;color:var(--blue);white-space:nowrap;}
.menu-toggle{display:none;background:none;border:0;cursor:pointer;padding:8px;}
.menu-toggle span{display:block;width:24px;height:2.5px;background:var(--blue-deep);margin:5px 0;border-radius:2px;transition:.2s;}

/* ===== HOMEPAGE HERO ===== */
.hero{padding:70px 0 60px;}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;}
.hero h1{font-size:clamp(38px,5.2vw,62px);font-weight:800;color:var(--blue-deep);}
.hero .underline{position:relative;white-space:nowrap;}
.hero .underline::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:10px;background:var(--yellow);z-index:-1;border-radius:3px;opacity:.9;}
.hero p.lead{font-size:19px;color:var(--muted);margin:22px 0 30px;max-width:33ch;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;}
.trust-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:30px;}
.chip{font-size:14px;font-weight:600;color:var(--blue-deep);background:#fff;border:1px solid var(--line);padding:8px 15px;border-radius:999px;display:inline-flex;align-items:center;gap:7px;}
.chip .dot{width:7px;height:7px;border-radius:50%;background:var(--crimson);}
.panel-stage{position:relative;aspect-ratio:1/.86;border-radius:26px;overflow:hidden;box-shadow:var(--shadow);background:#0a1c30;}
.panel-svg{width:100%;height:100%;display:block;}
.panel-caption{position:absolute;left:18px;bottom:16px;color:#fff;font-size:13.5px;font-weight:600;background:rgba(0,52,89,.55);padding:7px 13px;border-radius:999px;backdrop-filter:blur(4px);}

/* ===== INTERIOR PAGE HERO ===== */
.subhero{background:var(--blue-deep);color:#fff;padding:56px 0 60px;}
.crumb{font-size:14px;color:#9FB6D0;font-weight:600;margin-bottom:18px;}
.crumb a:hover{color:var(--yellow);}
.crumb span{color:#fff;}
.subhero h1{font-size:clamp(32px,4.6vw,52px);font-weight:800;max-width:20ch;}
.subhero p{font-size:19px;color:#C7D6E8;margin:20px 0 28px;max-width:52ch;}
.subhero .hero-actions .btn-ghost{color:#fff;border-color:rgba(255,255,255,.5);}
.subhero .hero-actions .btn-ghost:hover{background:#fff;color:var(--blue);}

/* ===== SECTION HELPERS ===== */
.sec-head{max-width:640px;margin-bottom:44px;}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.sec-head h2{font-size:clamp(28px,3.6vw,42px);font-weight:800;color:var(--blue-deep);}
.sec-head p{color:var(--muted);font-size:18px;margin-top:14px;}

/* readable prose column */
.prose{max-width:68ch;}
.prose p{color:var(--ink);margin:0 0 18px;font-size:17.5px;}
.prose h2{font-size:clamp(24px,3vw,34px);color:var(--blue-deep);margin:40px 0 16px;}
.prose h3{font-size:21px;color:var(--blue-deep);margin:28px 0 10px;}
.prose a{color:var(--blue);font-weight:600;text-decoration:underline;}
.prose strong{color:var(--blue-deep);}

/* voice band */
.voiceband{background:var(--blue);color:#fff;text-align:center;padding:26px 0;}
.voiceband p{margin:0;font-family:"Bricolage Grotesque";font-weight:700;font-size:clamp(20px,3vw,30px);letter-spacing:-.02em;}
.voiceband span{color:var(--yellow);}

/* ===== HOMEPAGE SERVICES FEATURES ===== */
.services{background:#fff;}
.feature{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;margin-bottom:70px;}
.feature:last-child{margin-bottom:0;}
.feature.flip .feature-media{order:2;}
.feature-media{border-radius:var(--radius);aspect-ratio:4/3;background:linear-gradient(135deg,#0051BA,#003459);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#fff;}
.feature.wrap-media .feature-media{background:linear-gradient(135deg,#E8000D,#7a0006);}
.feature-media .ph{font-weight:600;font-size:14px;opacity:.85;position:absolute;bottom:14px;left:16px;}
.feature-media .big{font-family:"Bricolage Grotesque";font-weight:800;font-size:clamp(40px,6vw,72px);letter-spacing:-.03em;opacity:.16;}
.feature h3{font-size:30px;font-weight:800;color:var(--blue-deep);margin-bottom:14px;}
.feature p{color:var(--muted);margin-bottom:18px;}
.feature ul{list-style:none;padding:0;margin:0 0 24px;}
.feature li{padding-left:28px;position:relative;margin-bottom:9px;font-weight:500;}
.feature li::before{content:"";position:absolute;left:0;top:8px;width:12px;height:12px;border-radius:4px;background:var(--yellow);}
.secondary-services{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:64px;border-top:1px solid var(--line);padding-top:44px;}
.mini{display:flex;gap:16px;align-items:flex-start;}
.mini .ic{flex:0 0 46px;height:46px;border-radius:12px;background:#EAF1FC;color:var(--blue);display:flex;align-items:center;justify-content:center;font-weight:800;font-family:"Bricolage Grotesque";}
.mini h4{margin:0 0 4px;font-size:18px;color:var(--blue-deep);}
.mini p{margin:0;color:var(--muted);font-size:15.5px;}

/* ===== CHECK LIST (interior) ===== */
.checks{list-style:none;padding:0;margin:0;}
.checks li{padding-left:30px;position:relative;margin-bottom:12px;font-weight:500;color:var(--ink);}
.checks li::before{content:"";position:absolute;left:0;top:7px;width:14px;height:14px;border-radius:4px;background:var(--yellow);}

/* ===== COVERAGE / PACKAGE CARDS ===== */
.pkg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.pkg{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px 26px;display:flex;flex-direction:column;}
.pkg.hot{border:2px solid var(--crimson);box-shadow:var(--shadow);position:relative;}
.pkg.hot .tag{position:absolute;top:-13px;left:26px;background:var(--crimson);color:#fff;font-size:12px;font-weight:700;padding:5px 13px;border-radius:999px;}
.pkg h3{font-size:20px;color:var(--blue-deep);margin-bottom:6px;}
.pkg .amt{font-family:"Bricolage Grotesque";font-weight:800;font-size:34px;letter-spacing:-.03em;color:var(--blue);margin:8px 0 2px;}
.pkg .from{font-size:13px;color:var(--muted);margin-bottom:16px;}
.pkg ul{list-style:none;padding:0;margin:0 0 22px;flex:1;}
.pkg li{padding-left:24px;position:relative;margin-bottom:8px;font-size:15.5px;color:var(--ink);}
.pkg li::before{content:"";position:absolute;left:0;top:8px;width:10px;height:10px;border-radius:3px;background:var(--sky);}
.pkg .btn{width:100%;justify-content:center;}

/* ===== PROCESS STEPS (genuine sequence → numbered) ===== */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;counter-reset:step;}
.step{position:relative;padding-top:16px;}
.step .n{font-family:"Bricolage Grotesque";font-weight:800;font-size:40px;color:var(--yellow);line-height:1;letter-spacing:-.03em;-webkit-text-stroke:1px var(--blue);}
.step h3{font-size:19px;color:var(--blue-deep);margin:12px 0 8px;}
.step p{color:var(--muted);font-size:15.5px;margin:0;}

/* ===== FINISH SWATCHES ===== */
.finishes{display:flex;flex-wrap:wrap;gap:14px;}
.finish{border-radius:14px;padding:18px 20px;color:#fff;min-width:150px;flex:1;font-weight:700;box-shadow:var(--shadow);}
.finish small{display:block;font-weight:500;opacity:.9;font-size:13px;margin-top:4px;}

/* ===== WHY US CARDS ===== */
.why{background:var(--bg);}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.why-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:32px 28px;}
.why-card .num{font-family:"Bricolage Grotesque";font-weight:800;color:var(--crimson);font-size:15px;margin-bottom:16px;}
.why-card h3{font-size:21px;color:var(--blue-deep);margin-bottom:10px;}
.why-card p{color:var(--muted);font-size:16px;margin:0;}

/* ===== GALLERY ===== */
.gallery{background:#fff;}
.gal-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:170px;gap:16px;}
.gal{border-radius:14px;background:linear-gradient(135deg,#EAF1FC,#D6E4F7);border:1px dashed #9FBEE6;display:flex;align-items:center;justify-content:center;color:#6E86A8;font-weight:600;font-size:14px;text-align:center;padding:12px;}
.gal.tall{grid-row:span 2;}
.gal.blue{background:linear-gradient(135deg,#0051BA,#003459);color:#cfe0f7;border:0;}

/* ===== PRICING ===== */
.pricing{background:var(--blue-deep);color:#fff;}
.pricing .sec-head h2{color:#fff;}
.pricing .sec-head p{color:#B9CBE0;}
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.price{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-radius:var(--radius);padding:30px 26px;}
.price.hot{background:#fff;color:var(--blue-deep);position:relative;}
.price.hot .tag{position:absolute;top:-13px;left:26px;background:var(--crimson);color:#fff;font-size:12px;font-weight:700;padding:5px 13px;border-radius:999px;}
.price h4{font-size:19px;margin:0 0 4px;}
.price .amt{font-family:"Bricolage Grotesque";font-weight:800;font-size:38px;letter-spacing:-.03em;margin:10px 0 2px;}
.price .from{font-size:13px;opacity:.7;}
.price p{font-size:15px;margin:14px 0 0;opacity:.85;}
.price-note{margin-top:22px;font-size:14px;color:#9FB6D0;}

/* ===== AREA ===== */
.area{background:var(--bg);text-align:center;}
.area-chips{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;max-width:820px;margin:30px auto 0;}
.area-chips .chip{font-size:15px;padding:10px 18px;}

/* ===== REVIEWS ===== */
.reviews{background:#fff;}
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.rev{border:1px solid var(--line);border-radius:var(--radius);padding:28px;background:var(--bg);}
.stars{color:var(--yellow);font-size:18px;letter-spacing:2px;margin-bottom:12px;}
.rev p{font-size:16px;color:var(--ink);margin:0 0 16px;}
.rev .who{font-weight:700;color:var(--blue-deep);font-size:15px;}

/* ===== FAQ ===== */
.faq{background:var(--bg);}
.faq-wrap{max-width:820px;margin:0 auto;}
.qa{border-bottom:1px solid var(--line);}
.qa summary{list-style:none;width:100%;text-align:left;padding:24px 0;font-family:"Bricolage Grotesque";font-weight:700;font-size:20px;color:var(--blue-deep);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;}
.qa summary::-webkit-details-marker{display:none;}
.qa .plus{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:#EAF1FC;color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:20px;transition:.2s;}
.qa[open] .plus{background:var(--crimson);color:#fff;transform:rotate(45deg);}
.qa .ans{color:var(--muted);font-size:16.5px;padding:0 0 24px;max-width:70ch;}

/* ===== QUOTE / CONTACT ===== */
.quote{background:var(--crimson);color:#fff;}
.quote-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;}
.quote h2{font-size:clamp(30px,4vw,46px);font-weight:800;}
.quote p{font-size:18px;opacity:.95;margin-top:14px;max-width:40ch;}
.form{background:#fff;border-radius:var(--radius);padding:30px;color:var(--ink);}
.form label{display:block;font-weight:600;font-size:14px;margin:0 0 6px;color:var(--blue-deep);}
.form .field{margin-bottom:16px;}
.form input,.form select,.form textarea{width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:11px;font-family:inherit;font-size:15.5px;color:var(--ink);}
.form textarea{min-height:90px;resize:vertical;}

/* ===== FOOTER ===== */
footer{background:var(--blue-deep);color:#C7D6E8;padding:60px 0 30px;font-size:15px;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px;margin-bottom:40px;}
footer h5{font-family:"Bricolage Grotesque";color:#fff;font-size:16px;margin:0 0 16px;}
footer a{display:block;margin-bottom:9px;color:#C7D6E8;}
footer a:hover{color:var(--yellow);}
.foot-logo{font-family:"Bricolage Grotesque";font-weight:800;font-size:22px;color:#fff;margin-bottom:12px;}
.foot-bottom{border-top:1px solid rgba(255,255,255,.14);padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13.5px;color:#8FA6C2;}

/* mobile sticky quote bar */
.sticky-cta{display:none;position:fixed;bottom:0;left:0;right:0;z-index:60;background:#fff;border-top:1px solid var(--line);padding:12px 16px;gap:12px;box-shadow:0 -10px 30px -20px rgba(0,0,0,.4);}
.sticky-cta .btn{flex:1;justify-content:center;}

/* ===== RESPONSIVE ===== */
@media(max-width:900px){
  .hero-grid,.feature,.feature.flip .feature-media,.quote-grid,.split{grid-template-columns:1fr;}
  .feature.flip .feature-media{order:0;}
  .why-grid,.rev-grid,.price-grid,.secondary-services,.pkg-grid{grid-template-columns:1fr;}
  .steps{grid-template-columns:repeat(2,1fr);}
  .gal-grid{grid-template-columns:repeat(2,1fr);}
  .foot-grid{grid-template-columns:1fr 1fr;}
  .nav-links,.nav-phone{display:none;}
  .menu-toggle{display:block;}
  .nav-links.open{display:flex;position:absolute;top:72px;left:0;right:0;flex-direction:column;background:#fff;padding:20px 24px;border-bottom:1px solid var(--line);gap:18px;}
  section{padding:62px 0;}
  .hero{padding:40px 0;}
  .sticky-cta{display:flex;}
  body{padding-bottom:72px;}
}
@media(max-width:520px){
  .steps,.gal-grid,.foot-grid{grid-template-columns:1fr;}
}

/* split layout for interior content + media */
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;}
.media-card{border-radius:var(--radius);aspect-ratio:4/3;background:linear-gradient(135deg,#0051BA,#003459);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow);}
.media-card .ph{position:absolute;bottom:14px;left:16px;color:#cfe0f7;font-size:13px;font-weight:600;}
.media-card .big{font-family:"Bricolage Grotesque";font-weight:800;font-size:clamp(40px,6vw,64px);color:#fff;opacity:.16;letter-spacing:-.03em;}

@media(prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important;scroll-behavior:auto;}
  .film-sweep{transform:none;}
}
