/* Approved local visual polish. Original CSS, content and photographs are retained. */
.site-polish {
  --whl-green: #267044;
  --whl-green-hover: #1b5533;
  --whl-ink: #252e29;
  --whl-muted: #535f57;
  --whl-border: #dbe2dc;
  --whl-surface: #f2f6f2;
  --whl-light-accent: #a6d8b3;
  --bs-primary-rgb: 38, 112, 68;
  --bs-success-rgb: 38, 112, 68;
  --bs-link-color: var(--whl-green);
  --bs-link-hover-color: var(--whl-green-hover);
  --bs-border-radius: 4px;
  --bs-border-radius-lg: 4px;
  background-color: #fff;
  color: var(--whl-ink);
  line-height: 1.65;
}

.site-polish :is(h1, h2, h3, h4, h5, h6),
.site-polish .feature-title {
  color: var(--whl-ink);
  font-weight: 600;
  line-height: 1.3;
}

.site-polish h2 {
  font-size: clamp(1.6rem, 2.2vw, 2rem);
  letter-spacing: -0.015em;
}

.site-polish .bg-dark :is(h2, h3),
.site-polish #form-section h2.form-title {
  color: #fff !important;
}

.site-polish .navbar {
  --bs-navbar-color: #c7cfca;
  --bs-navbar-hover-color: #fff;
}

.site-polish .navbar .dropdown-menu {
  border: 1px solid var(--whl-border);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgb(25 42 31 / 8%);
}

.site-polish .navbar .dropdown-item {
  color: var(--whl-ink);
  white-space: normal;
}

.site-polish .navbar .dropdown-item:is(:hover, :focus, :active) {
  color: var(--whl-green-hover);
  background: var(--whl-surface);
}

.site-polish :is(.btn-primary, .btn-cta, .btn-cta-2),
.site-polish #form-section .btn-cta {
  --bs-btn-focus-shadow-rgb: 38, 112, 68;
  color: #fff;
  background: var(--whl-green);
  border: 1px solid var(--whl-green);
  border-radius: 4px;
  font-weight: 600;
  line-height: 1.5;
}

.site-polish :is(.btn-primary, .btn-cta, .btn-cta-2):is(:hover, :active),
.site-polish #form-section .btn-cta:is(:hover, :active) {
  color: #fff;
  background: var(--whl-green-hover);
  border-color: var(--whl-green-hover);
}

.site-polish:not(.article-hub) .btn-outline-primary {
  color: var(--whl-green);
  background: #fff;
  border-color: var(--whl-green);
}

.site-polish:not(.article-hub) .btn-outline-primary:is(:hover, :active) {
  color: #fff;
  background: var(--whl-green);
}

.site-polish .btn-outline-light:is(:hover, :active) {
  color: #fff;
  background: var(--whl-green);
  border-color: var(--whl-green);
}

.site-polish :is(a, button, input, select):focus-visible {
  outline: 3px solid var(--whl-green);
  outline-offset: 4px;
}

.site-polish :is(.navbar, .product-nav, .bg-dark, #hero-index, footer) :is(a, button):focus-visible {
  outline-color: var(--whl-light-accent);
}

.site-polish #hero-index .hero-text-background-color {
  background: rgb(21 31 25 / 78%);
  border-left: 3px solid var(--whl-light-accent);
  border-radius: 4px;
  padding: 2rem;
}

.site-polish #hero-index h1 {
  color: #fff;
  font-size: clamp(2rem, 2.8vw, 2.5rem);
  letter-spacing: -0.02em;
}

.site-polish #hero-index h2 {
  color: #f2f5f2;
  font-size: 1.5rem;
  font-weight: 400;
  line-height: 1.45;
}

.site-polish .desktop-form-card {
  border: 1px solid var(--whl-border);
  border-radius: 4px;
  box-shadow: 0 4px 16px rgb(25 42 31 / 8%);
}

.site-polish :is(.form-control, .form-select),
.site-polish #form-section :is(.form-control, .form-select) {
  border-color: #85948a;
  border-radius: 4px;
}

.site-polish :is(.form-control, .form-select):focus,
.site-polish #form-section :is(.form-control, .form-select):focus {
  border-color: var(--whl-green);
  box-shadow: 0 0 0 3px rgb(38 112 68 / 15%);
}

.site-polish .form-check-input {
  border-color: #85948a;
  accent-color: var(--whl-green);
}

.site-polish .form-check-input:checked {
  background-color: var(--whl-green);
  border-color: var(--whl-green);
}

.site-polish .form-check-input:focus {
  border-color: var(--whl-green);
  box-shadow: 0 0 0 3px rgb(38 112 68 / 15%);
}

.site-polish .breadcrumbs,
.site-polish #breadcrumbs {
  background: #f7f9f7;
  border-bottom: 1px solid #e8ede8;
}

.site-polish .breadcrumb a {
  color: var(--whl-green);
}

.site-polish :is(.card, .feature-box, .purchase-step, .spec-table) {
  border: 1px solid var(--whl-border);
  border-radius: 4px;
  box-shadow: none;
}

.site-polish .card.shadow-sm,
.site-polish img.shadow-sm,
.site-polish .feature-img {
  box-shadow: none !important;
}

.site-polish :is(.feature-box, .purchase-step) {
  opacity: 1;
  animation: none;
  transform: none;
  transition: border-color 150ms ease;
}

.site-polish :is(.feature-box, .purchase-step):hover,
.site-polish a:is(:hover, :focus-visible) .card {
  border-color: #8fa594;
  box-shadow: none;
  transform: none;
}

.site-polish .card-body {
  padding: 1.5rem;
}

.site-polish :is(.card-text, .feature-desc, .purchase-step p) {
  color: var(--whl-muted);
}

.site-polish .feature-img {
  max-width: 100%;
  border-color: var(--whl-border);
  border-radius: 4px;
}

.site-polish :is(.icon-luma, .purchase-step .step-icon) {
  color: var(--whl-green);
}

.site-polish .step-number {
  background: var(--whl-green);
}

.site-polish .purchase-step :is(h3, h5) {
  font-size: 1.2rem;
}

.site-polish .accordion-item {
  border-color: var(--whl-border);
  border-radius: 4px;
}

.site-polish .accordion-button {
  color: var(--whl-ink);
  font-size: 1.0625rem;
}

.site-polish .accordion-button:not(.collapsed) {
  color: var(--whl-green-hover);
  background: var(--whl-surface);
  box-shadow: none;
}

.site-polish .accordion-button:focus {
  box-shadow: none;
}

.site-polish .accordion-button::after {
  filter: grayscale(1);
}

.site-polish .spec-table {
  --bs-table-color: var(--whl-ink);
  --bs-table-border-color: var(--whl-border);
}

.site-polish .product-nav .product-nav-title,
.site-polish .product-nav .nav-link:hover,
.site-polish #mobileSubnav .nav-link:hover {
  color: var(--whl-light-accent);
}

.site-polish article {
  color: var(--whl-ink);
}

.site-polish > article.container {
  width: calc(100% - 40px);
  max-width: 840px;
  padding-left: 0;
  padding-right: 0;
}

.site-polish > article.container section {
  padding: 1.5rem 0 !important;
}

.site-polish > article.container section p:not(.lead) {
  font-size: 1.0625rem;
}

/* Existing article/legal hero placeholders contain no visible content. */
.site-polish #hero-thanks {
  padding: 0;
}

.site-polish article header h1 {
  color: var(--whl-ink);
  font-size: clamp(1.9rem, 3.3vw, 2.75rem);
  letter-spacing: -0.025em;
}

.site-polish article section :is(h2, h3) {
  color: var(--whl-ink);
}

.site-polish article section a {
  color: var(--whl-green);
  text-underline-offset: 0.2em;
}

.site-polish article section a:hover {
  color: var(--whl-green-hover);
}

.site-polish article footer {
  color: var(--whl-muted);
  background: #fff;
}

.site-polish article footer a {
  color: var(--whl-green);
}

.site-polish .footer-links a {
  color: #b9c3bb !important;
}

@media (min-width: 992px) {
  .site-polish #hero-index .hero-text-background-color {
    max-width: calc(100% - 390px);
  }
}

@media (max-width: 991.98px) {
  .site-polish.has-enquiry-form {
    padding-bottom: calc(4.5rem + env(safe-area-inset-bottom, 0px));
  }

  .site-polish #hero-index .hero-text-background-color {
    padding: 1.5rem;
  }

  .site-polish #mobile-form-toggle {
    background: var(--whl-green);
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }

  .site-polish #mobile-form-toggle .btn {
    min-height: 56px;
    padding: 0.75rem 1rem;
    white-space: normal;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-polish :is(.feature-box, .purchase-step, .accordion-body) {
    animation: none;
    transition: none;
  }

  .site-polish .product-nav {
    transition: none;
  }
}

@media (max-width: 767.98px) {
  .site-polish table.table-responsive-lg {
    display: block;
    max-width: 100%;
    overflow-x: auto;
  }

  .site-polish table.table-responsive-lg :is(th, td) {
    min-width: 160px;
  }

  .site-polish table.table-responsive-lg:focus-visible {
    outline: 3px solid var(--whl-green);
    outline-offset: 2px;
  }
}
/* Keep enquiry disclosures readable inside white panels over hero images. */
.site-polish #hero-sidebar-form .enquiry-notice,
.site-polish #offcanvasForm .enquiry-notice {
  color: #4e5a52;
  font-size: 0.8125rem;
  line-height: 1.45;
  text-shadow: none;
}

.site-polish .enquiry-notice a {
  color: inherit;
  text-decoration: underline;
}

/* Allow the approved enquiry disclosure to fit on shorter desktop screens. */
@media (min-width: 992px) {
  .site-polish.has-enquiry-form #hero-index {
    min-height: max(800px, 100vh);
  }
}

/* Keep enquiry consent compact and readable in each form layout. */
.site-polish #hero-sidebar-form .form-check-label,
.site-polish #form-section .form-check-label,
.site-polish #offcanvasForm .form-check-label {
  font-size: 0.875rem;
  line-height: 1.5;
}
