*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root { --sky:#3a9bd5; --sky-dark:#2a7ab0; --sky-light:#e8f4fc; --dark:#1a2332; --mid:#4a5568; --light:#f7fafc; --white:#fff; --accent:#f6a623; }
html { scroll-behavior: smooth; }
body { font-family: 'Open Sans', sans-serif; color: var(--dark); line-height: 1.65; background: var(--white); }
img { max-width: 100%; display: block; }
nav { position: fixed; top:0; left:0; right:0; z-index:100; background:var(--white); box-shadow:0 2px 12px rgba(0,0,0,.08); padding:0 2rem; display:flex; align-items:center; justify-content:space-between; height:70px; }
.nav-logo { display:flex; align-items:center; gap:.75rem; text-decoration:none; }
.nav-logo img { height:44px; width:auto; }
.nav-title { font-family:'Montserrat',sans-serif; font-weight:700; font-size:1.15rem; color:var(--dark); white-space:nowrap; }
.nav-links { display:flex; align-items:center; gap:1.75rem; list-style:none; }
.nav-links a { text-decoration:none; color:var(--mid); font-family:'Montserrat',sans-serif; font-weight:600; font-size:.82rem; letter-spacing:.05em; text-transform:uppercase; }
.nav-links a:hover, .nav-links a[aria-current] { color:var(--sky); }
.nav-phone { background:var(--sky); color:var(--white)!important; padding:.5rem 1.25rem; border-radius:50px; }
.nav-mobile-phone { display:none; background:var(--sky); color:var(--white); padding:.45rem 1rem; border-radius:50px; text-decoration:none; font-family:'Montserrat',sans-serif; font-weight:700; font-size:.85rem; white-space:nowrap; }
.page-hero { margin-top:70px; position:relative; padding:6rem 2rem 5rem; color:var(--white); background-size:cover; background-position:center; }
.page-hero::before { content:''; position:absolute; inset:0; background:linear-gradient(105deg, rgba(26,35,50,.85) 0%, rgba(58,155,213,.4) 100%); }
.page-hero .container { position:relative; }
.crumbs { font-size:.8rem; opacity:.8; margin-bottom:1rem; }
.crumbs a { color:var(--white); }
.page-hero h1 { font-family:'Montserrat',sans-serif; font-size:clamp(1.9rem,4.5vw,3rem); font-weight:800; line-height:1.15; max-width:760px; margin-bottom:1rem; }
.page-hero p { font-size:1.1rem; opacity:.92; max-width:600px; margin-bottom:2rem; }
.hero-btns { display:flex; gap:1rem; flex-wrap:wrap; }
.btn-primary, .btn-outline { padding:.85rem 2rem; border-radius:50px; text-decoration:none; font-family:'Montserrat',sans-serif; font-weight:700; font-size:.95rem; display:inline-block; }
.btn-primary { background:var(--sky); color:var(--white); }
.btn-primary:hover { background:var(--sky-dark); }
.btn-outline { color:var(--white); border:2px solid rgba(255,255,255,.65); }
.btn-outline:hover { border-color:var(--white); background:rgba(255,255,255,.1); }
section { padding:4.5rem 2rem; }
.container { max-width:1100px; margin:0 auto; }
.alt { background:var(--light); }
.eyebrow { font-family:'Montserrat',sans-serif; font-size:.8rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:var(--sky); margin-bottom:.6rem; }
h2 { font-family:'Montserrat',sans-serif; font-size:clamp(1.5rem,3.2vw,2.2rem); font-weight:800; line-height:1.2; margin-bottom:1rem; }
h3 { font-family:'Montserrat',sans-serif; font-size:1.1rem; font-weight:700; margin-bottom:.45rem; }
.lead { color:var(--mid); font-size:1.05rem; max-width:680px; margin-bottom:2.5rem; }
.split { display:grid; grid-template-columns:1.1fr .9fr; gap:3.5rem; align-items:center; }
.split p { color:var(--mid); margin-bottom:1rem; }
.split img { border-radius:12px; box-shadow:0 8px 30px rgba(0,0,0,.12); width:100%; height:400px; object-fit:cover; }
.cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:1.25rem; }
.card { background:var(--white); border-radius:12px; padding:1.5rem; box-shadow:0 4px 16px rgba(0,0,0,.07); border-top:3px solid var(--sky); }
.card p { color:var(--mid); font-size:.93rem; }
.steps { counter-reset:step; display:grid; grid-template-columns:repeat(4,1fr); gap:1.25rem; }
.step { position:relative; padding-top:3.25rem; }
.step::before { counter-increment:step; content:counter(step); position:absolute; top:0; left:0; width:2.5rem; height:2.5rem; border-radius:50%; background:var(--sky); color:var(--white); font-family:'Montserrat',sans-serif; font-weight:800; display:flex; align-items:center; justify-content:center; }
.step p { color:var(--mid); font-size:.93rem; }
.towns { display:flex; flex-wrap:wrap; gap:.6rem; list-style:none; }
.towns li { background:var(--sky-light); color:var(--sky-dark); padding:.4rem .95rem; border-radius:50px; font-weight:600; font-size:.9rem; }
.gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.gallery img { width:100%; height:230px; object-fit:cover; border-radius:10px; }
.faq details { background:var(--white); border-radius:10px; padding:1.1rem 1.35rem; margin-bottom:.75rem; box-shadow:0 2px 10px rgba(0,0,0,.05); }
.faq summary { cursor:pointer; font-family:'Montserrat',sans-serif; font-weight:700; }
.faq details p { color:var(--mid); margin-top:.75rem; }
.related { display:flex; gap:1rem; flex-wrap:wrap; }
.related a { flex:1 1 220px; text-decoration:none; color:var(--dark); background:var(--white); border-radius:12px; padding:1.25rem 1.5rem; box-shadow:0 4px 16px rgba(0,0,0,.07); font-family:'Montserrat',sans-serif; font-weight:700; }
.related a span { display:block; font-family:'Open Sans',sans-serif; font-weight:400; color:var(--mid); font-size:.9rem; margin-top:.25rem; }
.related a:hover { color:var(--sky); }
#quote { background:var(--sky); color:var(--white); text-align:center; }
#quote h2 { color:var(--white); }
#quote .sub { opacity:.9; margin-bottom:2rem; }
.quote-form { max-width:640px; margin:0 auto 1.5rem; background:var(--white); color:var(--dark); border-radius:14px; padding:2rem; text-align:left; box-shadow:0 10px 30px rgba(0,0,0,.15); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.quote-form label { display:block; font-size:.85rem; font-weight:600; color:var(--mid); margin-bottom:1rem; }
.quote-form input, .quote-form select, .quote-form textarea { display:block; width:100%; margin-top:.35rem; padding:.7rem .85rem; font:inherit; font-size:1rem; border:1px solid #cbd5e0; border-radius:8px; background:var(--white); color:var(--dark); }
.quote-form input:focus, .quote-form select:focus, .quote-form textarea:focus { outline:2px solid var(--sky); border-color:var(--sky); }
.quote-form button { border:none; cursor:pointer; background:var(--sky); color:var(--white); width:100%; padding:.95rem; border-radius:50px; font-family:'Montserrat',sans-serif; font-weight:700; font-size:1rem; }
.quote-form button:hover { background:var(--sky-dark); }
.hp { position:absolute; left:-9999px; }
.call-line a { color:var(--white); font-weight:700; }
footer { background:var(--dark); color:rgba(255,255,255,.65); padding:2.5rem 2rem; font-size:.88rem; }
.footer-inner { max-width:1100px; margin:0 auto; display:flex; justify-content:space-between; gap:2rem; flex-wrap:wrap; }
footer a { color:rgba(255,255,255,.75); text-decoration:none; }
footer a:hover { color:var(--sky); }
footer ul { list-style:none; display:flex; gap:1.25rem; flex-wrap:wrap; }
@media (max-width:900px) { .steps { grid-template-columns:1fr 1fr; } }
@media (max-width:768px) {
  nav { padding:0 1rem; } .nav-links { display:none; } .nav-mobile-phone { display:inline-block; }
  .nav-title { font-size:.95rem; white-space:normal; line-height:1.15; }
  .page-hero { padding:4rem 1rem 3.5rem; } section { padding:3.5rem 1rem; }
  .split { grid-template-columns:1fr; gap:2rem; } .split img { height:260px; }
  .gallery { grid-template-columns:1fr 1fr; } .gallery img { height:160px; }
  .form-row, .steps { grid-template-columns:1fr; } .quote-form { padding:1.5rem 1.25rem; }
}

/* REVIEWS */
.reviews-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-bottom:2rem; }
.rating-badge { display:flex; align-items:center; gap:.75rem; font-family:'Montserrat',sans-serif; }
.rating-badge strong { font-size:2.2rem; font-weight:800; color:var(--dark); }
.rating-badge .stars { font-size:1.3rem; }
.rating-badge small { display:block; color:var(--mid); font-family:'Open Sans',sans-serif; font-size:.85rem; }
.stars { color:#f6a623; letter-spacing:.1em; }
.reviews-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1.25rem; }
.review { background:var(--white); border-radius:12px; padding:1.5rem; box-shadow:0 4px 16px rgba(0,0,0,.07); display:flex; flex-direction:column; gap:.75rem; margin:0; }
.review blockquote { color:var(--dark); font-size:.97rem; line-height:1.6; flex:1; margin:0; }
.review figcaption { font-family:'Montserrat',sans-serif; font-weight:700; font-size:.9rem; color:var(--dark); }
.review figcaption span { font-family:'Open Sans',sans-serif; font-weight:400; color:var(--mid); }
.reviews-link { color:var(--sky); font-weight:700; text-decoration:none; }
.reviews-link:hover { text-decoration:underline; }
.review-band .review { max-width:720px; margin:0 auto; }
