/* Cranbury Comfort Systems: static rebuild 2026 */
:root{
  --blue:#14a6e6; --blue-dark:#0b7fb3; --sky:#44b0d4; --navy:#194260; --navy-2:#12324a;
  --red:#d11900; --ink:#222b33; --muted:#5d6b76; --line:#e3e8ec; --soft:#f4f7f9; --white:#fff;
  --radius:10px; --shadow:0 6px 24px rgba(16,40,60,.08);
  --font:"Roboto",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --head:"Raleway","Roboto",system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font);font-size:17px;line-height:1.65;color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:inline-block}
a{color:var(--blue-dark);text-decoration:none}
a:hover{color:var(--navy);text-decoration:underline}
h1,h2,h3,h4{font-family:var(--head);color:var(--navy);line-height:1.25;margin:1.2em 0 .5em;font-weight:700}
h1{font-size:2.2rem;font-weight:800}
h2{font-size:1.65rem}
h3{font-size:1.25rem}
h4{font-size:1.05rem}
p{margin:0 0 1em}
ul,ol{padding-left:1.3em;margin:0 0 1em}
li{margin:.25em 0}
hr{border:0;border-top:1px solid var(--line);margin:2.5rem 0}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.skip-link{position:absolute;left:-999px;top:0;background:var(--navy);color:#fff;padding:8px 14px;z-index:100}
.skip-link:focus{left:8px}

/* announcement bar */
.announce{background:var(--navy);color:#dcebf5;font-size:.88rem;line-height:1.4;text-align:center}
.announce .wrap{padding-top:8px;padding-bottom:8px}
.announce strong{color:#fff;font-weight:500}
.announce a{color:#7fd3ff;font-weight:500;white-space:nowrap}
.announce a:hover{color:#fff}
.announce-tag{display:inline-block;background:var(--blue);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:4px;padding:2px 7px;margin-right:6px;vertical-align:1px}

/* header */
.site-header{background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:20}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:18px;padding-bottom:14px}
.logo img{display:block;width:300px;max-width:100%;height:auto}
.header-cta{text-align:right}
.header-cta p{margin:0;line-height:1.35}
.tagline{font-family:var(--head);color:var(--navy);font-weight:600;font-size:1.05rem}
.emergency{color:var(--red);font-weight:500;font-size:.95rem;margin-bottom:8px !important}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--blue);color:#fff;font-weight:700;font-size:1rem;border:0;border-radius:999px;padding:11px 22px;cursor:pointer;transition:background .15s,transform .15s;text-decoration:none;font-family:var(--font)}
.btn:hover{background:var(--blue-dark);color:#fff;text-decoration:none;transform:translateY(-1px)}
.btn-phone{background:var(--red);font-size:1.1rem;margin-top:6px}
.btn-phone:hover{background:#a81400}
.btn-outline{background:transparent;color:var(--navy);box-shadow:inset 0 0 0 2px var(--navy)}
.btn-outline:hover{background:var(--navy);color:#fff}
.btn-block{display:flex;width:100%;margin-top:10px}
.menu-toggle{display:none}

/* nav */
.site-nav{background:#fff;border-top:1px solid var(--line)}
.site-nav .menu{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center}
.site-nav li{position:relative;margin:0}
.site-nav .menu>li>a{display:block;padding:14px 15px;font-size:.84rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink)}
.site-nav .menu>li>a:hover,.site-nav .menu>li>a.active{color:var(--blue-dark);text-decoration:none}
.site-nav .menu>li>a.active{box-shadow:inset 0 -3px 0 var(--blue)}
.site-nav .has-sub>a::after{content:"";display:inline-block;width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin:0 0 3px 7px;opacity:.6}
.site-nav .sub{list-style:none;margin:0;padding:8px 0;position:absolute;left:0;top:100%;min-width:250px;background:#fff;border-radius:0 0 var(--radius) var(--radius);box-shadow:var(--shadow);border:1px solid var(--line);border-top:3px solid var(--blue);opacity:0;visibility:hidden;transform:translateY(6px);transition:.15s}
.site-nav .has-sub:hover .sub,.site-nav .has-sub:focus-within .sub{opacity:1;visibility:visible;transform:none}
.site-nav .sub a{display:block;padding:8px 18px;font-size:.92rem;color:var(--ink)}
.site-nav .sub a:hover{background:var(--soft);color:var(--blue-dark);text-decoration:none}
.sub-toggle{display:none}

/* layout */
.site-inner{padding:10px 0 60px}
.layout-with-sidebar{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:48px;align-items:start}
.page-title{margin-top:1.2em;padding-bottom:.4em;border-bottom:3px solid var(--blue);display:inline-block}
.entry-content{overflow-wrap:break-word}
.entry-content>*:first-child{margin-top:1rem}
.lead{font-size:1.15rem;color:var(--muted)}

/* sidebar */
.sidebar{position:sticky;top:20px;margin-top:2.2rem}
.side-card{background:var(--soft);border:1px solid var(--line);border-radius:var(--radius);padding:22px;margin-bottom:22px}
.side-card h3{margin-top:0}
.side-call{background:var(--navy);border-color:var(--navy);color:#dcebf5}
.side-call h3{color:#fff}
.side-call .btn-outline{color:#fff;box-shadow:inset 0 0 0 2px #fff}
.side-call .btn-outline:hover{background:#fff;color:var(--navy)}
.side-links{list-style:none;padding:0;margin:0}
.side-links li{margin:0;border-bottom:1px solid var(--line)}
.side-links li:last-child{border:0}
.side-links a{display:block;padding:8px 0;color:var(--ink)}
.side-links a:hover{color:var(--blue-dark)}

/* WordPress block compatibility */
.has-text-align-center{text-align:center}
.has-text-align-left{text-align:left}
.has-text-align-right{text-align:right}
.has-large-font-size{font-size:1.6rem !important}
.alignleft{float:left;margin:.3em 1.5em 1em 0}
.alignright{float:right;margin:.3em 0 1em 1.5em}
.aligncenter{text-align:center;margin-left:auto;margin-right:auto;display:block}
figure{margin:0 0 1.2em}
figure.aligncenter img{margin:0 auto}
figcaption,.wp-caption-text{font-size:.85rem;color:var(--muted);text-align:center;margin-top:.4em;font-style:italic}
.wp-caption{max-width:100%}
.entry-content::after{content:"";display:table;clear:both}
.wp-block-image img{border-radius:6px}
.wp-block-columns,.gb-layout-column-wrap{display:flex;gap:32px;margin:0 0 1.5em;flex-wrap:nowrap;align-items:flex-start}
.wp-block-column,.gb-block-layout-column{flex:1 1 0;min-width:0}
.gb-2-col-wideright .gb-block-layout-column:first-child{flex:0 0 32%}
.gb-is-vertically-aligned-center{align-self:center}
.wp-block-column.has-background{border-radius:var(--radius);padding:10px 24px 20px}
.wp-block-separator{border:0;border-top:1px solid var(--line);margin:2.5rem 0}
.wp-block-buttons{display:flex;gap:12px;flex-wrap:wrap;margin:1em 0 1.5em}
.wp-block-button__link,.gb-button,a.button{display:inline-block;background:var(--blue);color:#fff !important;font-weight:700;border-radius:999px;padding:11px 24px;text-transform:uppercase;letter-spacing:.03em;font-size:.95rem}
.wp-block-button__link:hover,.gb-button:hover,a.button:hover{background:var(--blue-dark) !important;text-decoration:none}
blockquote{margin:1.5em 0;padding:18px 24px;background:var(--soft);border-left:4px solid var(--blue);border-radius:0 var(--radius) var(--radius) 0}
blockquote hr{margin:1.2em 0}
table{border-collapse:collapse;margin:1em 0}
td{padding:8px 16px 8px 0;vertical-align:middle}

/* hero (cover block) */
.wp-block-cover{position:relative;border-radius:14px;overflow:hidden;min-height:430px;display:flex;align-items:center;justify-content:center;color:#fff;margin:22px 0 10px;text-align:center}
.wp-block-cover__image-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:0 !important}
.wp-block-cover__background{position:absolute;inset:0;background:linear-gradient(120deg,rgba(18,50,74,.88),rgba(18,50,74,.55))}
.wp-block-cover__inner-container{position:relative;z-index:1;padding:40px 24px;max-width:860px}
.wp-block-cover__inner-container .wp-block-spacer{display:none}
.wp-block-cover h2,.wp-block-cover h3,.wp-block-cover p{color:#fff;margin:.3em 0}
.wp-block-cover p:first-child{font-family:var(--head);font-size:clamp(2rem,4.5vw,3rem) !important;line-height:1.15}
.wp-block-cover h2{font-weight:500;font-size:clamp(1.15rem,2.2vw,1.55rem)}
.wp-block-cover h3{font-weight:400;font-size:1.15rem;opacity:.9}
.wp-block-cover a[href^="tel"]{display:inline-block;margin-top:14px;background:var(--red);color:#fff;padding:12px 30px;border-radius:999px;font-size:1.35rem}
.wp-block-cover a[href^="tel"]:hover{background:#a81400;text-decoration:none}

/* home service icons as cards */
.page-home .wp-block-columns:has(img[src*="Snowflake"]) .wp-block-column{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:26px 18px 10px;text-align:center;transition:transform .15s}
.page-home .wp-block-columns:has(img[src*="Snowflake"]) .wp-block-column:hover{transform:translateY(-3px)}
.page-home .wp-block-columns:has(img[src*="Snowflake"]) h3{font-size:1.15rem;margin-top:.6em}
.page-home .entry-content>p[style*="font-size"]{font-size:1.15rem !important}

/* galleries / logo strips */
.wp-block-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:18px;align-items:center;margin:1em 0 2em}
.wp-block-gallery figure{margin:0;text-align:center;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px;display:flex;align-items:center;justify-content:center;min-height:90px}
.wp-block-gallery img{max-height:70px;width:auto;border-radius:0}
.gb-4-col-wideleft .gb-layout-column-wrap{align-items:center}
.gb-4-col-wideleft .wp-block-spacer{display:none}
.gb-4-col-wideleft img{max-height:150px;width:auto}

/* testimonial / notice / cta */
.gb-block-testimonial{background:var(--soft) !important;border-radius:14px;padding:30px 34px;margin:2em 0;position:relative;font-size:1.05rem}
.gb-block-testimonial::before{content:"\201C";position:absolute;top:-6px;left:18px;font-size:5rem;color:var(--blue);font-family:Georgia,serif;opacity:.35;line-height:1}
.gb-testimonial-name{font-size:1.05rem;margin:.8em 0 0}
.gb-testimonial-title{color:var(--muted)}
.gb-block-notice{background:var(--red) !important;border-radius:var(--radius);overflow:hidden;margin:1.5em 0}
.gb-notice-title{color:#fff;font-weight:700;padding:12px 20px;font-size:1.15rem}
.gb-notice-text{background:#fff;padding:14px 20px;border:2px solid var(--red);border-top:0;border-radius:0 0 var(--radius) var(--radius)}
.gb-notice-text a{font-size:1.4rem;font-weight:700;color:var(--red)}
.gb-block-cta{background:var(--soft);border-radius:14px;padding:30px;margin:2em 0}
.gb-cta-title{margin-top:0;font-size:1.6rem !important}
.gb-cta-text{font-size:1.15rem !important}
.callout{background:var(--soft);border-left:4px solid var(--blue);border-radius:0 var(--radius) var(--radius) 0;padding:20px 24px;margin:2em 0}
.callout h3{margin-top:0}

/* blog cards */
.post-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:24px;margin:1.5em 0}
.post-card{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--shadow);display:flex;flex-direction:column}
.post-thumb img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:0}
.post-body{padding:18px 20px 8px}
.post-body h2{font-size:1.15rem;margin:.2em 0 .5em}
.post-body p{font-size:.95rem;color:var(--muted)}
.post-date{font-size:.8rem !important;text-transform:uppercase;letter-spacing:.06em;margin:0}
.post-more a{font-weight:600}

/* contact */
.page-contact-us .gb-layout-column-wrap{max-width:none !important}
.map-embed{margin-top:16px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}
.map-embed iframe{display:block;width:100%;height:320px;border:0}
.contact-form-wrap{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:26px;margin:1.5em 0}
.contact-form .form-row{margin-bottom:14px}
.contact-form .two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.contact-form label{display:block;font-weight:500;font-size:.92rem;color:var(--navy)}
.contact-form input,.contact-form textarea{display:block;width:100%;margin-top:5px;padding:11px 13px;border:1px solid #c9d3da;border-radius:8px;font:inherit;font-size:1rem;background:#fff}
.contact-form input:focus,.contact-form textarea:focus{outline:2px solid var(--blue);border-color:var(--blue)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-thanks{background:#e6f6ec;border:1px solid #9fd8b3;border-radius:var(--radius);padding:16px 20px;margin-bottom:16px}
.form-error{background:#fdecea;border:1px solid #f2b8b0;border-radius:var(--radius);padding:16px 20px;margin-bottom:16px}

/* footer */
.site-footer{background:#1d252c;color:#b9c4cc;font-size:.95rem}
.footer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;padding-top:50px;padding-bottom:40px}
.site-footer h3{color:#fff;font-size:1rem;text-transform:uppercase;letter-spacing:.06em;margin:0 0 14px}
.site-footer h3.mt{margin-top:26px}
.site-footer a{color:#e6edf2}
.site-footer a:hover{color:#7fd3ff}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin:0 0 6px}
.footer-phone{font-size:1.35rem;font-weight:700;color:#fff !important}
.badges{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:8px 0 6px}
.badges img{background:#fff;border-radius:6px;padding:4px;display:block}
.footer-bottom{border-top:1px solid #2f3a43;padding:18px 0;font-size:.85rem;text-align:center;color:#8d9aa4}
.mobile-call{display:none}

/* responsive */
@media (max-width:960px){
  .layout-with-sidebar{grid-template-columns:1fr;gap:0}
  .sidebar{position:static;margin-top:1rem}
  .footer-grid{grid-template-columns:1fr 1fr}
  .site-nav .menu>li>a{padding:14px 10px;font-size:.78rem}
}
@media (max-width:820px){
  body{font-size:16px}
  h1{font-size:1.8rem}h2{font-size:1.4rem}
  .header-inner{flex-wrap:wrap;padding-top:12px}
  .logo img{width:220px}
  .header-cta{display:none}
  .menu-toggle{display:inline-flex;align-items:center;gap:8px;background:var(--navy);color:#fff;border:0;border-radius:8px;padding:10px 14px;font:700 .85rem var(--font);text-transform:uppercase;letter-spacing:.05em;cursor:pointer}
  .menu-toggle span,.menu-toggle span::before,.menu-toggle span::after{display:block;width:18px;height:2px;background:#fff;position:relative;content:""}
  .menu-toggle span::before{position:absolute;top:-6px}
  .menu-toggle span::after{position:absolute;top:6px}
  .site-nav{display:none;border-top:1px solid var(--line)}
  .site-nav.open{display:block}
  .site-nav .wrap{padding:0}
  .site-nav .menu{flex-direction:column}
  .site-nav .menu>li{border-bottom:1px solid var(--line)}
  .site-nav .menu>li>a{padding:14px 20px;font-size:.9rem}
  .site-nav .menu>li>a.active{box-shadow:inset 4px 0 0 var(--blue)}
  .site-nav .has-sub>a::after{display:none}
  .sub-toggle{display:block;position:absolute;right:6px;top:4px;width:44px;height:40px;background:none;border:0;cursor:pointer}
  .sub-toggle::after{content:"";display:block;width:9px;height:9px;border-right:2px solid var(--navy);border-bottom:2px solid var(--navy);transform:rotate(45deg);margin:0 auto 4px;transition:.15s}
  .sub-toggle[aria-expanded=true]::after{transform:rotate(-135deg);margin-bottom:-4px}
  .site-nav .sub{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;border-radius:0;display:none;background:var(--soft);padding:4px 0}
  .site-nav .has-sub:hover .sub{display:none}
  .site-nav .sub.open,.site-nav .has-sub:hover .sub.open{display:block}
  .site-nav .sub a{padding:10px 34px}
  .wp-block-columns,.gb-layout-column-wrap{flex-direction:column;gap:16px}
  .wp-block-column,.gb-block-layout-column,.gb-2-col-wideright .gb-block-layout-column:first-child{flex:1 1 auto;width:100%}
  .alignleft,.alignright{float:none;margin:0 auto 1em;display:block}
  .wp-block-cover{min-height:340px;border-radius:10px}
  .contact-form .two{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:28px}
  .mobile-call{display:block;position:fixed;left:12px;right:12px;bottom:12px;z-index:30;background:var(--red);color:#fff;text-align:center;font-weight:700;padding:13px;border-radius:999px;box-shadow:0 6px 20px rgba(0,0,0,.25)}
  .mobile-call:hover{color:#fff;text-decoration:none}
  .site-footer{padding-bottom:70px}
  .gb-block-testimonial{padding:26px 22px}
  td{display:block;padding:6px 0}
}
.site-nav .menu>li:last-child .sub,.site-nav .menu>li:nth-last-child(2) .sub{left:auto;right:0}
.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;margin:1em 0 2em}
.project{margin:0;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--shadow)}
.project img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:0}
.project figcaption{text-align:left;font-style:normal;padding:12px 14px;color:var(--ink);font-size:.92rem}
.project figcaption strong{display:block;color:var(--navy)}

/* v2: local SEO components */
.wp-block-cover h1,.wp-block-cover .hero-title{font-family:var(--head);font-size:clamp(2rem,4.5vw,3rem);line-height:1.15;color:#fff;margin:.2em 0;font-weight:800}
.breadcrumbs{margin:22px 0 -6px;font-size:.85rem;color:var(--muted)}
.breadcrumbs ol{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:4px}
.breadcrumbs li{margin:0}
.breadcrumbs li+li::before{content:"/";margin:0 6px 0 2px;color:#a8b4bd}
.breadcrumbs a{color:var(--muted)}
.related{margin-top:3rem;clear:both}
.related-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--navy);color:#dcebf5;border-radius:14px;padding:28px 32px;margin-bottom:2rem}
.related-cta h2{color:#fff;margin:0 0 .3em;font-size:1.45rem}
.related-cta p{margin:0}
.related-cta a{color:#7fd3ff}
.related-buttons{display:flex;gap:10px;flex-wrap:wrap;flex-shrink:0}
.related-buttons .btn-phone{margin:0;color:#fff}
.related-buttons .btn-outline{color:#fff;box-shadow:inset 0 0 0 2px #fff}
.related-buttons .btn-outline:hover{background:#fff;color:var(--navy)}
.chip-list{list-style:none;padding:0;margin:0 0 1.5em;display:flex;flex-wrap:wrap;gap:10px}
.chip-list li{margin:0}
.chip-list a{display:inline-block;border:1px solid var(--line);background:var(--soft);border-radius:999px;padding:8px 16px;font-size:.92rem;color:var(--navy);font-weight:500}
.chip-list a:hover{background:var(--blue);border-color:var(--blue);color:#fff;text-decoration:none}
.area-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px;margin:1em 0 1.5em}
.area-group{background:var(--soft);border:1px solid var(--line);border-radius:var(--radius);padding:18px 22px}
.area-group h3{margin:0 0 .5em;font-size:1.1rem}
.town-list{list-style:none;padding:0;margin:0;columns:2;column-gap:16px;font-size:.95rem}
.town-list li{margin:0 0 4px;break-inside:avoid}
.footer-towns{font-size:.88rem;line-height:1.6}
@media (max-width:820px){
  .related-cta{flex-direction:column;align-items:flex-start;padding:24px}
}
.wp-block-cover h1{font-size:clamp(2rem,4.5vw,3rem) !important}
