/*
Theme Name: Always Be Cooling
Theme URI: https://alwaysbecoolingswfl.com
Author: Twin Shores Marketing
Description: Custom SWFL HVAC theme — "Florida plate, pro crew." Plate blues, citrus orange, seafoam. Built by Sonic.
Version: 1.0.3
License: GPL-2.0-or-later
Text Domain: abc-theme
*/

/* ============ TOKENS ============ */
:root{
  --blue:#173E8C; --blue-dark:#0E2A63; --blue-ink:#152238;
  --orange:#F4772E; --orange-hover:#D95F1A;
  --seafoam:#BFE3D6; --seafoam-pale:#E4F3ED; --gulf:#2E8B74;
  --slate:#3D4A5F; --haze:#C9D3DE; --cloud:#F2F6F9; --white:#fff;
  --danger:#C0392B;
  --font-display:"Barlow Condensed","Arial Narrow",sans-serif;
  --font-body:Barlow,"Helvetica Neue",Arial,sans-serif;
  --sec-pad:clamp(3rem,8vw,6rem);
  --radius:14px;
  --shadow:0 8px 30px rgba(14,42,99,.12);
  --shadow-lift:0 14px 40px rgba(14,42,99,.18);
}

/* ============ RESET / BASE (mobile-first, 320px up) ============ */
*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-family:var(--font-body);font-size:clamp(1rem,.3vw + .95rem,1.125rem);line-height:1.65;color:var(--slate);background:var(--white);overflow-x:clip;-webkit-font-smoothing:antialiased}
img,video{max-width:100%;height:auto;display:block}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--blue-ink);line-height:1.08;margin:0 0 .6em;text-wrap:balance}
h1{font-size:clamp(2.4rem,6vw + 1rem,4.5rem);font-weight:700;text-transform:uppercase;letter-spacing:.01em}
h2{font-size:clamp(1.8rem,3.5vw + .8rem,3rem);font-weight:700;text-transform:uppercase}
h3{font-size:clamp(1.25rem,1.5vw + .8rem,1.6rem);font-weight:600}
p{margin:0 0 1.1em}
a{color:var(--blue)}
ul{padding-left:1.2em}
.wrap{width:min(100% - 2.5rem,1200px);margin-inline:auto}
.wrap-wide{width:min(100% - 2rem,1400px);margin-inline:auto}
.prose{max-width:65ch}
section{padding-block:var(--sec-pad)}
.sec-cloud{background:var(--cloud)}
.sec-seafoam{background:var(--seafoam-pale)}
.sec-blue{background:var(--blue);color:#E8EEF9}
.sec-blue h2,.sec-blue h3{color:#fff}
.sec-dark{background:var(--blue-dark);color:#DDE6F5}
.sec-dark h2,.sec-dark h3{color:#fff}
.kicker{font-family:var(--font-display);font-weight:600;text-transform:uppercase;letter-spacing:.14em;font-size:.95rem;color:var(--orange);display:block;margin-bottom:.5rem}
.sec-blue .kicker,.sec-dark .kicker{color:var(--seafoam)}

/* ============ GRID UTILITIES ============ */
.grid-2,.grid-3,.grid-4{display:grid;gap:clamp(1rem,2.5vw,2rem);grid-template-columns:1fr}
@media(min-width:768px){.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(2,1fr)}.grid-4{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}}
.split{display:grid;gap:clamp(1.5rem,4vw,3.5rem);grid-template-columns:1fr;align-items:center}
@media(min-width:1024px){.split{grid-template-columns:3fr 2fr}.split.flip{grid-template-columns:2fr 3fr}}

/* ============ BUTTONS ============ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-display);font-weight:600;text-transform:uppercase;letter-spacing:.05em;font-size:1.15rem;padding:.85rem 1.7rem;border-radius:10px;text-decoration:none;min-height:48px;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;border:0;cursor:pointer}
.btn-primary{background:var(--orange);color:#fff !important;box-shadow:0 6px 18px rgba(244,119,46,.35)}
.btn-primary:hover{background:var(--orange-hover);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:#fff !important;border:2px solid rgba(255,255,255,.7)}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.btn-blue{background:var(--blue);color:#fff !important}
.btn-blue:hover{background:var(--blue-dark);transform:translateY(-2px)}

/* ============ PLATE BADGE (signature) ============ */
.plate{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-display);font-weight:600;text-transform:uppercase;letter-spacing:.06em;font-size:.92rem;color:var(--blue);background:#fff;border:2px solid var(--blue);border-radius:8px;padding:.35rem .8rem;position:relative;white-space:nowrap}
.plate::before,.plate::after{content:"";position:absolute;top:4px;width:4px;height:4px;border-radius:50%;background:var(--haze)}
.plate::before{left:5px}.plate::after{right:5px}
.plate-row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.sec-blue .plate,.sec-dark .plate,.hero .plate{background:rgba(255,255,255,.95)}

/* ============ CITRUS DOT / ROAD STRIPE (signatures) ============ */
.dot-list{list-style:none;padding:0;margin:0 0 1.2em}
.dot-list li{position:relative;padding-left:1.6rem;margin-bottom:.65rem}
.dot-list li::before{content:"";position:absolute;left:0;top:.48em;width:.72rem;height:.72rem;border-radius:50%;background:var(--orange)}
.road-stripe{height:0;border-top:3px solid var(--blue);border-bottom:2px solid var(--orange);width:min(140px,30%);margin:0 0 1.6rem;border-radius:2px}
.center .road-stripe{margin-inline:auto}

/* ============ CARDS ============ */
.card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(1.4rem,3vw,2rem);transition:transform .18s ease,box-shadow .18s ease;min-width:0}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift)}
.card h3 a{color:var(--blue-ink);text-decoration:none}
.sec-blue .card h3,.sec-dark .card h3,.sec-blue .card h3 a,.sec-dark .card h3 a{color:var(--blue-ink)}
.sec-blue .card p,.sec-dark .card p{color:var(--slate)}
.card .more{font-family:var(--font-display);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--orange);text-decoration:none}
.icon-chip{width:56px;height:56px;border-radius:50%;background:var(--seafoam);display:flex;align-items:center;justify-content:center;margin-bottom:1rem}
.icon-chip svg{width:28px;height:28px;stroke:var(--blue);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ============ HERO ============ */
.hero{position:relative;background:var(--blue-dark);color:#E8EEF9;padding-block:clamp(3.5rem,9vw,7rem) clamp(4.5rem,10vw,7.5rem);overflow:clip}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.28;filter:saturate(.9)}
.hero-grad{position:absolute;inset:0;background:linear-gradient(100deg,rgba(14,42,99,.96) 20%,rgba(14,42,99,.55) 65%,rgba(23,62,140,.35))}
.hero .wrap{position:relative}
.hero h1{color:#fff;max-width:14ch}
.hero .sub{font-size:clamp(1.05rem,.5vw + 1rem,1.3rem);max-width:56ch;color:#D6E1F5}
.hero-ctas{display:flex;flex-wrap:wrap;gap:.9rem;margin:1.6rem 0 1.4rem}
.hero-phone-note{font-family:var(--font-display);font-size:1.05rem;letter-spacing:.04em;text-transform:uppercase;color:var(--seafoam)}

/* ============ STATS ============ */
.stat{text-align:left}
.stat .num{font-family:var(--font-display);font-weight:700;font-size:clamp(2.4rem,4vw,3.6rem);color:var(--blue);line-height:1}
.sec-blue .stat .num,.sec-dark .stat .num{color:var(--seafoam)}
.stat .lbl{font-weight:500;font-size:.98rem}

/* ============ STEPS (named process) ============ */
.step{position:relative;padding-top:.4rem}
.step .n{font-family:var(--font-display);font-weight:700;font-size:3.2rem;color:var(--seafoam);line-height:1}
.step h3{margin-top:.3rem}

/* ============ PAIN ROW ============ */
.pain{display:flex;gap:.9rem;align-items:flex-start}
.pain .x{flex:0 0 auto;width:34px;height:34px;border-radius:50%;background:#FBE9E7;color:var(--danger);display:flex;align-items:center;justify-content:center;font-weight:700}

/* ============ QUOTE / REVIEW ============ */
.quote{border-left:4px solid var(--orange);padding:1rem 0 1rem 1.3rem;margin:0}
.quote p{font-size:1.08rem;color:var(--blue-ink)}
.quote cite{font-style:normal;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;color:var(--slate)}
.stars{color:#F4B400;letter-spacing:.1em;font-size:1.05rem}

/* ============ CASE CARD ============ */
.case-img{border-radius:var(--radius);overflow:hidden;aspect-ratio:16/10}
.case-img img{width:100%;height:100%;object-fit:cover}
.case-outcome{font-family:var(--font-display);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--gulf)}

/* ============ FAQ ============ */
details.faq{border-bottom:1px solid var(--haze);padding:1rem 0}
details.faq summary{font-family:var(--font-display);font-weight:600;font-size:1.25rem;color:var(--blue-ink);cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"+";font-size:1.6rem;color:var(--orange);transition:transform .2s}
details.faq[open] summary::after{transform:rotate(45deg)}
details.faq div{padding-top:.6rem;max-width:70ch}

/* ============ SERVICE AREA ============ */
.area-band{position:relative}
.area-band .fl-mark{position:absolute;right:-4%;bottom:-8%;width:min(420px,45%);opacity:.16;pointer-events:none}
.area-chips{display:flex;flex-wrap:wrap;gap:.6rem;list-style:none;padding:0}
.area-chips a{display:inline-block;background:#fff;border:1.5px solid var(--haze);border-radius:999px;padding:.45rem 1.1rem;text-decoration:none;color:var(--blue-ink);font-weight:500;transition:border-color .15s,color .15s}
.area-chips a:hover{border-color:var(--orange);color:var(--orange)}

/* ============ HEADER ============ */
.topbar{background:var(--blue-dark);color:#CBD8F0;font-size:.88rem;padding:.4rem 0}
.topbar .wrap{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.topbar a{color:var(--seafoam);text-decoration:none;font-weight:600}
.site-head{background:#fff;position:sticky;top:0;z-index:900;box-shadow:0 2px 14px rgba(14,42,99,.08)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:.6rem}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none}
.brand img{height:52px;width:auto}
.brand .brand-txt{font-family:var(--font-display);font-weight:700;font-size:1.5rem;line-height:1;color:var(--blue);text-transform:uppercase}
.brand .brand-sub{display:block;font-size:.72rem;letter-spacing:.18em;color:var(--gulf);font-weight:600}
.nav-main ul{list-style:none;display:flex;gap:1.4rem;margin:0;padding:0}
.nav-main a{font-weight:600;color:var(--blue-ink);text-decoration:none;font-size:1rem}
.nav-main a:hover{color:var(--orange)}
.nav-main li{position:relative}
.nav-main .sub-menu{display:none;position:absolute;top:100%;left:-1rem;background:#fff;box-shadow:var(--shadow-lift);border-radius:10px;padding:.6rem;min-width:240px;flex-direction:column;gap:0}
.nav-main li:hover>.sub-menu,.nav-main li:focus-within>.sub-menu{display:flex}
.nav-main .sub-menu a{display:block;padding:.55rem .8rem;border-radius:7px}
.nav-main .sub-menu a:hover{background:var(--cloud)}
.head-call{display:flex;align-items:center;gap:.9rem}
.head-num{text-align:right;line-height:1.15;text-decoration:none}
.head-num .t{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--gulf);font-weight:600}
.head-num .n{font-family:var(--font-display);font-weight:700;font-size:1.45rem;color:var(--blue)}
.nav-toggle{display:none;background:none;border:0;width:48px;height:48px;cursor:pointer}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{display:block;content:"";width:26px;height:3px;background:var(--blue);border-radius:2px;position:relative;transition:.2s}
.nav-toggle span::before{position:absolute;top:-8px}.nav-toggle span::after{position:absolute;top:8px}
@media(max-width:1023px){
  .nav-main{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;box-shadow:var(--shadow-lift);padding:1rem 1.4rem 1.4rem}
  .nav-main.open{display:block}
  .nav-main ul{flex-direction:column;gap:.2rem}
  .nav-main a{display:block;padding:.7rem 0;font-size:1.15rem;border-bottom:1px solid var(--cloud)}
  .nav-main .sub-menu{display:block;position:static;box-shadow:none;padding:0 0 0 1rem;min-width:0}
  .nav-toggle{display:block}
  .head-num .t{display:none}
  .head-call .btn{display:none}
}

/* ============ FOOTER ============ */
.site-foot{background:var(--blue-dark);color:#C7D3EA;font-size:.97rem}
.site-foot a{color:#E4ECFA;text-decoration:none}
.site-foot a:hover{color:var(--seafoam)}
.site-foot h4{color:#fff;font-size:1.15rem;text-transform:uppercase;letter-spacing:.08em}
.foot-grid{display:grid;gap:2rem;grid-template-columns:1fr;padding-block:3.5rem 2.5rem}
@media(min-width:768px){.foot-grid{grid-template-columns:1.4fr 1fr 1fr 1.1fr}}
.foot-grid ul{list-style:none;padding:0;margin:0}
.foot-grid li{margin-bottom:.5rem}
.foot-legal{border-top:1px solid rgba(255,255,255,.15);padding-block:1.2rem;display:flex;flex-wrap:wrap;gap:.8rem;justify-content:space-between;font-size:.85rem}
.foot-cta{background:var(--blue);padding-block:2.6rem}
.foot-cta .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.2rem}
.foot-cta h2{margin:0;color:#fff;font-size:clamp(1.6rem,3vw,2.4rem)}

/* ============ STICKY MOBILE CALL BAR ============ */
.callbar{position:fixed;bottom:0;left:0;right:0;z-index:999;display:flex;height:60px;box-shadow:0 -4px 18px rgba(14,42,99,.25)}
.callbar a{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:1.1rem;text-decoration:none}
.callbar .c-call{background:var(--orange);color:#fff}
.callbar .c-text{background:var(--blue);color:#fff}
@media(min-width:1024px){.callbar{display:none}}
body{padding-bottom:60px}
@media(min-width:1024px){body{padding-bottom:0}}

/* ============ MOTION (reveal, counters) ============ */
@media(prefers-reduced-motion:no-preference){
  .rv{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease}
  .rv.in{opacity:1;transform:none}
  .rv-d1{transition-delay:.08s}.rv-d2{transition-delay:.16s}.rv-d3{transition-delay:.24s}
}

/* ============ FORMS / EMBEDS ============ */
.form-shell{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-lift);padding:clamp(1.2rem,2.5vw,2rem)}
.form-shell iframe{width:100%;border:0;min-height:520px}
.map-embed iframe{width:100%;border:0;border-radius:var(--radius);min-height:340px}
.table-scroll{overflow-x:auto}

/* ============ GALLERY ============ */
.shots{display:grid;gap:.8rem;grid-template-columns:repeat(2,1fr)}
@media(min-width:768px){.shots{grid-template-columns:repeat(4,1fr)}}
.shots img{border-radius:10px;aspect-ratio:1/1;object-fit:cover;width:100%}

/* ============ MOTION LAYER (Stage 2.5) ============ */
/* No-fee flash strip — animated barber-stripe banner (motion, never strobe) */
.flash-strip{background:repeating-linear-gradient(-55deg,var(--orange) 0 26px,var(--orange-hover) 26px 52px);color:#fff;padding:.85rem 0;position:relative;overflow:clip}
.flash-strip .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.4rem 1.3rem;text-align:center}
.flash-strip strong{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.06em;font-size:clamp(1.15rem,2vw,1.5rem)}
.flash-strip a{color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.plate-hot{border-color:var(--orange);color:var(--orange-hover)}
.ticker{display:inline-grid;min-height:1.4em;overflow:hidden}
.ticker>span{grid-area:1/1;white-space:nowrap}
@media(prefers-reduced-motion:no-preference){
  /* hero entrance choreography */
  .hero .kicker,.hero h1,.hero .sub,.hero-ctas,.hero-phone-note,.hero .plate-row{opacity:0;animation:heroUp .7s cubic-bezier(.2,.7,.3,1) forwards}
  .hero h1{animation-delay:.08s}.hero .sub{animation-delay:.18s}.hero-ctas{animation-delay:.28s}.hero-phone-note{animation-delay:.36s}.hero .plate-row{animation-delay:.44s}
  /* slow cinematic zoom on hero photos */
  .hero-bg{animation:bgZoom 22s ease-in-out infinite alternate}
  /* pulsing glow on call CTAs */
  .btn-pulse{animation:ctaPulse 2.6s ease-in-out infinite}
  /* shimmering gradient keyword */
  .shine{background:linear-gradient(100deg,var(--orange) 25%,#FFD9A8 45%,var(--orange) 65%);background-size:220% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shineSweep 3.2s linear infinite}
  /* rotating headline word */
  .rotator>span{grid-area:1/1;opacity:0;transform:translateY(.55em);animation:rotWord 9s infinite;animation-fill-mode:both}
  .rotator>span:nth-child(2){animation-delay:3s}.rotator>span:nth-child(3){animation-delay:6s}
  .rotator{display:inline-grid;vertical-align:top}
  /* topbar rotating messages */
  .ticker>span{opacity:0;animation:tick 12s infinite;animation-fill-mode:both}
  .ticker>span:nth-child(2){animation-delay:4s}.ticker>span:nth-child(3){animation-delay:8s}
  /* stripe crawl on flash strip */
  .flash-strip{background-size:200% 100%;animation:stripeCrawl 28s linear infinite}
}
@media(prefers-reduced-motion:reduce){
  .ticker>span{position:static}.ticker>span:not(:first-child){display:none}
  .rotator>span:not(:first-child){display:none}
}
@keyframes heroUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes bgZoom{from{transform:scale(1)}to{transform:scale(1.08)}}
@keyframes ctaPulse{0%,100%{box-shadow:0 6px 18px rgba(244,119,46,.35)}50%{box-shadow:0 8px 30px rgba(244,119,46,.7),0 0 0 9px rgba(244,119,46,.12)}}
@keyframes shineSweep{to{background-position:-220% center}}
@keyframes rotWord{0%{opacity:0;transform:translateY(.55em)}5%,28%{opacity:1;transform:none}33%,100%{opacity:0;transform:translateY(-.55em)}}
@keyframes tick{0%{opacity:0;transform:translateY(8px)}5%,30%{opacity:1;transform:none}36%,100%{opacity:0;transform:translateY(-8px)}}
@keyframes stripeCrawl{to{background-position:200% 0}}

/* ============ UTIL ============ */
.center{text-align:center}
.mt0{margin-top:0}.mb0{margin-bottom:0}
.lead{font-size:1.15rem}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
