:root{
  --ink:#0b2545;
  --ink-2:#13315c;
  --ice:#eaf2f9;
  --accent:#f0641e;
  --accent-d:#d4530f;
  --text:#2b3a4f;
  --head:'Bricolage Grotesque',system-ui,sans-serif;
  --body:'DM Sans',system-ui,sans-serif;
}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{font-family:var(--body);color:var(--text);font-size:1.05rem;line-height:1.7}
h1,h2,h3{font-family:var(--head);color:var(--ink);letter-spacing:-.01em}
h2{font-size:clamp(1.9rem,3.5vw,2.7rem);font-weight:800;margin-bottom:1.2rem}
a{color:var(--accent-d)}

/* buttons */
.btn-dm{background:var(--accent);border:2px solid var(--accent);color:#fff;font-weight:700;border-radius:999px;padding:.5rem 1.25rem}
.btn-dm:hover,.btn-dm:focus{background:var(--accent-d);border-color:var(--accent-d);color:#fff}
.btn-ghost{background:transparent;border:2px solid rgba(255,255,255,.55);color:#fff;font-weight:700;border-radius:999px}
.btn-ghost:hover{background:#fff;color:var(--ink);border-color:#fff}
.btn-lg{padding:.7rem 1.6rem;font-size:1.05rem}

/* nav */
.dm-nav{background:#fff;box-shadow:0 1px 0 rgba(11,37,69,.08);padding:.4rem 0}
.logo-chip{display:inline-flex;align-items:center;background:#fff;border-radius:10px;padding:3px 6px;box-shadow:0 0 0 1px rgba(11,37,69,.1)}
.logo-chip img{height:40px;width:auto}
.brand-name{font-family:var(--head);font-weight:800;color:var(--ink);font-size:1.25rem;white-space:nowrap}
.dm-nav .nav-link{color:var(--ink);font-weight:500;padding:.5rem .75rem}
.dm-nav .nav-link:hover{color:var(--accent-d)}
@media (max-width:420px){.brand-name{font-size:1.05rem}.logo-chip img{height:32px}}

/* hero: split panel */
.hero{display:grid;grid-template-columns:55fr 45fr;min-height:min(calc(100vh - 64px),820px)}
.hero-text{background:var(--ink);color:#fff;display:flex;flex-direction:column;justify-content:center;padding:4rem clamp(1.5rem,6vw,6rem)}
.hero-photo{background:url('img/hero.webp') center/cover no-repeat;min-height:320px}
.hero-eyebrow{color:#ffb48a;text-transform:uppercase;letter-spacing:.16em;font-size:.8rem;font-weight:700;margin-bottom:1rem}
.hero-title{font-size:clamp(2.8rem,6vw,5.2rem);font-weight:800;line-height:1;color:#fff;margin-bottom:1rem}
.hero-subtitle{font-family:var(--head);font-size:clamp(1.3rem,2.4vw,1.8rem);font-weight:500;color:#fff;margin-bottom:.75rem}
.hero-tagline{color:#cfdcec;max-width:34rem;margin-bottom:2rem}
.hero-hours{margin:1.75rem 0 0;color:#cfdcec;font-size:.95rem}
.hero-hours i{color:#ffb48a;margin-right:.3rem}
@media (max-width:991px){
  .hero{grid-template-columns:1fr;min-height:0}
  .hero-photo{order:-1;min-height:260px;background-position:center 40%}
  .hero-text{padding:2.5rem 1.5rem 3rem}
}

/* credentials strip */
.strip{background:var(--ice);padding:1.4rem 0;border-bottom:1px solid rgba(11,37,69,.08)}
.strip .col-6{display:flex;align-items:center;justify-content:center;gap:.6rem;font-weight:700;color:var(--ink)}
.strip i{color:var(--accent);font-size:1.4rem}

.section{padding:clamp(4rem,8vw,7rem) 0}
.section-tint{background:var(--ice)}
.kicker{text-transform:uppercase;letter-spacing:.16em;font-size:.8rem;font-weight:700;color:var(--accent-d);margin-bottom:.6rem}
.kicker-light{color:#ffb48a}
.sub{max-width:40rem;margin:0 auto}

/* about */
.about-img,.ac-img{width:100%;height:auto;border-radius:18px;display:block}
.about-img{box-shadow:18px 18px 0 var(--ice)}

/* services 2x2 */
.svc{background:#fff;border-radius:18px;padding:2.2rem;height:100%;border-top:5px solid var(--accent);box-shadow:0 10px 30px rgba(11,37,69,.07)}
.svc i{font-size:2.2rem;color:var(--ink-2)}
.svc h3{font-size:1.45rem;font-weight:700;margin:.8rem 0 .4rem}
.svc p{margin:0}

/* reviews */
.reviews{background:linear-gradient(135deg,var(--ink) 0%,var(--ink-2) 100%);color:#fff}
.reviews h2{color:#fff}
.lead-light{font-size:1.2rem;color:#d6e2f0;margin-bottom:1.6rem}

/* gallery: 10 items = 5x2 / 2x5 */
.gallery{display:grid;grid-template-columns:repeat(5,1fr);gap:.75rem}
.gallery img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:12px;background:var(--ice)}
@media (max-width:991px){.gallery{grid-template-columns:repeat(2,1fr)}}

/* contact */
.card-dm{background:#fff;border-radius:18px;padding:2rem;height:100%;box-shadow:0 10px 30px rgba(11,37,69,.07)}
.contact-list{list-style:none;margin:0;padding:0;display:grid;gap:1.4rem}
.contact-list li{display:flex;gap:1rem;align-items:flex-start}
.contact-list i{font-size:1.5rem;color:var(--accent);line-height:1.2}
.contact-list strong{display:block;color:var(--ink)}
.contact-list a{color:var(--text);text-decoration:none;font-weight:500;overflow-wrap:anywhere}
.contact-list a:hover{color:var(--accent-d)}
.map-wrap{border-radius:18px;overflow:hidden;height:100%;min-height:340px;box-shadow:0 10px 30px rgba(11,37,69,.07)}
.map-wrap iframe{width:100%;height:100%;min-height:340px;border:0;display:block}
.area{margin-top:3rem;text-align:center}
.area h3{font-size:1.5rem;font-weight:700}
.area-counties{font-weight:700;color:var(--accent-d)}
.area-towns{font-size:.92rem;max-width:62rem;margin:0 auto}

/* footer */
.footer{background:var(--ink);color:#fff;padding:3rem 0 1.5rem}
.footer a{color:#fff;text-decoration:none}
.footer-links a{opacity:.85;margin-right:.4rem}
.footer-links a:hover{opacity:1;color:#ffb48a}
.social{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.35);margin-left:.4rem;font-size:1.1rem}
.social:hover{background:var(--accent);border-color:var(--accent)}
.footer-base{margin-top:2rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.15);display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;font-size:.9rem;color:#b9c8da}
.powered{background:rgba(255,255,255,.08);padding:.3rem .9rem;border-radius:999px;color:#fff}
.powered:hover{background:var(--accent);color:#fff}
.powered i{color:#ffd166}
@media (max-width:767px){.social:first-child{margin-left:0}.footer .text-md-end{margin-top:.25rem}}
