:root{
  --color-1: #223855; /* navy - header/footer */
  --color-2: #48667e; /* muted blue */
  --color-3: #ffffff; /* white */
  --color-4: #00bef2; /* cyan accent */
  --color-5: #e9f6ff; /* light blue band */
  --color-6: #5171a5; /* mid blue */
  --font-display: "Red Rose", Georgia, serif;
  --font-body: "Lato", Arial, sans-serif;
}

*{box-sizing:border-box;}
body{margin:0;font-family:var(--font-body);color:#333;line-height:1.6;}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;color:var(--color-1);margin:0 0 .5em;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:1120px;margin:0 auto;padding:0 40px;}
.text-center{text-align:center;}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}

/* Header */
.site-header{background:var(--color-1);color:var(--color-3);}
.header-inner{display:flex;justify-content:space-between;align-items:center;padding:16px 40px;}
.logo{font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--color-3);}
.main-nav ul{list-style:none;display:flex;gap:28px;margin:0;padding:0;}
.main-nav > ul > li{position:relative;}
.main-nav a{color:var(--color-3);font-weight:700;text-transform:uppercase;font-size:.9rem;letter-spacing:.03em;}
.main-nav .sub-nav{display:none;position:absolute;top:100%;left:0;background:#faf9f9;min-width:260px;padding:8px 0;z-index:10;}
.main-nav .has-sub:hover .sub-nav{display:block;}
.main-nav .sub-nav a{color:#333;text-transform:none;font-weight:400;display:block;padding:10px 20px;}

/* Mobile nav toggle */
.nav-toggle-checkbox{display:none;}
.nav-toggle-label{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:8px;}
.nav-toggle-label span{width:26px;height:3px;background:var(--color-3);display:block;border-radius:2px;}

/* Hero */
.hero, .page-hero{background-size:cover;background-position:center;position:relative;padding:110px 40px;}
.hero:before, .page-hero:before{content:"";position:absolute;inset:0;background:rgba(34,56,85,.6);}
.hero-overlay{position:relative;text-align:center;z-index:1;}
.hero h1{color:var(--color-3);font-size:3rem;margin-bottom:1em;}
.page-hero h1{color:var(--color-3);font-size:2.25rem;}

.btn{display:inline-block;padding:16px 32px;font-weight:700;letter-spacing:.03em;border-radius:2px;text-transform:uppercase;}
.btn-primary{background:var(--color-1);color:var(--color-3);}
.btn-primary:hover{background:var(--color-2);}

/* Section band */
.section-band{background:var(--color-1);padding:30px 0;}
.section-band h2{color:var(--color-3);}
.intro-text{color:#e6edf5;padding:20px 0;}

/* Two column intro */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;padding:50px 0;}
.col-form{background:var(--color-5);padding:30px;border-radius:6px;}
.quote-badge{max-width:60%;display:block;margin:0 auto 16px;}
.contact-form label{display:block;margin-bottom:14px;font-weight:700;font-size:.9rem;}
.contact-form input, .contact-form textarea{width:100%;padding:10px;margin-top:6px;border:1px solid #ccc;font-family:var(--font-body);}
.contact-form fieldset{border:none;padding:0;margin:0 0 14px;}
.contact-form legend{font-weight:700;margin-bottom:6px;}
.contact-form label.checkbox{display:flex;align-items:center;gap:8px;font-weight:400;margin-bottom:10px;}
.checkbox input{width:auto;margin:0;}
.bullet-list{list-style:disc;padding-left:20px;margin:0;}
.bullet-list li{margin-bottom:6px;}

/* Service areas */
.service-areas{padding:50px 0;}
.area-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px;}

/* Near me */
.near-me-inner{display:grid;grid-template-columns:58% 42%;min-height:420px;}
.near-me-image{background-size:cover;background-position:center;}
.near-me-copy{background:var(--color-5);padding:60px 40px;display:flex;flex-direction:column;justify-content:center;}

/* What involves + quadrant */
.what-involves{padding:40px 0;}
.quadrant-block{background:#f7fafc;padding:40px 0;}
.quadrant-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;}
.quadrant{background:var(--color-3);padding:24px;border-left:4px solid var(--color-4);}

/* FAQ */
.faq-accordion{padding:40px 0;}
.faq-item{border-bottom:1px solid #ddd;padding:14px 0;}
.faq-item summary{cursor:pointer;font-weight:700;color:var(--color-1);}

/* CTA band */
.cta-band{background:var(--color-1);color:var(--color-3);padding:50px 0;}
.cta-band h3{color:var(--color-3);}

/* Footer */
.site-footer{background:var(--color-1);color:var(--color-3);padding:50px 0 20px;margin-top:0;}
.footer-inner{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;}
.footer-inner h4{color:var(--color-3);}
.footer-nav{list-style:none;padding:0;margin:0;}
.footer-nav > li{margin-bottom:6px;}
.footer-nav ul{list-style:none;padding-left:14px;margin:4px 0;}
.footer-nav ul a{opacity:.6;font-size:.92em;}
.footer-nav a{opacity:.9;}
.site-footer a{color:var(--color-3);}

/* Services grid */
.services-grid-section{padding:50px 0;}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.service-card{display:block;background:#f7fafc;padding:24px;border-left:4px solid var(--color-4);color:#333;transition:box-shadow .15s;}
.service-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.08);}
.service-card h3{font-size:1.1rem;margin-bottom:.4em;}
.service-card p{font-size:.92rem;color:#555;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.learn-more{display:inline-block;margin-top:10px;font-weight:700;color:var(--color-1);}

/* About page */
.about-body{padding:50px 0;}

/* Contact page */
.contact-body{padding:50px 0;}
.contact-form h3{margin-bottom:16px;}

/* Standalone quote section (non-home/contact pages) */
.quote-section{background:#f7fafc;padding:50px 0;}
.quote-form-standalone{max-width:600px;margin:0 auto;background:var(--color-5);padding:30px;border-radius:6px;}

@media (max-width:800px){
  .two-col, .quadrant-grid, .area-columns, .footer-inner, .services-grid{grid-template-columns:1fr;}

  .header-inner{flex-wrap:wrap;}
  .nav-toggle-label{display:flex;}
  .main-nav{display:none;width:100%;order:3;}
  .nav-toggle-checkbox:checked ~ .main-nav{display:block;}
  .main-nav ul{flex-direction:column;gap:0;}
  .main-nav a{padding:14px 0;border-top:1px solid rgba(255,255,255,.15);}
  .main-nav .has-sub .sub-nav{display:block;position:static;background:transparent;padding:0 0 0 16px;}
  .main-nav .has-sub .sub-nav a{color:var(--color-3);opacity:.8;padding:10px 0;border-top:none;}
}
