/* ==========================================================================
   COWBOY'S AC & HEATING — site.css (v12.0)
   The base layer for the v12 single-page homepage. Page-specific hero,
   loader, module, form, club, way, rail, marquee and faq styling lives in
   index.html's inline <style>; this file supplies the design system those
   rules sit on: tokens, reset, typography, header/nav, buttons, cards,
   grids, stats, press, footer and the mobile action bar.
   Palette and type are the house system — espresso ground, cream text,
   gold instrumentation, red for action. Chamfer-free rounded corners per
   the v12 design's own idiom.
   ========================================================================== */

:root{
  /* ground */
  --bg:#0e0907; --bg2:#140d09; --panel:#1b120d; --panel2:#241811;
  /* ink */
  --cream:#f4ead6; --t2:rgba(244,234,214,.72); --t3:rgba(244,234,214,.46);
  /* accents */
  --gold:#e8b04a; --gold2:#f6cd78; --red:#e23c2c; --red2:#ef5140; --rust:#d9803a;
  /* structure */
  --line:rgba(244,234,214,.10); --hair:rgba(244,234,214,.16);
  --goldline:rgba(232,176,74,.30);
  /* type */
  --display:'Oswald',system-ui,sans-serif;
  --sans:'Plus Jakarta Sans',system-ui,sans-serif;
  --mono:'Share Tech Mono',ui-monospace,monospace;
  /* motion */
  --ease:cubic-bezier(.22,1,.36,1);
  /* metrics */
  --max:1240px; --gutter:clamp(1.1rem,4vw,2.2rem); --hdr-h:70px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr-h) + 12px)}
body{margin:0;background:var(--bg);color:var(--cream);font-family:var(--sans);
  line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg,video{max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit}
::selection{background:rgba(232,176,74,.28)}

.wrap{width:min(var(--max),100%);margin-inline:auto;padding-inline:var(--gutter)}

/* ---------- typography ---------- */
h1,h2,h3,h4{margin:0;font-family:var(--display);font-weight:600;line-height:1.06;
  text-transform:uppercase;letter-spacing:.005em;color:var(--cream)}
.h2{font-family:var(--display);font-weight:700;text-transform:uppercase;line-height:1;
  font-size:clamp(1.9rem,4.4vw,3.1rem);margin:.9rem 0 0;text-wrap:balance}
.h2 em,h1 em,.h3 em{font-style:normal;color:var(--red2)}
.h3{font-family:var(--display);font-weight:600;text-transform:uppercase;
  font-size:1.12rem;letter-spacing:.02em;margin:0}
.lede{color:var(--t2);font-size:clamp(1rem,1.9vw,1.12rem);margin:1rem 0 0;max-width:66ch;text-wrap:pretty}
.small{font-size:.9rem;color:var(--t2);line-height:1.7}
.mono{font-family:var(--mono);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--t3)}
.eyebrow{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--mono);
  font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.eyebrow i{width:6px;height:6px;border-radius:50%;background:var(--red);
  box-shadow:0 0 0 3px rgba(226,60,44,.18);flex:none;animation:pulse 2.6s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}

/* ---------- sections ---------- */
.sec{padding-block:clamp(3rem,7vw,5.6rem);position:relative}
.sec--alt{background:var(--bg2);border-block:1px solid var(--line)}

/* ---------- utility bar ---------- */
.util{background:#0a0605;border-bottom:1px solid var(--line);font-family:var(--mono);
  font-size:.62rem;letter-spacing:.14em;text-transform:uppercase}
.util__in{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  min-height:38px;flex-wrap:wrap}
.util__badges{display:flex;align-items:center;gap:1.3rem;color:var(--t3);flex-wrap:wrap}
.util__badges b{color:var(--cream);font-weight:400}
.util__phone{display:inline-flex;align-items:center;gap:.5rem;color:var(--cream);
  text-decoration:none;font-size:.86rem;letter-spacing:.02em}
.util__phone i{width:6px;height:6px;border-radius:50%;background:var(--red);
  box-shadow:0 0 0 3px rgba(226,60,44,.18);flex:none;animation:pulse 2.6s infinite}
@media(max-width:900px){
  .util__phone{display:none}
  .util__badges{gap:.9rem;font-size:.58rem;justify-content:center;width:100%}
  .util__badges span:nth-child(2){display:none}
}
@media(max-width:430px){.util__badges span:first-child{display:none}}

/* ---------- header ---------- */
.hdr{position:sticky;top:0;z-index:60;background:rgba(14,9,7,.86);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);transition:background .3s var(--ease),box-shadow .3s var(--ease)}
.hdr__in{display:flex;align-items:center;gap:1.1rem;min-height:var(--hdr-h)}
.brand{flex:none;display:flex;align-items:center;text-decoration:none}
.brand img{height:42px;width:auto;display:block}
.nav{display:flex;align-items:center;gap:1.35rem;margin-left:auto}
.nav a{font-family:var(--display);font-weight:500;text-transform:uppercase;letter-spacing:.05em;
  font-size:.82rem;color:var(--t2);text-decoration:none;position:relative;padding-block:.3rem;
  transition:color .25s var(--ease)}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold);
  transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
.nav a:hover{color:var(--cream)}
.nav a:hover::after{transform:scaleX(1)}
.hdr .btn{flex:none}
@media(max-width:1080px){.nav{display:none}}
@media(max-width:1080px){.hdr .btn--ghost{display:none}}

.burger{display:none;width:44px;height:44px;background:none;border:0;cursor:pointer;
  flex-direction:column;justify-content:center;gap:5px;padding:0;flex:none;margin-left:auto}
.burger span{display:block;height:2px;width:22px;background:var(--cream);margin-inline:auto;
  transition:transform .3s var(--ease),opacity .2s}
body.nav-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.nav-open .burger span:nth-child(2){opacity:0}
body.nav-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:1080px){.burger{display:flex}.nav{margin-left:0}}

/* ---------- mobile drawer ---------- */
.mobile{position:fixed;inset:var(--hdr-h) 0 0;z-index:55;background:rgba(10,6,5,.98);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  padding:2rem var(--gutter) 3rem;display:flex;flex-direction:column;gap:.3rem;
  transform:translateY(-12px);opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s;overflow-y:auto}
body.nav-open .mobile{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.mobile a:not(.btn){font-family:var(--display);font-weight:600;text-transform:uppercase;
  letter-spacing:.04em;font-size:1.35rem;color:var(--cream);text-decoration:none;
  padding:.85rem 0;border-bottom:1px solid var(--line)}
@media(min-width:1081px){.mobile{display:none}}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  font-family:var(--display);font-weight:600;text-transform:uppercase;letter-spacing:.05em;
  font-size:.86rem;padding:.82rem 1.5rem;min-height:46px;border:1px solid transparent;
  border-radius:.55rem;cursor:pointer;text-decoration:none;text-align:center;
  transition:transform .25s var(--ease),background .25s var(--ease),
             border-color .25s var(--ease),color .25s var(--ease),box-shadow .3s var(--ease)}
.btn svg{width:17px;height:17px;flex:none}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn--red{background:var(--red);color:#fff;box-shadow:0 10px 30px -14px rgba(226,60,44,.9)}
.btn--red:hover{background:#ef4a38;box-shadow:0 16px 38px -14px rgba(226,60,44,1)}
.btn--gold{background:linear-gradient(160deg,var(--gold2),var(--gold));color:#2a1706;
  box-shadow:0 10px 30px -14px rgba(232,176,74,.85)}
.btn--gold:hover{box-shadow:0 16px 38px -14px rgba(232,176,74,1)}
.btn--ghost{background:transparent;border-color:var(--hair);color:var(--cream)}
.btn--ghost:hover{border-color:var(--gold);color:var(--gold2)}
.btn--block{width:100%}
@media(pointer:coarse){.btn{min-height:48px}}

/* ---------- grids ---------- */
.grid{display:grid;gap:.9rem}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:1000px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.g2{grid-template-columns:1fr}}
@media(max-width:600px){.g3,.g4{grid-template-columns:1fr}}

/* ---------- cards ---------- */
.card{background:linear-gradient(168deg,var(--panel2),var(--panel));
  border:1px solid var(--line);border-radius:.9rem;padding:clamp(1.2rem,2.4vw,1.6rem);
  transition:border-color .3s var(--ease),transform .35s var(--ease),box-shadow .4s var(--ease)}
.card--link{text-decoration:none;display:block}
.card--link:hover{border-color:var(--goldline);transform:translateY(-3px);
  box-shadow:0 26px 60px -38px rgba(232,176,74,.75)}

/* ---------- stats ---------- */
.stats{display:flex;flex-wrap:wrap;gap:.4rem 2.2rem}
.stat{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.stat b{font-family:var(--display);font-weight:700;font-size:1.5rem;line-height:1;color:var(--gold2)}
.stat span{font-family:var(--mono);font-size:.58rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--t3)}
@media(max-width:520px){.stats{gap:.9rem 1.4rem}.stat b{font-size:1.25rem}}

/* ---------- press logos ---------- */
.press{display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap;opacity:.72}
.press img{height:30px;width:auto;filter:grayscale(1) brightness(1.7);display:block}

/* ---------- footer ---------- */
.footer{background:#0a0605;border-top:1px solid var(--line);
  padding-block:clamp(2.4rem,5vw,3.6rem) 2rem;margin-bottom:var(--mobar-space,0px)}
.footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2rem}
.footer__grid img{height:46px;width:auto;display:block;margin-bottom:1rem}
.footer__grid p{color:var(--t3);font-size:.86rem;line-height:1.75;margin:0;max-width:44ch}
.footer h4{font-family:var(--mono);font-weight:400;font-size:.6rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold);margin:0 0 .9rem}
.footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.footer li{font-size:.88rem;color:var(--t3)}
.footer a{color:var(--t2);text-decoration:none;transition:color .25s var(--ease)}
.footer a:hover{color:var(--gold2)}
.footer__bottom{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  margin-top:2.4rem;padding-top:1.4rem;border-top:1px solid var(--line);
  font-family:var(--mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--t3)}
@media(max-width:900px){.footer__grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.footer__grid{grid-template-columns:1fr}}

/* ---------- mobile action bar ---------- */
.mobar{position:fixed;left:0;right:0;bottom:0;z-index:58;display:none;gap:.5rem;
  padding:.6rem var(--gutter);padding-bottom:max(.6rem,env(safe-area-inset-bottom));
  background:rgba(10,6,5,.95);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-top:1px solid var(--line)}
.mobar .btn{font-size:.8rem;padding-inline:.6rem}
@media(max-width:820px){
  .mobar{display:grid;grid-template-columns:1fr 1fr}
  body{padding-bottom:calc(58px + env(safe-area-inset-bottom))}
}

/* ---------- focus ---------- */
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}
