/* ==========================================================================
   Promec Servicing — content styles
   Sits on top of the frozen boldman theme.css. Everything is scoped under
   .svc-* so the theme's 1.4MB of selectors cannot reach in, and so we never
   reach out and break the shared header/footer.
   ========================================================================== */

.svc-wrap {
  max-width: 1170px;
  margin: 0 auto;
  padding: 0 20px;
}

.svc-section {
  padding: 72px 0;
  background: #fff;
}

.svc-section.svc-section-alt { background: #f5f7fa; }
.svc-section.svc-section-flat { padding: 48px 0; background: #fff; }

.svc-section + .svc-section { border-top: 1px solid #e7ebf1; }

/* ---------- type ---------- */

.svc-section h2.svc-h2 {
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 30px;
  line-height: 1.22;
  font-weight: 600;
  color: #182333;
  margin: 0 0 22px;
}

.svc-section h2.svc-h2:not(:first-child) { margin-top: 44px; }

.svc-kicker {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #0060af;
  margin-bottom: 10px;
}

.svc-section p {
  font-size: 16px;
  line-height: 1.75;
  color: #5c6470;
  margin: 0 0 16px;
  max-width: 74ch;
}

.svc-section h3 {
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 19px;
  font-weight: 600;
  color: #182333;
  margin: 0 0 10px;
}

.svc-note {
  font-size: 14px !important;
  color: #6c7787 !important;
  font-style: italic;
  margin-top: 18px !important;
}

/* ---------- hero ---------- */

.svc-hero {
  background: linear-gradient(120deg, #182333 0%, #0d3d69 58%, #0060af 100%);
  color: #fff;
  padding: 84px 0 78px;
}

.svc-hero-crumb {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .68);
  margin-bottom: 14px;
}

.svc-hero h1 {
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 46px;
  line-height: 1.1;
  font-weight: 600;
  color: #fff;
  margin: 0 0 18px;
  max-width: 20ch;
}

.svc-hero .svc-hero-sub {
  font-size: 18px;
  line-height: 1.62;
  color: rgba(255, 255, 255, .86);
  max-width: 62ch;
  margin: 0 0 28px;
}

/* ---------- buttons ---------- */

a.svc-btn,
button.svc-btn {
  display: inline-block;
  background: #0060af;
  color: #fff;
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 13px 26px;
  border: 0;
  border-radius: 2px;
  cursor: pointer;
  transition: background .18s ease;
  line-height: 1.4;
}

a.svc-btn:hover,
button.svc-btn:hover,
a.svc-btn:focus,
button.svc-btn:focus { background: #004b88; color: #fff; }

a.svc-btn:focus-visible,
button.svc-btn:focus-visible { outline: 3px solid #7dbcec; outline-offset: 2px; }

a.svc-btn-lg, button.svc-btn-lg { padding: 16px 34px; font-size: 15px; }

.svc-hero a.svc-btn { background: #fff; color: #0d3d69; }
.svc-hero a.svc-btn:hover { background: #e8eff6; color: #08325a; }

/* ---------- service areas ---------- */

.svc-area-grid {
  display: grid;
  /* 4-up at full width: seven services then read 4 + 3 rather than
     3 + 3 + 1, which left one card stranded on its own row. */
  grid-template-columns: repeat(auto-fit, minmax(248px, 1fr));
  gap: 16px;
}

a.svc-area {
  display: grid;
  grid-template-columns: 46px 1fr;
  gap: 16px;
  align-items: start;
  background: #fff;
  border: 1px solid #e2e7ee;
  border-left: 3px solid #0060af;
  border-radius: 3px;
  padding: 22px 22px 20px;
  text-decoration: none;
  transition: box-shadow .18s ease, transform .18s ease;
}

a.svc-area:hover {
  box-shadow: 0 10px 26px -14px rgba(24, 35, 51, .45);
  transform: translateY(-2px);
}

.svc-area-tag {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .06em;
  color: #0060af;
  padding-top: 3px;
}

.svc-area-body { display: block; }

.svc-area-name {
  display: block;
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 18px;
  font-weight: 600;
  color: #182333;
  margin-bottom: 7px;
}

.svc-area-desc {
  display: block;
  font-size: 14.5px;
  line-height: 1.62;
  color: #5c6470;
  margin-bottom: 12px;
}

.svc-area-note {
  display: inline-block;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .07em;
  text-transform: uppercase;
  color: #0060af;
  background: #eaf2fa;
  padding: 4px 9px;
  border-radius: 2px;
}

/* ---------- trust bar ---------- */

.svc-trust {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 26px;
}

.svc-trust-item { border-top: 3px solid #0060af; padding-top: 16px; }
.svc-trust-item h3 { font-size: 16.5px; margin-bottom: 8px; }
.svc-trust-item p { font-size: 14.5px; line-height: 1.62; margin: 0; }

/* ---------- split columns ---------- */

.svc-split {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 34px;
}

.svc-split-col {
  background: #f5f7fa;
  border-radius: 3px;
  padding: 26px 26px 22px;
}

.svc-section-alt .svc-split-col { background: #fff; }

/* ---------- booking cards ---------- */

.svc-book-grid {
  display: grid;
  /* Four bookable things, so four across rather than 3 + 1. */
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
}

.svc-book-grid-single { max-width: 420px; }

.svc-book-card {
  background: #fff;
  border: 1px solid #e2e7ee;
  border-radius: 3px;
  padding: 26px 24px 24px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.svc-book-card h3 { margin-bottom: 4px; }

.svc-book-card p {
  font-size: 14.5px;
  line-height: 1.6;
  margin: 0 0 18px;
  flex: 1 1 auto;
}

.svc-book-card a.svc-btn { align-self: flex-start; }

.svc-price {
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 27px;
  font-weight: 600;
  color: #0060af;
  margin: 0 0 12px;
  font-variant-numeric: tabular-nums;
}

.svc-price-tbc { font-size: 16px; color: #6c7787; font-weight: 500; }

/* ---------- lists ---------- */

ul.svc-list {
  list-style: none;
  margin: 0 0 22px;
  padding: 0;
  max-width: 74ch;
}

ul.svc-list li {
  position: relative;
  padding-left: 26px;
  margin-bottom: 11px;
  font-size: 16px;
  line-height: 1.68;
  color: #5c6470;
}

ul.svc-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 10px;
  width: 8px;
  height: 8px;
  background: #0060af;
  border-radius: 50%;
}

ul.svc-list.svc-list-num { counter-reset: svcnum; }

ul.svc-list.svc-list-num li { padding-left: 40px; }

ul.svc-list.svc-list-num li::before {
  counter-increment: svcnum;
  content: counter(svcnum);
  width: 26px;
  height: 26px;
  top: 3px;
  border-radius: 50%;
  color: #fff;
  font-size: 12.5px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ---------- alerts and exclusions ---------- */

.svc-alert {
  display: block;
  background: #fdf1ec;
  border: 1px solid #d9744c;
  border-left-width: 4px;
  border-radius: 3px;
  padding: 18px 20px;
  margin: 0 0 26px;
}

.svc-alert strong {
  display: block;
  color: #a8401b;
  font-size: 16.5px;
  font-weight: 600;
  margin-bottom: 6px;
}

.svc-alert span {
  display: block;
  font-size: 15px;
  line-height: 1.66;
  color: #6b4436;
}

.svc-alert-big { padding: 22px 24px; }

.svc-exclusion {
  background: #f2f4f7;
  border: 1px solid #d7dde5;
  border-left: 4px solid #8d9297;
  border-radius: 3px;
  padding: 18px 20px;
  margin: 26px 0;
}

.svc-exclusion strong {
  display: block;
  color: #182333;
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 6px;
}

.svc-exclusion span {
  display: block;
  font-size: 15px;
  line-height: 1.66;
  color: #5c6470;
}

.svc-hours-note {
  background: #eaf2fa;
  border-left: 4px solid #0060af;
  border-radius: 2px;
  padding: 16px 18px;
  font-size: 15px !important;
  color: #2c3d52 !important;
}

/* ---------- what-we-cover grid ---------- */

.svc-cover-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 16px;
  margin-bottom: 26px;
}

.svc-cover {
  background: #fff;
  border: 1px solid #e2e7ee;
  border-top: 3px solid #0060af;
  border-radius: 3px;
  padding: 18px 20px 14px;
}

.svc-cover-tag {
  display: block;
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 17px;
  font-weight: 600;
  color: #182333;
  margin-bottom: 7px;
}

.svc-cover p { font-size: 14.5px; line-height: 1.6; margin: 0; }

/* ---------- assistant call to action ---------- */

.svc-bot-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  background: #182333;
  border-radius: 4px;
  padding: 30px 32px;
}

.svc-bot-cta-text { flex: 1 1 380px; }
.svc-bot-cta h3 { color: #fff; font-size: 21px; margin-bottom: 8px; }

.svc-bot-cta p {
  color: rgba(255, 255, 255, .78) !important;
  font-size: 15px !important;
  margin: 0 !important;
  max-width: 62ch;
}

.svc-bot-cta button.svc-btn { background: #0060af; flex: 0 0 auto; }
.svc-bot-cta button.svc-btn:hover { background: #0a72c9; }

/* ==========================================================================
   Booking form
   ========================================================================== */

.svc-form { max-width: 720px; }

.svc-field { margin-bottom: 22px; }

.svc-field > label {
  display: block;
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: #182333;
  margin-bottom: 7px;
}

.svc-field .svc-hint {
  display: block;
  font-size: 13.5px;
  line-height: 1.55;
  color: #6c7787;
  margin: -2px 0 9px;
}

.svc-form input[type="text"],
.svc-form input[type="email"],
.svc-form input[type="tel"],
.svc-form select,
.svc-form textarea {
  width: 100%;
  font-family: inherit;
  font-size: 15.5px;
  line-height: 1.5;
  color: #182333;
  background: #fff;
  border: 1px solid #ccd4de;
  border-radius: 2px;
  padding: 12px 14px;
  transition: border-color .16s ease, box-shadow .16s ease;
}

.svc-form textarea { min-height: 130px; resize: vertical; }

.svc-form input:focus,
.svc-form select:focus,
.svc-form textarea:focus {
  outline: none;
  border-color: #0060af;
  box-shadow: 0 0 0 3px rgba(0, 96, 175, .16);
}

.svc-form input[aria-invalid="true"],
.svc-form select[aria-invalid="true"],
.svc-form textarea[aria-invalid="true"] { border-color: #c0472a; }

.svc-err {
  display: block;
  font-size: 13.5px;
  color: #c0472a;
  margin-top: 6px;
}

.svc-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 0 20px;
}

/* radio cards for choosing the service */
.svc-choice {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 12px;
}

.svc-choice label {
  position: relative;
  display: block;
  border: 1px solid #ccd4de;
  border-radius: 3px;
  padding: 14px 16px 13px;
  cursor: pointer;
  background: #fff;
  transition: border-color .16s ease, background .16s ease;
}

.svc-choice label:hover { border-color: #7dabd6; }

.svc-choice input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.svc-choice .svc-choice-name {
  display: block;
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: #182333;
  margin-bottom: 3px;
}

.svc-choice .svc-choice-meta { display: block; font-size: 13px; color: #6c7787; }

.svc-choice input[type="radio"]:checked + .svc-choice-inner {
  color: inherit;
}

.svc-choice label:has(input[type="radio"]:checked) {
  border-color: #0060af;
  background: #eaf2fa;
  box-shadow: inset 0 0 0 1px #0060af;
}

.svc-choice label:has(input[type="radio"]:focus-visible) {
  outline: 3px solid #7dbcec;
  outline-offset: 2px;
}

/* file upload */
.svc-drop {
  border: 2px dashed #ccd4de;
  border-radius: 3px;
  padding: 24px 20px;
  text-align: center;
  background: #fafbfd;
  transition: border-color .16s ease, background .16s ease;
}

.svc-drop.is-over { border-color: #0060af; background: #eaf2fa; }
.svc-drop p { font-size: 14.5px !important; margin: 0 0 10px !important; }

.svc-thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}

.svc-thumb {
  position: relative;
  width: 86px;
  height: 86px;
  border-radius: 3px;
  overflow: hidden;
  border: 1px solid #d7dde5;
  background: #eef1f5;
}

.svc-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

.svc-thumb button {
  position: absolute;
  top: 3px;
  right: 3px;
  width: 22px;
  height: 22px;
  border: 0;
  border-radius: 50%;
  background: rgba(24, 35, 51, .82);
  color: #fff;
  font-size: 13px;
  line-height: 1;
  cursor: pointer;
}

/* honeypot */
.svc-hp {
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* ---------- confirmation ---------- */

.svc-ref-box {
  background: #eaf2fa;
  border: 1px solid #b7d3ea;
  border-left: 4px solid #0060af;
  border-radius: 3px;
  padding: 24px 26px;
  margin-bottom: 30px;
}

.svc-ref-label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #0060af;
  margin-bottom: 8px;
}

.svc-ref-num {
  font-family: "SFMono-Regular", Menlo, Consolas, monospace;
  font-size: 32px;
  font-weight: 700;
  color: #182333;
  letter-spacing: .02em;
}

/* ==========================================================================
   Assistant widget
   ========================================================================== */

.svc-bot-launcher {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 9997;
  display: flex;
  align-items: center;
  gap: 10px;
  background: #0060af;
  color: #fff;
  border: 0;
  border-radius: 40px;
  padding: 13px 22px 13px 18px;
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14.5px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 8px 26px -8px rgba(0, 43, 79, .55);
}

.svc-bot-launcher:hover { background: #004b88; }
.svc-bot-launcher[hidden] { display: none; }

.svc-bot-panel {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 9998;
  width: 380px;
  max-width: calc(100vw - 32px);
  height: 560px;
  max-height: calc(100vh - 44px);
  background: #fff;
  border-radius: 6px;
  box-shadow: 0 20px 60px -18px rgba(11, 26, 43, .6);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.svc-bot-panel[hidden] { display: none; }

.svc-bot-head {
  background: #182333;
  color: #fff;
  padding: 16px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex: 0 0 auto;
}

.svc-bot-head-title {
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 15px;
  font-weight: 600;
}

.svc-bot-head-sub { font-size: 12.5px; color: rgba(255, 255, 255, .68); margin-top: 2px; }

.svc-bot-close {
  background: transparent;
  border: 0;
  color: rgba(255, 255, 255, .8);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  padding: 4px 6px;
}

.svc-bot-close:hover { color: #fff; }

.svc-bot-log {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: #f6f8fa;
}

.svc-msg {
  max-width: 84%;
  font-size: 14.5px;
  line-height: 1.58;
  padding: 11px 14px;
  border-radius: 12px;
  white-space: pre-wrap;
  word-wrap: break-word;
}

.svc-msg-bot {
  background: #fff;
  border: 1px solid #e2e7ee;
  color: #2c3d52;
  align-self: flex-start;
  border-bottom-left-radius: 3px;
}

.svc-msg-user {
  background: #0060af;
  color: #fff;
  align-self: flex-end;
  border-bottom-right-radius: 3px;
}

.svc-msg-sys {
  align-self: stretch;
  max-width: none;
  background: #fdf1ec;
  border: 1px solid #d9744c;
  color: #8a3517;
  font-size: 14px;
}

.svc-msg-sys strong { display: block; margin-bottom: 4px; }

.svc-bot-typing {
  align-self: flex-start;
  display: flex;
  gap: 4px;
  padding: 12px 14px;
  background: #fff;
  border: 1px solid #e2e7ee;
  border-radius: 12px;
}

.svc-bot-typing span {
  width: 6px;
  height: 6px;
  background: #9aa5b3;
  border-radius: 50%;
  animation: svcblink 1.3s infinite ease-in-out;
}

.svc-bot-typing span:nth-child(2) { animation-delay: .18s; }
.svc-bot-typing span:nth-child(3) { animation-delay: .36s; }

@keyframes svcblink {
  0%, 60%, 100% { opacity: .28; }
  30% { opacity: 1; }
}

.svc-bot-foot {
  flex: 0 0 auto;
  border-top: 1px solid #e2e7ee;
  padding: 12px;
  background: #fff;
  display: flex;
  gap: 8px;
  align-items: flex-end;
}

.svc-bot-foot textarea {
  flex: 1 1 auto;
  font-family: inherit;
  font-size: 14.5px;
  line-height: 1.45;
  border: 1px solid #ccd4de;
  border-radius: 4px;
  padding: 10px 12px;
  resize: none;
  max-height: 110px;
  min-height: 42px;
}

.svc-bot-foot textarea:focus {
  outline: none;
  border-color: #0060af;
  box-shadow: 0 0 0 3px rgba(0, 96, 175, .16);
}

.svc-bot-send {
  flex: 0 0 auto;
  background: #0060af;
  color: #fff;
  border: 0;
  border-radius: 4px;
  padding: 0 16px;
  height: 42px;
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
}

.svc-bot-send:hover { background: #004b88; }
.svc-bot-send:disabled { background: #a9bccd; cursor: not-allowed; }

.svc-bot-quick {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  padding: 0 18px 14px;
  background: #f6f8fa;
}

.svc-bot-quick button {
  background: #fff;
  border: 1px solid #b7d3ea;
  color: #0060af;
  border-radius: 20px;
  padding: 7px 14px;
  font-size: 13.5px;
  font-weight: 500;
  cursor: pointer;
}

.svc-bot-quick button:hover { background: #eaf2fa; }

.svc-bot-note {
  font-size: 11.5px;
  color: #8d9297;
  text-align: center;
  padding: 0 18px 10px;
  background: #fff;
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 900px) {
  .svc-hero { padding: 62px 0 56px; }
  .svc-hero h1 { font-size: 34px; }
  .svc-hero .svc-hero-sub { font-size: 16.5px; }
  .svc-section { padding: 52px 0; }
  .svc-section h2.svc-h2 { font-size: 25px; }
}

@media (max-width: 620px) {
  .svc-hero h1 { font-size: 29px; }
  .svc-bot-cta { padding: 24px 22px; }
  .svc-bot-panel {
    right: 0;
    bottom: 0;
    width: 100vw;
    max-width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
  }
  .svc-bot-launcher { right: 14px; bottom: 14px; }
  .svc-ref-num { font-size: 26px; }
}

@media (prefers-reduced-motion: reduce) {
  a.svc-area, a.svc-btn, button.svc-btn { transition: none; }
  a.svc-area:hover { transform: none; }
  .svc-bot-typing span { animation: none; opacity: .6; }
}

/* ---------- accreditation strip ----------
   Both marks are the full-colour versions from promec.ie's own media library. */

.svc-accred {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  text-align: center;
}

.svc-accred-label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #0060af;
}

.svc-accred-marks {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 34px;
}

.svc-accred-marks img {
  height: 74px;
  width: auto;
}

.svc-accred-note {
  font-size: 14.5px !important;
  color: #6c7787 !important;
  max-width: 64ch;
  margin: 0 !important;
}

/* ---------- hero with an image ---------- */

.svc-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: 44px;
  align-items: center;
}

.svc-hero-media img {
  width: 100%;
  height: auto;
  max-height: 340px;
  object-fit: cover;
  border-radius: 4px;
  display: block;
  box-shadow: 0 18px 44px -22px rgba(0, 0, 0, .75);
}

.svc-hero-split h1 { max-width: none; }

@media (max-width: 860px) {
  .svc-hero-grid { grid-template-columns: 1fr; gap: 28px; }
  .svc-hero-media { order: -1; }
  .svc-hero-media img { max-height: 220px; }
}

/* ---------- wizard progress ---------- */

.svc-progress {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 26px;
  list-style: none;
  margin: 0 0 34px;
  padding: 0 0 20px;
  border-bottom: 1px solid #e2e7ee;
  counter-reset: none;
}

.svc-progress li {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 14px;
  color: #8d9297;
}

.svc-progress .svc-progress-num {
  width: 25px;
  height: 25px;
  border-radius: 50%;
  border: 1px solid #ccd4de;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12.5px;
  font-weight: 600;
  flex: 0 0 auto;
}

.svc-progress li.is-current { color: #182333; font-weight: 600; }
.svc-progress li.is-current .svc-progress-num { background: #0060af; border-color: #0060af; color: #fff; }
.svc-progress li.is-done { color: #0060af; }
.svc-progress li.is-done .svc-progress-num { background: #eaf2fa; border-color: #7dabd6; color: #0060af; }

/* ---------- review table + back link ---------- */

table.svc-review { width: 100%; border-collapse: collapse; margin-bottom: 26px; max-width: 640px; }
table.svc-review th,
table.svc-review td { text-align: left; padding: 11px 14px; border-bottom: 1px solid #e7ebf1; font-size: 15px; vertical-align: top; }
table.svc-review th { width: 32%; color: #6c7787; font-weight: 600; background: #f7f9fb; }
table.svc-review td { color: #182333; }

a.svc-back {
  display: inline-block;
  margin-left: 18px;
  font-size: 14.5px;
  color: #6c7787;
  text-decoration: underline;
}

a.svc-back:hover { color: #0060af; }

.svc-hero-slim { padding: 60px 0 52px; }

/* ---------- hero price pills + group-booking flag ---------- */

.svc-hero-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 26px;
}

a.svc-pill {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  background: rgba(255, 255, 255, .12);
  border: 1px solid rgba(255, 255, 255, .3);
  color: #fff;
  border-radius: 40px;
  padding: 8px 16px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: background .16s ease, border-color .16s ease;
}

a.svc-pill span { font-weight: 400; font-size: 12px; color: rgba(255, 255, 255, .68); }
a.svc-pill:hover { background: rgba(255, 255, 255, .22); border-color: rgba(255, 255, 255, .55); color: #fff; }

.svc-hero-flag {
  margin-top: 18px;
  background: rgba(255, 255, 255, .1);
  border-left: 3px solid #fff;
  border-radius: 0 4px 4px 0;
  padding: 13px 17px;
  max-width: 58ch;
}

.svc-hero-flag strong {
  display: block;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #fff;
  margin-bottom: 4px;
}

.svc-hero-flag span { display: block; font-size: 14.5px; line-height: 1.55; color: rgba(255, 255, 255, .88); }
.svc-hero-flag a { color: #fff; text-decoration: underline; }

/* ---------- price block + strong notices ---------- */

.svc-price-block {
  background: #eaf2fa;
  border: 1px solid #b7d3ea;
  border-radius: 4px;
  padding: 20px 22px;
  margin-bottom: 26px;
  max-width: 64ch;
}

.svc-price-main {
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 34px;
  font-weight: 600;
  color: #0060af;
  line-height: 1.1;
  margin-bottom: 8px;
  font-variant-numeric: tabular-nums;
}

.svc-price-main span { font-size: 15px; font-weight: 400; color: #5c6470; }
.svc-price-block p { margin: 0 !important; font-size: 15px !important; }

.svc-notice-strong {
  background: #182333;
  border-radius: 4px;
  padding: 18px 20px;
  margin-bottom: 22px;
  max-width: 68ch;
}

.svc-notice-strong strong { display: block; color: #fff; font-size: 16.5px; font-weight: 600; margin-bottom: 6px; }
.svc-notice-strong span { display: block; color: rgba(255, 255, 255, .8); font-size: 15px; line-height: 1.62; }
.svc-notice-strong span strong { display: inline; color: #fff; }

.svc-terms {
  background: #f5f7fa;
  border: 1px solid #dde3ea;
  border-radius: 4px;
  padding: 15px 18px;
  margin: 20px 0 26px;
  max-width: 68ch;
}

.svc-terms strong {
  display: block;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: #6c7787;
  margin-bottom: 6px;
}

.svc-terms span { display: block; font-size: 14.5px; line-height: 1.6; color: #5c6470; }

/* ---------- manufacturer wall ---------- */

.svc-brand-wall {
  margin-top: 40px;
  padding-top: 30px;
  border-top: 1px solid #dfe4ec;
}

.svc-brand-label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #0060af;
  text-align: center;
  margin-bottom: 18px;
}

.svc-brand-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px 12px;
}

.svc-brand {
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14.5px;
  font-weight: 600;
  letter-spacing: .01em;
  color: #45505f;
  background: #fff;
  border: 1px solid #dde3ea;
  border-radius: 3px;
  padding: 9px 16px;
  white-space: nowrap;
}

.svc-section-alt .svc-brand { background: #fff; }

/* ---------- group booking: the deal ---------- */

.svc-deal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px;
  margin-top: 26px;
  background: rgba(255, 255, 255, .1);
  border-radius: 6px;
  padding: 18px 22px;
}

.svc-deal-was, .svc-deal-now { display: flex; flex-direction: column; gap: 2px; }

.svc-deal-was span, .svc-deal-now span {
  font-size: 11.5px;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: rgba(255, 255, 255, .62);
  font-weight: 600;
}

.svc-deal-was s {
  font-family: Poppins, sans-serif;
  font-size: 27px;
  font-weight: 500;
  color: rgba(255, 255, 255, .55);
  text-decoration-thickness: 2px;
}

.svc-deal-now strong {
  font-family: Poppins, sans-serif;
  font-size: 38px;
  font-weight: 700;
  color: #fff;
  line-height: 1;
}

.svc-deal-arrow { font-size: 24px; color: rgba(255, 255, 255, .5); }

.svc-deal-save {
  margin-left: auto;
  background: #fff;
  color: #0060af;
  border-radius: 4px;
  padding: 11px 18px;
  font-family: Poppins, sans-serif;
  font-size: 21px;
  font-weight: 700;
  line-height: 1.1;
  text-align: center;
}

.svc-deal-save span {
  display: block;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #5c6470;
  margin-top: 2px;
}

/* ---------- savings table ---------- */

.tbl-scroll { overflow-x: auto; }

table.svc-savings {
  width: 100%;
  max-width: 620px;
  border-collapse: collapse;
  font-size: 15.5px;
  min-width: 420px;
}

table.svc-savings th {
  text-align: left;
  font-size: 11.5px;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #6c7787;
  font-weight: 700;
  padding: 11px 14px;
  border-bottom: 2px solid #dfe4ec;
}

table.svc-savings td {
  padding: 13px 14px;
  border-bottom: 1px solid #e7ebf1;
  font-variant-numeric: tabular-nums;
  color: #182333;
}

table.svc-savings td.svc-save { color: #1c6b4f; font-weight: 700; }
table.svc-savings tbody tr:last-child td { border-bottom: 0; }

@media (max-width: 620px) {
  .svc-deal { gap: 12px; padding: 15px 16px; }
  .svc-deal-save { margin-left: 0; width: 100%; }
  .svc-deal-now strong { font-size: 31px; }
}

.svc-price span { font-size: 14px; font-weight: 500; color: #5c6470; }

/* ---------- call-out prices ---------- */

.svc-callout-prices {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 14px;
  margin-bottom: 22px;
  max-width: 640px;
}

.svc-callout-card {
  background: #eaf2fa;
  border: 1px solid #b7d3ea;
  border-radius: 4px;
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.svc-callout-kind {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: #0060af;
}

.svc-callout-price {
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 33px;
  font-weight: 700;
  color: #182333;
  line-height: 1.05;
  font-variant-numeric: tabular-nums;
}

.svc-callout-meta { font-size: 13px; color: #5c6470; }

/* ---------- provisional appointment picker ---------- */

.svc-step-intro { font-size: 15.5px !important; color: #45505f !important; margin-bottom: 20px !important; }

.svc-provisional {
  background: #fdf7e8;
  border: 1px solid #e0c47f;
  border-left-width: 4px;
  border-radius: 3px;
  padding: 15px 18px;
  margin-bottom: 24px;
  max-width: 68ch;
}

.svc-provisional strong { display: block; font-size: 15.5px; font-weight: 600; color: #7a5a12; margin-bottom: 4px; }
.svc-provisional span { display: block; font-size: 14.5px; line-height: 1.6; color: #6b5a38; }

.svc-provisional-big { background: #eaf2fa; border-color: #b7d3ea; }
.svc-provisional-big strong { color: #0d3d69; font-size: 18px; }
.svc-provisional-big span { color: #3c5674; }

.svc-slots { display: flex; flex-direction: column; gap: 10px; margin-bottom: 26px; }

.svc-slot-day {
  display: grid;
  grid-template-columns: 62px 1fr;
  gap: 16px;
  align-items: center;
  background: #fff;
  border: 1px solid #dde3ea;
  border-radius: 4px;
  padding: 12px 16px;
}

.svc-slot-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.1;
  padding: 6px 0;
  border-right: 1px solid #eaeef3;
}

.svc-slot-dow { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #0060af; }
.svc-slot-dom { font-family: Poppins, sans-serif; font-size: 23px; font-weight: 700; color: #182333; }
.svc-slot-mon { font-size: 11.5px; color: #6c7787; text-transform: uppercase; letter-spacing: .05em; }

.svc-slot-times { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }

.svc-slot-times label {
  position: relative;
  display: inline-block;
  border: 1px solid #ccd4de;
  border-radius: 20px;
  padding: 8px 15px;
  cursor: pointer;
  font-size: 13.5px;
  background: #fff;
  transition: border-color .15s ease, background .15s ease;
}

.svc-slot-times label:hover { border-color: #7dabd6; background: #f6fafd; }
.svc-slot-times input[type="radio"] { position: absolute; opacity: 0; width: 0; height: 0; }
.svc-slot-times label:has(input:checked) { background: #0060af; border-color: #0060af; color: #fff; font-weight: 600; }
.svc-slot-times label:has(input:focus-visible) { outline: 3px solid #7dbcec; outline-offset: 2px; }

.svc-slot-left { font-size: 12px; color: #a8601c; font-weight: 600; margin-left: 4px; }

@media (max-width: 620px) {
  .svc-slot-day { grid-template-columns: 52px 1fr; gap: 11px; padding: 10px 12px; }
  .svc-slot-times label { padding: 7px 12px; font-size: 13px; }
}

/* ---------- breakdown vs service ---------- */

.svc-distinction {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
  gap: 16px;
  margin-bottom: 20px;
}

.svc-distinction-col {
  background: #fff;
  border: 1px solid #dde3ea;
  border-top: 3px solid #0060af;
  border-radius: 4px;
  padding: 18px 20px 14px;
}

.svc-distinction-tag {
  display: block;
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: #182333;
  margin-bottom: 8px;
}

.svc-distinction-col p { font-size: 14.5px !important; line-height: 1.62; margin: 0 !important; }

/* ---------- day picker ---------- */

.svc-days { display: flex; flex-wrap: wrap; gap: 9px; }

label.svc-day {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
  min-width: 76px;
  border: 1px solid #ccd4de;
  border-radius: 5px;
  padding: 10px 8px 8px;
  cursor: pointer;
  background: #fff;
  line-height: 1.15;
  transition: border-color .15s ease, background .15s ease;
}

label.svc-day:hover { border-color: #7dabd6; background: #f6fafd; }
label.svc-day input { position: absolute; opacity: 0; width: 0; height: 0; }

.svc-day-dow { font-size: 11px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: #0060af; }
.svc-day-dom { font-family: Poppins, sans-serif; font-size: 22px; font-weight: 700; color: #182333; }
.svc-day-mon { font-size: 11px; color: #6c7787; text-transform: uppercase; letter-spacing: .05em; }
.svc-day-left { font-size: 10.5px; color: #8d9297; margin-top: 3px; }

label.svc-day.is-scarce .svc-day-left { color: #a8601c; font-weight: 700; }

label.svc-day:has(input:checked) {
  background: #0060af;
  border-color: #0060af;
  box-shadow: inset 0 0 0 1px #0060af;
}
label.svc-day:has(input:checked) .svc-day-dow,
label.svc-day:has(input:checked) .svc-day-dom,
label.svc-day:has(input:checked) .svc-day-mon,
label.svc-day:has(input:checked) .svc-day-left { color: #fff; }
label.svc-day:has(input:focus-visible) { outline: 3px solid #7dbcec; outline-offset: 2px; }


/* ---------- manufacturer logo wall ---------- */

.svc-brand-logos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 14px 20px;
  align-items: center;
  max-width: 900px;
  margin: 0 auto 18px;
}

.svc-brand-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 1px solid #e6eaf0;
  border-radius: 4px;
  padding: 16px 14px;
  min-height: 84px;
}

.svc-brand-logo img {
  max-width: 100%;
  max-height: 46px;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}

.svc-brand-rest {
  font-size: 14px !important;
  color: #6c7787 !important;
  text-align: center;
  max-width: 62ch;
  margin: 0 auto !important;
}

/* ==========================================================================
   Header below the theme's 1200px breakpoint

   The inherited theme stacks the logo centred with the call-to-action orphaned
   on its own row, and the hamburger is an icon-font glyph inside the nav that
   renders as an empty box if the font does not load. Lay the header out as one
   row and draw the bars ourselves so the control never depends on a webfont.
   ========================================================================== */

@media (max-width: 1200px) {
  #site-header .site-header-main {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: nowrap;
    padding-top: 10px;
    padding-bottom: 10px;
  }

  #site-header .site-branding {
    display: flex !important;
    align-items: center;
    flex: 0 1 auto;
    width: auto !important;
    text-align: left !important;
    padding: 0 !important;
  }

  #site-header .site-branding .headerlogo { margin: 0 !important; }
  #site-header .site-branding img { max-height: 54px; width: auto; }

  #site-header #site-header-menu {
    display: flex !important;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex: 1 1 auto;
    width: auto !important;
    padding: 0 !important;
  }

  #site-header .tm-header-text-area { margin: 0 !important; display: block !important; }
  #site-header .header-info-widget { margin: 0 !important; }

  #site-header .header-info-widget a {
    white-space: nowrap;
    font-size: 12.5px !important;
    padding: 11px 16px !important;
  }

  /* The nav holds the toggle and the dropdown panel. */
  #site-header #site-navigation.main-navigation {
    clear: none !important;
    position: relative;
    display: flex !important;
    align-items: center;
    flex: 0 0 auto;
  }

  #site-header button#menu-toggle {
    position: static !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: 0 0 auto;
    background: #fff;
    border: 1px solid #ccd4de;
    border-radius: 4px;
    width: 46px;
    height: 44px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    cursor: pointer;
  }

  #site-header button#menu-toggle:hover { border-color: #0060af; }
  #site-header button#menu-toggle:focus-visible { outline: 3px solid #7dbcec; outline-offset: 2px; }

  /* Draw the bars rather than trust the icon font, which renders as an empty
     box when it fails to load. */
  #site-header button#menu-toggle i { display: none !important; }

  #site-header button#menu-toggle::before {
    content: "";
    width: 20px;
    height: 2px;
    background: #182333;
    box-shadow: 0 -6px 0 #182333, 0 6px 0 #182333;
    border-radius: 2px;
  }

  #site-header #site-navigation.toggled-on button#menu-toggle {
    background: #0060af;
    border-color: #0060af;
  }

  #site-header #site-navigation.toggled-on button#menu-toggle::before {
    background: #fff;
    box-shadow: 0 -6px 0 #fff, 0 6px 0 #fff;
  }

  /* The dropdown panel, once open. */
  #site-header #site-navigation div.nav-menu > ul {
    left: auto;
    right: 0;
    min-width: 260px;
    box-shadow: 0 18px 40px -20px rgba(24, 35, 51, .6);
    border: 1px solid #e7ebf1;
    border-radius: 4px;
  }

  #site-header #site-navigation div.nav-menu > ul > li > a {
    padding: 11px 4px !important;
    display: block;
  }
}

@media (max-width: 620px) {
  #site-header .site-branding img { max-height: 42px; }
  #site-header .header-info-widget a {
    font-size: 11px !important;
    padding: 9px 10px !important;
  }
  #site-header #site-navigation div.nav-menu > ul {
    min-width: 0;
    width: calc(100vw - 32px);
  }
}

/* ---------------------------------------------------------------------------
   Service picker cards (step 1)
   ---------------------------------------------------------------------------
   Scoped to .svc-choice--cards so the plain radio pickers elsewhere in the
   wizard (morning/afternoon) keep their compact styling.

   Every card now carries name + price + description. It used to show the
   price OR the blurb and never both, so "Heat pump service / €245" said
   nothing about what you get, and "Retrofit survey" said nothing about cost.

   font-weight is set explicitly on the description because the boldman theme
   bolds bare spans inside .entry-content and was making every blurb heavy.
--------------------------------------------------------------------------- */

.svc-choice--cards {
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 14px;
}

.svc-choice--cards label {
  display: flex;
  flex-direction: column;
  padding: 18px 18px 17px;
  border: 1px solid #dde3ea;
  border-radius: 4px;
  transition: border-color .16s ease, background .16s ease,
              box-shadow .16s ease, transform .16s ease;
}

.svc-choice--cards label:hover {
  border-color: #0060af;
  box-shadow: 0 3px 12px rgba(0, 96, 175, .10);
  transform: translateY(-1px);
}

.svc-choice--cards .svc-choice-name {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.35;
  color: #182333;
  margin: 0 26px 0 0;      /* room for the tick */
}

/* The price reads as a price, not as another line of grey text. */
.svc-choice--cards .svc-choice-price {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-top: 9px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  color: #0060af;
  font-family: Poppins, "Helvetica Neue", Helvetica, Arial, sans-serif;
}

.svc-choice--cards .svc-choice-vat {
  font-size: 12px;
  font-weight: 500;
  color: #7b8596;
  letter-spacing: .01em;
}

.svc-choice--cards .svc-choice-meta {
  margin-top: 9px;
  font-size: 13.5px;
  font-weight: 400;
  line-height: 1.55;
  color: #5c6775;
}

/* Cards with no price reserve the space one would take, so descriptions all
   start at the same height whether or not that card is priced. Without this
   a row of mixed cards has its text at two different heights. */
.svc-choice--cards label:not(:has(.svc-choice-price)) .svc-choice-meta {
  margin-top: 38px;   /* 9px gap + 20px price line + 9px gap */
}

/* Selected state: ring, tint, and a tick so the choice is unmistakable. */
.svc-choice--cards label::after {
  content: "";
  position: absolute;
  top: 16px;
  right: 16px;
  width: 18px;
  height: 18px;
  border: 1px solid #ccd4de;
  border-radius: 50%;
  background: #fff;
  transition: border-color .16s ease, background .16s ease;
}

.svc-choice--cards label:has(input[type="radio"]:checked) {
  border-color: #0060af;
  background: #f4f9fd;
  box-shadow: inset 0 0 0 1px #0060af;
}

.svc-choice--cards label:has(input[type="radio"]:checked)::after {
  border-color: #0060af;
  background: #0060af url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2.5 6.3l2.4 2.4 4.6-5'/%3E%3C/svg%3E") center / 12px 12px no-repeat;
}

/* Phones: two up until it genuinely will not fit, then one. */
@media (max-width: 640px) {
  .svc-choice--cards { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; }
  .svc-choice--cards label { padding: 15px 15px 14px; }
  .svc-choice--cards .svc-choice-name  { font-size: 15px; }
  .svc-choice--cards .svc-choice-price { font-size: 18px; margin-top: 7px; }
  .svc-choice--cards .svc-choice-meta  { font-size: 13px; margin-top: 7px; }
}
