/* WTS tidy-up, September 2026. Small, reversible overrides layered on the theme.
   Nothing here restyles the site; it straightens the edges. */

/* 1. Main menu: one line per item, at every width the desktop menu is shown.
      The theme lays the links out as flex items with a 40px gap, so the longer
      labels ("Recent jobs", "Areas We Cover") folded onto two lines. */
.main-menu .main-menu__list > li > a,
.stricky-header .main-menu__list > li > a { white-space: nowrap; }
.main-menu .main-menu__list > li + li,
.stricky-header .main-menu__list > li + li { margin-left: 26px; }
@media (min-width: 1200px) and (max-width: 1399.98px) {
  .main-menu .main-menu__list > li + li,
  .stricky-header .main-menu__list > li + li { margin-left: 18px; }
  .main-menu .main-menu__list > li > a,
  .stricky-header .main-menu__list > li > a { font-size: 15px; }
}
.main-menu__list { flex-wrap: nowrap; }

/* 2. Hero slider arrows: keep them, but stop them sitting on the photo's subject.
      Bottom left (bottom right is where the reviews widget floats), side by side, quieter. */
.main-slider-three__nav {
  top: auto !important; bottom: 40px !important;
  left: 60px !important; right: auto !important;
  transform: none !important;
  flex-direction: row !important; gap: 10px;
}
.main-slider-three__nav .swiper-button-prev,
.main-slider-three__nav .swiper-button-next {
  width: 44px !important; height: 44px !important; margin: 0 !important;
  opacity: .7;
}
.main-slider-three__nav .swiper-button-prev:hover,
.main-slider-three__nav .swiper-button-next:hover { opacity: 1; }

/* 3. Accreditation strip: same visual height for every badge, evenly spaced,
      clean full-width band (the cross-shaped clip-path is removed in the markup). */
.inner-partners .partner-card { align-items: center; min-height: 96px; padding: 0 12px; }
.inner-partners .partner-card img {
  height: 72px !important; width: auto !important; max-width: 150px;
  object-fit: contain; image-rendering: auto;
}
.inner-partners .owl-stage { display: flex; align-items: center; }
.inner-partners { padding-top: 60px; padding-bottom: 60px; }
.inner-partners .section-title__title { margin-bottom: 40px !important; }

/* 4. Social embeds: two boxes that match, with the same frame and height. */
.wts-social .boxshadow-box,
.wts-social .boxshadow-no-box {
  padding: 24px; min-height: 640px; height: 100%;
  background: #fff; border: 1px solid #e3e9e5; border-radius: 10px;
  box-shadow: 0 2px 10px rgba(33, 87, 50, .06); overflow: hidden;
}
.wts-social .fb-page, .wts-social .fb-page span, .wts-social .fb-page iframe { width: 100% !important; }
.wts-social__title { margin-bottom: 36px; }

/* 5. Contact page cards: the heavy grey slab behind each card becomes the site's
      pale green, so it reads as a tint rather than a drop shadow. */
.contact-box::after { background-color: #d8e8df; }

/* 6. Footer contact panel: align its top with the other columns' headings. */
.footer-widget__contact { margin-top: 0; }

/* 7. Footer: a wider, shorter about column; the areas list in two even columns of six;
      the contact panel as a soft translucent card on the green instead of a solid
      black box. Same content, same positions. */
.site-footer__top { padding: 80px 0 44px; }
.footer-widget__title { margin-bottom: 22px; }
.footer-widget__about-text { font-size: 15px; line-height: 27px; max-width: 420px; }
.footer-widget__explore-list li + li { margin-top: 6px; }
.footer-widget__contact {
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 14px; padding: 26px 20px 18px;
}
.footer-widget__contact > p.text-white { font-size: 15px; line-height: 25px; margin-bottom: 18px; }
.footer-widget__contact-list li { border-bottom-color: rgba(255, 255, 255, .16); padding-bottom: 6px; }
.footer-widget__contact-list li.border-bottom { border-bottom: 0 !important; }
.footer-widget__contact-list li .text p { font-size: 14px; line-height: 24px; }
.footer-widget__contact-list li .text p a[href^="mailto:"] { font-size: 13px; letter-spacing: -.01em; white-space: nowrap; }
.footer-widget__contact-list li .text { margin-left: 12px; }
.footer-widget__about .footer-widget__title { margin-top: 5px; }
.footer-widget__contact-list li .icon { border-radius: 10px; }
.site-footer__bottom { padding-top: 22px; }
@media (max-width: 1199.98px) {
  .footer-widget__about-text { max-width: none; }
  .footer-widget__contact { margin-top: 10px; }
}

/* 8. Accessibility and contrast */
.wts-skip { position: absolute; left: -9999px; top: 8px; z-index: 10000; background: #215732; color: #fff;
  padding: 10px 16px; border-radius: 6px; font-weight: 600; }
.wts-skip:focus { left: 12px; outline: 3px solid #b3a369; }
.faq-question:focus-visible, .main-menu__list a:focus-visible, .thm-btn:focus-visible { outline: 3px solid #b3a369; outline-offset: 2px; }
/* the theme's gold (#b3a369) on white is 2.5:1; body-copy links use a deeper gold that
   passes AA, while buttons, nav highlights and footer keep the brand gold */
.page-wrapper section p a:not(.thm-btn), .page-wrapper section .list1 a, .wts-answer a,
.contact-box .text a { color: #8a7a3c; }
.page-wrapper section p.wts-rel a { color: #215732; }
.page-wrapper section p a:not(.thm-btn):hover, .page-wrapper section .list1 a:hover { color: #215732; }
/* keyboard users can open the Services dropdown */
.main-menu__list li.dropdown:focus-within > ul { opacity: 1; visibility: visible; transform: translateY(0); }
/* mobile header: shorter top bar, 44px tap targets */
@media (max-width: 767.98px) {
  .main-header__top { padding-top: 2px !important; padding-bottom: 2px !important; }
  .main-header__top-address-list li { min-height: 44px; display: flex; align-items: center; }
  .main-header__logo img { max-height: 72px; width: auto; }
}
.wts-legal { font-size: 12.5px; opacity: .8; margin-top: 6px; }
/* portrait photos in the 50/50 rows fill the box instead of leaving it half empty */
.job-box .col-lg-6:has(> img) { position: relative; min-height: 320px; }
.job-box .col-lg-6 > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 991.98px) { .job-box .col-lg-6:has(> img) { min-height: 0; } .job-box .col-lg-6 > img { position: static; height: auto; } }

/* 9. Shared components used on rewritten pages: answer box, postcode labels, link pills */
.wts-answer{background:#f4f7f4;border-left:4px solid #215732;padding:22px 26px;margin:0 0 10px}
.wts-answer p{margin:0}
.wts-pc{font-weight:600;color:#215732}
.wts-rel a{display:inline-block;border:1px solid #215732;color:#215732;padding:8px 16px;margin:0 8px 10px 0;text-decoration:none;border-radius:999px;font-size:.95rem}
.wts-rel a:hover{background:#215732;color:#fff}

/* 10. Belt and braces: an image that carries a height attribute but is sized by CSS width
      must keep its proportions */
img[width][height] { height: auto; }
.inner-partners .partner-card img { height: 72px !important; }
