/*
Theme Name:   Radcliffe Handyman
Theme URI:    https://radcliffehandyman.co.uk
Description:  Hello Elementor Child Theme — Radcliffe Handyman brand styles
Author:       Sector 12 Digital
Author URI:   https://sector12.digital
Template:     hello-elementor
Version:      1.0.0
License:      GNU General Public License v2 or later
License URI:  https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  radcliffe-handyman
*/

/* ============================================================
   DESIGN TOKENS
   ============================================================ */
:root {
  /* Brand colours */
  --rh-navy:        #0D2340;
  --rh-navy-mid:    #162f52;
  --rh-navy-light:  #1e3d6a;
  --rh-orange:      #E8612A;
  --rh-orange-dark: #c9511f;
  --rh-orange-light:#f07d50;
  --rh-warm:        #F4F1EC;
  --rh-warm-dark:   #e8e3da;

  /* Neutrals */
  --rh-white:       #ffffff;
  --rh-off-white:   #fafaf9;
  --rh-grey-100:    #f5f5f4;
  --rh-grey-200:    #e7e5e4;
  --rh-grey-300:    #d6d3d1;
  --rh-grey-400:    #a8a29e;
  --rh-grey-500:    #78716c;
  --rh-grey-700:    #44403c;
  --rh-grey-900:    #1c1917;

  /* Typography */
  --rh-font-sans:   'Montserrat', 'Helvetica Neue', Arial, sans-serif;
  --rh-font-body:   'Open Sans', 'Helvetica Neue', Arial, sans-serif;
  --rh-font-mono:   'JetBrains Mono', 'Fira Code', monospace;

  /* Type scale */
  --rh-text-xs:     0.75rem;
  --rh-text-sm:     0.875rem;
  --rh-text-base:   1rem;
  --rh-text-lg:     1.125rem;
  --rh-text-xl:     1.25rem;
  --rh-text-2xl:    1.5rem;
  --rh-text-3xl:    1.875rem;
  --rh-text-4xl:    2.25rem;
  --rh-text-5xl:    3rem;

  /* Spacing */
  --rh-space-1:     0.25rem;
  --rh-space-2:     0.5rem;
  --rh-space-3:     0.75rem;
  --rh-space-4:     1rem;
  --rh-space-6:     1.5rem;
  --rh-space-8:     2rem;
  --rh-space-12:    3rem;
  --rh-space-16:    4rem;
  --rh-space-20:    5rem;
  --rh-space-24:    6rem;

  /* Layout */
  --rh-max-width:   1200px;
  --rh-radius-sm:   4px;
  --rh-radius:      8px;
  --rh-radius-lg:   16px;
  --rh-radius-xl:   24px;
  --rh-radius-full: 9999px;

  /* Shadows */
  --rh-shadow-sm:   0 1px 3px rgba(13,35,64,0.08), 0 1px 2px rgba(13,35,64,0.06);
  --rh-shadow:      0 4px 12px rgba(13,35,64,0.10), 0 2px 6px rgba(13,35,64,0.08);
  --rh-shadow-lg:   0 10px 30px rgba(13,35,64,0.15), 0 4px 12px rgba(13,35,64,0.10);
  --rh-shadow-xl:   0 20px 48px rgba(13,35,64,0.18), 0 8px 20px rgba(13,35,64,0.12);

  /* Transitions */
  --rh-transition:  all 0.2s ease;
  --rh-transition-slow: all 0.35s ease;

  /* Elementor overrides */
  --e-global-color-primary:    #E8612A;
  --e-global-color-secondary:  #0D2340;
  --e-global-color-text:       #1c1917;
  --e-global-color-accent:     #E8612A;
}

/* ============================================================
   GOOGLE FONTS IMPORT
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400&family=Open+Sans:ital,wght@0,400;0,500;0,600;1,400&display=swap');

/* ============================================================
   RESET / BASE
   ============================================================ */
*, *::before, *::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--rh-font-body);
  font-size: var(--rh-text-base);
  line-height: 1.7;
  color: var(--rh-grey-900);
  background-color: var(--rh-white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ============================================================
   TYPOGRAPHY
   ============================================================ */
h1, h2, h3, h4, h5, h6,
.elementor-heading-title {
  font-family: var(--rh-font-sans);
  font-weight: 700;
  line-height: 1.15;
  color: var(--rh-navy);
  margin-top: 0;
  letter-spacing: -0.02em;
}

h1 { font-size: var(--rh-text-4xl); }
h2 { font-size: var(--rh-text-3xl); }
h3 { font-size: var(--rh-text-2xl); }
h4 { font-size: var(--rh-text-xl);  }
h5 { font-size: var(--rh-text-lg);  }
h6 { font-size: var(--rh-text-base);}

@media (min-width: 768px) {
  h1 { font-size: var(--rh-text-5xl); }
  h2 { font-size: var(--rh-text-4xl); }
  h3 { font-size: var(--rh-text-3xl); }
}

p {
  margin-top: 0;
  margin-bottom: var(--rh-space-4);
  color: var(--rh-grey-700);
}

p:last-child { margin-bottom: 0; }

strong, b { font-weight: 600; color: var(--rh-grey-900); }

a {
  color: var(--rh-orange);
  text-decoration: none;
  transition: var(--rh-transition);
}

a:hover {
  color: var(--rh-orange-dark);
  text-decoration: underline;
}

/* Lead / intro text */
.lead,
.elementor-widget-text-editor.is-lead p {
  font-size: var(--rh-text-lg);
  line-height: 1.75;
  color: var(--rh-grey-500);
}

/* Eyebrow / overline */
.eyebrow {
  font-family: var(--rh-font-sans);
  font-size: var(--rh-text-xs);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--rh-orange);
  display: block;
  margin-bottom: var(--rh-space-3);
}

/* Lists */
ul, ol {
  padding-left: var(--rh-space-6);
  margin-bottom: var(--rh-space-4);
}

li { margin-bottom: var(--rh-space-1); }

/* ============================================================
   LAYOUT — Hello Elementor structure
   ============================================================ */
.site {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

.site-content { flex: 1; }

.container,
.elementor-section-boxed > .elementor-container {
  max-width: var(--rh-max-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--rh-space-6);
  padding-right: var(--rh-space-6);
}

/* ============================================================
   HEADER
   ============================================================ */
.site-header,
#site-header,
header.elementor-location-header {
  background-color: var(--rh-navy) !important;
  border-bottom: 3px solid var(--rh-orange);
  position: sticky;
  top: 0;
  z-index: 1000;
  box-shadow: var(--rh-shadow);
}

/* Hello Elementor header inner */
.site-header .header-inner,
.elementor-location-header .elementor-container {
  min-height: 72px;
  display: flex;
  align-items: center;
}

/* Site logo */
.site-logo a,
.custom-logo-link {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

.custom-logo {
  max-height: 48px;
  width: auto;
  transition: var(--rh-transition);
}

.custom-logo:hover { opacity: 0.85; }

/* Site title (text fallback) */
.site-title,
.site-title a {
  font-family: var(--rh-font-sans);
  font-size: var(--rh-text-xl);
  font-weight: 800;
  color: var(--rh-white) !important;
  text-decoration: none;
  letter-spacing: -0.02em;
}

.site-title a:hover { color: var(--rh-orange) !important; }

/* Site description / tagline */
.site-description {
  font-size: var(--rh-text-sm);
  color: var(--rh-grey-400);
}

/* ============================================================
   NAVIGATION
   ============================================================ */

/* Primary nav wrapper */
.main-navigation,
nav.elementor-nav-menu--main {
  display: flex;
  align-items: center;
}

/* Nav links */
.main-navigation a,
.elementor-nav-menu--main .elementor-item {
  font-family: var(--rh-font-sans);
  font-size: var(--rh-text-sm);
  font-weight: 600;
  color: var(--rh-grey-300) !important;
  text-decoration: none;
  padding: var(--rh-space-2) var(--rh-space-4) !important;
  border-radius: var(--rh-radius-sm);
  transition: var(--rh-transition);
  letter-spacing: 0.01em;
  text-transform: uppercase;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
}

.main-navigation a:hover,
.elementor-nav-menu--main .elementor-item:hover,
.elementor-nav-menu--main .elementor-item.elementor-item-active {
  color: var(--rh-white) !important;
  background-color: rgba(232,97,42,0.15) !important;
  text-decoration: none !important;
}

.elementor-nav-menu--main .elementor-item.elementor-item-active {
  color: var(--rh-orange) !important;
}

/* Dropdown menus */
.main-navigation .sub-menu,
.elementor-nav-menu--main .sub-menu {
  background-color: var(--rh-navy-mid) !important;
  border: 1px solid rgba(255,255,255,0.08);
  border-top: 3px solid var(--rh-orange);
  border-radius: 0 0 var(--rh-radius) var(--rh-radius);
  box-shadow: var(--rh-shadow-lg);
  min-width: 200px;
}

.main-navigation .sub-menu a,
.elementor-nav-menu--main .sub-menu .elementor-item {
  color: var(--rh-grey-300) !important;
  padding: var(--rh-space-3) var(--rh-space-4) !important;
  font-size: var(--rh-text-sm) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  border-radius: 0 !important;
}

.main-navigation .sub-menu a:hover,
.elementor-nav-menu--main .sub-menu .elementor-item:hover {
  color: var(--rh-orange) !important;
  background-color: rgba(255,255,255,0.06) !important;
}

/* Mobile hamburger */
.elementor-nav-menu--toggle .elementor-menu-toggle,  {
	color: var(--rh-white) !important;
}

.elementor-nav-menu--toggle .elementor-menu-toggle:hover {
  color: var(--rh-orange) !important;
}

/* Mobile menu */
@media (max-width: 767px) {
  .elementor-nav-menu--dropdown .elementor-nav-menu {
    background-color: var(--rh-orange) !important;
    border-top: 2px solid var(--rh-orange);
  }

  .elementor-nav-menu--dropdown .elementor-item {
    border-bottom: 1px solid rgba(255,255,255,0.06) !important;
    padding: var(--rh-space-4) var(--rh-space-6) !important;
  }
}
.site-navigation-header .site-navigation-toggle,.site-navigation-header .site-navigation-toggle a {background-color:var(--rh-orange) !important;}
.site-navigation-header .site-navigation-toggle a:hover{background-color:var(--rh-grey-300) !important;}
/* ============================================================
   BUTTONS
   ============================================================ */

/* Primary */
.elementor-button,
.wp-block-button__link,
button,
input[type="submit"],
input[type="button"],
a.button,
.wpcf7-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--rh-space-2);
  font-family: var(--rh-font-sans);
  font-size: var(--rh-text-sm);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.75rem 1.75rem;
  border-radius: var(--rh-radius);
  border: 2px solid transparent;
  cursor: pointer;
  transition: var(--rh-transition);
  text-decoration: none;
  line-height: 1;
  white-space: nowrap;

  /* Default = primary orange */
  background-color: var(--rh-orange);
  color: var(--rh-white) !important;
}

.elementor-button:hover,
.wp-block-button__link:hover,
button:hover,
input[type="submit"]:hover,
a.button:hover,
.wpcf7-submit:hover {
  background-color: var(--rh-orange-dark);
  color: var(--rh-white) !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(232,97,42,0.35);
  text-decoration: none;
}

/* Secondary button */
.elementor-button.is-secondary,
a.button.is-secondary,
.btn-secondary {
  background-color: transparent;
  color: var(--rh-navy) !important;
  border-color: var(--rh-navy);
}

.elementor-button.is-secondary:hover,
.btn-secondary:hover {
  background-color: var(--rh-navy);
  color: var(--rh-white) !important;
  transform: translateY(-1px);
  box-shadow: var(--rh-shadow);
}

/* Ghost / outline on dark */
.elementor-button.is-ghost,
.btn-ghost {
  background-color: transparent;
  color: var(--rh-white) !important;
  border-color: rgba(255,255,255,0.5);
}

.elementor-button.is-ghost:hover,
.btn-ghost:hover {
  background-color: var(--rh-white);
  color: var(--rh-navy) !important;
  border-color: var(--rh-white);
}

/* Elementor widget button specifics */
.elementor-widget-button .elementor-button-wrapper {
  text-align: inherit;
}

.elementor-widget-button .elementor-button {
  font-family: var(--rh-font-sans) !important;
}

/* ============================================================
   FORMS (CF7 + WP default)
   ============================================================ */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="number"],
input[type="search"],
input[type="password"],
textarea,
select,
.wpcf7-form-control:not(.wpcf7-submit) {
  font-family: var(--rh-font-body);
  font-size: var(--rh-text-base);
  color: var(--rh-grey-900);
  background-color: var(--rh-white);
  border: 1.5px solid var(--rh-grey-300);
  border-radius: var(--rh-radius);
  padding: 0.7rem 1rem;
  width: 100%;
  transition: var(--rh-transition);
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
textarea:focus,
select:focus,
.wpcf7-form-control:not(.wpcf7-submit):focus {
  border-color: var(--rh-orange);
  box-shadow: 0 0 0 3px rgba(232,97,42,0.15);
}

input::placeholder,
textarea::placeholder {
  color: var(--rh-grey-400);
}

textarea { min-height: 140px; resize: vertical; }

label {
  font-family: var(--rh-font-sans);
  font-size: var(--rh-text-sm);
  font-weight: 600;
  color: var(--rh-navy);
  display: block;
  margin-bottom: var(--rh-space-2);
}

/* CF7 form layout */
.wpcf7-form p { margin-bottom: var(--rh-space-4); }

.wpcf7-not-valid-tip {
  font-size: var(--rh-text-sm);
  color: #dc2626;
  margin-top: var(--rh-space-1);
}

.wpcf7-response-output {
  border-radius: var(--rh-radius);
  padding: var(--rh-space-4);
  margin-top: var(--rh-space-4);
  font-size: var(--rh-text-sm);
  border: none !important;
}

.wpcf7-mail-sent-ok { background: #dcfce7; color: #166534; }
.wpcf7-validation-errors { background: #fef3c7; color: #92400e; }
.wpcf7-mail-sent-ng { background: #fee2e2; color: #991b1b; }

/* ============================================================
   SECTIONS — Elementor section backgrounds
   ============================================================ */

/* Default section spacing */
.elementor-section {
  padding-top: var(--rh-space-16);
  padding-bottom: var(--rh-space-16);
}

@media (max-width: 767px) {
  .elementor-section {
    padding-top: var(--rh-space-12);
    padding-bottom: var(--rh-space-12);
  }
}

/* Navy section utility */
.elementor-section.is-bg-navy,
.section-navy {
  background-color: var(--rh-navy) !important;
}

.is-bg-navy h1, .is-bg-navy h2, .is-bg-navy h3,
.is-bg-navy h4, .is-bg-navy h5, .is-bg-navy h6,
.section-navy h1, .section-navy h2, .section-navy h3 {
  color: var(--rh-white);
}

.is-bg-navy p, .section-navy p { color: rgba(255,255,255,0.8); }

/* Warm section utility */
.elementor-section.is-bg-warm,
.section-warm {
  background-color: var(--rh-warm) !important;
}

/* Orange accent band */
.elementor-section.is-bg-orange,
.section-orange {
  background-color: var(--rh-orange) !important;
}

.is-bg-orange h1, .is-bg-orange h2, .is-bg-orange h3,
.is-bg-orange p {
  color: var(--rh-white);
}

/* ============================================================
   CARDS
   ============================================================ */
.rh-card,
.elementor-widget-wrap.is-card {
  background: var(--rh-white);
  border-radius: var(--rh-radius-lg);
  box-shadow: var(--rh-shadow);
  overflow: hidden;
  transition: var(--rh-transition-slow);
}

.rh-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--rh-shadow-xl);
}

.rh-card__image img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
}

.rh-card__body {
  padding: var(--rh-space-6);
}

.rh-card__title {
  font-family: var(--rh-font-sans);
  font-size: var(--rh-text-xl);
  font-weight: 700;
  color: var(--rh-navy);
  margin-bottom: var(--rh-space-3);
}

/* Icon cards */
.rh-icon-card {
  text-align: center;
  padding: var(--rh-space-8) var(--rh-space-6);
}

.rh-icon-card__icon {
  width: 64px;
  height: 64px;
  background: linear-gradient(135deg, var(--rh-orange), var(--rh-orange-dark));
  border-radius: var(--rh-radius-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto var(--rh-space-4);
  box-shadow: 0 8px 20px rgba(232,97,42,0.3);
}

/* ============================================================
   ELEMENTOR WIDGETS — overrides
   ============================================================ */

/* Heading widget */
.elementor-widget-heading .elementor-heading-title {
  font-family: var(--rh-font-sans) !important;
  letter-spacing: -0.02em;
}

/* Icon widget */
.elementor-widget-icon .elementor-icon {
  color: var(--rh-orange);
}

/* Icon box */
.elementor-widget-icon-box .elementor-icon {
  color: var(--rh-orange) !important;
}

.elementor-widget-icon-box .elementor-icon-box-title {
  font-family: var(--rh-font-sans) !important;
  color: var(--rh-navy) !important;
}

/* Image widget */
.elementor-widget-image img {
  border-radius: var(--rh-radius);
}

/* Divider */
.elementor-widget-divider .elementor-divider-separator {
  border-color: var(--rh-grey-200);
}

/* Text editor */
.elementor-widget-text-editor {
  font-family: var(--rh-font-body);
  color: var(--rh-grey-700);
}

/* Testimonials */
.elementor-widget-testimonial .elementor-testimonial-content {
  font-style: italic;
  color: var(--rh-grey-700);
}

.elementor-widget-testimonial .elementor-testimonial-name {
  font-family: var(--rh-font-sans);
  font-weight: 700;
  color: var(--rh-navy);
}

/* Star rating */
.elementor-star-rating i { color: var(--rh-orange); }

/* Accordion / Toggle */
.elementor-accordion .elementor-tab-title,
.elementor-toggle .elementor-tab-title {
  font-family: var(--rh-font-sans) !important;
  font-weight: 600 !important;
  color: var(--rh-navy) !important;
  border-color: var(--rh-grey-200) !important;
}

.elementor-accordion .elementor-tab-title.elementor-active,
.elementor-toggle .elementor-tab-title.elementor-active {
  color: var(--rh-orange) !important;
  background-color: var(--rh-warm) !important;
}

.elementor-accordion .elementor-tab-icon,
.elementor-toggle .elementor-tab-icon {
  color: var(--rh-orange) !important;
}

/* Progress bars */
.elementor-progress-bar {
  background-color: var(--rh-orange) !important;
  border-radius: var(--rh-radius-full) !important;
}

/* ============================================================
   POSTS / BLOG
   ============================================================ */
.post,
article.hentry {
  margin-bottom: var(--rh-space-12);
}

.entry-title,
.elementor-post__title {
  font-family: var(--rh-font-sans) !important;
  font-weight: 700;
  color: var(--rh-navy);
}

.entry-title a,
.elementor-post__title a {
  color: var(--rh-navy);
  text-decoration: none;
}

.entry-title a:hover,
.elementor-post__title a:hover {
  color: var(--rh-orange);
  text-decoration: none;
}

.entry-meta,
.elementor-post__meta-data {
  font-size: var(--rh-text-sm);
  color: var(--rh-grey-400);
  font-family: var(--rh-font-sans);
}

/* Post cards (Posts widget) */
.elementor-post__card {
  border-radius: var(--rh-radius-lg) !important;
  box-shadow: var(--rh-shadow) !important;
  overflow: hidden;
  transition: var(--rh-transition-slow) !important;
}

.elementor-post__card:hover {
  transform: translateY(-4px);
  box-shadow: var(--rh-shadow-xl) !important;
}

.elementor-post__thumbnail__link img {
  transition: var(--rh-transition-slow) !important;
}

.elementor-post__card:hover .elementor-post__thumbnail__link img {
  transform: scale(1.04);
}

.elementor-post__text {
  padding: var(--rh-space-6) !important;
}

/* Category badges */
.elementor-post__badge {
  background-color: var(--rh-orange) !important;
  color: var(--rh-white) !important;
  border-radius: var(--rh-radius-full) !important;
  font-family: var(--rh-font-sans) !important;
  font-weight: 700 !important;
  font-size: var(--rh-text-xs) !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
}

/* Read more */
.elementor-post__read-more {
  color: var(--rh-orange) !important;
  font-family: var(--rh-font-sans) !important;
  font-weight: 700 !important;
  font-size: var(--rh-text-sm) !important;
}

/* ============================================================
   SINGLE POST
   ============================================================ */
.single .entry-header {
  margin-bottom: var(--rh-space-8);
  padding-bottom: var(--rh-space-8);
  border-bottom: 1px solid var(--rh-grey-200);
}

.single .entry-content h2,
.single .entry-content h3,
.single .entry-content h4 {
  margin-top: var(--rh-space-8);
  margin-bottom: var(--rh-space-4);
}

.single .entry-content img {
  border-radius: var(--rh-radius);
  max-width: 100%;
  height: auto;
}

.single .entry-content blockquote {
  border-left: 4px solid var(--rh-orange);
  padding: var(--rh-space-4) var(--rh-space-6);
  margin: var(--rh-space-8) 0;
  background: var(--rh-warm);
  border-radius: 0 var(--rh-radius) var(--rh-radius) 0;
  font-style: italic;
  color: var(--rh-grey-700);
}

/* ============================================================
   HERO / BANNER patterns
   ============================================================ */

/* Full-height hero with overlay */
.rh-hero {
  position: relative;
  min-height: 80vh;
  display: flex;
  align-items: center;
}

.rh-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg,
    rgba(13,35,64,0.9) 0%,
    rgba(13,35,64,0.5) 60%,
    transparent 100%);
  z-index: 1;
}

.rh-hero .elementor-container {
  position: relative;
  z-index: 2;
}

/* Orange accent line above headings */
.elementor-widget-heading.has-accent-line .elementor-heading-title::before {
  content: '';
  display: block;
  width: 48px;
  height: 4px;
  background-color: var(--rh-orange);
  border-radius: var(--rh-radius-full);
  margin-bottom: var(--rh-space-4);
}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer,
footer.elementor-location-footer {
  background-color: var(--rh-navy) !important;
  color: rgba(255,255,255,0.75);
}

.site-footer h3, .site-footer h4,
.elementor-location-footer h3,
.elementor-location-footer h4 {
  color: var(--rh-white);
  font-size: var(--rh-text-base);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: var(--rh-space-4);
}

.site-footer a,
.elementor-location-footer a {
  color: rgba(255,255,255,0.7);
  text-decoration: none;
  transition: var(--rh-transition);
}

.site-footer a:hover,
.elementor-location-footer a:hover {
  color: var(--rh-orange);
  text-decoration: none;
}

.site-footer p,
.elementor-location-footer p {
  color: rgba(255,255,255,0.65);
  font-size: var(--rh-text-sm);
}

/* Footer bottom bar */
.footer-bottom,
.rh-footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.1);
  padding-top: var(--rh-space-6);
  margin-top: var(--rh-space-8);
  font-size: var(--rh-text-sm);
  color: rgba(255,255,255,0.45);
}

/* ============================================================
   UTILITY CLASSES
   ============================================================ */

/* Text colours */
.text-navy   { color: var(--rh-navy) !important; }
.text-orange { color: var(--rh-orange) !important; }
.text-white  { color: var(--rh-white) !important; }
.text-muted  { color: var(--rh-grey-500) !important; }

/* Background colours */
.bg-navy   { background-color: var(--rh-navy) !important; }
.bg-orange { background-color: var(--rh-orange) !important; }
.bg-warm   { background-color: var(--rh-warm) !important; }
.bg-white  { background-color: var(--rh-white) !important; }

/* Orange top border accent on any element */
.accent-top {
  border-top: 4px solid var(--rh-orange);
  padding-top: var(--rh-space-6);
}

/* Orange left border — stat/callout */
.accent-left {
  border-left: 4px solid var(--rh-orange);
  padding-left: var(--rh-space-4);
}

/* Pill badge */
.badge {
  display: inline-block;
  font-family: var(--rh-font-sans);
  font-size: var(--rh-text-xs);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.25rem 0.75rem;
  border-radius: var(--rh-radius-full);
  line-height: 1.5;
}

.badge-orange { background: var(--rh-orange); color: var(--rh-white); }
.badge-navy   { background: var(--rh-navy);   color: var(--rh-white); }
.badge-warm   { background: var(--rh-warm);   color: var(--rh-navy); }

/* ============================================================
   TRUST SIGNALS — stats / counters
   ============================================================ */
.elementor-counter-number-wrapper,
.elementor-counter-number {
  font-family: var(--rh-font-sans) !important;
  font-weight: 800 !important;
  color: var(--rh-orange) !important;
}

.elementor-counter-title {
  font-family: var(--rh-font-sans) !important;
  color: var(--rh-navy) !important;
  font-weight: 600 !important;
}

/* On dark sections, counter titles go white */
.is-bg-navy .elementor-counter-title { color: rgba(255,255,255,0.8) !important; }

/* ============================================================
   SKIP LINK / ACCESSIBILITY
   ============================================================ */
.skip-link {
  position: absolute;
  left: -9999px;
  top: var(--rh-space-4);
  z-index: 9999;
  padding: var(--rh-space-3) var(--rh-space-6);
  background: var(--rh-orange);
  color: var(--rh-white);
  font-family: var(--rh-font-sans);
  font-weight: 700;
  border-radius: var(--rh-radius);
  text-decoration: none;
}

.skip-link:focus {
  left: var(--rh-space-4);
  outline: 3px solid var(--rh-orange-dark);
  outline-offset: 2px;
}

/* Focus visible — keyboard nav */
:focus-visible {
  outline: 3px solid var(--rh-orange);
  outline-offset: 3px;
  border-radius: var(--rh-radius-sm);
}

/* ============================================================
   SCROLLBAR (optional branding — Webkit only)
   ============================================================ */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--rh-grey-100); }
::-webkit-scrollbar-thumb {
  background: var(--rh-grey-300);
  border-radius: var(--rh-radius-full);
}
::-webkit-scrollbar-thumb:hover { background: var(--rh-grey-400); }

/* ============================================================
   PRINT
   ============================================================ */
@media print {
  .site-header, .site-footer, nav { display: none !important; }
  body { font-size: 12pt; color: #000; }
  a { color: #000; text-decoration: underline; }
  h1, h2, h3 { color: #000; }
}

/* ============================================================
   CONTACT FORM 7
   ============================================================ */

.wpcf7 {
	width: 100%;
}

.wpcf7 form {
	display: flex;
	flex-direction: column;
	gap: var(--rh-space-4);
}

/* ── Fields ── */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 input[type="search"],
.wpcf7 select,
.wpcf7 textarea {
	font-family: var(--rh-font-body);
	font-size: var(--rh-text-base);
	color: var(--rh-grey-900);
	background-color: var(--rh-white);
	border: 1.5px solid var(--rh-grey-300);
	border-radius: var(--rh-radius);
	padding: 0.75rem 1rem;
	width: 100%;
	display: block;
	transition: var(--rh-transition);
	outline: none;
	-webkit-appearance: none;
	appearance: none;
	line-height: 1.5;
	box-sizing: border-box;
}

.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 input[type="url"]:focus,
.wpcf7 input[type="number"]:focus,
.wpcf7 input[type="date"]:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
	border-color: var(--rh-orange);
	box-shadow: 0 0 0 3px rgba(232,97,42,.15);
	background-color: var(--rh-white);
}

.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
	color: var(--rh-grey-400);
	opacity: 1;
}

.wpcf7 textarea {
	min-height: 150px;
	resize: vertical;
}

.wpcf7 select {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2378716c' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
	padding-right: 2.5rem;
	cursor: pointer;
}

/* ── Labels ── */
.wpcf7 label,
.wpcf7 .wpcf7-list-item label {
	font-family: var(--rh-font-sans);
	font-size: var(--rh-text-sm);
	font-weight: 600;
	color: var(--rh-navy);
	display: block;
	margin-bottom: var(--rh-space-2);
	cursor: pointer;
}

/* ── Checkboxes & radios ── */
.wpcf7 .wpcf7-list-item {
	display: inline-flex;
	align-items: center;
	gap: var(--rh-space-2);
	margin: 0 var(--rh-space-3) var(--rh-space-2) 0;
}

.wpcf7 input[type="checkbox"],
.wpcf7 input[type="radio"] {
	width: 18px;
	height: 18px;
	min-width: 18px;
	border: 1.5px solid var(--rh-grey-300);
	border-radius: var(--rh-radius-sm);
	background-color: var(--rh-white);
	cursor: pointer;
	padding: 0;
	-webkit-appearance: none;
	appearance: none;
	transition: var(--rh-transition);
	position: relative;
}

.wpcf7 input[type="radio"] { border-radius: 50%; }

.wpcf7 input[type="checkbox"]:checked,
.wpcf7 input[type="radio"]:checked {
	background-color: var(--rh-orange);
	border-color: var(--rh-orange);
}

.wpcf7 input[type="checkbox"]:checked::after {
	content: '';
	position: absolute;
	left: 4px;
	top: 1px;
	width: 5px;
	height: 9px;
	border: 2px solid #fff;
	border-top: none;
	border-left: none;
	transform: rotate(45deg);
}

.wpcf7 input[type="radio"]:checked::after {
	content: '';
	position: absolute;
	inset: 3px;
	background: #fff;
	border-radius: 50%;
}

.wpcf7 input[type="checkbox"]:focus,
.wpcf7 input[type="radio"]:focus {
	outline: 3px solid rgba(232,97,42,.3);
	outline-offset: 2px;
}

/* ── Submit ── */
.wpcf7 input[type="submit"],
.wpcf7 .wpcf7-submit {
	font-family: var(--rh-font-sans);
	font-size: var(--rh-text-sm);
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	background-color: var(--rh-navy)!important;
	color: var(--rh-orange)!important;
	border: 2px solid transparent;
	border-radius: var(--rh-radius);
	padding: 0.8rem 2rem;
	cursor: pointer;
	transition: var(--rh-transition);
	width: auto;
	display: inline-block;
	line-height: 1;
	-webkit-appearance: none;
	appearance: none;
}

.wpcf7 input[type="submit"]:hover,
.wpcf7 .wpcf7-submit:hover {
	background-color: var(--rh-orange-dark);
	transform: translateY(-1px);
	box-shadow: 0 6px 20px rgba(232,97,42,.35);
}

.wpcf7 input[type="submit"]:active {
	transform: translateY(0);
	box-shadow: none;
}

.wpcf7 input[type="submit"]:disabled,
.wpcf7 .wpcf7-submit.wpcf7-waiting {
	background-color: var(--rh-grey-300);
	cursor: not-allowed;
	transform: none;
	box-shadow: none;
}

/* ── Validation ── */
.wpcf7 .wpcf7-not-valid {
	border-color: #dc2626 !important;
	box-shadow: 0 0 0 3px rgba(220,38,38,.12) !important;
}

.wpcf7 .wpcf7-not-valid-tip {
	font-family: var(--rh-font-sans);
	font-size: var(--rh-text-xs);
	font-weight: 500;
	color: #dc2626;
	display: block;
	margin-top: var(--rh-space-1);
}

/* ── Response messages ── */
.wpcf7 .wpcf7-response-output {
	font-family: var(--rh-font-sans);
	font-size: var(--rh-text-sm);
	border-radius: var(--rh-radius);
	padding: var(--rh-space-4) var(--rh-space-6);
	margin-top: var(--rh-space-4);
	border: none !important;
}

.wpcf7.sent .wpcf7-response-output  { background: #dcfce7; color: #166534; }
.wpcf7.failed .wpcf7-response-output,
.wpcf7.aborted .wpcf7-response-output { background: #fee2e2; color: #991b1b; }
.wpcf7.invalid .wpcf7-response-output,
.wpcf7.unacceptable .wpcf7-response-output { background: #fef3c7; color: #92400e; }

/* ── Spinner ── */
.wpcf7 .wpcf7-spinner {
	background-color: var(--rh-orange);
	margin-left: var(--rh-space-3);
	vertical-align: middle;
}

/* ── Dark section variant (is-bg-navy on any ancestor) ── */
.is-bg-navy .wpcf7 input[type="text"],
.is-bg-navy .wpcf7 input[type="email"],
.is-bg-navy .wpcf7 input[type="tel"],
.is-bg-navy .wpcf7 input[type="url"],
.is-bg-navy .wpcf7 input[type="number"],
.is-bg-navy .wpcf7 input[type="date"],
.is-bg-navy .wpcf7 select,
.is-bg-navy .wpcf7 textarea {
	background-color: rgba(255,255,255,.08);
	border-color: rgba(255,255,255,.2);
	color: var(--rh-white);
}

.is-bg-navy .wpcf7 input::placeholder,
.is-bg-navy .wpcf7 textarea::placeholder { color: rgba(255,255,255,.4); }

.is-bg-navy .wpcf7 label,
.is-bg-navy .wpcf7 .wpcf7-list-item label { color: rgba(255,255,255,.85); }

.is-bg-navy .wpcf7 input[type="text"]:focus,
.is-bg-navy .wpcf7 input[type="email"]:focus,
.is-bg-navy .wpcf7 input[type="tel"]:focus,
.is-bg-navy .wpcf7 input[type="url"]:focus,
.is-bg-navy .wpcf7 input[type="number"]:focus,
.is-bg-navy .wpcf7 input[type="date"]:focus,
.is-bg-navy .wpcf7 select:focus,
.is-bg-navy .wpcf7 textarea:focus {
	border-color: var(--rh-orange);
	background-color: rgba(255,255,255,.12);
	box-shadow: 0 0 0 3px rgba(232,97,42,.25);
}

.is-bg-navy .wpcf7 .wpcf7-not-valid-tip { color: #fca5a5; }
.is-bg-navy .wpcf7.sent .wpcf7-response-output { background: rgba(220,252,231,.15); color: #86efac; }
.is-bg-navy .wpcf7.failed .wpcf7-response-output,
.is-bg-navy .wpcf7.aborted .wpcf7-response-output { background: rgba(254,226,226,.15); color: #fca5a5; }
.is-bg-navy .wpcf7.invalid .wpcf7-response-output { background: rgba(254,243,199,.15); color: #fde68a; }

/* ── is-bg-navy general colour inheritance ── */
.is-bg-navy h1, .is-bg-navy h2, .is-bg-navy h3,
.is-bg-navy h4, .is-bg-navy h5, .is-bg-navy h6 { color: var(--rh-white); }
.is-bg-navy p, .is-bg-navy li { color: rgba(255,255,255,.8); }
.is-bg-navy a { color: var(--rh-orange-light); }
.is-bg-navy a:hover { color: var(--rh-white); }