/*
Theme Name: Highlands Ranch HVAC
Theme URI: https://ranchhvac.com
Author: Highlands Ranch HVAC
Description: Premium, lightweight, conversion-focused HVAC lead-generation theme. Mobile-first, Core Web Vitals friendly, Rank Math compatible. Includes Service Page and Location Page templates.
Version: 2.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: ranchhvac
*/


:root{
--navy:#0B2545;--navy2:#12314F;--navy-deep:#081A33;
--orange:#F26A21;--orange-dark:#D9550F;
--white:#FFFFFF;--gray:#F5F7FA;--text:#1B1F27;--muted:#5B6472;--gold:#FFC107;--border:#E4E9F0;
--radius:10px;--shadow:0 10px 30px rgba(0,0,0,.08);--shadow-lg:0 18px 44px rgba(0,0,0,.14);
}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--orange);color:#fff;padding:.7em 1.2em;z-index:9999;font-weight:700;border-radius:0 0 8px 0}
.skip-link:focus{left:0}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);line-height:1.65;font-size:17px;-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}img{max-width:100%;display:block}
.wrap{max-width:1240px;margin:0 auto;padding:0 2rem}
h1,h2,h3,h4{font-family:'Montserrat','Poppins',sans-serif;color:var(--navy);line-height:1.15;font-weight:800;letter-spacing:-.01em}
.eyebrow{color:var(--orange);font-weight:800;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.6rem;display:block}
.section{padding:5rem 0}
.section-head{text-align:center;margin-bottom:2.5rem}
.section-head h2{font-size:2.4rem;margin-bottom:.3em}
.divider{width:56px;height:4px;background:var(--orange);border-radius:2px;margin:.8rem auto 0}
.divider.left{margin:.8rem 0 0}
.gray{background:var(--gray)}
.lead{font-size:1.13rem;color:var(--muted);max-width:64ch;margin:.8rem auto 0}

/* reveal */
.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .6s ease,transform .6s ease}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font-weight:700;font-size:1.02rem;padding:.95em 1.7em;border-radius:8px;transition:.2s;cursor:pointer;min-height:52px}
.btn-orange{background:var(--orange);color:#fff;box-shadow:0 6px 18px rgba(242,106,33,.4)}
.btn-orange:hover{background:var(--orange-dark);transform:translateY(-2px);box-shadow:0 10px 26px rgba(242,106,33,.5)}
.btn-ghost{background:rgba(255,255,255,.97);color:var(--navy);border:2px solid #fff;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.btn-ghost:hover{background:var(--navy);color:#fff;border-color:#fff;transform:translateY(-2px)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy2);transform:translateY(-2px)}


/* HEADER */
.hdr{position:sticky;top:0;z-index:99;background:#fff;box-shadow:0 2px 14px rgba(11,37,69,.08)}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 0}
.logo{display:flex;align-items:center;gap:.6rem;font-weight:800;font-size:1.15rem;color:var(--navy);font-family:'Montserrat',sans-serif}
.logo .mark{width:40px;height:40px;background:var(--navy);border-radius:9px;display:flex;align-items:center;justify-content:center}
.logo .mark svg{width:24px;height:24px;fill:var(--orange)}
.logo span{color:var(--orange)}
.nav ul{list-style:none;display:flex;gap:1.4rem;align-items:center}
.nav a{font-weight:600;font-size:.95rem;color:var(--text);transition:.18s;position:relative}
.nav a:hover{color:var(--orange)}
.has-drop{position:relative}
.has-drop>a::after{content:" ▾";font-size:.7em;color:var(--muted)}
.drop{position:absolute;top:150%;left:0;background:#fff;border-radius:10px;box-shadow:var(--shadow-lg);padding:.5rem;min-width:230px;opacity:0;visibility:hidden;transition:.18s;list-style:none}
.has-drop:hover .drop{opacity:1;visibility:visible;top:135%}
.drop li a{display:block;padding:.6em .9em;border-radius:6px;font-size:.9rem}
.drop li a:hover{background:var(--gray);color:var(--orange);padding-left:1.2em}
.hdr-cta{display:flex;align-items:center;gap:1.1rem}
.hdr-phone{display:flex;align-items:center;gap:.5em;font-weight:800;color:var(--navy);font-size:1.05rem}
.hdr-phone .pico{width:38px;height:38px;background:#FDECE2;border-radius:50%;display:flex;align-items:center;justify-content:center}
.hdr-phone .pico svg{width:18px;height:18px;fill:var(--orange)}

.menu-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:.5rem}
.menu-toggle span{width:24px;height:2.5px;background:var(--navy);border-radius:2px;transition:.2s}
@media(max-width:1024px){
  .nav{position:fixed;inset:64px 0 auto 0;background:#fff;box-shadow:0 12px 30px rgba(0,0,0,.15);display:none;padding:1rem 0}
  .nav.open{display:block}
  .nav ul{flex-direction:column;gap:0;align-items:stretch}
  .nav>ul>li{border-bottom:1px solid var(--border)}
  .nav>ul>li>a{display:block;padding:.9em 2rem}
  .drop{position:static;opacity:1;visibility:visible;box-shadow:none;border:0;padding:0 0 .5rem 1rem;display:none}
  .has-drop:hover .drop{display:block;top:auto}
  .menu-toggle{display:flex}
  .hdr-phone{display:none}
}
@media(max-width:860px){
  .hero-in,.about,.contact-in,.split{grid-template-columns:1fr!important}
  .g3,.jobs,.tg,.area-grid,.stats-g,.ftr-grid{grid-template-columns:1fr!important}
  .hero h1{font-size:2.1rem}
  .btn{width:100%}
  .sec-actions .btn{width:auto}
  body{padding-bottom:60px}
}
@media(max-width:640px){.stats-g,.g3{grid-template-columns:1fr!important}.wrap{padding:0 1.1rem}}

/* HERO */
.hero{position:relative;min-height:380px;display:flex;align-items:flex-start;color:#fff;background:#0B2545 center 40%/cover}
.hero::before{content:"";position:absolute;inset:0;background:rgba(9,28,54,.80)}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(9,28,54,.18) 0%,transparent 30%,transparent 72%,rgba(9,28,54,.30) 100%)}
.hero-photo-note{position:absolute;right:2rem;bottom:1rem;z-index:3;font-size:.7rem;color:rgba(255,255,255,.35);letter-spacing:.05em}
.hero-in{position:relative;z-index:3;display:grid;grid-template-columns:1fr 340px;gap:2.2rem;align-items:start;padding:1.5rem 0 1.9rem}
@media(max-width:900px){.hero-in{grid-template-columns:1fr}}
.hero-copy{max-width:600px}
.hero-form{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 22px 55px rgba(0,0,0,.4)}
.hero-form h3{font-size:1.15rem;margin-bottom:.15rem}
.hero-form .fp{font-size:.84rem;color:var(--muted);margin-bottom:.9rem}
.hero-form input,.hero-form select,.hero-form textarea{width:100%;padding:.7em .85em;margin-bottom:.5rem;border:1.5px solid var(--border);border-radius:7px;font-size:.92rem;font-family:inherit;color:var(--text);background:#fff;resize:vertical}
.hero-form input:focus,.hero-form select:focus,.hero-form textarea:focus{outline:none;border-color:var(--orange)}
.hero-form .btn{width:100%;min-height:48px;font-size:.98rem}
.hero h1{color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.45);font-size:2.55rem;line-height:1.14;margin-bottom:.4em}
.hero h1 .acc{color:var(--orange)}
.hero .sub{font-size:1.04rem;color:#E4EBF3;text-shadow:0 1px 10px rgba(0,0,0,.4);margin-bottom:1.1rem;max-width:54ch}
.hero-cta{display:flex;gap:.8rem;flex-wrap:wrap;margin-bottom:1rem}
.hero-trust{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;font-size:.95rem;color:#D6DFEA}
.hero-trust .stars{color:var(--gold);font-size:1.1rem;letter-spacing:1px}
.hero-trust .b{display:flex;align-items:center;gap:.4em;font-weight:600}
.hero-trust .b svg{width:18px;height:18px;fill:var(--orange)}

/* TRUST STRIP */
.tstrip{background:#fff;border-bottom:1px solid var(--border);padding:1.1rem 0}
.tstrip-in{display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap}
.tstrip-item{display:flex;align-items:center;gap:.7em;font-weight:700;color:var(--navy);font-size:.97rem}
.tstrip-item .ic{width:44px;height:44px;background:var(--gray);border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.tstrip-item .ic svg{width:22px;height:22px;fill:var(--orange)}

/* SERVICES */
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.scard{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);transition:.25s;text-align:center;overflow:hidden;position:relative}
.scard:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg)}
.scard .simg{height:180px;background:linear-gradient(135deg,#0B2545,#12314F);overflow:hidden;position:relative}
.scard .simg{position:relative;background:#0B2545}



.scard .simg img{width:100%;height:180px;object-fit:cover;transition:.45s}
.scard:hover .simg img{transform:scale(1.07)}
.scard .sbody{padding:1.6rem 1.6rem 2rem}
.scard .badge{width:64px;height:64px;background:var(--orange);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:-52px auto 1rem;transition:.25s;position:relative;z-index:2;border:4px solid #fff;box-shadow:var(--shadow)}
.scard:hover .badge{background:var(--navy)}
.scard .badge svg{width:30px;height:30px;fill:#fff;transition:.25s}
.scard:hover .badge svg{fill:var(--orange)}
.scard h3{font-size:1.2rem;margin-bottom:.5rem}
.scard p{color:var(--muted);font-size:.95rem;margin-bottom:1rem;text-align:left}
.scard .more{color:var(--orange);font-weight:700;font-size:.93rem}
.scard .more:hover{text-decoration:underline}

/* ABOUT */
.about{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;align-items:center}
.about-img{position:relative}
.about-img img{border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;height:460px;object-fit:cover}
.about-tile{border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;height:420px;background:linear-gradient(135deg,#0B2545,#1b4a7a);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}
.about-tile svg{width:76px;height:76px;fill:rgba(255,255,255,.9)}
.about-tile span{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.45);font-weight:700}
.about-img .exp{position:absolute;bottom:-24px;right:-24px;background:var(--orange);color:#fff;border-radius:14px;padding:1.2rem 1.5rem;text-align:center;box-shadow:var(--shadow-lg)}
.about-img .exp .n{font-size:2.2rem;font-weight:800;font-family:'Montserrat',sans-serif;line-height:1}
.about-img .exp .l{font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.checks{margin:1.4rem 0}
.checks li{list-style:none;display:flex;gap:.7em;align-items:flex-start;font-size:1.05rem;margin-bottom:.8rem;font-weight:600;color:var(--text)}
.checks svg{width:24px;height:24px;fill:var(--orange);flex-shrink:0}

/* STATS */
.stats-band{background:var(--navy);color:#fff}
.stats-g{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;text-align:center}
.stat .n{font-size:3rem;font-weight:800;color:var(--orange);font-family:'Montserrat',sans-serif;line-height:1}
.stat .l{font-size:.9rem;text-transform:uppercase;letter-spacing:.05em;color:#B8C6D8;margin-top:.5rem}

.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;position:relative}
.step{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:2.2rem 1.7rem 1.8rem;text-align:center;transition:.25s;position:relative}
.step:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.step .snum{display:flex;align-items:center;justify-content:center;width:54px;height:54px;margin:-3.4rem auto 1rem;background:var(--orange);color:#fff;border-radius:50%;font-family:'Montserrat',sans-serif;font-weight:800;font-size:1.5rem;border:5px solid #fff;box-shadow:var(--shadow);transition:.25s}
.step:hover .snum{background:var(--navy)}
.step h3{font-size:1.15rem;margin-bottom:.5rem}
.step p{color:var(--muted);font-size:.96rem}
@media(max-width:860px){.steps{grid-template-columns:1fr;gap:3rem}}

/* AI OVERVIEW */
.aio{background:linear-gradient(120deg,#EDF2F8,#F5F7FA);border-radius:var(--radius);padding:2.6rem;text-align:center;box-shadow:var(--shadow)}
.aio h2{font-size:1.7rem;margin-bottom:.6rem}
.aio p{font-size:1.08rem;color:var(--text);max-width:72ch;margin:0 auto 1rem}
.aio .aio-disc{font-size:.88rem;color:var(--muted);margin-bottom:1.4rem}
.aio .btns{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap}

/* RECENT JOBS */
.jobs{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.job{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:.25s}
.job:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.job .iw{height:190px;overflow:hidden;background:#0B2545}
.job .iw .tile-ico{width:58px;height:58px;fill:rgba(255,255,255,.9);transition:.35s}
.job:hover .iw .tile-ico{transform:scale(1.1);fill:var(--orange)}
.job .iw .tile-lbl{position:absolute;bottom:.7rem;font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.45);font-weight:700}
.job img{height:190px;width:100%;object-fit:cover;transition:.4s}
.job:hover img{transform:scale(1.07)}
.job .b{padding:1.4rem}
.job .more{color:var(--orange);font-weight:700;font-size:.9rem;display:inline-block;margin-top:.6rem}
.job .more:hover{text-decoration:underline}
.job .loc{display:inline-flex;align-items:center;gap:.35em;color:var(--orange);font-weight:800;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}
.job h4{font-size:1.12rem;margin:.35rem 0}
.job p{font-size:.94rem;color:var(--muted)}

.probs{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.prob{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:1.4rem 1.5rem;border-left:3px solid var(--orange);transition:.22s}
.prob:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.prob h4{font-size:1.04rem;margin-bottom:.35rem;color:var(--navy)}
.prob p{font-size:.93rem;color:var(--muted)}
@media(max-width:860px){.probs{grid-template-columns:1fr}}

.ptable{max-width:900px;margin:0 auto;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.ptable table{width:100%;border-collapse:collapse}
.ptable thead th{background:var(--navy);color:#fff;text-align:left;padding:1rem 1.3rem;font-size:.86rem;text-transform:uppercase;letter-spacing:.06em;font-family:'Montserrat',sans-serif}
.ptable td{padding:1rem 1.3rem;border-bottom:1px solid var(--border);font-size:.96rem}
.ptable tbody tr:nth-child(even){background:var(--gray)}
.ptable tbody tr:hover{background:#FDF1EA}
.ptable td:first-child{font-weight:700;color:var(--navy)}
.ptable td:nth-child(2){font-weight:800;color:var(--orange);white-space:nowrap}
.ptable td:last-child{color:var(--muted)}
.ptable-note{padding:1.1rem 1.3rem;font-size:.88rem;color:var(--muted);background:var(--gray)}
@media(max-width:760px){.ptable thead{display:none}.ptable tr{display:block;border-bottom:2px solid var(--border);padding:.6rem 0}.ptable td{display:block;border:0;padding:.35rem 1.3rem}.ptable td:nth-child(2){font-size:1.1rem}}

/* SERVICE AREAS */
.area-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.area-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);transition:.25s;position:relative;overflow:hidden}
.area-img{height:150px;overflow:hidden;background:#0B2545}
.area-img img{width:100%;height:150px;object-fit:cover;transition:.45s}
.area-card:hover .area-img img{transform:scale(1.07)}
.area-body{padding:1.4rem 1.5rem 1.6rem}
.area-card::after{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--navy),var(--orange));opacity:0;transition:.25s}
.area-card:hover::after{opacity:1}
.area-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.area-card h3{font-size:1.18rem;margin-bottom:.4rem;display:flex;align-items:center;gap:.4em}
.area-card h3 svg{width:20px;height:20px;fill:var(--orange)}
.area-card p{font-size:.95rem;color:var(--muted);margin-bottom:.6rem}
.area-card a{color:var(--orange);font-weight:700;font-size:.9rem}

/* TESTIMONIALS */
.tg{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.tc{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem;position:relative;transition:.25s}
.tc:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.tc .q{position:absolute;top:1.2rem;right:1.5rem;font-size:3.5rem;color:var(--gray);font-family:Georgia,serif;line-height:1}
.tc .stars{color:var(--gold);font-size:1.05rem;margin-bottom:.8rem;letter-spacing:1px}
.tc p{font-style:italic;font-size:1rem;margin-bottom:1.2rem;position:relative;z-index:1}
.tc .who{display:flex;align-items:center;gap:.8rem}
.tc .av{width:48px;height:48px;border-radius:50%;object-fit:cover}
.tc .av-i{display:flex;align-items:center;justify-content:center;background:var(--navy);color:#fff;font-weight:800;font-family:'Montserrat',sans-serif;font-size:1.15rem;flex-shrink:0}
.tc .who b{color:var(--navy);font-size:.96rem;display:block}
.tc .who span{color:var(--muted);font-size:.85rem}

.sec-actions{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap;margin-top:2.4rem}
.btn-outline-navy{background:#fff;color:var(--navy);border:2px solid var(--navy)}
.btn-outline-navy:hover{background:var(--navy);color:#fff;transform:translateY(-2px)}

/* FAQ */
.faq{max-width:840px;margin:0 auto}
.faq details{background:#fff;border-radius:10px;box-shadow:var(--shadow);margin-bottom:.8rem;overflow:hidden}
.faq summary{padding:1.2rem 1.4rem;font-weight:700;color:var(--navy);cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;font-size:1.05rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--orange);font-size:1.5rem;font-weight:400}
.faq details[open] summary::after{content:"−"}
.faq .a{padding:0 1.4rem 1.3rem;color:var(--muted)}

/* CONTENT BODY */
.content-body{max-width:840px;margin:0 auto;font-size:1.07rem}
.content-body h2{font-size:1.8rem;margin:2rem 0 .6rem}
.content-body h3{font-size:1.3rem;margin:1.6rem 0 .5rem}
.content-body p{margin-bottom:1rem;color:#2A333F}

/* CONTACT SECTION */
.contact{background:var(--navy);color:#fff}
.contact-in{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center}
.contact h2{color:#fff;font-size:2.3rem}
.contact .lead{color:#C3D0E0;margin-left:0}
.contact .bigphone{font-size:2rem;font-weight:800;color:var(--orange);font-family:'Montserrat',sans-serif;margin:1rem 0;display:flex;align-items:center;gap:.5em}
.contact .bigphone svg{width:32px;height:32px;fill:var(--orange)}
.contact .hours{color:#C3D0E0}
.cform{background:#fff;border-radius:var(--radius);padding:2rem;box-shadow:var(--shadow-lg)}
.cform h3{margin-bottom:1rem}
.cform input,.cform select,.cform textarea{width:100%;padding:.85em .9em;margin-bottom:.75rem;border:1.5px solid var(--border);border-radius:8px;font-size:.96rem;font-family:inherit}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:none;border-color:var(--orange)}
.cform .btn-orange{width:100%}

.contact-in-single{max-width:820px;margin:0 auto;text-align:center}
.contact-in-single .lead{color:#C3D0E0;margin:0 auto 1.6rem}
.contact-in-single .bigphone{display:inline-flex;align-items:center;gap:.5em;font-size:2.4rem;font-weight:800;color:var(--orange);font-family:'Montserrat',sans-serif;margin-bottom:1.8rem;transition:.2s}
.contact-in-single .bigphone:hover{color:#fff;transform:translateY(-2px)}
.contact-in-single .bigphone svg{width:36px;height:36px;fill:currentColor}
.cinfo{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-bottom:2rem;text-align:left}
.ci{background:rgba(255,255,255,.06);border-radius:10px;padding:1.1rem 1.3rem;border-left:3px solid var(--orange)}
.ci strong{display:block;color:#fff;font-size:.82rem;text-transform:uppercase;letter-spacing:.07em;margin-bottom:.3rem}
.ci span{color:#C3D0E0;font-size:.93rem}
@media(max-width:760px){.cinfo{grid-template-columns:1fr}.contact-in-single .bigphone{font-size:1.7rem}}

/* FINAL OFFER BANNER */
.offer{background:var(--orange);color:#fff;text-align:center;padding:3rem 0}
.offer h2{color:#fff;font-size:2rem;margin-bottom:.4rem}
.offer p{font-size:1.1rem;margin-bottom:1.4rem;opacity:.95}
.offer .btn{background:#fff;color:var(--orange)}
.offer .btn:hover{background:var(--navy);color:#fff}

.callbar{position:fixed;left:0;right:0;bottom:0;background:var(--navy-deep);z-index:1000;box-shadow:0 -6px 24px rgba(0,0,0,.28);transform:translateY(110%);transition:transform .3s ease;border-top:3px solid var(--orange)}
.callbar.show{transform:none}
.callbar.hide{transform:translateY(110%)!important}
.callbar-in{max-width:1240px;margin:0 auto;padding:.8rem 2rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.callbar-msg{display:flex;align-items:center;gap:1rem;min-width:0}
.cb-pill{background:var(--orange);color:#fff;font-weight:800;font-size:.68rem;letter-spacing:.1em;padding:.4em .8em;border-radius:5px;white-space:nowrap}
.cb-txt strong{display:block;color:#fff;font-size:.98rem;font-weight:700;line-height:1.3}
.cb-txt span{color:#9FB1C6;font-size:.85rem}
.cb-btn{display:inline-flex;align-items:center;gap:.5em;background:var(--orange);color:#fff;font-weight:800;font-size:1.05rem;padding:.75em 1.6em;border-radius:8px;white-space:nowrap;transition:.2s;box-shadow:0 5px 16px rgba(242,106,33,.4)}
.cb-btn:hover{background:var(--orange-dark);color:#fff;transform:translateY(-2px)}
.cb-x{background:none;border:0;color:#7C8DA3;font-size:1.5rem;line-height:1;cursor:pointer;padding:.2rem .4rem;transition:.2s}
.cb-x:hover{color:#fff}
@media(max-width:860px){
  .callbar-in{padding:0;gap:0}
  .callbar-msg,.cb-x{display:none}
  .cb-btn{width:100%;justify-content:center;border-radius:0;padding:1em;box-shadow:none;font-size:1.05rem}
  body{padding-bottom:58px}
}

/* FOOTER */
.ftr{background:var(--navy-deep);color:#A9B7C9;padding:3.5rem 0 1.5rem}
.ftr-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:2.5rem}
.ftr h4{color:#fff;font-size:1.05rem;margin-bottom:1.1rem}
.ftr a{color:#A9B7C9;display:block;margin-bottom:.55rem;font-size:.93rem;transition:.18s}
.ftr a:hover{color:var(--orange);padding-left:4px}
.ftr .brand{font-weight:800;font-size:1.2rem;color:#fff;margin-bottom:.6rem;font-family:'Montserrat',sans-serif}
.ftr .brand span{color:var(--orange)}
.ftr p{font-size:.92rem;margin-bottom:.55rem}
.ftr-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:2.5rem;padding-top:1.4rem;text-align:center;font-size:.85rem;color:#8494A8}

/* ===== INNER PAGE ADDITIONS ===== */
.phero{position:relative;background:#0B2545 center 40%/cover;color:#fff;overflow:hidden}
.phero::before{content:"";position:absolute;inset:0;background:rgba(9,28,54,.82)}
.phero-in{position:relative;z-index:3;display:grid;grid-template-columns:1fr 340px;gap:2.2rem;align-items:start;padding:1.5rem 0 2.1rem}
@media(max-width:900px){.phero-in{grid-template-columns:1fr}}
.crumbs{font-size:.84rem;color:#B9C7D9;margin-bottom:.7rem}
.crumbs a{color:#B9C7D9}.crumbs a:hover{color:var(--orange)}
.crumbs span{color:#fff}
.phero h1{color:#fff;font-size:2.4rem;line-height:1.15;margin-bottom:.4em;text-shadow:0 2px 18px rgba(0,0,0,.45)}
.phero .sub{font-size:1.02rem;color:#E4EBF3;margin-bottom:1rem;max-width:56ch;text-shadow:0 1px 10px rgba(0,0,0,.4)}
.page-body{max-width:820px;margin:0 auto}
.page-body h2{font-size:1.75rem;margin:2.2rem 0 .6rem}
.page-body h3{font-size:1.22rem;margin:1.5rem 0 .45rem}
.page-body p{margin-bottom:1rem;color:#2A333F}
.page-body ul{margin:0 0 1.2rem 1.2rem}
.page-body li{margin-bottom:.5rem}
.case{background:var(--gray);border-left:4px solid var(--orange);border-radius:0 10px 10px 0;padding:1.4rem 1.6rem;margin:1.6rem 0}
.case h3{margin-top:0;font-size:1.1rem}
.ilinks{background:#fff;border:1px solid var(--border);border-radius:10px;padding:1.4rem 1.6rem;margin:1.8rem 0}
.ilinks p{margin-bottom:.6rem}
.ilinks a{color:var(--orange);font-weight:700}
.ilinks a:hover{text-decoration:underline}
.mapcap{font-size:.88rem;color:var(--muted);text-align:center;margin-top:.8rem;font-style:italic}
.badges-row{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem}
.badge-txt{background:var(--gray);border:1px solid var(--border);border-radius:999px;padding:.4em 1em;font-size:.86rem;font-weight:700;color:var(--navy)}
.rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:1.6rem}
@media(max-width:860px){.rel-grid{grid-template-columns:1fr}}
.rel{background:#fff;border:1px solid var(--border);border-radius:10px;padding:1.2rem 1.3rem;transition:.22s}
.rel:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--orange)}
.rel h4{font-size:1rem;color:var(--navy);margin-bottom:.25rem}
.rel span{font-size:.88rem;color:var(--orange);font-weight:700}

/* ===== THEME-ONLY ADDITIONS ===== */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hp{position:absolute;left:-9999px}
.form-ok{background:#E6F5EC;border:1px solid #9AD5B4;color:#0F6B3F;padding:.7em .9em;border-radius:7px;font-size:.9rem;margin-bottom:.7rem}
.form-err{background:#FDEBE7;border:1px solid #F0A995;color:#9B3218;padding:.7em .9em;border-radius:7px;font-size:.9rem;margin-bottom:.7rem}
.hero-form button.btn,.hero-form .btn{width:100%;border:0;cursor:pointer;font-family:inherit}
.nav ul{list-style:none;display:flex;gap:1.4rem;align-items:center;margin:0;padding:0}
.nav .sub-menu{position:absolute;top:150%;left:0;background:#fff;border-radius:10px;box-shadow:var(--shadow-lg);padding:.5rem;min-width:230px;opacity:0;visibility:hidden;transition:.18s;list-style:none;z-index:10}
.nav li{position:relative}
.nav li:hover>.sub-menu{opacity:1;visibility:visible;top:135%}
.nav .sub-menu li a{display:block;padding:.6em .9em;border-radius:6px;font-size:.9rem}
.nav .sub-menu li a:hover{background:var(--gray);color:var(--orange);padding-left:1.2em}
.menu-item-has-children>a::after{content:" ▾";font-size:.7em;color:var(--muted)}
@media(max-width:1024px){
  .nav .sub-menu{position:static;opacity:1;visibility:visible;box-shadow:none;padding:0 0 .5rem 1rem;display:none}
  /* Touch devices have no hover: submenus open via a class the JS toggles. */
  .nav li:hover>.sub-menu{display:none}
  .nav li.open>.sub-menu{display:block;top:auto}
  .nav .menu-item-has-children>a::after{display:inline-block;transition:transform .2s}
  .nav li.open>a::after{transform:rotate(180deg)}
  .nav .sub-menu li a{padding:.7em 2rem;font-size:.95rem}
}
.job .b h4 a{color:var(--navy)}
.job .b h4 a:hover{color:var(--orange)}
.pagination,.nav-links{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}
.page-numbers{background:#fff;border:1px solid var(--border);border-radius:7px;padding:.55em .95em;font-weight:700;color:var(--navy)}
.page-numbers.current,.page-numbers:hover{background:var(--orange);color:#fff;border-color:var(--orange)}
.searchform{display:flex;gap:.5rem;max-width:520px}
.searchform input{flex:1;padding:.75em .9em;border:1.5px solid var(--border);border-radius:7px;font-family:inherit}


/* ===== IMAGE FALLBACKS — branded tile instead of an empty box ===== */
.scard .simg,
.area-img,
.job .iw{
    position:relative;
    background:linear-gradient(135deg,#0B2545,#1b4a7a);
}
.scard .simg::before,
.area-img::before{
    content:"";
    position:absolute;
    inset:0;
    background-repeat:no-repeat;
    background-position:center;
    background-size:44px;
    opacity:.28;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M4 4h16v11H4zM2 17h20v2H2zM7 7h4v2H7zm0 4h4v2H7zm6-4h4v2h-4zm0 4h4v2h-4z'/%3E%3C/svg%3E");
    z-index:0;
}
.scard .simg img,
.area-img img,
.job .iw img{ position:relative; z-index:1; }


/* ============================================================
 * Content engagement components (2026) — callouts, tips, mid-CTA.
 * Used inside .page-body / .content-body on every page.
 * ========================================================== */
.page-body>*:first-child,.content-body>*:first-child{margin-top:0}
.fw-callout{background:#F3F7FC;border:1px solid #DCE7F3;border-left:4px solid var(--orange);border-radius:10px;padding:1.1rem 1.3rem;margin:1.7rem 0;color:#26333f}
.fw-callout .fw-lab{display:inline-block;font-size:.71rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--orange);margin-bottom:.35rem}
.fw-callout p{margin:0 0 .5rem}.fw-callout p:last-child{margin:0}.fw-callout strong{color:#0B2545}
.fw-tip{position:relative;background:#F0F9F2;border:1px solid #CDE9D3;border-left:4px solid #2E9E52;border-radius:10px;padding:1.1rem 1.3rem 1.1rem 3.1rem;margin:1.7rem 0;color:#22402c}
.fw-tip::before{content:"\1F4A1";position:absolute;left:1rem;top:.95rem;font-size:1.15rem}
.fw-tip .fw-lab{display:inline-block;font-size:.71rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#1c6b38;margin-bottom:.3rem}
.fw-tip p{margin:0}.fw-tip strong{color:#1c6b38}
.fw-midcta{display:flex;align-items:center;justify-content:space-between;gap:1.3rem;flex-wrap:wrap;background:linear-gradient(120deg,#0B2545,#143f74);color:#fff;border-radius:14px;padding:1.4rem 1.7rem;margin:2.1rem 0;box-shadow:0 14px 34px rgba(11,37,69,.26)}
.fw-midcta .m-txt{flex:1 1 300px}
.fw-midcta .m-txt strong{display:block;font-size:1.2rem;line-height:1.25;margin-bottom:.2rem;color:#fff}
.fw-midcta .m-txt span{color:#C9D6E8;font-size:.95rem}
.fw-midcta .btn{white-space:nowrap}
@media(max-width:560px){.fw-midcta{flex-direction:column;align-items:stretch;text-align:center}.fw-midcta .btn{width:100%}}


/* Quote form: preferred-contact radios + light-background variant */
.q-pref{border:0;padding:0;margin:0 0 .5rem;display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}
.q-pref-lbl{font-size:.9rem;font-weight:700;color:var(--text)}
.q-pref label{display:inline-flex;align-items:center;gap:.35rem;font-size:.92rem;color:var(--text);cursor:pointer}
.q-pref input[type=radio]{width:auto;margin:0;accent-color:var(--orange)}
.quote-band .hero-form{box-shadow:0 10px 30px rgba(11,37,69,.12);border:1px solid var(--border)}
.quote-band .about{align-items:start}

/* In-hero trust badges (above the fold, dark bg) */
.hero-badges{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem .55rem;margin:1rem 0 0;padding:0}
.hero-badges li{display:flex;align-items:center;gap:.4em;font-size:.82rem;font-weight:600;color:#EAF1F8;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.20);padding:.34em .72em;border-radius:999px;white-space:nowrap}
.hero-badges li::before{content:"\2713";color:var(--orange);font-weight:800;font-size:.9em}
@media(max-width:600px){.hero-badges{gap:.4rem}.hero-badges li{font-size:.75rem;padding:.3em .6em}}
