/*
Theme Name: DSRS Theme - Dark Customisable
Author: Custom Build
Description: Editable custom WordPress theme for Daniel Spencer Residential Surveyors.
Version: 2.6.2
Text Domain: dsrs
*/

:root{
  --orange:#f26a13;
  --orange-dark:#d95706;
  --cream:#000000;
  --text:#ffffff;
  --border:#2a2a2a;
  --green:#8fb35a;
}

*{box-sizing:border-box}

body{
  margin:0;
  font-family:Arial, Helvetica, sans-serif;
  color:var(--text);
  background:var(--cream);
  line-height:1.6;
}

a{text-decoration:none;color:inherit}
img{max-width:100%;height:auto;display:block}

.dsrs-container{
  width:min(1180px, calc(100% - 48px));
  margin:0 auto;
}

.site-top-line{
  height:6px;
  background:var(--orange);
}

.site-header{
  background:#fff;
  position:sticky;
  top:0;
  z-index:100;
  box-shadow:0 1px 0 rgba(0,0,0,.06);
}

body.admin-bar .site-header{top:32px}

.header-inner{
  height:150px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:34px;
}

.site-logo img,
.custom-logo{
  width:250px;
  max-height:125px;
  object-fit:contain;
}

.primary-nav ul{
  list-style:none;
  display:flex;
  align-items:center;
  gap:34px;
  padding:0;
  margin:0;
}

.primary-nav a{
  font-weight:800;
  text-transform:uppercase;
  font-size:13px;
  position:relative;
  padding:12px 0;
}

.primary-nav a:hover:after,
.primary-nav .current-menu-item>a:after{
  content:"";
  position:absolute;
  left:0;
  bottom:4px;
  width:100%;
  height:2px;
  background:var(--orange);
}

.header-cta,
.dsrs-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  border:0;
  background:var(--orange);
  color:#fff;
  font-weight:900;
  text-transform:uppercase;
  font-size:14px;
  padding:18px 27px;
  border-radius:3px;
  transition:.25s ease;
}

.header-cta:hover,
.dsrs-btn:hover{
  background:var(--orange-dark);
  transform:translateY(-1px);
  color:#fff;
}

.hero-map-wrap{
  position:relative;
  background:var(--cream);
}

.dsrs-hero{
  min-height:545px;
  background-size:cover;
  background-position:center;
  color:#fff;
  display:flex;
  align-items:center;
  position:relative;
  overflow:hidden;
}

.dsrs-hero:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.88) 0%,rgba(0,0,0,.72) 36%,rgba(0,0,0,.25) 66%,rgba(0,0,0,.12) 100%);
  z-index:1;
}

.hero-inner{
  position:relative;
  z-index:3;
}

.hero-content{
  max-width:610px;
  padding:78px 0;
}

.hero-eyebrow{
  color:var(--orange);
  font-weight:900;
  text-transform:uppercase;
  font-size:20px;
  line-height:1.25;
}

.hero-subeyebrow{
  color:#fff;
  font-weight:900;
  text-transform:uppercase;
  font-size:19px;
  margin-bottom:28px;
}

.dsrs-hero h1{
  font-size:clamp(44px,5.8vw,72px);
  line-height:.98;
  margin:0 0 28px;
  text-transform:uppercase;
  font-weight:900;
  letter-spacing:-2px;
  text-shadow:0 5px 16px rgba(0,0,0,.35);
}

.accent-line{
  width:62px;
  height:5px;
  background:var(--orange);
  margin:0 0 30px;
}

.dsrs-hero p{
  font-size:21px;
  line-height:1.55;
  max-width:520px;
  margin:0 0 34px;
}

.hero-actions{
  display:flex;
  align-items:center;
  gap:36px;
  flex-wrap:wrap;
}

.dsrs-link{
  display:inline-flex;
  align-items:center;
  gap:12px;
  color:#fff;
  font-weight:900;
  text-transform:uppercase;
  font-size:14px;
  padding-bottom:8px;
  border-bottom:2px solid var(--orange);
}

.dsrs-link span,
.orange-link span{
  color:var(--orange);
  font-size:22px;
  line-height:1;
}

/*
  Map placement:
  The map has been lowered so its upper tip still overlaps the hero image,
  while the body of the map aligns with the Areas section heading.
*/
.floating-map{
  position:absolute;
  z-index:4;
  right:7%;
  top:355px;
  width:min(660px,47vw);
  filter:drop-shadow(0 14px 18px rgba(0,0,0,.24));
  pointer-events:none;
}

.areas-section{
  padding:92px 0 34px;
  background:var(--cream);
}

.areas-grid{
  display:grid;
  grid-template-columns:330px 1fr;
  gap:48px;
  align-items:start;
}

.areas-copy{
  padding-top:8px;
}

.section-label{
  color:var(--orange);
  font-size:18px;
  font-weight:900;
  text-transform:uppercase;
  margin-bottom:16px;
}

.section-label:after{
  content:"";
  display:block;
  width:54px;
  height:4px;
  background:var(--orange);
  margin-top:11px;
}

.areas-copy h2{
  font-size:clamp(30px,3.8vw,42px);
  line-height:1.15;
  margin:22px 0;
  font-weight:900;
  letter-spacing:-1px;
}

.areas-copy p{
  font-size:17px;
  color:#333;
  margin:0 0 26px;
}

.mini-note{
  display:grid;
  grid-template-columns:50px 1fr;
  gap:15px;
  align-items:center;
  margin:18px 0 27px;
  font-size:14px;
}

.pin-icon{
  width:44px;
  height:44px;
  border:2px solid var(--green);
  border-radius:50%;
  display:grid;
  place-items:center;
  color:var(--green);
  font-size:22px;
}

.orange-link{
  display:inline-flex;
  align-items:center;
  gap:12px;
  color:var(--orange);
  font-weight:900;
  text-transform:uppercase;
  font-size:14px;
  padding-bottom:6px;
  border-bottom:2px solid var(--orange);
}

/* Holds the map height on desktop without showing any local-town pills under the copy. */
.areas-spacer{
  min-height:560px;
}

.cards-section{
  padding:0 0 16px;
  background:var(--cream);
  position:relative;
  z-index:5;
}

.cards-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}

.info-card{
  background:rgba(255,255,255,.94);
  border:1px solid var(--border);
  border-radius:4px;
  padding:36px 32px 30px;
  min-height:215px;
  display:grid;
  grid-template-columns:82px 1fr;
  gap:22px;
  align-items:start;
  box-shadow:0 10px 28px rgba(0,0,0,.04);
}

.card-icon{
  width:74px;
  height:74px;
  object-fit:contain;
}

.card-icon-fallback{
  width:74px;
  height:74px;
  border:4px solid var(--orange);
  color:var(--orange);
  border-radius:16px;
  display:grid;
  place-items:center;
  font-size:32px;
  font-weight:900;
}

.info-card h3{
  font-size:17px;
  text-transform:uppercase;
  margin:0 0 10px;
  font-weight:900;
}

.info-card p{
  font-size:14px;
  color:#222;
  margin:0 0 24px;
  line-height:1.55;
}

.info-card a{
  color:var(--orange);
  font-size:12px;
  text-transform:uppercase;
  font-weight:900;
}

.site-footer{
  background:#111;
  color:#fff;
  margin-top:0;
}

.footer-main{
  padding:38px 0 34px;
  display:grid;
  grid-template-columns:1.2fr 1.2fr .95fr 1.15fr;
  gap:38px;
  align-items:start;
}

.footer-logo img{
  width:220px;
  background:transparent;
  padding:0;
  border-radius:0;
}

.footer-title{
  color:var(--orange);
  font-size:14px;
  font-weight:900;
  text-transform:uppercase;
  margin-bottom:14px;
}

.footer-main p,
.footer-main li,
.footer-main a{
  color:#e6e6e6;
  font-size:14px;
}

.footer-menu ul{
  list-style:none;
  padding:0;
  margin:0;
}

.footer-menu li{margin-bottom:7px}

.contact-item{
  display:grid;
  grid-template-columns:24px 1fr;
  gap:12px;
  margin-bottom:14px;
  color:#e6e6e6;
  font-size:14px;
}

.question-box{
  border:1px solid var(--orange);
  border-radius:4px;
  padding:24px;
}

.question-box h4{
  text-transform:uppercase;
  font-size:16px;
  margin:0 0 6px;
}

.question-box p{
  margin:0 0 14px;
  font-size:13px;
}

.footer-bottom{
  border-top:1px solid rgba(255,255,255,.08);
  padding:20px 0;
  color:#bdbdbd;
  font-size:12px;
}

.footer-bottom .dsrs-container{
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:20px;
}

@media(max-width:1100px){
  .header-inner{
    height:auto;
    padding:22px 0;
    flex-wrap:wrap;
  }

  .primary-nav{
    order:3;
    width:100%;
  }

  .primary-nav ul{
    justify-content:center;
    flex-wrap:wrap;
    gap:18px 28px;
  }

  .floating-map{
    position:relative;
    right:auto;
    top:auto;
    width:min(700px,92%);
    margin:-10px auto 0;
  }

  .areas-section{
    padding-top:48px;
  }

  .areas-grid{
    grid-template-columns:1fr;
  }

  .areas-spacer{
    display:none;
  }

  .cards-grid,
  .footer-main{
    grid-template-columns:1fr;
  }
}

@media(max-width:700px){
  body.admin-bar .site-header{top:46px}

  .dsrs-container{
    width:min(100% - 32px,1180px);
  }

  .site-logo img,
  .custom-logo{
    width:190px;
  }

  .header-cta{
    width:100%;
  }

  .primary-nav ul{
    justify-content:flex-start;
    gap:14px 20px;
    font-size:12px;
  }

  .dsrs-hero{
    min-height:610px;
  }

  .dsrs-hero:before{
    background:linear-gradient(90deg,rgba(0,0,0,.9),rgba(0,0,0,.66));
  }

  .dsrs-hero h1{
    font-size:43px;
  }

  .dsrs-hero p{
    font-size:18px;
  }

  .hero-actions{
    gap:20px;
  }

  .dsrs-btn{
    width:100%;
  }

  .floating-map{
    margin:-8px auto 0;
    width:100%;
  }

  .info-card{
    grid-template-columns:1fr;
    padding:30px 26px;
  }
}


/* News page */
.news-hero{
  background:
    linear-gradient(90deg,rgba(0,0,0,.86) 0%,rgba(0,0,0,.7) 42%,rgba(0,0,0,.18) 100%),
    url("assets/images/hero.jpg") center/cover no-repeat;
  color:#fff;
  padding:105px 0 95px;
}

.news-hero .section-label{
  color:var(--orange);
}

.news-hero .section-label:after{
  background:var(--orange);
}

.news-hero h1{
  font-size:clamp(42px,5.8vw,72px);
  line-height:.98;
  margin:22px 0 24px;
  text-transform:uppercase;
  font-weight:900;
  letter-spacing:-2px;
  max-width:760px;
  text-shadow:0 5px 16px rgba(0,0,0,.35);
}

.news-hero p{
  max-width:620px;
  font-size:20px;
  margin:0;
}

.news-section{
  background:var(--cream);
  padding:72px 0 82px;
}

.news-layout{
  display:grid;
  grid-template-columns:1fr 320px;
  gap:36px;
  align-items:start;
}

.news-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:22px;
}

.news-card{
  background:rgba(255,255,255,.94);
  border:1px solid var(--border);
  border-radius:4px;
  overflow:hidden;
  box-shadow:0 10px 28px rgba(0,0,0,.04);
}

.news-card-image{
  aspect-ratio:16/10;
  background:#ddd;
  overflow:hidden;
}

.news-card-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:.25s ease;
}

.news-card:hover .news-card-image img{
  transform:scale(1.04);
}

.news-card-body{
  padding:26px 26px 28px;
}

.news-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px 14px;
  color:var(--orange);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  margin-bottom:12px;
}

.news-card h2{
  font-size:22px;
  line-height:1.2;
  margin:0 0 12px;
  font-weight:900;
}

.news-card h2 a:hover{
  color:var(--orange);
}

.news-card p{
  margin:0 0 20px;
  color:#333;
  font-size:15px;
}

.news-read-more{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--orange);
  font-size:13px;
  text-transform:uppercase;
  font-weight:900;
  padding-bottom:5px;
  border-bottom:2px solid var(--orange);
}

.news-sidebar{
  background:#111;
  color:#fff;
  border-radius:4px;
  padding:30px;
  position:sticky;
  top:180px;
}

.news-sidebar h3{
  color:var(--orange);
  text-transform:uppercase;
  font-size:16px;
  margin:0 0 16px;
}

.news-sidebar p{
  color:#e6e6e6;
  font-size:14px;
  margin:0 0 22px;
}

.news-sidebar ul{
  list-style:none;
  padding:0;
  margin:0;
}

.news-sidebar li{
  border-top:1px solid rgba(255,255,255,.12);
  padding:12px 0;
}

.news-sidebar a{
  color:#fff;
  font-size:14px;
  font-weight:700;
}

.news-sidebar a:hover{
  color:var(--orange);
}

.news-pagination{
  margin-top:36px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.news-pagination .page-numbers{
  min-width:42px;
  height:42px;
  display:inline-grid;
  place-items:center;
  border:1px solid var(--border);
  background:#fff;
  color:#111;
  font-weight:900;
}

.news-pagination .current,
.news-pagination .page-numbers:hover{
  background:var(--orange);
  border-color:var(--orange);
  color:#fff;
}

.single-news{
  background:var(--cream);
  padding:70px 0 82px;
}

.single-news-inner{
  max-width:860px;
  margin:0 auto;
  background:#fff;
  border:1px solid var(--border);
  border-radius:4px;
  padding:42px;
  box-shadow:0 10px 28px rgba(0,0,0,.04);
}

.single-news h1{
  font-size:clamp(34px,4.8vw,58px);
  line-height:1;
  margin:12px 0 22px;
  font-weight:900;
  letter-spacing:-1px;
}

.single-news-featured{
  margin:28px 0;
  border-radius:4px;
  overflow:hidden;
}

.single-news-content{
  font-size:18px;
  line-height:1.75;
}

.single-news-content img{
  border-radius:4px;
}

@media(max-width:1000px){
  .news-layout{
    grid-template-columns:1fr;
  }

  .news-sidebar{
    position:static;
  }
}

@media(max-width:700px){
  .news-grid{
    grid-template-columns:1fr;
  }

  .news-hero{
    padding:78px 0;
  }

  .single-news-inner{
    padding:28px 22px;
  }
}


/* Shared inner page styling */
.inner-hero{
  background:
    linear-gradient(90deg,rgba(0,0,0,.86),rgba(0,0,0,.66),rgba(0,0,0,.18)),
    url("assets/images/hero.jpg") center/cover no-repeat;
  color:#fff;
  padding:105px 0 95px;
}

.inner-hero h1{
  font-size:clamp(42px,5.8vw,72px);
  line-height:.98;
  margin:22px 0 24px;
  text-transform:uppercase;
  font-weight:900;
  letter-spacing:-2px;
  max-width:820px;
  text-shadow:0 5px 16px rgba(0,0,0,.35);
}

.inner-hero p{
  max-width:650px;
  font-size:20px;
  margin:0;
}

.inner-section{
  background:var(--cream);
  padding:72px 0 82px;
}

.two-col{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:42px;
  align-items:center;
}

.content-card{
  background:rgba(255,255,255,.94);
  border:1px solid var(--border);
  border-radius:4px;
  padding:36px;
  box-shadow:0 10px 28px rgba(0,0,0,.04);
}

.content-card h2,
.service-card h2,
.staff-card h2,
.area-card h2{
  margin:0 0 14px;
  font-weight:900;
  line-height:1.12;
}

.content-card p,
.service-card p,
.staff-card p,
.area-card p{
  color:#333;
  margin:0 0 16px;
}

.staff-grid,
.services-grid,
.areas-card-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:22px;
}

.staff-card,
.service-card,
.area-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:4px;
  overflow:hidden;
  box-shadow:0 10px 28px rgba(0,0,0,.04);
}

.staff-image{
  aspect-ratio:4/3;
  background:#ddd;
}

.staff-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.staff-body,
.service-card,
.area-card{
  padding:30px;
}

.staff-role{
  color:var(--orange);
  text-transform:uppercase;
  font-size:13px;
  font-weight:900;
  margin-bottom:12px;
}

.service-icon{
  width:74px;
  height:74px;
  display:grid;
  place-items:center;
  border:4px solid var(--orange);
  color:var(--orange);
  border-radius:16px;
  font-size:32px;
  font-weight:900;
  margin-bottom:22px;
}

.service-card ul,
.area-card ul{
  padding-left:20px;
  margin:16px 0 22px;
}

.service-card li,
.area-card li{
  margin-bottom:8px;
}

.process-list{
  counter-reset:step;
  display:grid;
  gap:16px;
  margin-top:28px;
}

.process-step{
  counter-increment:step;
  background:#fff;
  border:1px solid var(--border);
  padding:22px;
  border-radius:4px;
  display:grid;
  grid-template-columns:48px 1fr;
  gap:18px;
}

.process-step:before{
  content:counter(step);
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  background:var(--orange);
  color:#fff;
  font-weight:900;
  border-radius:50%;
}

.areas-map-full{
  background:#fff;
  border:1px solid var(--border);
  border-radius:4px;
  padding:30px;
  box-shadow:0 10px 28px rgba(0,0,0,.04);
}

.areas-map-full img{
  margin:0 auto;
  max-height:720px;
  object-fit:contain;
}

.contact-layout{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:30px;
  align-items:start;
}

.contact-detail{
  display:grid;
  grid-template-columns:44px 1fr;
  gap:16px;
  padding:18px 0;
  border-bottom:1px solid var(--border);
}

.contact-icon{
  width:44px;
  height:44px;
  border-radius:50%;
  display:grid;
  place-items:center;
  border:2px solid var(--orange);
  color:var(--orange);
  font-weight:900;
}

.contact-form-shell{
  background:#fff;
  border:1px solid var(--border);
  border-radius:4px;
  padding:34px;
  box-shadow:0 10px 28px rgba(0,0,0,.04);
}

.contact-form-shell input,
.contact-form-shell textarea,
.contact-form-shell select{
  width:100%;
  border:1px solid var(--border);
  padding:14px;
  margin-bottom:14px;
  font:inherit;
}

.contact-form-shell button,
.contact-form-shell input[type="submit"]{
  background:var(--orange);
  color:#fff;
  border:0;
  padding:15px 26px;
  font-weight:900;
  text-transform:uppercase;
  cursor:pointer;
}

@media(max-width:900px){
  .two-col,
  .staff-grid,
  .services-grid,
  .areas-card-grid,
  .contact-layout{
    grid-template-columns:1fr;
  }
}


/* Enhanced Services Page */
.services-intro-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:28px;
  align-items:stretch;
  margin-bottom:34px;
}

.services-highlight{
  background:#111;
  color:#fff;
  border-radius:4px;
  padding:34px;
  position:relative;
  overflow:hidden;
}

.services-highlight:before{
  content:"";
  position:absolute;
  right:-45px;
  top:-45px;
  width:160px;
  height:160px;
  border:28px solid rgba(242,106,19,.18);
  border-radius:50%;
}

.services-highlight h2{
  color:#fff;
  font-size:34px;
  line-height:1.05;
  margin:0 0 16px;
  font-weight:900;
}

.services-highlight p{
  color:#e6e6e6;
  margin:0;
}

.services-summary{
  background:#fff;
  border:1px solid var(--border);
  border-radius:4px;
  padding:34px;
  box-shadow:0 10px 28px rgba(0,0,0,.04);
}

.services-summary h2{
  margin:0 0 14px;
  font-size:30px;
  line-height:1.08;
  font-weight:900;
}

.services-tabs{
  display:grid;
  gap:28px;
}

.service-detail-card{
  background:#fff;
  border:1px solid var(--border);
  border-radius:4px;
  box-shadow:0 10px 28px rgba(0,0,0,.04);
  overflow:hidden;
}

.service-detail-header{
  display:grid;
  grid-template-columns:100px 1fr auto;
  gap:24px;
  align-items:center;
  padding:30px;
  border-bottom:1px solid var(--border);
}

.service-detail-icon{
  width:78px;
  height:78px;
  border:4px solid var(--orange);
  color:var(--orange);
  border-radius:16px;
  display:grid;
  place-items:center;
  font-size:34px;
  font-weight:900;
}

.service-detail-header h2{
  margin:0 0 8px;
  font-size:30px;
  line-height:1.08;
  font-weight:900;
}

.service-tag{
  color:var(--orange);
  font-size:13px;
  font-weight:900;
  text-transform:uppercase;
}

.service-detail-body{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:30px;
  padding:34px;
}

.service-copy p{
  margin:0 0 18px;
  color:#333;
}

.service-checklist{
  background:var(--cream);
  border:1px solid var(--border);
  border-radius:4px;
  padding:28px;
}

.service-checklist h3,
.booking-process h3{
  margin:0 0 16px;
  font-size:18px;
  text-transform:uppercase;
  font-weight:900;
}

.service-checklist ul{
  list-style:none;
  margin:0;
  padding:0;
}

.service-checklist li{
  position:relative;
  padding-left:28px;
  margin-bottom:12px;
}

.service-checklist li:before{
  content:"✓";
  position:absolute;
  left:0;
  top:0;
  color:var(--orange);
  font-weight:900;
}

.benefit-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin-top:28px;
}

.benefit-card{
  background:var(--cream);
  border:1px solid var(--border);
  border-radius:4px;
  padding:24px;
}

.benefit-card h3{
  margin:0 0 10px;
  font-size:17px;
  line-height:1.2;
  font-weight:900;
}

.benefit-card p{
  margin:0;
  font-size:14px;
  color:#333;
}

.booking-process{
  padding:34px;
  border-top:1px solid var(--border);
  background:linear-gradient(180deg,#fff,var(--cream));
}

.booking-steps{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  counter-reset:service-step;
}

.booking-step{
  counter-increment:service-step;
  background:#fff;
  border:1px solid var(--border);
  border-radius:4px;
  padding:22px;
  min-height:150px;
}

.booking-step:before{
  content:counter(service-step);
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  background:var(--orange);
  color:#fff;
  border-radius:50%;
  font-weight:900;
  margin-bottom:14px;
}

.booking-step h4{
  margin:0 0 8px;
  font-size:16px;
  font-weight:900;
}

.booking-step p{
  margin:0;
  color:#333;
  font-size:14px;
}

.timeline-note{
  margin-top:20px;
  background:#111;
  color:#fff;
  padding:22px;
  border-left:5px solid var(--orange);
  border-radius:4px;
}

.timeline-note strong{
  color:var(--orange);
  text-transform:uppercase;
}

.services-cta-band{
  margin-top:34px;
  background:#111;
  color:#fff;
  border-radius:4px;
  padding:34px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}

.services-cta-band h2{
  margin:0 0 8px;
  font-size:30px;
  font-weight:900;
}

.services-cta-band p{
  margin:0;
  color:#e6e6e6;
}

@media(max-width:1000px){
  .services-intro-grid,
  .service-detail-body{
    grid-template-columns:1fr;
  }

  .booking-steps,
  .benefit-grid{
    grid-template-columns:1fr 1fr;
  }

  .service-detail-header{
    grid-template-columns:80px 1fr;
  }

  .service-detail-header .dsrs-btn{
    grid-column:1 / -1;
    width:max-content;
  }
}

@media(max-width:700px){
  .booking-steps,
  .benefit-grid{
    grid-template-columns:1fr;
  }

  .service-detail-header{
    grid-template-columns:1fr;
  }

  .services-cta-band{
    display:block;
  }

  .services-cta-band .dsrs-btn{
    margin-top:22px;
    width:100%;
  }
}


/* Services dropdown accordions */
.services-accordion-stack{
  display:grid;
  gap:24px;
}
.service-accordion,
.faq-accordion{
  background:#fff;
  border:1px solid var(--border);
  border-radius:4px;
  box-shadow:0 10px 28px rgba(0,0,0,.04);
  overflow:hidden;
}
.service-accordion summary,
.faq-accordion summary{
  list-style:none;
  cursor:pointer;
}
.service-accordion summary::-webkit-details-marker,
.faq-accordion summary::-webkit-details-marker{
  display:none;
}
.service-accordion .service-detail-header,
.faq-question{
  position:relative;
}
.service-accordion .service-detail-header:after,
.faq-question:after{
  content:"+";
  width:42px;
  height:42px;
  border:2px solid var(--orange);
  border-radius:50%;
  color:var(--orange);
  display:grid;
  place-items:center;
  font-size:26px;
  font-weight:900;
  line-height:1;
}
.service-accordion[open] .service-detail-header:after,
.faq-accordion[open] .faq-question:after{
  content:"−";
}
.service-accordion-content{
  border-top:1px solid var(--border);
}
.service-accordion:not([open]){
  transition:.25s ease;
}
.service-accordion:not([open]):hover,
.faq-accordion:not([open]):hover{
  transform:translateY(-2px);
}
.service-detail-header{
  grid-template-columns:100px 1fr auto 50px;
}
.service-detail-header .dsrs-btn{
  position:relative;
  z-index:2;
}
.services-faq-section{
  margin-top:42px;
}
.services-faq-header{
  max-width:760px;
  margin-bottom:24px;
}
.services-faq-header h2{
  font-size:clamp(32px,4vw,46px);
  line-height:1.05;
  margin:20px 0 14px;
  font-weight:900;
  letter-spacing:-1px;
}
.services-faq-header p{
  color:#333;
  margin:0;
  font-size:17px;
}
.faq-list{
  display:grid;
  gap:12px;
}
.faq-question{
  display:grid;
  grid-template-columns:1fr 50px;
  gap:18px;
  align-items:center;
  padding:22px 26px;
  font-weight:900;
  font-size:17px;
}
.faq-answer{
  padding:0 26px 24px;
  color:#333;
}
.faq-answer p{
  margin:0;
}
@media(max-width:1000px){
  .service-detail-header{
    grid-template-columns:80px 1fr 50px;
  }
  .service-detail-header .dsrs-btn{
    grid-column:1 / -1;
    width:max-content;
  }
}
@media(max-width:700px){
  .service-detail-header{
    grid-template-columns:1fr 50px;
  }
  .service-detail-icon{
    grid-column:1 / -1;
  }
  .service-detail-header > div:nth-child(2){
    grid-column:1 / 2;
  }
  .service-detail-header .dsrs-btn{
    width:100%;
  }
}


/* Paragraph break support for Customizer textarea fields */
.content-card p + p,
.staff-body p + p,
.area-card p + p,
.areas-copy p + p,
.contact-layout p + p,
.service-copy p + p,
.services-highlight p + p,
.services-summary p + p {
  margin-top: 16px;
}

/* Global dark theme update - keeps all pages black and readable */
html,
body,
.site,
.site-content,
main,
.hero-map-wrap,
.inner-section,
.areas-section,
.cards-section,
.news-section,
.single-news,
.archive,
.blog {
  background:#000 !important;
  color:#fff !important;
}

.site-header{
  background:#000 !important;
  border-bottom:1px solid #222;
  box-shadow:0 1px 0 rgba(255,255,255,.08);
}

.primary-nav a,
.site-header a,
body,
h1,h2,h3,h4,h5,h6{
  color:#fff !important;
}

p,
li,
span,
div,
.areas-copy p,
.content-card p,
.service-card p,
.staff-card p,
.area-card p,
.news-card p,
.service-copy p,
.benefit-card p,
.booking-step p,
.services-faq-header p,
.faq-answer,
.faq-answer p,
.single-news-content,
.news-sidebar p,
.footer-main p,
.footer-main li,
.footer-main a{
  color:#e5e5e5;
}

.info-card,
.content-card,
.staff-card,
.service-card,
.area-card,
.process-step,
.areas-map-full,
.contact-form-shell,
.services-summary,
.service-detail-card,
.service-checklist,
.benefit-card,
.booking-step,
.service-accordion,
.faq-accordion,
.news-card,
.single-news-inner,
.news-pagination .page-numbers{
  background:#111 !important;
  border-color:#2a2a2a !important;
  color:#fff !important;
  box-shadow:0 10px 28px rgba(0,0,0,.35);
}

.booking-process{
  background:linear-gradient(180deg,#111,#000) !important;
  border-top-color:#2a2a2a !important;
}

.service-checklist,
.benefit-card{
  background:#151515 !important;
}

.staff-image,
.news-card-image{
  background:#1a1a1a !important;
}

.contact-detail,
.service-detail-header,
.service-accordion-content,
.news-sidebar li,
.footer-bottom{
  border-color:#2a2a2a !important;
}

.contact-form-shell input,
.contact-form-shell textarea,
.contact-form-shell select{
  background:#1a1a1a !important;
  color:#fff !important;
  border:1px solid #333 !important;
}

.contact-form-shell input::placeholder,
.contact-form-shell textarea::placeholder{
  color:#bdbdbd;
}

.site-footer,
.news-sidebar,
.services-highlight,
.services-cta-band,
.timeline-note{
  background:#000 !important;
  color:#fff !important;
}

.section-label,
.orange-link,
.news-meta,
.staff-role,
.footer-title,
.service-tag,
.timeline-note strong{
  color:var(--orange) !important;
}

a:hover,
.news-card h2 a:hover,
.news-sidebar a:hover{
  color:var(--orange) !important;
}

/* Final homepage bottom card fix - dark card, white readable text */
body.home section.cards-section article.info-card,
section.cards-section article.info-card,
.cards-section .cards-grid article.info-card {
  background: #111111 !important;
  border: 1px solid #2a2a2a !important;
  color: #ffffff !important;
  box-shadow: 0 10px 28px rgba(0,0,0,.35) !important;
}

body.home section.cards-section article.info-card h3,
section.cards-section article.info-card h3,
.cards-section .cards-grid article.info-card h3 {
  color: #ffffff !important;
}

body.home section.cards-section article.info-card p,
section.cards-section article.info-card p,
.cards-section .cards-grid article.info-card p {
  color: #e5e5e5 !important;
}

body.home section.cards-section article.info-card a,
section.cards-section article.info-card a,
.cards-section .cards-grid article.info-card a {
  color: #f26a13 !important;
}

body.home section.cards-section article.info-card span,
body.home section.cards-section article.info-card div,
section.cards-section article.info-card span,
section.cards-section article.info-card div {
  color: inherit !important;
}

body.home section.cards-section article.info-card .card-icon-fallback,
section.cards-section article.info-card .card-icon-fallback {
  color: #f26a13 !important;
  border-color: #f26a13 !important;
}
