/* Tito's Heating & Air — shared design tokens + components
   Palette sampled from the real logo (brand_assets/tito-logo.jpg):
   flame (heating/urgent) + air (cooling/primary) on ink black. */

:root{
  --flame:#D9472B;
  --flame-dark:#B23A22;
  --flame-tint:#FBE4DD;
  --flame-glow:rgba(217,71,43,0.35);
  --air:#2C87C9;
  --air-dark:#206A9E;
  --air-tint:#DCEDF9;
  --air-glow:rgba(44,135,201,0.35);
  --ink:#0A0A0A;
  --ink-soft:#4A4F55;
  --ink-faint:#7B828A;
  --paper:#FFFFFF;
  --paper-soft:#F4F7FA;
  --paper-deep:#EAEFF3;
  --line:#E3E8ED;
  --line-dark:rgba(255,255,255,0.14);
  --gold:#E0A83E;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} }
body{
  font-family:'Figtree',system-ui,sans-serif;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.font-display{
  font-family:'Bricolage Grotesque',system-ui,sans-serif;
  letter-spacing:-0.02em;
}
::selection{background:var(--air-tint);color:var(--ink);}
a{-webkit-tap-highlight-color:transparent;}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:2px solid var(--air);outline-offset:2px;
}

/* ---- Buttons ---- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;
  font-weight:700;font-size:0.95rem;padding:0.85rem 1.6rem;border-radius:999px;
  transition:transform .18s cubic-bezier(.2,.8,.2,1), box-shadow .18s ease, background-color .18s ease;
  white-space:nowrap;
}
.btn[hidden]{display:none;}
.btn:active{transform:scale(0.96);}
.btn-air{background:var(--air);color:#fff;box-shadow:0 1px 2px rgba(10,10,10,0.08), 0 12px 24px -10px var(--air-glow);}
.btn-air:hover{background:var(--air-dark);transform:translateY(-2px);box-shadow:0 1px 2px rgba(10,10,10,0.08), 0 18px 30px -10px var(--air-glow);}
.btn-flame{background:var(--flame);color:#fff;box-shadow:0 1px 2px rgba(10,10,10,0.08), 0 12px 24px -10px var(--flame-glow);}
.btn-flame:hover{background:var(--flame-dark);transform:translateY(-2px);box-shadow:0 1px 2px rgba(10,10,10,0.08), 0 18px 30px -10px var(--flame-glow);}
.btn-ghost{background:transparent;color:var(--paper);border:1.5px solid rgba(255,255,255,0.35);}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,0.08);transform:translateY(-2px);}
.btn-outline-ink{background:transparent;color:var(--ink);border:1.5px solid var(--line);}
.btn-outline-ink:hover{border-color:var(--ink);transform:translateY(-2px);}

/* ---- Section label (eyebrow) ---- */
.eyebrow{
  display:inline-flex;align-items:center;gap:0.5rem;
  font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:0.76rem;
  letter-spacing:0.14em;text-transform:uppercase;color:var(--air);
}
.eyebrow::before{content:"";width:1.4rem;height:2px;background:var(--air);display:inline-block;}
.eyebrow.on-dark{color:var(--air);}
.eyebrow.flame::before,.eyebrow.flame{color:var(--flame);}
.eyebrow.flame::before{background:var(--flame);}

/* ---- Header / nav ---- */
.site-header{
  position:sticky;top:0;z-index:50;background:var(--ink);
  border-bottom:1px solid var(--line-dark);
  transform:translateZ(0);
  -webkit-backface-visibility:hidden;backface-visibility:hidden;
}
.nav-link{
  color:rgba(255,255,255,0.72);font-weight:600;font-size:0.92rem;
  padding:0.4rem 0;position:relative;
}
.nav-link:hover{color:#fff;}
.nav-link.active{color:#fff;}
.nav-link.active::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--air);border-radius:2px;}

#mobile-menu{max-height:0;overflow:hidden;transition:max-height .3s ease;}
#mobile-menu.open{max-height:32rem;}

/* ---- Sticky mobile call/book bar ---- */
.sticky-call-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:45;
  background:var(--ink);border-top:1px solid var(--line-dark);
  padding:0.6rem 1rem calc(0.6rem + env(safe-area-inset-bottom));
  box-shadow:0 -8px 24px -12px rgba(0,0,0,0.4);
}
.sticky-call-bar .btn{flex:1;padding:0.7rem 1rem;font-size:0.9rem;}
@media (min-width:1024px){
  .sticky-call-bar{display:none;}
}
@media (max-width:1023px){
  body{padding-bottom:calc(4.5rem + env(safe-area-inset-bottom));}
}

/* ---- Cards ---- */
.card{
  background:var(--paper);border:1px solid var(--line);border-radius:1.25rem;
  box-shadow:0 1px 2px rgba(10,10,10,0.04), 0 1px 1px rgba(10,10,10,0.03);
  transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease, border-color .25s ease;
}
.card-hover:hover{
  transform:translateY(-4px);
  border-color:transparent;
  box-shadow:0 1px 2px rgba(10,10,10,0.05), 0 24px 40px -20px rgba(10,10,10,0.22);
}
.card-raised{
  box-shadow:0 1px 2px rgba(10,10,10,0.06), 0 30px 60px -28px rgba(10,10,10,0.32), 0 8px 16px -8px rgba(10,10,10,0.08);
}

.badge{
  display:inline-flex;align-items:center;gap:0.4rem;
  font-size:0.72rem;font-weight:700;letter-spacing:0.04em;
  padding:0.35rem 0.75rem;border-radius:999px;
}
.badge-air{background:var(--air-tint);color:var(--air-dark);}
.badge-flame{background:var(--flame-tint);color:var(--flame-dark);}
.badge-ink{background:var(--paper-deep);color:var(--ink-soft);}

/* ---- Icon tiles (replaces generic circle+outline-icon pattern) ---- */
.icon-tile{
  position:relative;width:3.25rem;height:3.25rem;border-radius:1rem;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  background:linear-gradient(155deg, rgba(255,255,255,0.9), rgba(255,255,255,0.55));
  border:1px solid rgba(10,10,10,0.06);
  box-shadow:0 1px 1px rgba(10,10,10,0.04), 0 10px 20px -14px rgba(10,10,10,0.25);
}
.icon-tile::after{
  content:"";position:absolute;inset:0;border-radius:inherit;
  box-shadow:inset 0 1px 0 rgba(255,255,255,0.6);pointer-events:none;
}
.icon-tile.air{background:linear-gradient(155deg, var(--air-tint), #fff);}
.icon-tile.flame{background:linear-gradient(155deg, var(--flame-tint), #fff);}
.icon-tile.on-dark{background:linear-gradient(155deg, rgba(255,255,255,0.14), rgba(255,255,255,0.04));border-color:rgba(255,255,255,0.12);}
.icon-tile.on-dark::after{box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);}
.icon-tile.lg{width:3.75rem;height:3.75rem;border-radius:1.15rem;}

/* ---- Stars ---- */
.stars{color:var(--flame);letter-spacing:0.05em;}

/* ---- Google-style customer reviews ---- */
.reviews-section{
  color:#fff;background:
    radial-gradient(circle at 12% 20%,rgba(44,135,201,.2),transparent 30%),
    radial-gradient(circle at 90% 80%,rgba(217,71,43,.15),transparent 28%),
    #071b27;overflow:hidden;
}
.review-summary{display:flex;align-items:center;gap:1rem;padding:.8rem 1rem;border:1px solid rgba(255,255,255,.14);border-radius:1rem;background:rgba(255,255,255,.06);}
.reviews-carousel{position:relative;}
.reviews-track{display:flex;gap:1.5rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;scrollbar-width:none;padding:.25rem .1rem .75rem;overscroll-behavior-inline:contain;}
.reviews-track::-webkit-scrollbar{display:none;}
.review-item{flex:0 0 calc(50% - .75rem);min-width:0;scroll-snap-align:start;padding:0 .1rem;}
.review-bubble{position:relative;min-height:17rem;padding:2rem;border-radius:1.4rem;background:#fff;color:var(--ink);box-shadow:0 22px 44px -28px rgba(0,0,0,.72);}
.review-bubble::after{content:"";position:absolute;left:2rem;bottom:-.8rem;width:1.65rem;height:1.65rem;background:#fff;transform:rotate(45deg);border-radius:0 0 .25rem 0;}
.review-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.review-stars{color:#f9b400;font-weight:800;font-size:1.35rem;letter-spacing:.035em;white-space:nowrap;}
.verified{display:inline-flex;align-items:center;justify-content:center;width:1.15rem;height:1.15rem;margin-left:.35rem;border-radius:50%;background:#4285f4;color:#fff;font-size:.72rem;vertical-align:.15rem;letter-spacing:0;}
.google-mark{width:1.8rem;height:1.8rem;flex:none;}
.review-copy{margin-top:1rem;font-family:'Bricolage Grotesque',sans-serif;font-size:1.32rem;line-height:1.45;letter-spacing:-.01em;}
.reviewer{display:flex;align-items:center;gap:1rem;padding:1.45rem 1.1rem 0;}
.review-avatar{width:3.4rem;height:3.4rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Bricolage Grotesque',sans-serif;font-size:1.3rem;font-weight:800;color:#fff;flex:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.15);}
.avatar-air{background:var(--air);}.avatar-flame{background:var(--flame);}.avatar-gold{background:#8b5ec7;}.avatar-ink{background:#526979;}
.reviewer strong{display:block;font-family:'Bricolage Grotesque',sans-serif;font-size:1.1rem;line-height:1.1;}
.reviewer small{display:block;color:rgba(255,255,255,.6);font-size:.92rem;margin-top:.3rem;}
.review-arrow{position:absolute;z-index:3;top:7.6rem;width:2.8rem;height:2.8rem;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;color:var(--ink-soft);border:1px solid var(--line);font-size:2rem;line-height:1;box-shadow:0 8px 20px -10px rgba(0,0,0,.45);transition:transform .18s ease,background-color .18s ease;}
.review-arrow:hover{background:var(--air-tint);transform:scale(1.06);}.review-arrow:active{transform:scale(.96);}
.review-prev{left:-1.35rem}.review-next{right:-1.35rem}
.review-dots{display:flex;justify-content:center;gap:.45rem;margin-top:1.35rem;}
.review-dots span{width:.42rem;height:.42rem;border-radius:50%;background:rgba(255,255,255,.28);transition:width .2s ease,background .2s ease;}
.review-dots span.active{width:1.3rem;border-radius:999px;background:var(--air);}
@media (max-width:767px){
  .review-summary{width:100%;justify-content:flex-start;}
  .review-item{flex-basis:100%;}
  .review-bubble{min-height:18.5rem;padding:1.5rem;}
  .review-copy{font-size:1.12rem;line-height:1.5;}
  .review-prev{left:-1.15rem}.review-next{right:-1.15rem}
  .review-arrow{top:8.4rem;width:2.75rem;height:2.75rem;}
  .review-stars{font-size:1.12rem;}
}

/* ---- Pricing cards ---- */
.price-card{
  position:relative;border-radius:1.5rem;padding:2rem 1.75rem;
  background:var(--paper);border:1px solid var(--line);
  box-shadow:0 1px 2px rgba(10,10,10,0.04);
  transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease;
}
.price-card:hover{transform:translateY(-6px);box-shadow:0 30px 50px -26px rgba(10,10,10,0.28);}
.price-card.featured{
  background:var(--ink);color:#fff;border-color:transparent;
  box-shadow:0 1px 2px rgba(10,10,10,0.3), 0 30px 60px -24px rgba(217,71,43,0.4);
}
.price-card .price-tag{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;line-height:1;}
.price-card ul{margin-top:1.25rem;display:flex;flex-direction:column;gap:0.65rem;}
.price-card li{display:flex;align-items:start;gap:0.55rem;font-size:0.88rem;}
.price-card .pop-badge{
  position:absolute;top:-0.85rem;left:50%;transform:translateX(-50%);
  background:var(--flame);color:#fff;font-size:0.72rem;font-weight:800;letter-spacing:0.06em;
  text-transform:uppercase;padding:0.35rem 0.9rem;border-radius:999px;
  box-shadow:0 8px 16px -6px var(--flame-glow);white-space:nowrap;
}

/* ---- Photo treatment ---- */
.photo-frame{position:relative;overflow:hidden;isolation:isolate;}
.photo-frame img{display:block;}
.photo-frame::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(155deg, var(--flame-glow) 0%, transparent 30%, transparent 70%, var(--air-glow) 100%);
  mix-blend-mode:soft-light;opacity:0.55;
}
.photo-frame.duo::after{
  background:linear-gradient(180deg, transparent 55%, rgba(10,10,10,0.55) 100%);
  mix-blend-mode:normal;opacity:1;
}

/* ---- FAQ ---- */
details.faq{border-bottom:1px solid var(--line);padding:1.2rem 0;}
details.faq summary{
  cursor:pointer;list-style:none;font-weight:700;font-family:'Bricolage Grotesque',sans-serif;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;color:var(--ink);
}
details.faq summary::-webkit-details-marker{display:none;}
details.faq summary .plus{
  flex-shrink:0;width:1.75rem;height:1.75rem;border-radius:999px;background:var(--paper-deep);
  display:flex;align-items:center;justify-content:center;color:var(--ink-soft);
  transition:transform .25s cubic-bezier(.2,.8,.2,1), background-color .25s ease, color .25s ease;
}
details.faq[open] summary .plus{background:var(--air);color:#fff;transform:rotate(45deg);}
details.faq p{color:var(--ink-soft);margin-top:0.85rem;line-height:1.7;font-size:0.95rem;max-width:38rem;}

/* ---- Process steps ---- */
.process-track{position:relative;}
.step-num{position:relative;z-index:1;
  font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:0.9rem;
  width:2.5rem;height:2.5rem;border-radius:999px;
  background:linear-gradient(155deg, var(--air), var(--air-dark));color:#fff;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  box-shadow:0 10px 20px -8px var(--air-glow);
}

/* ---- Forms ---- */
.field label{font-size:0.82rem;font-weight:700;color:var(--ink-soft);display:block;margin-bottom:0.4rem;}
.field input,.field select,.field textarea{
  width:100%;border:1.5px solid var(--line);border-radius:0.85rem;
  padding:0.75rem 0.9rem;font-family:inherit;font-size:0.95rem;background:var(--paper);
  transition:border-color .15s ease, box-shadow .15s ease;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--air);outline:none;box-shadow:0 0 0 4px var(--air-tint);}

/* ---- Footer ---- */
.footer-link{color:rgba(255,255,255,0.72);font-size:0.92rem;transition:color .15s ease;}
.footer-link:hover{color:#fff;}

/* ---- Scroll reveal ---- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);will-change:opacity,transform;}
.reveal.is-visible{opacity:1;transform:translateY(0);}
.reveal-group .reveal:nth-child(1){transition-delay:0ms;}
.reveal-group .reveal:nth-child(2){transition-delay:90ms;}
.reveal-group .reveal:nth-child(3){transition-delay:180ms;}
.reveal-group .reveal:nth-child(4){transition-delay:270ms;}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;transition:none;}
}

/* ---- Utility ---- */
.balance{text-wrap:balance;}
.bg-noise{position:relative;isolation:isolate;}
.bg-noise::before{
  content:"";position:absolute;inset:0;z-index:-1;opacity:0.7;pointer-events:none;
  background-image:radial-gradient(circle at 15% 15%, var(--air-glow), transparent 45%),
                    radial-gradient(circle at 88% 0%, var(--flame-glow), transparent 42%);
}
.bg-grain{position:relative;isolation:isolate;}
.bg-grain::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0.5;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.text-gradient{
  background:linear-gradient(100deg, var(--air) 0%, #5AAEDE 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}

/* ---- Equipment marquee ---- */
.marquee-wrap{position:relative;overflow:hidden;}
.marquee-wrap::before,.marquee-wrap::after{
  content:"";position:absolute;top:0;bottom:0;width:4rem;z-index:2;pointer-events:none;
}
.marquee-wrap::before{left:0;background:linear-gradient(90deg, var(--ink), transparent);}
.marquee-wrap::after{right:0;background:linear-gradient(270deg, var(--ink), transparent);}
.marquee-track{
  display:flex;width:max-content;gap:1.25rem;
  animation:marquee-scroll 38s linear infinite;
  transform:translateZ(0);
  backface-visibility:hidden;
}
@media (hover: hover) and (pointer: fine){
  .marquee-wrap:hover .marquee-track{animation-play-state:paused;}
}
@keyframes marquee-scroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
@media (prefers-reduced-motion: reduce){
  .marquee-track{animation:none;}
  .marquee-wrap{overflow-x:auto;}
}
.equip-card{
  flex:0 0 auto;width:15.5rem;border-radius:1.25rem;background:var(--paper);
  border:1px solid var(--line);padding:1.5rem;
  box-shadow:0 1px 2px rgba(10,10,10,0.04), 0 20px 36px -24px rgba(10,10,10,0.22);
}
.equip-card .equip-photo{
  height:8rem;border-radius:0.85rem;background:var(--paper-soft);
  display:flex;align-items:center;justify-content:center;margin-bottom:1.1rem;overflow:hidden;
}
.equip-card .equip-brand{font-size:0.68rem;font-weight:800;letter-spacing:0.08em;text-transform:uppercase;color:var(--air);}
.equip-card .equip-name{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:1.02rem;color:var(--ink);margin-top:0.25rem;}
.equip-card .equip-spec{font-size:0.78rem;color:var(--ink-faint);margin-top:0.3rem;}
.equip-card .equip-price{
  display:flex;align-items:baseline;justify-content:space-between;
  margin-top:1.1rem;padding-top:1rem;border-top:1px dashed var(--line);
}
.equip-card .equip-price .amount{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:1.35rem;color:var(--ink);}
.equip-card .equip-price .unit{font-size:0.7rem;color:var(--ink-faint);font-weight:600;}

/* ---- Decorative fan illustration ---- */
.fan-deco{
  position:absolute;pointer-events:none;z-index:0;
  width:38rem;height:38rem;max-width:80vw;max-height:80vw;
  animation:fan-spin 48s linear infinite;
}
.fan-deco.reverse{animation-direction:reverse;animation-duration:62s;}
.fan-deco-wrap{position:absolute;pointer-events:none;z-index:0;}
.spin-slow{width:100%;height:100%;display:block;animation:fan-spin 48s linear infinite;}
@keyframes fan-spin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce){ .fan-deco,.spin-slow{animation:none;} }

/* ---- Photographic hero ---- */
.hero-home{background:#06131d;isolation:isolate;}
.hero-home-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:40% 30%;z-index:-3;}
.hero-home-overlay{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(3,12,18,.86) 0%,rgba(3,12,18,.78) 36%,rgba(3,12,18,.5) 62%,rgba(3,12,18,.28) 100%),linear-gradient(0deg,rgba(4,14,21,.48),transparent 48%),radial-gradient(circle at 78% 40%,rgba(44,135,201,.22),transparent 38%);}
.hero-home::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(135deg,rgba(217,71,43,.12),transparent 26%,transparent 78%,rgba(44,135,201,.15));}

/* ---- HVAC line illustrations ---- */
.content-layer{z-index:1;}
.hvac-sketch{position:absolute;pointer-events:none;z-index:0;fill:none;stroke:var(--air);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;opacity:.13;}
.hvac-sketch .sketch-dot{fill:var(--flame);stroke:none;}
.sketch-pipes{width:14rem;right:-1rem;top:1rem;transform:rotate(-4deg);opacity:.12;}
.sketch-pipes .pipe-copper{stroke:var(--flame);stroke-width:3;}
.sketch-pipes .pipe-flow{stroke:var(--air-dark);stroke-width:3;}
.sketch-airflow{width:14rem;left:-2rem;bottom:1.5rem;color:var(--air);opacity:.1;}
.sketch-thermostat{width:9rem;right:1.5rem;top:2rem;transform:rotate(8deg);}
.sketch-condenser{width:13rem;right:2rem;top:1.5rem;transform:rotate(5deg);}
.sketch-ac-unit{width:13rem;left:-2.5rem;top:.5rem;transform:rotate(-7deg);stroke:var(--flame);opacity:.11;}
.sketch-mini-split{width:15rem;right:-1.5rem;top:1.25rem;transform:rotate(4deg);opacity:.11;}
.illustrated-white{background-color:#fff;background-image:radial-gradient(circle at 5% 18%,rgba(44,135,201,.075),transparent 19rem),radial-gradient(circle at 94% 82%,rgba(217,71,43,.06),transparent 18rem);}
.mini-split-section::after{content:"";position:absolute;left:5%;bottom:8%;width:.6rem;height:.6rem;border-radius:50%;background:var(--flame);box-shadow:1.2rem .5rem 0 rgba(217,71,43,.3),2.4rem -.15rem 0 rgba(44,135,201,.35);opacity:.65;}
.accent-word{font-weight:800;position:relative;white-space:nowrap;}
.accent-word.air{color:var(--air-dark);}.accent-word.flame{color:var(--flame-dark);}
.accent-word::after{content:"";position:absolute;left:0;right:0;bottom:-.08em;height:2px;border-radius:99px;background:currentColor;opacity:.35;}
@media (max-width:767px){
  .hero-home-overlay{background:linear-gradient(180deg,rgba(3,12,18,.82) 0%,rgba(3,12,18,.74) 52%,rgba(3,12,18,.85) 100%);}
  .hvac-sketch{opacity:.075;}
  .faq-icon{width:3.2rem !important;}
  .sketch-pipes{width:8.5rem;right:-1.8rem;top:.5rem;}
  .sketch-condenser{width:9rem;right:-2.2rem;top:1rem;}
  .sketch-airflow{width:8rem;left:-2rem;bottom:1rem;}
  .sketch-thermostat{width:6.5rem;right:-1rem;top:1rem;}
  .sketch-ac-unit{width:8.5rem;left:-2.5rem;top:.5rem;}
  .sketch-mini-split{width:8.5rem;right:-2.5rem;top:.5rem;}
}

/* ---- Drifting air particles (fresh-air ambience) ---- */
.air-particles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;}
.air-particles span{
  position:absolute;bottom:-2rem;border-radius:999px;background:var(--air);opacity:0;
  animation:drift-up linear infinite;
}
@keyframes drift-up{
  0%{transform:translateY(0) translateX(0);opacity:0;}
  12%{opacity:0.55;}
  88%{opacity:0.28;}
  100%{transform:translateY(-32rem) translateX(3rem);opacity:0;}
}
@media (prefers-reduced-motion: reduce){ .air-particles{display:none;} }

/* ---- Coiled refrigerant-line decoration (fills empty sections) ---- */
.coil-deco{position:absolute;pointer-events:none;z-index:0;opacity:0.5;}
.coil-deco path{fill:none;stroke:var(--line);stroke-width:2;stroke-linecap:round;}

/* ---- Highlight tape (eye-catching inline emphasis) ---- */
.tape{position:relative;display:inline-block;padding:0.05em 0.45em;font-weight:700;color:var(--ink);white-space:nowrap;}
.tape::before{
  content:"";position:absolute;left:-0.1em;right:-0.1em;top:0.08em;bottom:0.04em;z-index:-1;
  background:var(--air-tint);transform:rotate(-1.4deg);
  border-top:1px solid rgba(255,255,255,0.55);border-bottom:1px solid rgba(255,255,255,0.55);
  box-shadow:0 1px 3px rgba(10,10,10,0.06);
}
.tape.flame::before{background:var(--flame-tint);transform:rotate(1.3deg);}
.tape.on-dark{color:#fff;}

/* ---- Promo ticket (coupon-style featured offer) ---- */
.promo-ticket{
  position:relative;border-radius:1.75rem;overflow:hidden;
  background:var(--ink);border:2px dashed rgba(255,255,255,0.22);
  box-shadow:0 1px 2px rgba(10,10,10,0.3), 0 30px 60px -22px var(--flame-glow);
}
.promo-ticket .ribbon{
  position:absolute;top:1.35rem;right:-3.1rem;width:12.5rem;text-align:center;
  background:var(--flame);color:#fff;font-size:0.68rem;font-weight:800;letter-spacing:0.08em;text-transform:uppercase;
  padding:0.4rem 0;transform:rotate(45deg);box-shadow:0 6px 14px rgba(0,0,0,0.35);z-index:2;
}
/* Arctic-inspired lead form */
.btn-flame { background:#ef4d25; color:#fff; border-color:#ef4d25; }
.btn-flame:hover { background:#d9472b; transform:translateY(-1px); }
.hero-field { width:100%; border:1px solid #d9e3eb; border-radius:.75rem; background:#f7fafc; color:#0a0a0a; padding:.9rem 1rem; font:inherit; outline:none; }
.hero-field:focus { border-color:#2c87c9; box-shadow:0 0 0 3px rgba(44,135,201,.15); background:#fff; }
.gold-card { position:relative; border-color:rgba(218,174,61,.62); background:linear-gradient(145deg,#fff 55%,#fff9e8); box-shadow:0 18px 44px -30px rgba(179,128,0,.8); }
.gold-badge { position:absolute; top:1rem; right:1rem; padding:.3rem .65rem; border-radius:999px; background:#f4c84a; color:#493500; font-size:.7rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.feature-list li { position:relative; padding:.72rem .8rem .72rem 2rem; border:1px solid var(--line); border-radius:.7rem; background:#fff; line-height:1.35; }
.feature-list li::before { content:"✓"; position:absolute; left:.75rem; top:.7rem; color:var(--air); font-weight:900; }
.feature-list li:nth-child(even)::before { color:var(--flame); }
.equipment-card { overflow:hidden; border:1px solid var(--line); border-radius:1.1rem; background:#fff; box-shadow:0 16px 34px -30px rgba(10,10,10,.55); }
.equipment-photo-row{display:flex;justify-content:center;align-items:center;padding:1rem .75rem;background:#fff;}
.equipment-photo-row figure{flex:0 0 auto;text-align:center;}
.equipment-photo-row img{height:6.5rem;width:auto;max-width:100%;object-fit:contain;transition:transform .35s ease;}
.equipment-card > div:last-child { padding:1.15rem; }
.equipment-card h3 { font-family:'Bricolage Grotesque',sans-serif; font-size:1.08rem; font-weight:800; color:var(--ink); }
.equipment-card p { margin-top:.35rem; color:var(--ink-soft); font-size:.83rem; line-height:1.5; }
.equipment-price { display:flex; align-items:baseline; justify-content:space-between; gap:.6rem; margin-top:1rem; padding-top:.8rem; border-top:1px solid var(--line); color:var(--ink); font-family:'Bricolage Grotesque',sans-serif; font-size:1.25rem; font-weight:800; }
.equipment-price small { color:var(--ink-faint); font-family:'Figtree',sans-serif; font-size:.7rem; font-weight:700; line-height:1.15; text-transform:uppercase; letter-spacing:.04em; }

/* ---- Carrier branded product cards (Green Leaf-inspired: accent border + wordmark + pill label) ---- */
.equipment-card.accent-flame,.equipment-card.accent-air{border-width:2px;}
.equipment-card.accent-flame{border-color:var(--flame);}
.equipment-card.accent-air{border-color:var(--air);}
.carrier-wordmark{margin-top:1.1rem;padding:0 1.15rem;text-align:center;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:.95rem;letter-spacing:.05em;color:var(--ink);}
.carrier-wordmark sup{font-size:.55rem;}
.carrier-pill{margin-top:.85rem;padding:.75rem 1rem;text-align:center;font-weight:800;font-size:.85rem;}
.equipment-card.accent-flame .carrier-pill{color:var(--flame);background:var(--flame-tint);}
.equipment-card.accent-air .carrier-pill{color:var(--air);background:var(--air-tint);}
.carrier-specs{margin-top:0;color:var(--ink-soft);font-size:.78rem;line-height:1.5;}

/* ---- Equipment hub cards (homepage): simple brand boxes linking to equipment.html ---- */
.equipment-hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(15.5rem,1fr));gap:2.25rem;max-width:56rem;}
.equipment-hub-card{display:block;overflow:hidden;border-radius:1.1rem;background:#fff;box-shadow:0 16px 34px -30px rgba(10,10,10,.55);border:2px solid var(--line);text-decoration:none;transition:transform .2s ease,box-shadow .2s ease;}
.equipment-hub-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -26px rgba(10,10,10,.4);}
.equipment-hub-card.accent-flame{border-color:var(--flame);}
.equipment-hub-card.accent-air{border-color:var(--air);}
.equipment-hub-card.accent-ink{border-color:var(--ink);}
.equipment-hub-card .carrier-pill{display:flex;align-items:center;justify-content:center;gap:.4rem;}
.equipment-hub-card.accent-flame .carrier-pill{color:var(--flame);background:var(--flame-tint);}
.equipment-hub-card.accent-air .carrier-pill{color:var(--air);background:var(--air-tint);}
.equipment-hub-card.accent-ink .carrier-pill{color:var(--ink);background:var(--paper-deep);}
.hub-arrow{transition:transform .2s ease;}
.equipment-hub-card:hover .hub-arrow{transform:translateX(3px);}

/* ---- Equipment shop: two labeled groups (Gas System / Heat Pump System), each its own carousel ---- */
.equipment-groups{display:flex;flex-direction:column;gap:2.5rem;}
.equipment-group{position:relative;}
.equipment-group-title{font-family:'Bricolage Grotesque',sans-serif;font-size:1.15rem;font-weight:800;color:var(--ink);margin-bottom:1rem;}
.equipment-carousel{position:relative;}
.equipment-track{display:flex;gap:1.1rem;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;scrollbar-width:none;padding:.15rem .1rem .5rem;}
.equipment-track::-webkit-scrollbar{display:none;}
.equipment-card{flex:1 0 15.5rem;min-width:0;scroll-snap-align:start;}
.equipment-card > div:last-child{display:flex;flex-direction:column;}
.btn-add-cart{margin-top:1rem;padding:.6rem 1rem;border-radius:.65rem;border:1.5px solid var(--air);background:transparent;color:var(--air);font-size:.85rem;font-weight:800;cursor:pointer;transition:background-color .18s ease,color .18s ease,transform .18s ease;}
.btn-add-cart:hover{background:var(--air-tint);}
.btn-add-cart.added{background:var(--air);color:#fff;transform:scale(1.03);}
.equip-arrow{position:absolute;z-index:3;top:6.5rem;width:2.6rem;height:2.6rem;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;color:var(--ink-soft);border:1px solid var(--line);font-size:1.9rem;line-height:1;box-shadow:0 8px 20px -10px rgba(0,0,0,.35);cursor:pointer;}
.equip-arrow[hidden]{display:none;}
.equip-arrow:hover{background:var(--air-tint);}
.equip-prev{left:-1.2rem}
.equip-next{right:-1.2rem}
@media (max-width:900px){
  .equip-prev{left:-.5rem}
  .equip-next{right:-.5rem}
}
@media (pointer:coarse){
  .equip-arrow{display:none !important;}
}

/* ---- Cart icon + badge ---- */
.cart-icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;color:#fff;background:transparent;border:none;cursor:pointer;}
.cart-icon-btn:hover{color:var(--air);}
.cart-badge{position:absolute;top:-.15rem;right:-.15rem;min-width:1.05rem;height:1.05rem;padding:0 .25rem;border-radius:999px;background:var(--flame);color:#fff;font-size:.65rem;font-weight:800;display:flex;align-items:center;justify-content:center;line-height:1;}
.cart-badge[hidden]{display:none;}
.cart-mobile-link{display:flex;align-items:center;gap:.5rem;background:none;border:none;padding:.65rem 0;cursor:pointer;}
.cart-mobile-link .cart-badge{position:static;}

/* ---- Mini-split info popup ---- */
.minisplit-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:91;width:min(22rem,90vw);background:#fff;border-radius:1.25rem;padding:2.25rem 1.75rem 1.75rem;text-align:center;box-shadow:0 30px 60px -20px rgba(0,0,0,.4);}
.minisplit-modal[hidden]{display:none;}
.minisplit-close{position:absolute;top:.9rem;right:1rem;background:none;border:none;font-size:1.1rem;color:var(--ink-soft);cursor:pointer;padding:.3rem;}
.minisplit-modal h3{margin-top:.6rem;font-family:'Bricolage Grotesque',sans-serif;font-size:1.25rem;font-weight:800;color:var(--ink);}
.minisplit-copy{margin:.75rem 0 1.35rem;color:var(--ink-soft);font-size:.88rem;line-height:1.5;}
.minisplit-modal .btn{margin-top:.6rem;}

/* ---- Cart modal ---- */
.cart-overlay{position:fixed;inset:0;z-index:90;background:rgba(10,10,10,.5);}
.cart-modal{position:fixed;top:0;right:0;bottom:0;z-index:91;width:min(24rem,100%);background:#fff;display:flex;flex-direction:column;box-shadow:-20px 0 50px -20px rgba(0,0,0,.4);}
.cart-modal[hidden]{display:none;}
.cart-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--line);}
.cart-modal-header h3{font-family:'Bricolage Grotesque',sans-serif;font-size:1.2rem;font-weight:800;}
.cart-close{background:none;border:none;font-size:1.1rem;color:var(--ink-soft);cursor:pointer;padding:.3rem;}
.cart-modal-body{flex:1;overflow-y:auto;padding:0 1.5rem;}
.cart-item{display:flex;gap:.85rem;padding:.9rem 0;border-bottom:1px solid var(--line);align-items:flex-start;}
.cart-item-info{flex:1;min-width:0;}
.cart-item-info h4{font-size:.92rem;font-weight:700;color:var(--ink);}
.cart-item-price{font-size:.82rem;color:var(--ink-soft);margin-top:.15rem;}
.cart-item-qty{display:flex;align-items:center;gap:.6rem;margin-top:.5rem;}
.qty-btn{width:1.6rem;height:1.6rem;border-radius:.4rem;border:1px solid var(--line);background:#fff;cursor:pointer;font-weight:800;color:var(--ink-soft);}
.qty-btn:hover{background:var(--paper-deep);}
.cart-item-remove{align-self:flex-start;background:none;border:none;color:var(--ink-faint);font-size:.78rem;cursor:pointer;text-decoration:underline;}
.cart-modal-footer{padding:1.1rem 1.5rem 1.4rem;border-top:1px solid var(--line);}
.cart-subtotal{display:flex;justify-content:space-between;align-items:baseline;font-size:.95rem;margin-bottom:.9rem;}
.cart-subtotal strong{font-family:'Bricolage Grotesque',sans-serif;font-size:1.3rem;}
.cart-note{margin-top:.7rem;font-size:.72rem;color:var(--ink-faint);text-align:center;line-height:1.4;}
.cart-empty{padding:3rem 1.5rem;text-align:center;color:var(--ink-faint);font-size:.9rem;}
.cart-checkout-notice{padding:1.1rem 1.5rem 1.5rem;display:flex;flex-direction:column;gap:.85rem;text-align:center;}
.cart-checkout-notice[hidden]{display:none;}
.cart-checkout-notice p{font-size:.9rem;color:var(--ink-soft);line-height:1.5;}
@media (max-width:480px){ .cart-modal{width:100%;} }

/* Keep long contact details readable without creating awkward one-letter lines. */
.contact-value { min-width:0; overflow-wrap:anywhere; line-height:1.25; }

@media (max-width:1023px) {
  #menu-btn { min-width:2.75rem; min-height:2.75rem; display:inline-flex; align-items:center; justify-content:center; }
  #mobile-menu .nav-link { min-height:2.75rem; display:flex; align-items:center; padding:.65rem 0; }
}
@media (hover:hover) { .equipment-card:hover .equipment-photo-row img { transform:scale(1.035); } }
.offer-strip { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1.4rem; margin-top:2rem; padding:1.15rem 1.3rem; border-radius:1.25rem; color:#fff; background:linear-gradient(110deg,#101010,#182b38); border:1px solid rgba(255,255,255,.1); box-shadow:0 22px 38px -30px rgba(10,10,10,.7); }
.offer-value { display:flex; align-items:baseline; gap:.25rem; padding-right:1.35rem; border-right:1px solid rgba(255,255,255,.16); }
.offer-value strong { font-family:'Bricolage Grotesque',sans-serif; font-size:2.8rem; line-height:1; }
.offer-value span { color:var(--flame); font-weight:900; }
.offer-copy h3 { margin-top:.45rem; font-family:'Bricolage Grotesque',sans-serif; font-size:1.15rem; font-weight:800; }
.offer-copy p { margin-top:.15rem; color:rgba(255,255,255,.58); font-size:.8rem; }
.google-map { position:relative; overflow:hidden; border-radius:1.5rem; border:1px solid #cbdbe6; background:#eaf3f8; box-shadow:0 24px 55px -38px rgba(17,72,104,.7); }
.google-map img { display:block; width:100%; height:auto; }
.about-gallery { align-content:start; }
.about-photo { position:relative; height:16.5rem; overflow:hidden; border-radius:1.15rem; background:var(--paper-deep); box-shadow:0 18px 36px -28px rgba(10,10,10,.65); }
.about-photo.wide { grid-column:1/-1; height:22rem; }
.about-photo.wide.lower { height:18rem; }
.about-photo.offset { margin-top:2.5rem; }
.about-photo img { width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.about-photo::after { content:""; position:absolute; inset:55% 0 0; background:linear-gradient(transparent,rgba(0,0,0,.72)); }
.about-photo figcaption { position:absolute; z-index:1; left:1rem; right:1rem; bottom:.85rem; color:#fff; font-size:.78rem; font-weight:700; }
@media (hover:hover) { .about-photo:hover img { transform:scale(1.035); } }
.about-hvac-art { grid-column:1/-1; position:relative; min-height:22rem; overflow:hidden; border-radius:1.25rem; background:radial-gradient(circle at 75% 50%,rgba(44,135,201,.28),transparent 28%),linear-gradient(135deg,#071621,#101010 58%,#39160f); box-shadow:0 22px 46px -30px rgba(10,10,10,.75); }
.hvac-system-art { position:absolute; right:3%; top:50%; width:22rem; max-width:48%; transform:translateY(-50%) rotate(1deg); fill:none; stroke:#4ca9df; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; filter:drop-shadow(0 18px 30px rgba(0,0,0,.2)); }
.hvac-system-art .system-house { stroke:rgba(104,185,232,.42); stroke-width:1.7; }
.hvac-system-art .system-wall { stroke:rgba(255,255,255,.13); }
.hvac-system-art .system-indoor rect,.hvac-system-art .system-thermostat rect { fill:rgba(44,135,201,.13); }
.hvac-system-art .system-condenser path:first-child { fill:rgba(44,135,201,.08); }
.hvac-system-art .system-line { stroke:var(--flame); stroke-width:3; stroke-dasharray:5 7; }
.hvac-system-art .system-air { stroke:#68b9e8; stroke-width:3; }
.hvac-system-art .system-thermostat circle { fill:rgba(217,71,43,.22); stroke:var(--flame); }
.hvac-art-copy { position:absolute; z-index:2; left:2.2rem; top:50%; width:48%; transform:translateY(-50%); color:#fff; }
.hvac-art-copy small { display:block; color:#68b9e8; font-size:.7rem; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.hvac-art-copy strong { display:block; margin-top:.65rem; font-family:'Bricolage Grotesque',sans-serif; font-size:2rem; line-height:1.08; }
.hvac-art-copy p { margin-top:.8rem; color:rgba(255,255,255,.6); font-size:.85rem; line-height:1.55; }
.job-photo { position:relative; min-height:16rem; border-radius:1.15rem; overflow:hidden; background:#18232d; }
.job-photo-tall { min-height:28rem; }
@media (min-width:768px){
  .maint-ac{order:1}
  .maint-heat{order:2}
  .maint-photo-1{order:3}
  .maint-photo-2{order:4}
}
.job-photo img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; transition:transform .35s ease; }
.job-photo::after { content:""; position:absolute; inset:45% 0 0; background:linear-gradient(transparent,rgba(0,0,0,.82)); }
.job-photo figcaption { position:absolute; z-index:1; left:1rem; right:1rem; bottom:.9rem; color:#fff; font-weight:700; font-size:.88rem; }
@media (hover:hover) { .job-photo:hover img { transform:scale(1.035); } }
@media (max-width: 639px) {
  .equipment-hub-grid { max-width:19rem; margin-inline:auto; gap:1.5rem; }
  .py-20 { padding-top:3.5rem !important; padding-bottom:3.5rem !important; }
  .py-16 { padding-top:3rem !important; padding-bottom:3rem !important; }
  .mobile-hero h1 { font-size:2.45rem; line-height:1.02; }
  .mobile-hero-actions .btn { width:100%; min-height:3.15rem; }
  .mobile-trust { font-size:.82rem; }
  .mobile-trust > div { width:100%; }
  .hero-field { min-height:3.15rem; font-size:1rem; }
  .field input,.field select,.field textarea { min-height:3rem; font-size:1rem; }
  .site-header { position:sticky; top:0; }
  .footer-link:is(a) { min-height:2.75rem; display:inline-flex; align-items:center; }
  .job-photo { min-height:13rem; }
  .job-photo-tall { min-height:20rem; }
  .job-photo figcaption { left:.75rem; bottom:.7rem; font-size:.75rem; }
  .feature-list { grid-template-columns:1fr; }
  .price-card { padding:1.35rem; }
  .equipment-photo-row img { height:5rem; }
  .equipment-card { flex-basis:78vw; }
  .equipment-card:last-child { scroll-snap-align:end; }
  .equipment-card > div:last-child { padding:.9rem; }
  .equipment-card h3 { font-size:.92rem; }
  .equipment-card p { font-size:.76rem; }
  .equipment-price { align-items:flex-start; flex-direction:column; gap:.25rem; }
  .offer-strip { grid-template-columns:auto 1fr; gap:1rem; }
  .offer-strip .btn { grid-column:1/-1; width:100%; }
  .offer-value { padding-right:1rem; }
  .offer-value strong { font-size:2.15rem; }
  .about-photo { height:13rem; }
  .about-photo.wide { height:16rem; }
  .about-photo.wide.lower { height:14rem; }
  .about-photo.offset { margin-top:1.25rem; }
  .about-photo figcaption { left:.75rem; bottom:.65rem; font-size:.7rem; }
  .about-hvac-art { min-height:19rem; }
  .hvac-system-art { right:-4.7rem; width:17rem; max-width:72%; opacity:.62; }
  .hvac-art-copy { left:1.25rem; width:62%; }
  .hvac-art-copy strong { font-size:1.45rem; }
  .hvac-art-copy p { font-size:.76rem; }
}
