@import url('https://fonts.googleapis.com/css2?family=Cal+Sans&display=swap');
/* ============================================================
   North Window Cleaning — Rise-style design system
   ============================================================ */
@font-face{font-family:"Gilroy";src:url("fonts/Gilroy-Light.ttf") format("truetype");font-weight:300;font-style:normal;font-display:swap;}
@font-face{font-family:"Gilroy";src:url("fonts/Gilroy-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Gilroy";src:url("fonts/Gilroy-Medium.ttf") format("truetype");font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:"Gilroy";src:url("fonts/Gilroy-MediumItalic.ttf") format("truetype");font-weight:500;font-style:italic;font-display:swap;}
@font-face{font-family:"Gilroy";src:url("fonts/Gilroy-SemiBold.ttf") format("truetype");font-weight:600;font-style:normal;font-display:swap;}
@font-face{font-family:"Gilroy";src:url("fonts/Gilroy-Bold.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"Gilroy";src:url("fonts/Gilroy-ExtraBold.ttf") format("truetype");font-weight:800;font-style:normal;font-display:swap;}
@font-face{font-family:"Gilroy";src:url("fonts/Gilroy-Heavy.ttf") format("truetype");font-weight:850;font-style:normal;font-display:swap;}
@font-face{font-family:"Gilroy";src:url("fonts/Gilroy-Black.ttf") format("truetype");font-weight:900;font-style:normal;font-display:swap;}
@font-face{font-family:"Gilroy";src:url("fonts/Gilroy-BlackItalic.ttf") format("truetype");font-weight:900;font-style:italic;font-display:swap;}

:root{
  --font-display:"Cal Sans","Gilroy",system-ui,sans-serif;
  --green:#1F8A57;          /* primary accent (replaces Rise orange) */
  --green-bright:#27A368;
  --green-deep:#14633E;
  --green-dark:#0E4A2E;
  --ink:#0C140F;            /* dark sections (deep forest black) */
  --black:#0C140F;
  --paper:#F3F2EC;          /* light sections (warm) */
  --cream:#E9E7DD;          /* alt light section */
  --white:#fff;
  --muted:#c7c7c7;
  --maxw:1180px;
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;font-family:"Gilroy",system-ui,sans-serif;background:var(--ink);color:var(--white);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;
}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,40px);}

/* ---------- shared display type ---------- */
.eyebrow{
  font-weight:800;text-transform:uppercase;letter-spacing:.06em;
  font-size:clamp(15px,1.5vw,21px);line-height:1;margin:0;
}
.display{
  font-family:var(--font-display);
  font-weight:900;text-transform:uppercase;line-height:.96;letter-spacing:0;
  margin:.12em 0 0;font-size:clamp(44px,8vw,110px);
}
.display--md{font-size:clamp(40px,7vw,86px);}
.accent{color:var(--green);}
.dot{color:var(--green);}
.section--ink .accent,.section--black .accent,.section--ink .dot,.section--black .dot{color:var(--green-bright);}

/* ---------- buttons ---------- */
.btn{
  position:relative;overflow:hidden;isolation:isolate;
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-weight:800;text-transform:uppercase;letter-spacing:.02em;
  border:none;cursor:pointer;border-radius:999px;
  padding:.85em 1.9em;font-size:clamp(15px,1.4vw,19px);
  transition:transform .18s ease,box-shadow .25s ease,background .2s ease,color .2s ease;
  white-space:nowrap;
}
.btn::after{
  content:"";position:absolute;top:-100%;left:-75%;width:55%;height:320%;z-index:-1;pointer-events:none;
  background:linear-gradient(100deg,transparent 0%,rgba(255,255,255,.45) 50%,transparent 100%);
  transform:rotate(8deg) translateX(-30%);opacity:0;transition:none;
}
.btn:hover::after{animation:btn-shine .65s ease-out;}
@keyframes btn-shine{
  0%{opacity:0;transform:rotate(8deg) translateX(-30%);}
  12%{opacity:1;}
  100%{opacity:0;transform:rotate(8deg) translateX(360%);}
}
.btn-dark::after{background:linear-gradient(100deg,transparent 0%,rgba(255,255,255,.22) 50%,transparent 100%);}
@media(prefers-reduced-motion:reduce){.btn:hover::after{animation:none;}}
.btn-orange,.btn-green{background:var(--green);color:#fff;box-shadow:0 10px 30px -10px rgba(31,138,87,.7);}
.btn-orange:hover,.btn-green:hover{background:var(--green-bright);transform:translateY(-2px);box-shadow:0 16px 38px -12px rgba(31,138,87,.85);}
.btn-white{background:var(--white);color:#111;}
.btn-white:hover{transform:translateY(-2px);box-shadow:0 14px 32px -14px rgba(0,0,0,.5);}
.btn-dark{background:#0C140F;color:#fff;}
.btn-dark:hover{background:#000;transform:translateY(-2px);}
.btn-lg{padding:.72em 2.6em;font-size:clamp(18px,1.8vw,24px);}
.btn svg{width:1.05em;height:1.05em;flex:0 0 auto;}
.btn-block{width:100%;}

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:fixed;top:clamp(12px,2vw,22px);left:0;right:0;z-index:100;
  display:flex;justify-content:center;pointer-events:none;
}
.nav__inner{
  pointer-events:auto;width:min(var(--maxw),calc(100% - clamp(24px,5vw,48px)));
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:12px 14px 12px 24px;border-radius:999px;
  background:rgba(12,20,15,.4);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border:1px solid rgba(255,255,255,.1);
  box-shadow:0 14px 40px -18px rgba(0,0,0,.65);
  transition:background .3s ease,box-shadow .3s ease,padding .3s ease;
  position:relative;z-index:2;
}
.nav.scrolled .nav__inner{background:rgba(12,20,15,.62);box-shadow:0 16px 44px -16px rgba(0,0,0,.55);}
.nav__logo{flex:0 0 auto;display:flex;align-items:center;}
.nav__logo img{height:30px;width:auto;display:block;}
.nav__links{display:flex;align-items:center;gap:clamp(18px,2.4vw,34px);}
.nav__link{
  font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:15px;color:#fff;
  transition:color .2s ease;
}
.nav__link:hover,.nav__link.is-active{color:var(--green-bright);}
.nav__cta{display:flex;align-items:center;gap:10px;}
.nav__cta .btn{padding:.7em 1.4em;font-size:14px;}
.nav__burger{display:none;background:none;border:none;cursor:pointer;padding:8px;border-radius:12px;}
.nav__burger span{display:block;width:24px;height:2.5px;background:#fff;border-radius:2px;margin:5px 0;transition:transform .3s ease,opacity .2s ease;transform-origin:center;}
.nav.open .nav__burger span:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
.nav.open .nav__burger span:nth-child(2){opacity:0;transform:scaleX(0);}
.nav.open .nav__burger span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}

.nav__panel{
  pointer-events:auto;position:fixed;inset:0;z-index:1;background:var(--ink);
  display:none;flex-direction:column;justify-content:center;
  padding:clamp(96px,16vh,150px) clamp(26px,7vw,44px) clamp(34px,7vh,64px);
}
.nav.open .nav__panel{display:flex;animation:menuIn .28s ease;}
@keyframes menuIn{from{opacity:0;}to{opacity:1;}}
.nav__panel a:not(.btn){
  font-weight:900;text-transform:uppercase;letter-spacing:.01em;color:#fff;
  font-size:clamp(20px,5.5vw,30px);line-height:1;
  padding:clamp(13px,2.2vh,20px) 0;border-bottom:1px solid rgba(255,255,255,.12);
  transition:color .2s ease;
}
.nav__panel a:not(.btn):first-child{border-top:1px solid rgba(255,255,255,.12);}
.nav__panel a:not(.btn):hover{color:var(--green-bright);}
.nav__panel .btn{width:100%;font-size:clamp(16px,4.4vw,19px);padding:1.05em 1.5em;}
.nav__panel .btn-orange,.nav__panel .btn-green{margin-top:clamp(30px,5vh,52px);}
.nav__panel .btn-white{margin-top:14px;}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;}
.hero__media{position:absolute;inset:0;z-index:0;}
.hero__media video,.hero__media img{width:100%;height:100%;object-fit:cover;}
.hero__media{background:linear-gradient(180deg,#ffffff 0%,#eaf1f5 58%,#dce8ee 100%);}
.hero__media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(12,20,15,0) 0%,rgba(12,20,15,0) 32%,rgba(12,20,15,.18) 54%,rgba(12,20,15,.52) 74%,rgba(12,20,15,.85) 90%,var(--ink) 100%);
}
.hero__content{position:relative;z-index:2;padding:130px clamp(8px,2vw,24px) 90px;max-width:1060px;}
.hero h1{
  font-family:var(--font-display);
  font-weight:900;text-transform:uppercase;line-height:.98;letter-spacing:0;margin:0;
  font-size:clamp(44px,6.8vw,92px);text-shadow:0 6px 30px rgba(0,0,0,.4);text-wrap:balance;color:#fff;
}
.hero h1 .accent{color:var(--green-bright);}
.hero p{
  font-weight:500;font-size:clamp(18px,2.3vw,30px);line-height:1.32;color:#f2f2f2;
  max-width:18ch;margin:clamp(22px,3vw,34px) auto clamp(30px,4vw,42px);text-shadow:0 2px 16px rgba(0,0,0,.5);
}
@media(min-width:760px){.hero p{max-width:32ch;}}
.hero__badges{display:flex;flex-wrap:wrap;gap:10px 26px;justify-content:center;margin-top:clamp(26px,3vw,36px);}
.hero__badge{display:inline-flex;align-items:center;gap:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:13px;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.5);}
.hero__badge svg{width:17px;height:17px;color:var(--green-bright);}

/* ============================================================
   SECTION SCAFFOLD
   ============================================================ */
.section{padding:clamp(70px,10vw,140px) 0;}
.section--light{background:var(--paper);color:#141414;}
.section--cream{background:var(--cream);color:#141414;}
.section--ink{background:var(--ink);color:#fff;}
.section--black{background:var(--black);color:#fff;}
.sec-head{text-align:center;margin-bottom:clamp(40px,5vw,64px);}
.section--light .eyebrow,.section--cream .eyebrow{color:#141414;}
.section--ink .eyebrow,.section--black .eyebrow{color:#fff;}

/* ---------- SERVICES (icon cards) ---------- */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,26px);max-width:1120px;margin:0 auto;}
.svc{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center;min-width:0;
  border-radius:26px;aspect-ratio:16/13;padding:28px 24px;isolation:isolate;cursor:pointer;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.1);
  transition:transform .25s ease,border-color .25s ease,background .25s ease;}
.section--light .svc,.section--cream .svc{background:#fff;border-color:rgba(0,0,0,.08);box-shadow:0 24px 50px -34px rgba(0,0,0,.3);}
.svc__ico{width:clamp(56px,6.5vw,68px);height:clamp(56px,6.5vw,68px);border-radius:18px;display:flex;align-items:center;justify-content:center;
  background:rgba(31,138,87,.14);color:var(--green-bright);transition:background .25s ease,color .25s ease,transform .25s ease;}
.svc__ico svg{width:48%;height:48%;}
.svc__label{font-family:var(--font-display);font-weight:900;text-transform:uppercase;line-height:1.02;letter-spacing:.01em;color:#fff;
  font-size:clamp(18px,2.3vw,26px);}
.section--light .svc__label,.section--cream .svc__label{color:#141414;}
.svc:hover{transform:translateY(-6px);border-color:var(--green);}
.svc:hover .svc__ico{background:var(--green);color:#fff;transform:scale(1.06);}

/* ---------- WHY / EXPECT (feature rows) ---------- */
.why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(18px,2.4vw,30px);max-width:1080px;margin:0 auto;}
.why-card{background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:clamp(28px,3vw,40px);transition:transform .25s ease,border-color .25s ease,background .25s ease;}
.section--light .why-card,.section--cream .why-card{background:#fff;border-color:rgba(0,0,0,.07);box-shadow:0 24px 50px -34px rgba(0,0,0,.3);}
.why-card:hover{transform:translateY(-6px);border-color:var(--green);}
.why-ico{width:58px;height:58px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:rgba(31,138,87,.14);color:var(--green);margin-bottom:20px;}
.section--ink .why-ico,.section--black .why-ico{background:rgba(39,163,104,.16);color:var(--green-bright);}
.why-ico svg{width:28px;height:28px;}
.why-card h3{font-weight:900;text-transform:uppercase;font-size:clamp(20px,2vw,26px);letter-spacing:-.01em;margin:0 0 10px;line-height:1;}
.why-card p{font-weight:500;font-size:clamp(15px,1.5vw,17px);line-height:1.55;margin:0;opacity:.78;}

/* ---------- MEMBERSHIPS (coupons) ---------- */
.memberships{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(22px,3vw,40px);}
.coupon{position:relative;width:300px;max-width:88vw;border-radius:30px;overflow:visible;background:#fff;box-shadow:0 30px 60px -26px rgba(31,138,87,.45),0 0 0 1px rgba(255,255,255,.04);transition:transform .25s ease,box-shadow .3s ease;}
.coupon__inner{border-radius:30px;overflow:hidden;}
.coupon:hover{transform:translateY(-8px);box-shadow:0 40px 70px -24px rgba(31,138,87,.6);}
.coupon__top{background:linear-gradient(180deg,var(--green-bright) 0%,var(--green-deep) 100%);padding:38px 26px 30px;text-align:center;color:#fff;}
.coupon__amt{font-family:var(--font-display);font-weight:900;font-size:48px;line-height:1;color:#fff;letter-spacing:0;}
.coupon__freq{font-weight:800;text-transform:uppercase;font-size:22px;letter-spacing:.02em;margin-top:8px;color:#eafff3;}
.coupon__per{font-weight:500;font-style:italic;text-transform:uppercase;letter-spacing:.08em;font-size:14px;margin-top:14px;color:#eafff3;opacity:.85;}
.coupon__feats{list-style:none;margin:0;padding:22px 26px 6px;display:flex;flex-direction:column;gap:11px;background:#fff;}
.coupon__feats li{display:flex;align-items:flex-start;gap:10px;font-weight:500;font-size:14.5px;line-height:1.4;color:#2a2a2a;}
.coupon__feats li svg{width:17px;height:17px;color:var(--green);flex:0 0 auto;margin-top:1px;}
.coupon__btm{background:#fff;padding:22px 26px 28px;display:flex;justify-content:center;}
.coupon__btm .btn{width:100%;}
.coupon--featured{outline:3px solid var(--green);outline-offset:-3px;}
.coupon__sticker{
  position:absolute;top:-16px;right:-12px;z-index:5;
  background:var(--green);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;
  padding:8px 14px;border-radius:9px;
  font-family:var(--font-display);font-weight:900;text-transform:uppercase;line-height:1;letter-spacing:.03em;white-space:nowrap;
  font-size:15px;
  box-shadow:0 12px 26px -8px rgba(31,138,87,.7);
  border:2.5px solid #fff;
  transform:rotate(6deg);
}
.coupon__sticker span{margin-left:.32em;font-family:var(--font-display);font-weight:900;letter-spacing:.03em;opacity:1;}
@media(prefers-reduced-motion:no-preference){
  .coupon--featured:hover .coupon__sticker{animation:sticker-wiggle .6s ease;}
}
@keyframes sticker-wiggle{0%,100%{transform:rotate(6deg);}25%{transform:rotate(-1deg);}60%{transform:rotate(10deg);}}

/* ---------- REVIEWS ---------- */
.right-sec{text-align:center;}
.reviews-embed{max-width:1140px;margin:clamp(34px,5vw,52px) auto 0;min-height:60px;}
.right-sec .btn{margin-top:clamp(34px,5vw,52px);}

/* ---------- LOCATIONS (accordion + map) ---------- */
.locations{display:flex;flex-direction:column;gap:clamp(46px,6vw,84px);}
.loc__row{display:grid;grid-template-columns:minmax(0,440px) 1fr;gap:clamp(28px,4vw,60px);align-items:start;}
.loc__map{border-radius:22px;overflow:hidden;aspect-ratio:4/3;background:#1a1a1a;box-shadow:0 24px 50px -28px rgba(0,0,0,.8);position:sticky;top:100px;}
.loc__map iframe{width:100%;height:100%;border:0;filter:grayscale(.12);}
.acc{display:flex;flex-direction:column;}
.acc__item{border-bottom:1px solid rgba(255,255,255,.1);}
.acc__item:first-child{border-top:1px solid rgba(255,255,255,.1);}
.acc__head{width:100%;display:flex;align-items:center;gap:14px;background:none;border:none;cursor:pointer;color:#fff;font-family:inherit;text-align:left;
  padding:19px 4px;font-weight:600;font-size:clamp(18px,1.7vw,22px);letter-spacing:-.01em;transition:color .2s ease;}
.acc__head:hover{color:var(--green-bright);}
.acc__chev{width:20px;height:20px;flex:0 0 auto;color:var(--green-bright);transition:transform .3s ease;}
.acc__item.open .acc__chev{transform:rotate(180deg);}
.acc__body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .34s cubic-bezier(.4,0,.2,1);}
.acc__item.open .acc__body{grid-template-rows:1fr;}
.acc__body>div{overflow:hidden;}
.acc__cities{list-style:none;margin:0;padding:2px 0 22px 34px;display:flex;flex-direction:column;gap:13px;}
.acc__cities li{font-style:italic;font-weight:500;font-size:clamp(15px,1.4vw,18px);color:#bdbdbd;}
.acc__cities li a{color:inherit;transition:color .2s,padding-left .2s;}
.acc__cities li a:hover{color:var(--green-bright);padding-left:4px;}
.faq-list{max-width:820px;margin:0 auto;}
.faq-a{padding:2px 4px 22px 34px;margin:0;font-weight:500;font-size:clamp(15px,1.5vw,17.5px);line-height:1.65;color:#bdbdbd;}
.section--light .acc__item,.section--cream .acc__item{border-color:rgba(0,0,0,.1);}
.section--light .acc__item:first-child,.section--cream .acc__item:first-child{border-top-color:rgba(0,0,0,.1);}
.section--light .acc__head,.section--cream .acc__head{color:#141414;}
.section--light .acc__head:hover,.section--cream .acc__head:hover{color:var(--green);}
.section--light .acc__chev,.section--cream .acc__chev{color:var(--green);}
.section--light .faq-a,.section--cream .faq-a{color:#4a4a4a;}

/* ---------- FOOTER ---------- */
.foot-cta{text-align:center;background:var(--ink);padding:clamp(70px,9vw,120px) 0 clamp(56px,7vw,86px);position:relative;overflow:hidden;}
.foot-cta .wrap{position:relative;z-index:2;}
.foot-cta p:not(.eyebrow){font-weight:500;font-size:clamp(17px,1.9vw,23px);line-height:1.42;color:#e2e2e2;max-width:42ch;margin:clamp(20px,3vw,30px) auto clamp(30px,4vw,42px);}
.footer{background:var(--ink);padding:clamp(40px,5vw,70px) 0 40px;}
.footer__grid{display:grid;grid-template-columns:1.2fr 1fr 1.2fr .9fr;gap:clamp(28px,4vw,56px);}
.footer__brand .social-row{display:flex;gap:14px;margin-bottom:26px;}
.foot-logo{height:34px;width:auto;margin-bottom:24px;display:block;}
.social-row .icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.07);color:#fff;transition:.2s;}
.social-row .icon-btn:hover{background:var(--green);color:#fff;transform:translateY(-3px);}
.social-row .icon-btn svg{width:19px;height:19px;display:block;}
.foot-h{font-weight:900;text-transform:uppercase;letter-spacing:.04em;font-size:17px;margin:0 0 20px;color:#fff;}
.foot-contact a{display:flex;align-items:center;gap:11px;color:#dcdcdc;font-weight:500;font-size:16px;margin-bottom:13px;transition:color .2s;}
.foot-contact a:hover{color:var(--green-bright);}
.foot-contact svg{width:17px;height:17px;color:var(--green-bright);flex:0 0 auto;}
.foot-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:13px;}
.foot-col a{color:#cfcfcf;font-weight:500;font-size:16px;transition:color .2s,padding-left .2s;}
.foot-col a:hover{color:var(--green-bright);padding-left:4px;}
.footer__bottom{border-top:1px solid rgba(255,255,255,.09);margin-top:clamp(40px,5vw,64px);padding-top:28px;color:#8c8c8c;font-weight:500;font-size:15px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.footer__amplify{flex:0 0 auto;opacity:.78;transition:opacity .2s ease;}
.footer__amplify:hover{opacity:1;}
.footer__amplify img{height:34px;width:auto;display:block;}

/* ============================================================
   SUBPAGE (service + location)
   ============================================================ */
.subhero{position:relative;min-height:74vh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;}
.subhero__media{position:absolute;inset:0;z-index:0;}
.subhero__media img{width:100%;height:100%;object-fit:cover;}
.subhero__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,20,15,0) 0%,rgba(12,20,15,0) 30%,rgba(12,20,15,.20) 52%,rgba(12,20,15,.55) 74%,rgba(12,20,15,.85) 90%,var(--ink) 100%);}
.subhero__media{background:linear-gradient(180deg,#ffffff 0%,#eaf1f5 58%,#dce8ee 100%);}
.subhero__content{position:relative;z-index:2;padding:150px clamp(8px,2vw,24px) 90px;max-width:1000px;}
.subhero .crumbs{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:13px;margin-bottom:18px;color:rgba(255,255,255,.72);}
.subhero .crumbs a:hover{color:var(--green-bright);}
.subhero .crumb-sep{opacity:.5;}
.subhero .crumb-current{color:var(--green-bright);}
.subhero h1{font-family:var(--font-display);font-weight:900;text-transform:uppercase;line-height:.98;letter-spacing:0;margin:0;font-size:clamp(36px,5.6vw,80px);color:#fff;text-shadow:0 6px 30px rgba(0,0,0,.4);text-wrap:balance;}
.subhero p{font-weight:500;font-size:clamp(17px,2vw,24px);line-height:1.36;color:#f2f2f2;max-width:40ch;margin:clamp(18px,2.5vw,28px) auto clamp(26px,3vw,36px);text-shadow:0 2px 16px rgba(0,0,0,.5);}

.prose{max-width:760px;margin:0 auto;}
.prose .eyebrow{color:var(--green);margin-bottom:10px;}
.prose h2{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(30px,4vw,52px);line-height:1.0;letter-spacing:0;margin:0 0 26px;}
.prose h3{font-weight:900;text-transform:uppercase;font-size:clamp(20px,2vw,27px);letter-spacing:-.01em;margin:38px 0 12px;color:var(--green);}
.section--ink .prose h3{color:var(--green-bright);}
.prose p{font-weight:500;font-size:clamp(16px,1.5vw,18px);line-height:1.72;margin:0 0 14px;opacity:.86;}
.prose-checks{list-style:none;margin:18px 0 6px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:13px 26px;}
.prose-checks li{display:flex;align-items:flex-start;gap:11px;font-weight:600;font-size:clamp(15px,1.4vw,17px);line-height:1.4;}
.prose-checks li svg{width:19px;height:19px;color:var(--green);flex:0 0 auto;margin-top:1px;}
.section--ink .prose-checks li svg{color:var(--green-bright);}
.prose-cta{margin-top:38px;}

/* locations index grid */
.locgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(14px,1.6vw,20px);max-width:1080px;margin:0 auto;}
.locgrid a{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:22px 24px;border-radius:18px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.1);font-weight:800;text-transform:uppercase;letter-spacing:.01em;font-size:clamp(15px,1.5vw,18px);transition:transform .2s,border-color .2s,background .2s,color .2s;}
.section--light .locgrid a,.section--cream .locgrid a{background:#fff;border-color:rgba(0,0,0,.07);color:#141414;box-shadow:0 18px 40px -30px rgba(0,0,0,.3);}
.locgrid a:hover{transform:translateY(-4px);border-color:var(--green);color:var(--green);}
.locgrid a svg{width:18px;height:18px;color:var(--green);flex:0 0 auto;}

/* ============================================================
   QUOTE — full page
   ============================================================ */
.qpage{min-height:100vh;background:var(--ink);display:flex;flex-direction:column;align-items:center;padding:clamp(30px,6vh,66px) 20px clamp(40px,8vh,90px);}
.qpage__logo{display:block;margin-bottom:clamp(26px,5vh,48px);}
.qpage__logo img{height:clamp(34px,5vw,46px);width:auto;filter:brightness(0) invert(1);}
.qpage__card{width:100%;max-width:720px;}
.qpage .qsteps{margin-bottom:6px;}
.qpage .q-head{font-size:clamp(30px,5.5vw,58px);margin:clamp(18px,3vh,34px) 0 clamp(26px,4vh,40px);}
.qpage .q-foot{margin-top:clamp(34px,5vh,52px);}

/* ============================================================
   QUOTE MODAL
   ============================================================ */
.modal-overlay{position:fixed;inset:0;z-index:300;background:rgba(6,12,8,.7);backdrop-filter:blur(6px);display:flex;align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto;opacity:0;animation:fadein .25s forwards;}
@keyframes fadein{to{opacity:1;}}
.modal{background:var(--ink);border:1px solid rgba(255,255,255,.12);border-radius:28px;width:100%;max-width:720px;overflow:hidden;box-shadow:0 40px 90px -30px rgba(0,0,0,.8);transform:translateY(14px) scale(.98);animation:pop .3s cubic-bezier(.2,.8,.2,1) forwards;margin:auto;}
@keyframes pop{to{transform:translateY(0) scale(1);}}

/* Shine-style 4-step quote */
.qmodal-top{display:flex;justify-content:flex-end;padding:16px 16px 0;}
.qsteps{display:flex;align-items:flex-start;justify-content:center;padding:6px clamp(20px,4vw,40px) 4px;}
.qstep{display:flex;flex-direction:column;align-items:center;gap:9px;width:clamp(58px,14vw,86px);flex:0 0 auto;}
.qstep__num{width:clamp(40px,9vw,50px);height:clamp(40px,9vw,50px);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:900;font-size:clamp(16px,3vw,20px);border:2px solid rgba(255,255,255,.2);color:rgba(255,255,255,.5);transition:.25s;}
.qstep.is-active .qstep__num,.qstep.is-done .qstep__num{background:var(--green);border-color:var(--green);color:#fff;}
.qstep__label{font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:10px;color:rgba(255,255,255,.45);text-align:center;}
.qstep.is-active .qstep__label{color:#fff;}
.qconn{flex:1;min-width:14px;height:2px;background:rgba(255,255,255,.16);margin-top:clamp(19px,4.4vw,24px);border-radius:2px;transition:.25s;}
.qconn.is-done{background:var(--green);}
.q-head{font-family:var(--font-display);font-weight:900;text-transform:uppercase;text-align:center;font-size:clamp(26px,4.6vw,44px);line-height:1.0;margin:14px 0 26px;color:#fff;}
.q-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:28px;}
.q-foot__count{font-weight:600;font-size:14px;color:rgba(255,255,255,.6);}
.q-foot__count b{color:#fff;}
.q-foot__btns{display:flex;gap:12px;}
.phone-row{display:flex;gap:10px;}
.phone-prefix{flex:0 0 auto;display:flex;align-items:center;padding:0 16px;border-radius:12px;border:1.5px solid rgba(255,255,255,.16);background:rgba(255,255,255,.05);font-weight:700;color:#fff;}
.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.choice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:38px 18px;border-radius:18px;border:1.5px solid rgba(255,255,255,.16);background:rgba(255,255,255,.04);cursor:pointer;transition:.18s;color:#fff;}
.choice:hover{border-color:var(--green-bright);}
.choice.sel{border-color:var(--green-bright);background:rgba(31,138,87,.18);}
.choice svg{width:42px;height:42px;color:var(--green-bright);}
.choice span{font-family:var(--font-display);font-weight:900;text-transform:uppercase;letter-spacing:.02em;font-size:clamp(16px,2.4vw,20px);}
.svcpick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.svctile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;padding:22px 10px;border-radius:16px;border:1.5px solid rgba(255,255,255,.16);background:rgba(255,255,255,.04);cursor:pointer;transition:.18s;color:#fff;text-align:center;min-height:104px;}
.svctile:hover{border-color:var(--green-bright);}
.svctile.sel{border-color:var(--green-bright);background:rgba(31,138,87,.18);}
.svctile svg{width:28px;height:28px;color:var(--green-bright);}
.svctile span{font-weight:800;text-transform:uppercase;letter-spacing:.03em;font-size:11.5px;line-height:1.18;}
.modal-head{background:linear-gradient(180deg,var(--green-bright),var(--green-deep));color:#fff;padding:26px 30px;position:relative;}
.modal-head .mh-eyebrow{font-weight:800;text-transform:uppercase;letter-spacing:.1em;font-size:12px;color:#eafff3;}
.modal-head h3{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:clamp(22px,3vw,30px);margin:6px 0 0;line-height:1.0;}
.modal-head p{margin:8px 0 0;font-size:14px;color:#eafff3;font-weight:500;}
.modal-close{position:absolute;top:18px;right:18px;width:38px;height:38px;border-radius:50%;border:none;background:rgba(255,255,255,.2);color:#fff;display:flex;align-items:center;justify-content:center;transition:background .2s;cursor:pointer;}
.modal-close:hover{background:rgba(255,255,255,.34);}
.modal-close svg{width:18px;height:18px;}
.steps-bar{display:flex;gap:6px;margin-top:18px;}
.steps-bar .step{height:4px;flex:1;border-radius:2px;background:rgba(255,255,255,.28);transition:background .3s;}
.steps-bar .step.on{background:#fff;}
.modal-body{padding:28px 30px 30px;}
.field{margin-bottom:18px;}
.field label{display:block;font-weight:700;text-transform:uppercase;letter-spacing:.03em;font-size:12.5px;margin-bottom:8px;color:#fff;}
.field .req{color:var(--green-bright);}
.field input,.field textarea{width:100%;padding:13px 15px;border-radius:12px;border:1.5px solid rgba(255,255,255,.16);background:rgba(255,255,255,.05);font-family:inherit;font-size:15px;color:#fff;transition:border-color .2s,box-shadow .2s;}
.field input::placeholder,.field textarea::placeholder{color:rgba(255,255,255,.4);}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--green-bright);box-shadow:0 0 0 3px rgba(31,138,87,.25);}
.field input.err{border-color:#e0654f;box-shadow:0 0 0 3px rgba(224,101,79,.18);}
.field .errmsg{color:#f08a73;font-size:12.5px;margin-top:6px;font-weight:600;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.svc-pick{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.svc-opt{display:flex;align-items:center;gap:10px;padding:13px 14px;border-radius:12px;border:1.5px solid rgba(255,255,255,.16);background:rgba(255,255,255,.04);font-weight:700;text-transform:uppercase;letter-spacing:.02em;font-size:12.5px;transition:all .15s;text-align:left;color:#fff;cursor:pointer;}
.svc-opt:hover{border-color:var(--green-bright);}
.svc-opt.sel{border-color:var(--green-bright);background:rgba(31,138,87,.2);color:var(--green-bright);}
.svc-opt .chk{width:20px;height:20px;border-radius:6px;border:1.5px solid rgba(255,255,255,.3);flex:none;display:flex;align-items:center;justify-content:center;transition:all .15s;}
.svc-opt.sel .chk{background:var(--green-bright);border-color:var(--green-bright);color:#fff;}
.svc-opt .chk svg{width:13px;height:13px;}
.modal-foot{display:flex;gap:12px;justify-content:space-between;margin-top:24px;}
.modal-foot .btn{flex:1;}
.confirm{text-align:center;padding:14px 6px;}
.confirm-ico{width:74px;height:74px;border-radius:50%;background:rgba(31,138,87,.18);color:var(--green-bright);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;}
.confirm-ico svg{width:38px;height:38px;}
.confirm h3{font-family:var(--font-display);font-weight:900;text-transform:uppercase;font-size:26px;margin:0 0 10px;}
.confirm p{color:#cfcfcf;font-size:15px;max-width:380px;margin:0 auto 8px;font-weight:500;}
.confirm .summary{margin:22px auto 0;max-width:400px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:18px;text-align:left;}
.confirm .summary .row{display:flex;justify-content:space-between;gap:14px;font-size:14px;padding:6px 0;}
.confirm .summary .row span:first-child{color:#9a9a9a;}
.confirm .summary .row span:last-child{font-weight:700;text-align:right;}

/* ============================================================
   REVEAL
   ============================================================ */
[data-reveal]{opacity:1;transform:none;}
@media(prefers-reduced-motion:no-preference){
  [data-reveal]{transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);}
  [data-reveal].is-pre{opacity:0;transform:translateY(34px);}
  [data-reveal][data-d="1"]{transition-delay:.08s;}
  [data-reveal][data-d="2"]{transition-delay:.16s;}
  [data-reveal][data-d="3"]{transition-delay:.24s;}
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:900px){
  .nav__links{display:none;}
  .nav__cta{display:none;}
  .nav__burger{display:block;}
  .footer__grid{grid-template-columns:1fr 1fr;gap:36px;}
  .why-grid{grid-template-columns:1fr;}
}
@media(max-width:820px){
  .services-grid{grid-template-columns:repeat(2,1fr);max-width:620px;}
  .locgrid{grid-template-columns:1fr 1fr;}
}
@media(max-width:760px){
  .loc__row{grid-template-columns:1fr;gap:22px;}
  .loc__map{position:static;aspect-ratio:16/10;max-width:520px;margin:0 auto;}
}
@media(max-width:640px){
  .hero{min-height:auto;}
  .hero__content{padding:120px 8px 52px;}
  .subhero{min-height:auto;}
  .subhero__content{padding:120px 8px 56px;}
  .services-grid{grid-template-columns:1fr 1fr;gap:12px;max-width:none;}
  .svc{aspect-ratio:auto;padding:26px 14px;gap:14px;}
  .svc__ico{width:54px;height:54px;border-radius:15px;}
  .svc__label{font-size:clamp(14px,3.8vw,18px);}
  .footer__grid{grid-template-columns:1fr;}
  .coupon{width:100%;max-width:360px;}
  .nav__inner{padding:10px 12px 10px 18px;}
  .svc-pick{grid-template-columns:1fr;}
  .field-row{grid-template-columns:1fr;}
  .prose-checks{grid-template-columns:1fr;}
  .locgrid{grid-template-columns:1fr;}
}
@media(max-width:560px){
  .footer__bottom{justify-content:center;text-align:center;}
  .footer__copy{width:100%;text-align:center;}
  .footer__amplify{margin:0 auto;}
  .qstep__label{display:none;}
  .qstep{width:auto;}
  .qsteps{gap:0;}
  .choice-grid{grid-template-columns:1fr;}
  .svcpick-grid{grid-template-columns:1fr 1fr;}
  .q-foot{flex-direction:column;align-items:stretch;gap:16px;}
  .q-foot__btns{justify-content:space-between;}
  .q-foot__btns .btn{flex:1;}
}
