/* ============================================================
   LOCAL FONTS — Poppins
   ============================================================ */
@font-face {
  font-family: 'Poppins';
  src: url('../fonts/Poppins-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Poppins';
  src: url('../fonts/Poppins-Medium.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Poppins';
  src: url('../fonts/Poppins-SemiBold.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Poppins';
  src: url('../fonts/Poppins-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* ============================================================
   VARIABLES
   ============================================================ */
:root {
  --green:        #6AA428;
  --green-dark:   #4a8a22;
  --green-hero:   #6AA428;
  --green-deep:   #2e5c14;
  --tan:          #C9A96A;
  --white:        #ffffff;
  --text:         #333333;
  --text-light:   #555555;
  --font:         'Poppins', sans-serif;
  --nav-h:        90px;
  --radius:       8px;
  --ease:         all .25s ease;
}

/* ============================================================
   RESET & BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font);
  font-size: 15px;
  color: var(--text);
  line-height: 1.7;
  background: #fff;
  overflow-x: hidden; /* hero image extends right of container on desktop */
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--green); text-decoration: none; transition: var(--ease); }
a:hover { color: var(--green-dark); }
ul { list-style: none; }
p { margin-bottom: 1em; }
p:last-child { margin-bottom: 0; }

/* ============================================================
   LAYOUT
   ============================================================ */
.container {
  width: 100%;
  max-width: 1300px;
  margin-left: auto;
  margin-right: auto;
 padding: 0 16px;
}

 .container-l {
  width: 100%;
  max-width: 1800px;
  margin-left: auto;
  margin-right: auto;
 padding: 0 16px;}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn {
    display: inline-block;
    font-family: var(--font);
    font-size: 18px;
    font-weight: 500;
    text-transform: uppercase;
    padding: 14px 40px;
    border-radius: 6px;
    border: 1px solid transparent;
    cursor: pointer;
    transition: var(--ease);
    white-space: nowrap;
    line-height: 1.6;
}
.btn-primary {
  background: var(--green);
  color: var(--white);
  border-color: var(--green);
}
.btn-primary:hover {
  background: var(--white);
  border-color: var(--green);
  color: var(--green);
}
.btn-white {
  background: var(--white);
  border-color: var(--green);
  color: var(--green);
}
.btn-white:hover {
  background: var(--green);
  color: var(--white);
  border: 1px solid #fff;
}
.btn-dark {
  background: #333333;
  color: var(--white);
  border-color: #333333;
}
.btn-dark:hover {
  background: var(--white);
  color: #333333;
  border-color: #333333;
}

/* ============================================================
   NAVBAR
   ============================================================ */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  height: var(--nav-h);
  background: var(--white);
  display: flex;
  align-items: center;
  border-bottom: 1px solid #6AA428;
}

/* WP admin bar pushes everything down */
body.admin-bar .site-header { top: 32px; }
body.admin-bar .navbar-collapse { top: calc(var(--nav-h) + 32px); }
@media screen and (max-width: 782px) {
  body.admin-bar .site-header { top: 46px; }
  body.admin-bar .navbar-collapse { top: calc(var(--nav-h) + 46px); }
}

.navbar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  height: var(--nav-h);
}

/* Logo */
.navbar-logo { display: flex; align-items: center; flex-shrink: 0; }
.navbar-logo img { height: 56px; width: auto; }
.navbar-site-name {
  font-size: 20px;
  font-weight: 700;
  color: var(--green);
}

/* Nav links */
/* align-items: center keeps social icons + CTA vertically centred;
   only .nav-menu itself stretches via align-self */
.navbar-collapse { display: flex; align-items: center; align-self: stretch; flex: 1; justify-content: flex-end; }

.nav-menu {
  display: flex;
  align-self: stretch;   /* fills full navbar height within .navbar-collapse */
  align-items: stretch;  /* li children stretch to the same height */
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

/* Top-level items — stretch naturally, no hard-coded height needed */
.nav-menu > li {
  position: relative;
  display: flex;
  align-items: stretch; /* lets <a> fill the full li height */
}
.nav-menu > li > a {
  display: flex;
  align-items: center;  /* text stays vertically centred inside the tall <a> */
  padding: 0 12px;
  font-size: 18px;
  font-weight: 400;
  color: var(--text);
  letter-spacing: .4px;
  white-space: nowrap;
  transition: color .25s ease;
  position: relative;
}

/* Active / hover indicator — thick line at bottom of nav */
.nav-menu > li > a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--green);
  border-radius: 2px 2px 0 0;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .25s ease;
}
.nav-menu > li > a:hover,
.nav-menu > li.current-menu-item > a,
.nav-menu > li.current-menu-ancestor > a,
.nav-menu > li.current-menu-parent > a { color: var(--green); }

.nav-menu > li > a:hover::after,
.nav-menu > li.current-menu-item > a::after,
.nav-menu > li.current-menu-ancestor > a::after,
.nav-menu > li.current-menu-parent > a::after { transform: scaleX(1); }

/* Dropdown */
.nav-menu li ul.sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 240px;
  background: var(--white);
  border-radius:0 ;
  border-top: 1px solid #F9B736;
  padding:  0;
  list-style: none;
  z-index: 999;
  overflow: hidden;
}
.nav-menu li:hover > ul.sub-menu,
.nav-menu li:focus-within > ul.sub-menu { display: block; }
.nav-menu li ul.sub-menu li { position: relative; }
.nav-menu li ul.sub-menu li > a {
  display: block;
  padding: 14px 40px;
  font-size: 18px;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  color: var(--text);
  transition: background .2s ease, color .2s ease;
}
.nav-menu li ul.sub-menu li > a:hover {
  background: #F7E1BA;
}
.nav-menu li ul.sub-menu li.current-menu-item > a {
  background: #F7E1BA;
  color: var(--text);
  font-weight: 400;
}

/* Dropdown arrow — menu-arrow.svg via CSS mask so it follows currentColor */
.nav-menu > li.menu-item-has-children > a {
  gap: 8px;
}
.nav-menu > li.menu-item-has-children > a::before {
  content: '';
  order: 2;           /* flex: appears after the text node */
  display: block;
  width: 12px;
  height: 7px;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask: url('../images/menu-arrow.svg') no-repeat center / contain;
  mask: url('../images/menu-arrow.svg') no-repeat center / contain;
  transition: transform .25s ease;
}
/* Rotate arrow when dropdown is open */
.nav-menu > li.menu-item-has-children:hover > a::before,
.nav-menu > li.menu-item-has-children:focus-within > a::before {
  transform: rotate(180deg);
}

/* Hamburger (hidden on desktop) */
.navbar-toggler {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 10px;
  flex-shrink: 0;
  background-color: var(--green);
  border-radius:6px
}
.toggler-bar {
  display: block;
  width: 20px;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  transition: var(--ease);
}

/* ============================================================
   HERO SECTION
   ============================================================ */
.section-hero {
  background: var(--green-hero);
  position: relative;
  z-index: 1;       /* creates stacking context above the logos section so the
                       overflowing hero image paints on top of logos background */
  overflow: visible;
  /* Only clear the fixed nav — section height driven by content (image height) */
  padding-top: var(--nav-h);
  padding-bottom: 0;
}

/* Containing block for .hero-image-wrap — keeps image anchored to the content
   column, not the full-viewport section, so it doesn't drift right on wide screens */
.section-hero > .container-l {
  overflow: visible;
  position: relative;
}

.hero-inner {
  display: grid;
  grid-template-columns: 1fr; /* image is absolute — only text drives section height */
  overflow: visible;
}


.hero-image-wrap {
  position: absolute;
  top: 50px;  
  right: 0;   
  width: 810px;
  z-index: 2;
}

.hero-photo {
  display: block;
  width: 100%;        /* fills the 858px wrap */
  max-width: none;    /* override global img { max-width: 100% } */
  height: auto;
  object-fit: contain;
}

/* ---- Left: text drives section height; image is absolute above it ---- */
.hero-content {
  max-width: 675px;
  padding-top: 120px;
  padding-bottom: 80px;  /* shorter bottom → image overflows ~80px below section */
  position: relative;
  z-index: 3;            /* paint text above the absolute hero image (z-index: 2) */
}

.hero-subtitle {
    display: inline-block;
    font-size: 16px;
    font-weight: 500;
    color: #FFFFFF;
    margin-bottom: 16px;
    line-height: 1.5;
}
.hero-title {
    font-size: 64px;
    font-weight: 600;
    color: var(--white);
    line-height: 1.2;
    margin-bottom: 24px;
}
.hero-text {
    color: #fff;
    font-size: 22px;
    line-height: 1.5;
    margin-bottom: 40px;
}
.hero-text p { margin-bottom: 0; }

/* ============================================================
   RESPONSIVE
   ============================================================ */


/* Mobile menu header is only shown inside the drawer */
.mobile-menu-header { display: none; }

/* ============================================================
   LOGOS SLIDER
   ============================================================ */
.section-logos {
  padding: 80px 0;
  overflow: hidden;
  border-bottom: 1px solid #B3B3B3;
}

.logos-swiper {
  overflow: hidden;
}

/* kill the default transition so CSS handles the continuous scroll */
.logos-swiper .swiper-wrapper {
  transition-timing-function: linear !important;
}

.logos-slide {
  display: flex;
  align-items: center;
  justify-content: center;
  /* Fixed slide footprint (desktop 'auto' mode) so the gap between logos is
     always identical, regardless of each logo's aspect ratio. On mobile,
     Swiper's numeric slidesPerView sets an inline width that overrides this. */
  width: 160px;
}

.logos-item {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 60px;
}

.logos-item img {
  display: block;
  /* Scale every logo to fit the same 160×60 box without distortion. */
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  /* Grey-scale by default, original colour on hover. */
  filter: grayscale(100%);
  transition: filter 0.3s ease;
}

.logos-item:hover img,
a.logos-item:focus-visible img {
  filter: grayscale(0);
}

a.logos-item { text-decoration: none; }

/* ============================================================
   FEATURES CARDS
   ============================================================ */
.section-features {
  padding: 120px 0;
  background: #fff;
}

/* Section header (shared) */
.section-header {
  margin-bottom: 40px;
  max-width: 1060px;
}
.section-subtitle {
    font-size: clamp(14px,3vw,16px);
    font-weight: 500;
    color: #757575;
    margin-bottom: 16px;
    /* letter-spacing: .3px; */
    line-height: 1.5;
}
.section-title {
    font-size: 42px;
    font-weight: 600;
    color: #333333;
    line-height: 1.2;
    margin-bottom: 24px;
}
.section-intro {
    font-size: clamp(16px,3vw,18px);
    color: #333333;
    line-height: 1.5;
    margin-bottom: 0;
}

/* Grid */
.features-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}

/* Card */
.feature-card {
  background: #fff;
  border: 2px solid #F9B736;
  border-radius: 14px;
  padding: 40px 32px;
}


/* Icon circle */
.feature-icon {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 40px;
  flex-shrink: 0;
}
.feature-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.feature-card-title {
    font-size: clamp(18px,3vw,24px);
    font-weight: 600;
  color: var(--text);
  margin-bottom: 24px;
}
.feature-card-text {
  font-size: clamp(16px, 3vw,18px);
  color: var(--text);
  line-height: 1.5;
  margin-bottom: 0;
}

/* ============================================================
   CTA BANNER
   ============================================================ */
.section-cta {
  padding: 60px 0;
}

.cta-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}

.cta-content {
  flex: 1;
}

.cta-subtitle {
  font-size: 16px;
  font-weight: 500;
  color: #F5F5F5;
  margin-bottom: 16px;
  line-height: 1.5;
}

.cta-title {
  font-size: 28px;
  font-weight: 600;
  color: #fff;
  line-height: 1.2;
  margin-bottom: 0;
  display: block;
}

.cta-tagline {
  font-size: clamp(18px,3vw,24px);
  line-height: 1.2;
  font-weight: 600;
  color: #fff;
  margin-top: 16px;
  margin-bottom: 0;
  display: block
}

.cta-action {
  flex-shrink: 0;
}

/* Light backgrounds (amber, cream) need dark text instead of white */
.section-cta--on-light .cta-subtitle,
.section-cta--on-light .cta-title,
.section-cta--on-light .cta-tagline {
  color: #333333;
}

/* ============================================================
   TEXT + IMAGE
   ============================================================ */
.section-text-image {
  padding: 120px 0;
}

.ti-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

/* Swap order for image-left variant */
.ti-image-left .ti-image { order: -1; }


.ti-text {
    font-size: clamp(16px, 3vw, 18px);
    color: var(--text);
    line-height: 1.5;
    margin-bottom: 18px;
}
.ti-text p { margin-bottom: 1em; }
.ti-text p:last-child { margin-bottom: 0; }

/* ── Unordered lists (regular wysiwyg ul, not the custom .ti-bullets) ── */
.ti-text ul:not(.ti-bullets):not(.checklist),
.cc-text ul:not(.ti-bullets):not(.checklist),
.wp-editor ul:not(.ti-bullets):not(.checklist),
.entry-content ul:not(.ti-bullets):not(.checklist),
.single-post-content ul:not(.checklist),
.text-module-body ul:not(.checklist) {
  list-style: none;
  padding-left: 0;
  margin-bottom: 1em;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.ti-text ul:not(.ti-bullets):not(.checklist) li,
.cc-text ul:not(.ti-bullets):not(.checklist) li,
.wp-editor ul:not(.ti-bullets):not(.checklist) li,
.entry-content ul:not(.ti-bullets):not(.checklist) li,
.single-post-content ul:not(.checklist) li,
.text-module-body ul:not(.checklist) li {
  padding-left: 25px;
  position: relative;
  font-size: 18px;
  color: var(--text);
  line-height: 1.5;
}
.single-post-content ul, .single-post-content ol{padding-left:0}
.text-module-body ul, .text-module-body ol { padding-left: 0; }
.ti-text ul:not(.ti-bullets):not(.checklist) li::before,
.cc-text ul:not(.ti-bullets):not(.checklist) li::before,
.wp-editor ul:not(.ti-bullets):not(.checklist) li::before,
.entry-content ul:not(.ti-bullets):not(.checklist) li::before,
.single-post-content ul:not(.checklist) li::before,
.text-module-body ul:not(.checklist) li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 9px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--green);
}

/* ── Ordered (numbered) lists ── */
.ti-text ol,
.cc-text ol,
.wp-editor ol,
.entry-content ol,
.single-post-content ol,
.text-module-body ol {
  list-style: none;
  counter-reset: li-counter;
  padding-left: 0;
  margin-bottom: 1em;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.ti-text ol li,
.cc-text ol li,
.wp-editor ol li,
.entry-content ol li,
.single-post-content ol li,
.text-module-body ol li {
  counter-increment: li-counter;
  padding-left: 25px;
  position: relative;
  font-size: 18px;
  color: var(--text);
  line-height: 1.5;
}
.ti-text ol li::before,
.cc-text ol li::before,
.wp-editor ol li::before,
.entry-content ol li::before,
.single-post-content ol li::before,
.text-module-body ol li::before {
  content: counter(li-counter);
  position: absolute;
  left: 0;
  top: 0;
  font-weight: 600;
  color: var(--green);
  font-size: 16px;
  line-height: 1.6;
}

/* ── Headings inside any wysiwyg / post-content area ── */
.ti-text h1, .cc-text h1, .entry-content h1, .single-post-content h1, .text-module-body h1 { font-size: 64px; font-weight: 600; line-height: 1.1;  margin-bottom: .5em; color: var(--text); }
.ti-text h2, .cc-text h2, .entry-content h2, .single-post-content h2, .text-module-body h2 { font-size: 42px; font-weight: 600; line-height: 1.15; margin-bottom: .5em; color: var(--text); }
.ti-text h3, .cc-text h3, .entry-content h3, .single-post-content h3, .text-module-body h3 { font-size: 36px; font-weight: 600; line-height: 1.2;  margin-bottom: .5em; color: var(--text); }
.ti-text h4, .cc-text h4, .entry-content h4, .single-post-content h4, .text-module-body h4 { font-size: 28px; font-weight: 600; line-height: 1.25; margin-bottom: .5em; color: var(--text); }
.ti-text h5, .cc-text h5, .entry-content h5, .single-post-content h5, .text-module-body h5 { font-size: 24px; font-weight: 600; line-height: 1.3;  margin-bottom: .5em; color: var(--text); }
.ti-text h6, .cc-text h6, .entry-content h6, .single-post-content h6, .text-module-body h6 { font-size: 18px; font-weight: 600; line-height: 1.4;  margin-bottom: .5em; color: var(--text); }

/* ── Tables inside any wysiwyg / post-content area ── */
/* Wide tables scroll horizontally instead of overflowing / over-compressing.
   The classic editor outputs a bare <table>, so script.js wraps each one in
   <div class="table-scroll">. Gutenberg's <figure class="wp-block-table">
   wrapper is handled too. */
.ti-text .table-scroll,
.cc-text .table-scroll,
.entry-content .table-scroll,
.single-post-content .table-scroll,
.text-module-body .table-scroll,
.ti-text .wp-block-table,
.cc-text .wp-block-table,
.entry-content .wp-block-table,
.single-post-content .wp-block-table,
.text-module-body .wp-block-table {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 1.5em 0;
}
.ti-text table,
.cc-text table,
.entry-content table,
.single-post-content table,
.text-module-body table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.5em 0;
  font-size: clamp(15px, 2vw, 17px);
  line-height: 1.5;
  color: var(--text);
}
/* Inside a scroll wrapper: no outer margin, and a min-width so the table
   scrolls once the viewport is narrower than this instead of squashing. */
.wp-block-table table,
.table-scroll table { margin: 0; }
.table-scroll table { min-width: 600px; }
.ti-text th, .ti-text td,
.cc-text th, .cc-text td,
.entry-content th, .entry-content td,
.single-post-content th, .single-post-content td,
.text-module-body th, .text-module-body td {
  padding: 12px 16px;
  border: 1px solid #E0E0E0;
  text-align: left;
  vertical-align: top;
  /* Prevent aggressive auto-hyphenation of cell text (inherited from the
     body); let long tokens wrap only when they don't fit. */
  hyphens: manual;
  overflow-wrap: break-word;
}
.ti-text th,
.cc-text th,
.entry-content th,
.single-post-content th,
.text-module-body th {
  background: var(--green);
  color: var(--white);
  font-weight: 600;
}
.ti-text tbody tr:nth-child(even) td,
.cc-text tbody tr:nth-child(even) td,
.entry-content tbody tr:nth-child(even) td,
.single-post-content tbody tr:nth-child(even) td,
.text-module-body tbody tr:nth-child(even) td {
  background: #F7F7F7;
}

/* Bullets */
.ti-bullets {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.ti-bullet {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.ti-bullet-check {
  flex-shrink: 0;
  margin-top: 2px;
}

.ti-bullet-body {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ti-bullet-body strong {
    font-size: clamp(16px,3vw,18px);
    font-weight: 600;
    color: var(--text);
    line-height: 1.2;
}
.ti-bullet-desc {
    font-size: clamp(16px,3vw,18px);
    color: var(--text);
    line-height: 1.5;
    font-weight: 400;
}

/* Image */
.ti-image {
  border-radius: 14px;
  overflow: hidden;
}

.ti-image img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

/* ============================================================
   SERVICES CARDS
   ============================================================ */
.section-services-cards {
  padding: 120px 0;
}

/* 60px gap when Services Cards sits directly below Text+Image */
.section-text-image:has(+ .section-services-cards) {
  padding-bottom: 0;
}
.section-text-image + .section-services-cards {
  padding-top: 60px;
}
.section-content-card:has(+ .section-services-cards) {
  padding-bottom: 0;
}
.section-content-card + .section-services-cards {
  padding-top: 60px;
}

.sc-title {
    font-size: clamp(18px,3vw,24px);
    font-weight: 600;
    color: var(--text);
    margin-bottom: 40px;
    line-height: 1.2;
}

.sc-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  margin-bottom: 40px;
}

/* 3 cards → 3 columns */
.sc-grid--3 {
  grid-template-columns: repeat(3, 1fr);
}

/* 2 cards → 2 columns, centered */
.sc-grid--2 {
  grid-template-columns: repeat(2, 1fr);
  max-width: 660px;
  margin-left: auto;
  margin-right: auto;
}

/* 1 card → centered single card */
.sc-grid--1 {
  grid-template-columns: minmax(0, 320px);
  justify-content: center;
}

/* Card */
.sc-card {
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    text-decoration: none;
    background: #fff;
    box-shadow: 0 4px 20px rgba(0, 0, 0, .10);
    transition: box-shadow .3s ease, transform .3s ease;
    position: relative;
}




.sc-card-img img {
  width: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
  height: 360px;
}

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

/* Label bar — absolute overlay inside image */
.sc-card-label {
    position: absolute;
    bottom: 16px;
    left: 8px;
    right: 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--green);
    padding: 15px;
    gap: 10px;
    border-radius: 4px;
    transition: background-color .35s ease;
}

.sc-card-label:hover {
    background-color: #fff;
}

.sc-card-name {
    font-size:clamp(16px,3vw,18px);
    font-weight: 600;
    color: #fff;
    line-height: 1.2;
    transition: color .35s ease;
    /* Cap very long titles so the label doesn't balloon over the image;
       excess is truncated with an ellipsis. Long words wrap instead of
       overflowing the label. */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    overflow-wrap: break-word;
}

.sc-card-label:hover .sc-card-name {
    color: var(--text);
}

.sc-card-arrow {
  flex-shrink: 0;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background-color .35s ease;
}

.sc-card-label:hover .sc-card-arrow {
  background-color: #F9B736;
}

.sc-card-arrow img {
  width: 16px;
  height: 16px;
  display: block;
  transition: filter .35s ease;
}

.sc-card-label:hover .sc-card-arrow img {
  filter: brightness(0);
}



/* Footer button */
.sc-footer {
  display: flex;
  justify-content: center;
}

/* ============================================================
   CONTENT + INFO CARD
   ============================================================ */
.section-content-card {
  padding: 120px 0;
}

.cc-inner {
  display: grid;
  grid-template-columns: 1fr 600px;
  gap: 80px;
  align-items: start;
}

.cc-content .section-title {
  margin-bottom: 28px;
}

.cc-text {
  font-size: clamp(16px,3vw,18px);
  color: var(--text);
  line-height: 1.5;
}
.cc-text p { margin-bottom: 1em; }
.cc-text p:last-child { margin-bottom: 0; }

.cc-text p img {
  display: inline-block;
  vertical-align: top;
  height: auto;
}

.cc-text img.alignleft,
.cc-text .alignleft {
  float: left;
  display: block;
  margin: 4px 24px 20px 0;
  border-radius: 50%;
  max-width: 160px;
  height: auto;
}
.cc-text img.alignright,
.cc-text .alignright {
  float: right;
  display: block;
  margin: 4px 0 20px 24px;
  border-radius: 8px;
  max-width: 260px;
  height: auto;
}
.cc-text img.aligncenter,
.cc-text .aligncenter {
  display: block;
  margin: 0 auto 1em;
  border-radius: 8px;
}
.cc-text::after {
  content: '';
  display: table;
  clear: both;
}


.cc-card {
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  border: 1px solid #B3B3B3;
  padding: 16px;
}

.cc-card-img img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
  border-radius: 12px;
}

.cc-card-body {
  padding: 24px 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.cc-eyebrow {
  font-size: clamp(16px,3vw,18px);
  font-weight: 600;
  text-transform: uppercase;
  color: var(--text);
  margin: 0;
  text-align: center;
}

.cc-price {
  margin: 0 0 9px 0;
  display: flex;
  align-items: baseline;
  gap: 6px;
  line-height: 1;
  justify-content: center;
}
.cc-price-prefix,.cc-price-suffix {
  font-size: clamp(20px,3vw,28px);
  font-weight: 600;
  color: var(--text);
}
.cc-price-amount {
  font-size: clamp(28px,3vw,48px);
  font-weight: 600;
  color: var(--text);
}


.cc-price-note {
  margin: 0;
  background: #F7E1BA;
  color: var(--text);
  font-size: 14px;
  font-weight: 400;
  padding: 10px 32px;
  border-radius: 50px;
  text-align: center;
}

/* Feature list */
.cc-features {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
  padding: 0;
}

.cc-feature {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.cc-feature-check {
  flex-shrink: 0;
  margin-top: 3px;
}

.cc-feature-check img {
  display: block;
  width: 16px;
  height: 16px;
}

.cc-feature-body {
  display: flex;
  flex-direction: column;
  gap:8px;
}

.cc-feature-label {
  font-size: 18px;
  font-weight: 600;
  color: var(--text);
  line-height: 1.2;
}

.cc-feature-desc {
  font-size: 16px;
  font-weight: 400;
  color: var(--text);
  line-height: 1.2;
}



.cc-card-footer {
  margin: 0;
  font-size: 14px;
  color: #757575;
  text-align: center;
  line-height: 1.5;
}

/* ============================================================
   TESTIMONIALS SLIDER
   ============================================================ */
.section-testimonials {
  padding: 120px 0;
  background: var(--green);
}

/* Header */
.testi-header {
  margin-bottom: 40px;
  max-width: 1060px;
}

.testi-subtitle {
  font-size: clamp(14px,3vw,16px);
  font-weight: 500;
  color: #FFFFFF;
  margin-bottom: 16px;
}

.testi-title {
  font-size: 42px;
  font-weight: 700;
  color: #fff;
  line-height: 1.2;
  margin-bottom: 24px;
}

.testi-tagline {
  font-size: clamp(16px,3vw,18px);
  line-height: 1.5;
  color: #FFFFFF;
  margin: 0;
}

.testi-row {
  display: flex;
  align-items: center;
}

.testi-nav-area {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.testi-swiper-col {
  flex: 0 0 min(calc(100% - 160px), 1268px);
  width: min(calc(100% - 160px), 1268px);
  min-width: 0;
}

/* Navigation arrows */
.testi-nav {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, .7);
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: opacity .25s ease;
}

.testi-nav.swiper-button-disabled {
  opacity: 0.35;
  cursor: default;
  pointer-events: none;
}

.testi-nav img {
  display: block;
  width: 20px;
  height: 20px;
}


.testi-swiper-col .swiper-wrapper {
  align-items: stretch;
}
.testi-swiper-col .swiper-slide {
  height: auto !important;
}

/* Cards */
.testi-card {
  background: #fff;
  border-radius: 12px;
  padding: 32px;
  height: 100%;
  display: flex;
  flex-direction: column;
  gap: 24px;
  box-sizing: border-box;
}

.testi-logo {
  height: 70px;
  display: flex;
  align-items: center;
  margin-bottom: 48px;
}

.testi-logo img {
  width: auto;
  display: block;
  object-fit: contain;
}

.testi-quote {
  font-size: clamp(18px,3vw,22px);
  color: #414141;
  line-height: 1.5;
  margin: 0;
  font-style: normal;
  flex: 1;
}

.testi-footer {
  margin-top: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex-shrink: 0;
}

.testi-divider {
  border: none;
  border-top: 1px solid #386129;
  margin: 0;
}

.testi-author { margin-top: 0; }

.testi-name {
    font-size: clamp(16px,3vw,24px);
    font-weight: 600;
    color: var(--text);
    margin: 0 0 8px;
    line-height: 1.2;
}

.testi-position {
  font-size: clamp(14px,3vw,22px);
  color: #757575;
  margin: 0;
  line-height: 1.5;
  height: 70px;
}

.section-testimonials .swiper-wrapper {
  align-items: stretch;
}

.section-testimonials .swiper-slide {
  height: auto;
}

/* Pagination dots */
.testi-pagination {
  margin-top: 24px;
  text-align: center;
  position: static !important;
}

.testi-pagination .swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  background: #F7E1BA;
    border: 1px solid #F7E1BA;

  opacity: 1;
  transition: background .25s ease;
}

.testi-pagination .swiper-pagination-bullet-active {
  background: transparent;
  border: 1px solid #fff;
}

/* ============================================================
   BLOG SECTION
   ============================================================ */
.section-blog {
  padding: 120px 0;
}
.blog .section-blog,
.archive .section-blog,
.search .section-blog{
  padding: 60px 0 120px 0;
}

/* Archive header + empty state */
.archive-header {
  margin-bottom: 48px;
}
.archive-empty {
  font-size: clamp(16px, 3vw, 18px);
  color: #757575;
  margin: 0;
}

/* Equalise card heights in the blog swiper:
   align-items:stretch makes every slide as tall as the tallest one in the row;
   height:100% on the card fills that slide so margin-top:auto works on .blog-card-more */
.blog-swiper .swiper-wrapper { align-items: stretch; }
.blog-swiper .swiper-slide   { height: auto; }
.blog-swiper .swiper-slide .blog-card { height: 100%; }

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


.blog-card {
  display: flex;
  flex-direction: column;
}

/* Body fills remaining card height → margin-top:auto on .blog-card-more aligns buttons */
.blog-card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
}
.event-card {
    border: 1px solid #B3B3B3;
    border-radius: 12px;
}
.event-card .blog-card-body{
  padding: 16px;
  border-radius: 0 0 12px 12px;
  border-top: none;
}
.event-card .blog-card-img-wrap{
  margin-bottom: 0px;
  border-radius: 12px 12px 0 0;
}
.event-card .blog-card-img {
  border-radius: 12px 12px 0 0;
}
.event-card .blog-card-cats{
  color: var(--text);
}
.blog-card-img-wrap {
  position: relative;
  display: block;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 16px;
  transform: translateZ(0); /* force compositing layer so overflow:hidden clips correctly */
}

.blog-card-img {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  transition: transform .4s ease;
}

.blog-card-img--placeholder {
  aspect-ratio: 3 / 2;
  background: var(--bg-light, #f5f5f5);
}

.blog-card-img-wrap:hover .blog-card-img {
  transform: scale(1.03);
}



.blog-card-cats {
    font-size: 18px;
    font-weight: 500;
    color: var(--green);
    text-transform: uppercase;
    letter-spacing: 2%;
    margin: 0 0 16px;
    line-height: 1.2;
}
.blog-card-cats a:hover{
  color:#386129
}


.blog-card-title {
  font-size: clamp(18px,3vw,24px);
  font-weight: 600;
  color: var(--text);
  line-height: 1.2;
  margin: 0 0 16px;
}

.blog-card-title a {
  color: inherit;
  text-decoration: none;
}

.blog-card-title a:hover {
  color: var(--green);
  text-decoration: underline;
}

.blog-card-more {
    display: inline-flex;
    align-items: center;
    align-self: flex-start; /* shrink to text width — prevents border spanning full card */
    gap: 6px;
    font-size: 18px;
    font-weight: 500;
    color: var(--green);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 2%;
    margin-top: auto;
    line-height: 1.2;
    border-bottom: 2px solid transparent; /* reserve space so hover doesn't shift layout */
    transition: border-color 0.2s;
}
.blog-card-more:hover {
  border-bottom-color: #6AA428;
}
.blog-card-more img {
  display: block;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}



.blog-pagination {
  margin-top: 56px;
  display: flex;
  justify-content: center;
}

.blog-pagination ul {
  display: flex;
  align-items: center;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.blog-pagination li a,
.blog-pagination li span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 10px;
  border-radius: 8px;
  border: 1.5px solid #6AA428;
  font-size: 18px;
  font-weight: 400;
  color: var(--text);
  text-decoration: none;
  transition: border-color .2s ease, background .2s ease, color .2s ease;
}

.blog-pagination li a:hover {
  border-color: var(--green);
  color: var(--green);
}

.blog-pagination li span.current {
  background: var(--green);
  border-color: var(--green);
  color: #fff;
}

.blog-pagination li a img {
  display: block;
  width: 14px;
  height: 14px;
}


/* ═══════════════════════════════════════════════════════════════
   Newsletter section
   ─────────────────────────────────────────────────────────────── */
.section-newsletter {
  background-color: #24301C;
  padding: 60px 0;
}

.nl-inner {
  display: flex;
  align-items: center;
  gap: 80px;
}

.nl-content {
  flex: 1 1 0;
  color: #fff;
}


.nl-title {
  font-size: clamp(20px, 3.5vw, 28px);
  font-weight: 600;
  line-height: 1.2;
  color: #fff;
  margin: 0 0 16px;
  display: block;
}

.nl-text {
  font-size: clamp(16px,3vw,18px);
  line-height: 1.5;
  color: #FFFFFF;
  margin: 0;
}

.nl-form-wrap {
  flex: 1 1 0;
}

.nl-form {
  background: transparent;
  padding: 0;
}

/* Hide Brevo's empty message div by default.
   When Brevo shows it (inline style display:block), it takes full width above the fields
   because the parent is flex-wrap:wrap and this item is flex: 0 0 100%. */
.nl-form .sib_msg_disp {
  display: none;
  flex: 0 0 100%;
  width: 100%;
  order: -1;        /* float above the input row */
  margin-bottom: 8px;
  border-radius: 6px;
}

/* Brevo injects the form fields in <p> wrappers inside a [class*="sib_signup_box_inside"] div.
   We turn that into a flex row: two input fields + the submit button. */
.nl-form [class*="sib_signup_box_inside"] {
  display: flex;
  align-items: stretch;
  gap: 12px;
  flex-wrap: wrap;
  color: rgba(255,255,255,.75);
}

/* Input field wrappers — have classes like sib-FIRSTNAME-area, sib-email-area */
.nl-form [class*="sib_signup_box_inside"] > p[class] {
  flex: 1 1 160px;
  margin: 0 !important;
  font-size: 0;   /* hide Brevo's text label — placeholder is used instead */
  line-height: 0;
}

/* Consent text paragraph — no class, not the last <p> (submit is last) */
.nl-form [class*="sib_signup_box_inside"] > p:not([class]):not(:last-of-type) {
  flex: 0 0 100%;
  order: 10;
  font-size: clamp(12px,3vw,14px) !important;
  line-height: 1.5 !important;
  color: #fff;
  margin: 4px 0 0 !important;
}

.nl-form [class*="sib_signup_box_inside"] > p:not([class]):not(:last-of-type) a {
  color: rgba(255,255,255,.85);
  text-decoration: underline;
}

/* Hide any <br> inside the consent text / link */
.nl-form [class*="sib_signup_box_inside"] > p:not([class]):not(:last-of-type) br {
  display: none;
}

/* Submit <p> wrapper — last <p>, shrink to fit the button */
.nl-form [class*="sib_signup_box_inside"] > p:last-of-type {
  flex: 0 0 auto;
  margin: 0 !important;
  font-size: 0;
  line-height: 0;
}

/* Inputs: white background, no border, pill-radius */
.nl-form #sib_signup_form_1 input[type="email"],
.nl-form #sib_signup_form_1 input[type="text"] {
  display: block !important;
  width: 100% !important;
  height: 54px !important;
  padding: 0 20px !important;
  background: #fff !important;
  border: none !important;
  border-radius: 4px !important;
  color: var(--text) !important;
  font-size: 16px !important;
  font-family: inherit !important;
  box-sizing: border-box !important;
  outline: none !important;
  margin: 0 !important;
  transition: box-shadow .2s;
}

.nl-form #sib_signup_form_1 input[type="email"]::placeholder,
.nl-form #sib_signup_form_1 input[type="text"]::placeholder {
  color: rgba(0,0,0,.35);
}

.nl-form #sib_signup_form_1 input[type="email"]:focus,
.nl-form #sib_signup_form_1 input[type="text"]:focus {
  box-shadow: 0 0 0 3px rgba(106,164,40,.4) !important;
}

/* Submit button base styles */
.nl-form input[type="submit"],
.nl-form button[type="submit"],
.nl-form .sib-default-btn {
  display: block !important;
  height: 54px !important;
  padding: 0 20px !important;
  border: none !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  margin: 0 !important;
  flex-shrink: 0;
  transition: background-color .2s;
}

/* Checkbox + consent text row */
.nl-form .nl-checkbox-wrap {
  order: 5;
  flex: 0 0 100%;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13px;
  color: rgba(255,255,255,.75);
  line-height: 1.5;
  margin-top: 4px;
}

.nl-form .nl-checkbox-wrap input[type="checkbox"] {
  flex-shrink: 0;
  margin-top: 2px;
  width: 16px;
  height: 16px;
  accent-color: var(--green);
  cursor: pointer;
}

.nl-form .nl-checkbox-wrap > span {
  flex: 1;
  min-width: 0;
}

.nl-form .nl-checkbox-wrap a {
  color: rgba(255,255,255,.85);
  text-decoration: underline;
}

.nl-form .nl-checkbox-wrap br { display: none; }

.nl-privacy {
  font-size: 13px;
  color: rgba(255,255,255,.6);
  margin: 12px 0 0;
  line-height: 1.55;
}

.nl-privacy a {
  color: rgba(255,255,255,.85);
  text-decoration: underline;
}

/* ---- Brevo submit button ---- */
/* Desktop: icon-only square. input[type="submit"] can't hold children,
   so icon goes via background-image; text hidden with font-size:0. */
.nl-form #sib_signup_form_1 .sib-default-btn,
.nl-form #sib_signup_form_1 input[type="submit"],
.nl-form #sib_signup_form_1 button[type="submit"] {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 54px !important;
  height: 54px !important;
  padding: 0 !important;
  background-color: var(--green) !important;
  border: none !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  /* icon */
  background-image: url('../images/newsletter-submit-icon.svg') !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 20px 20px !important;
  /* hide Brevo's button text */
  font-size: 0 !important;
  color: transparent !important;
  flex-shrink: 0;
}
.nl-form #sib_signup_form_1 .sib-default-btn:hover,
.nl-form #sib_signup_form_1 input[type="submit"]:hover,
.nl-form #sib_signup_form_1 button[type="submit"]:hover {
  background-color: var(--green-dark) !important;
}
/* Icon image injected by JS inside <button> replacement (desktop: hidden) */
.nl-form button[type="submit"] .nl-btn-icon {
  display: none;
  width: 16px;
  height: 16px;
}

/* ---- HubSpot embedded form ---- */
/* HubSpot renders the form inside an <iframe>, which this stylesheet cannot
   reach. The field styling lives in the "NEWSLETTER FORM (HubSpot)" block in
   script.js, which injects it into the iframe document. Edit it there. */
.section-newsletter .nl-form .hbspt-form {
  width: 100%;
}

/* ── Custom editor format: Text Body L (Classic Editor + Gutenberg) ── */
.text-body-l,
.is-style-body-l,
.editor-styles-wrapper .is-style-body-l {
  font-size: 22px !important;
  line-height: 1.5 !important;
}

@media (max-width: 768px) {
  .text-body-l,
  .is-style-body-l {
    font-size: 18px !important;
  }
}

.btn-outline {
  background: transparent;
  border-color: var(--green);
  color: var(--green);
}
.btn-outline:hover {
  background: var(--green);
  color: #fff;
}

/* ═══════════════════════════════════════════════════════════════
   Team section
   ─────────────────────────────────────────────────────────────── */
.section-team {
  padding: 120px 0;
  background: #fff;
}



.team-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 48px 32px;
  margin-bottom: 32px;
}

.team-member {
  /* 3 per row; flexbox + justify-content:center keeps an incomplete
     last row (e.g. 3 + 1) centred instead of left-aligned. */
  width: calc((100% - 2 * 32px) / 3);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.team-member-photo {
  width: 250px;
  height: 250px;
  margin-bottom: 14px;
  overflow: hidden;
  flex-shrink: 0;
}

.team-member-img {
  display: block;
  width: 100%;
  height: 100%;

}

.team-member-img--placeholder {
  background: #f0f0f0;
  border-radius: 50%;
}

.team-member-name {
    font-size: clamp(16px,3vw,18px);
    font-weight: 600;
    color: var(--text);
    margin: 0 0 8px;
    line-height: 1.2;
}
.team-member-position {
  font-size: clamp(16px,3vw,18px);
  font-weight: 400;
  color: var(--text);
  margin: 0;
  line-height: 1.5;
}

/* ── Buttons ── */
.team-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}

/* ═══════════════════════════════════════════════════════════════
   Contact section
   ─────────────────────────────────────────────────────────────── */
.section-contact {
  background: #386129;
  padding: 120px 0;
}

/* ── Two-column layout ── */
.contact-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}

.contact-eyebrow {
    font-size: clamp(14px,3vw,16px);
    font-weight: 500;
    color: #fff;
    margin: 0 0 16px;
    line-height: 1.5;
}
.contact-title {
  font-size: clamp(28px, 3.5vw, 42px);
  font-weight: 600;
  line-height: 1.2;
  color: #fff;
  margin: 0 0 24px;
}

.contact-text {
  font-size: clamp(16px,3vw,18px);
  line-height: 1.5;
  color: #fff;
  margin: 0 0 24px;
}

.contact-highlight {
  font-size: clamp(16px,3vw,18px);
  font-weight: 600;
  line-height: 1.2;
  color: #fff;
  margin: 0 0 40px;
}

.contact-img-wrap {
  border-radius: 12px;
  overflow: hidden;
}

.contact-img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 12px;
}

/* ── Right: white form card ── */
.contact-form-card {
  background: #fff;
  border-radius: 12px;
  padding:60px;
}

.contact-form-heading {
  font-size: clamp(20px,3vw,28px);
  font-weight: 600;
  line-height: 1.2;
  color: #333333;
  text-align: center;
  margin: 0 0 16px;
  display: block;
}

/* ── CF7 field wrappers ── */
.contact-form-card .cf7-field {
  margin-bottom: 16px;
}

.contact-form-card .cf7-label {
  display: block;
  font-size: clamp(14px,3vw,16px);
  line-height: 1.5;
  font-weight: 500;
  text-transform: uppercase;
  color: #757575;
  margin-bottom: 8px;
}

/* ── CF7 inputs, selects, textarea ── */
.contact-form-card .wpcf7 input[type="text"],
.contact-form-card .wpcf7 input[type="email"],
.contact-form-card .wpcf7 input[type="tel"],
.contact-form-card .wpcf7 select,
.contact-form-card .wpcf7 textarea {
  display: block;
  width: 100%;
  padding: 11px 14px;
  border: 1px solid #D5D5D5;
  border-bottom:1px solid #333333;
  border-radius: 6px 6px 0 0;
  font-size: 16px;
  font-family: inherit;
  color: #222;
  background: #fff;
  box-sizing: border-box;
  transition: border-color .2s ease;
  appearance: none;
  -webkit-appearance: none;
}

.contact-form-card .wpcf7 input[type="text"]:focus,
.contact-form-card .wpcf7 input[type="email"]:focus,
.contact-form-card .wpcf7 input[type="tel"]:focus,
.contact-form-card .wpcf7 select:focus,
.contact-form-card .wpcf7 textarea:focus {
  border-color: #333333;
  outline: none;
}

/* ── Select dropdown arrow ── */
.contact-form-card .wpcf7 select {
  background-image: url('../images/cf-arrow.svg');
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 12px auto;
  padding-right: 38px;
  cursor: pointer;
}

/* ── Textarea ── */
.contact-form-card .wpcf7 textarea {
  min-height: 90px;
  resize: vertical;
  line-height: 1.5;
}

/* ── Validation error state ── */
.contact-form-card .wpcf7 .wpcf7-not-valid {
  border-color: #e05252 !important;
}

.contact-form-card .wpcf7 .wpcf7-not-valid-tip {
  font-size: 11px;
  color: #e05252;
  margin-top: 3px;
  display: block;
}

/* ── Submit button ── */
.contact-form-card .wpcf7 input[type="submit"] {
  display: block;
  width: 100%;
  margin-top: 8px;
  padding: 14px 24px;
  background: #6AA428;
  color: #fff;
  font-size: 18px;
  font-weight: 500;
  font-family: inherit;
  letter-spacing: .1em;
  text-transform: uppercase;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  border: 1px solid #6AA428;
  transition: background .2s ease;
}

.contact-form-card .wpcf7 input[type="submit"]:hover {
  background: #fff;
  color:#6AA428
}

/* ── CF7 response messages ── */
.contact-form-card .wpcf7-response-output {
  margin: 12px 0 0;
  padding: 10px 14px;
  border-radius: 6px;
  font-size: 13px;
  border: none !important;
}

.contact-form-card .wpcf7-mail-sent-ok {
  background: #eaf5d6;
  color: #3a6e0d;
}

.contact-form-card .wpcf7-mail-sent-ng,
.contact-form-card .wpcf7-spam-blocked {
  background: #fde8e8;
  color: #c0392b;
}

/* ── Spinner ── */
.contact-form-card .wpcf7-spinner {
  display: none !important;
}


/* ═══════════════════════════════════════════════════════════════
   Navbar — social icons + CTA buttons
   ─────────────────────────────────────────────────────────────── */

/* Social icon list */
.navbar-social {
  display: none;
  align-items: center;
  gap: 10px;
  list-style: none;
  margin:  0 16px;
  padding: 4px 10px;
  flex-shrink: 0;
  background-color:#F0F0F0;
  border-radius:50px
}



.navbar-social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  flex-shrink: 0;
  transition: background .2s ease;
}
.navbar-social-link:hover {
  background: var(--green);
}
.navbar-social-link svg,
.navbar-social-link img.navbar-social-icon-img {
  width: 24px;
  height: 24px;
  display: block;
  object-fit: contain;
  transition: filter .2s ease;
}
.navbar-social-link:hover svg,
.navbar-social-link:hover img.navbar-social-icon-img {
  filter: brightness(0) invert(1);
}

/* CTA buttons wrapper */
.navbar-cta {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-shrink: 0;
}

.navbar-cta .btn {
    padding: 8px 16px !important;
    letter-spacing: 1px;
}

/* Flex row on desktop: nav items → social → CTA all in one line */
.mobile-menu-container {
  display: flex;
  align-items: center;
  align-self: stretch;
  flex: 1;
  justify-content: flex-end;
  gap: 0;
}


/* ============================================================
   TEXT MODULE SECTION
   ============================================================ */
.section-text-module {
  padding: 120px 0;
  scroll-margin-top: var(--nav-h);
}
.section-text-module{
    padding-top: calc(var(--nav-h) + 120px);

}

/* When breadcrumbs sit above a compact text-module (body class set by helpers.php filter),
   the breadcrumbs-bar already clears the fixed navbar — no need to add nav-h again. */
.first-section-text-module .site-main > .section-text-module:first-child {
  padding: 64px 0 120px 0;
}
/* Compact (default): inner wrapper capped at 800px and centred */
.text-module-inner {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 16px;
}

/* Wide: inner wrapper fills the full container */
.section-text-module--wide .text-module-inner {
  max-width: none;
}

.text-module-title {
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 600;
  color: var(--text);
  margin-bottom: 28px;
  line-height: 1.2;
  /* Break long German compound words (e.g. "Gemeinschaftsverpflegung")
     instead of letting them overflow on narrow screens. */
  overflow-wrap: break-word;
  hyphens: auto;
}

.text-module-body {
  font-size: clamp(16px, 2vw, 18px);
  color: var(--text);
  line-height: 1.5;
  overflow-wrap: break-word;
  hyphens: auto;
}
.text-module-body p { margin-bottom: 1em; }
.text-module-body p:last-child { margin-bottom: 0; }

/* Heading spacing (sizes come from the shared rule below) */
.text-module-body h1,
.text-module-body h2,
.text-module-body h3,
.text-module-body h4,
.text-module-body h5,
.text-module-body h6 { margin-top: 1.6em; }
.text-module-body h1:first-child,
.text-module-body h2:first-child,
.text-module-body h3:first-child,
.text-module-body h4:first-child,
.text-module-body h5:first-child,
.text-module-body h6:first-child { margin-top: 0; }

/* Links */
.text-module-body a       { color: var(--green); }
.text-module-body a:hover { text-decoration: underline; }

/* Blockquote */
.text-module-body blockquote {
  border-left: 4px solid var(--green);
  padding: 12px 20px;
  margin: 1.5em 0;
  background: #f7faf2;
  border-radius: 0 8px 8px 0;
}
.text-module-body blockquote p { margin: 0; color: #555; font-style: italic; }

/* Images */
.text-module-body img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
  margin: 1em 0;
  display: block;
}

/* ── Image alignment (classic editor classes + captions) ──
   Applies to the main WYSIWYG / post-content areas so the align
   left/center/right/none buttons in the editor actually work. */
.text-module-body img.aligncenter,
.text-module-body .aligncenter,
.single-post-content img.aligncenter,
.single-post-content .aligncenter,
.entry-content img.aligncenter,
.entry-content .aligncenter,
.ti-text img.aligncenter,
.ti-text .aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.text-module-body figure.aligncenter,
.single-post-content figure.aligncenter,
.entry-content figure.aligncenter,
.ti-text figure.aligncenter { text-align: center; }

.text-module-body img.alignleft,
.text-module-body .alignleft,
.single-post-content img.alignleft,
.single-post-content .alignleft,
.entry-content img.alignleft,
.entry-content .alignleft,
.ti-text img.alignleft,
.ti-text .alignleft {
  float: left;
  margin: 0.4em 1.5em 1em 0;
  max-width: 50%;
}
.text-module-body img.alignright,
.text-module-body .alignright,
.single-post-content img.alignright,
.single-post-content .alignright,
.entry-content img.alignright,
.entry-content .alignright,
.ti-text img.alignright,
.ti-text .alignright {
  float: right;
  margin: 0.4em 0 1em 1.5em;
  max-width: 50%;
}
.text-module-body img.alignnone,
.single-post-content img.alignnone,
.entry-content img.alignnone,
.ti-text img.alignnone { display: block; margin: 1em 0; }

/* Captions (classic .wp-caption + block <figure>) */
.text-module-body .wp-caption,
.single-post-content .wp-caption,
.entry-content .wp-caption,
.ti-text .wp-caption { max-width: 100%; }
.text-module-body .wp-caption-text,
.text-module-body figcaption,
.single-post-content .wp-caption-text,
.single-post-content figcaption,
.entry-content .wp-caption-text,
.entry-content figcaption,
.ti-text .wp-caption-text,
.ti-text figcaption {
  font-size: 14px;
  color: #757575;
  line-height: 1.4;
  margin-top: 8px;
  text-align: center;
}

/* Clear floated images so they don't escape the content box */
.text-module-body::after,
.single-post-content::after,
.entry-content::after,
.ti-text::after { content: ''; display: table; clear: both; }

/* On small screens, unfloat aligned images and center them full-width */
@media (max-width: 600px) {
  .text-module-body .alignleft,  .text-module-body .alignright,
  .single-post-content .alignleft, .single-post-content .alignright,
  .entry-content .alignleft, .entry-content .alignright,
  .ti-text .alignleft, .ti-text .alignright {
    float: none;
    display: block;
    max-width: 100%;
    margin: 1em auto;
  }
}

/* ── Custom WYSIWYG formats ─────────────────────────────────── */

/* 1. Highlight boxes (light + dark green) */
.wysiwyg-box {
  padding: 32px;
  border-radius: 12px;
  color: #fff;
}
.wysiwyg-box p,
.wysiwyg-box li { color: #fff; }
.wysiwyg-box p:last-child { margin-bottom: 0; }

.wysiwyg-box--light { background: var(--green); }
.wysiwyg-box--dark  { background: var(--green-deep); }

/* 2. Checklist — ul.checklist */
ul.checklist {
  list-style: none;
  padding: 0;
  margin: 1em 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
ul.checklist li {
  /* Hanging checkmark via absolute ::before so the bold label and its
     description flow together as normal inline text. (With display:flex
     the <strong> becomes its own flex item and splits into a ragged
     second column.) */
  position: relative;
  padding-left: 28px;
  color: var(--text);
  line-height: 1.65;
}
ul.checklist li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 4px;
  width: 18px;
  height: 18px;
  background-color: var(--green);
  -webkit-mask: url('../images/check.svg') no-repeat center / contain;
          mask: url('../images/check.svg') no-repeat center / contain;
}

/* 3. Zweizeilige Liste — dl / dt / dd */
.text-module-body dl,
.cc-text dl,
.ti-text dl {
  margin: 1em 0;
  padding: 0;
}
.text-module-body dl dt,
.cc-text dl dt,
.ti-text dl dt {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-weight: 600;
  color: var(--text);
  margin-top: 18px;
  margin-bottom: 4px;
  line-height: 1.5;
}
.text-module-body dl dt:first-child,
.cc-text dl dt:first-child,
.ti-text dl dt:first-child { margin-top: 0; }

.text-module-body dl dt::before,
.cc-text dl dt::before,
.ti-text dl dt::before {
  content: '●';
  color: var(--green);
  font-size: 12px;
  flex-shrink: 0;
  margin-top: 4px;
}
.text-module-body dl dd,
.cc-text dl dd,
.ti-text dl dd {
  margin-left: 22px;
  color: var(--text);
  line-height: 1.75;
  margin-bottom: 0;
}


/* ============================================================
   404 PAGE
   ============================================================ */
.page-404-main {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: calc(var(--nav-h) + 120px);
  padding-bottom: 120px;
  background: #fff;
}

.page-404 {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
}

/* "4 🍳 4" row */
.error-number {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  line-height: 1;
  margin-bottom: 32px;
}


.error-egg {
  width: 520px;
  height: auto;
  object-fit: contain;
  flex-shrink: 0;
}

.error-title {
  font-family: var(--font);
  font-size: clam(28px,3vw,42px);
  font-weight: 600;
  color: var(--text);
  margin-bottom: 16px;
}

.error-text {
  font-size: clamp(16px,3vw,18px);
  color: var(--text);
  margin-bottom: 48px;
  line-height: 1.5;
}



.error-btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.error-btn-arrow {
  display: block;
  flex-shrink: 0;
}


/* ═══════════════════════════════════════════════════════════════
   Footer — minimal legal bar
   ─────────────────────────────────────────────────────────────── */
.site-footer {
  background: #fff;
}

/* Footer upper row: logo · nav · button · social */
.footer-nav-row {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 24px 0;
  flex-wrap: wrap;
}

/* Logo */
.footer-logo-link { display: flex; align-items: center; flex-shrink: 0; }
.footer-logo-img  { height: auto; width: 255px; display: block; }

/* Nav takes all remaining space */
.footer-nav { flex: 1; }

/* Right-side group: button + social icons */
.footer-right {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-shrink: 0;
  margin-left: auto;
}

.footer-nav-list {
  display: flex;
  align-items: center;
  justify-content: end;
  flex-wrap: wrap;
  gap: 4px 0;
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-nav-list li a {
  display: block;
  padding: 6px 12px;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.2;
  color: var(--text);
  text-decoration: none;
  transition: color .2s ease;
}
.footer-nav-list li a:hover,
.footer-nav-list li.current-menu-item > a { color: var(--green); }

/* Footer social icons */
.footer-social {
  display: flex;
  align-items: center;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
  flex-shrink: 0;
}

.footer-bar{
  border-top:1px solid #B3B3B3
}
/* Single-row bar */
.footer-bar .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 56px;
  padding: 24px ;
}

/* Legal nav links — pipe-separated */
.footer-legal-list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-legal-list li { display: flex; align-items: center; }

/* | separator between items */
.footer-legal-list li + li::before {
  content: '|';
  margin: 0 10px;
  color: #ccc;
  font-size: 13px;
}
.footer-legal-list li a {
  font-size: 18px;
  color: #757575;
  line-height: 1.2;
  text-decoration: none;
  transition: color .2s ease;
  white-space: normal;
  word-break: break-word;
}
.footer-legal-list li a:hover { color: var(--green); }

/* Copyright */
.footer-copyright {
  font-size: 18px;
  color: #757575;
  margin: 0;
  white-space: nowrap;
  line-height: 1.2;
}

/* ============================================================
   SINGLE POST TEMPLATE
   ============================================================ */

/* ── Page layout ── */
.single-post-main {
  padding-top: 0;
  padding-bottom: 100px;
}

/* ── 800 px centred column ── */
.single-post-wrap {
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

/* ── Global breadcrumbs bar (rendered in header.php, below fixed nav) ─────
   margin-top pushes the bar below the sticky header.
   Width is CSS-only: WP body classes target single-post and single-tribe_events
   to constrain the inner container to 800 px (matching the post/event column).
   All other contexts use the normal full-width container.
   ─────────────────────────────────────────────────────────────────────────── */
.breadcrumbs-bar {
  margin-top: var(--nav-h);
}

/* Single post + single event: 800 px column — CSS only, via WP body classes */
.single-post .breadcrumbs-bar .container,
.single-tribe_events .breadcrumbs-bar .container {
  max-width: 800px;
  padding: 0px;
}

/* Compact text-module is first section: match its 800 px inner width */
.breadcrumbs-bar--narrow .container {
  max-width: 800px;
}

/* ── Yoast breadcrumb nav ── */
.site-breadcrumbs {
  padding-top: 8px;
  padding-bottom: 24px;
  margin: 0;
}
/* Single post / event: larger bottom gap before the post content */
.single-post .site-breadcrumbs,
.single-tribe_events .site-breadcrumbs {
  padding-bottom: 64px;
}
.site-breadcrumbs, .site-breadcrumbs a, .site-breadcrumbs span {
    font-size: 12px;
    color: #333333;
    text-decoration: none;
    line-height: 1.5;
    font-weight: 400;
}
.site-breadcrumbs a:hover { color: var(--green); }
.site-breadcrumbs .breadcrumb_last { color: #757575; }

/* Breadcrumb arrow separator (injected by wpseo_breadcrumb_separator filter) */
.breadcrumb-sep {
  width: 10px;
  height: 10px;
  vertical-align: middle;
  margin: 0 10px;
  display: inline-block;
  position: relative;
  top: -1px;
}

/* ── Meta line ── */
.single-post-meta {
  font-size: 12px;
  color: #333333;
  margin: 0 0 16px;
  line-height: 1.5;
}


/* ── Post title ── */
.single-post-title {
  font-size: clamp(28px, 5vw, 42px);
  font-weight: 600;
  color: var(--text);
  line-height: 1.2;
  margin: 0 0 24px;
}

/* ── Lead / excerpt ── */
.single-post-excerpt {
  font-size: clamp(18px, 2.5vw, 22px);
  color: var(--text);
  line-height: 1.5;
  margin-bottom: 24px;
}
.single-post-excerpt p { margin: 0; }

/* ── Author row ── */
.single-post-author {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
}
.single-author-avatar {
  width: 44px !important;
  height: 44px !important;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}
.single-author-info {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 2px;
}
.single-author-name {
  font-size: clamp(16px,3vw,18px);
  font-weight: 600;
  color: var(--text);
  line-height: 1.2;
}
.single-author-label {
  font-size: clamp(16px,3vw,18px);
  color: var(--text);
  line-height: 1.2;
}

/* ── Featured image ── */
.single-featured-img {
  margin: 0 0 24px;
  border-radius: 16px;
  overflow: hidden;
  line-height: 0;
}
.single-featured-img__img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 800 / 530;
  object-fit: cover;
  border-radius:12px
}

/* ── EZ-TOC ── */
.single-toc {
  margin-bottom: 48px;
}
.single-toc #ez-toc-container {
  background: #f7faf2;
  border: 1px solid rgba(105, 191, 59, .25);
  border-radius: 12px;
  padding: 24px 28px;
  width: 100% !important;
  box-sizing: border-box;
}
.single-toc .ez-toc-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 12px;
}
.single-toc .ez-toc-list {
  margin: 0;
  padding-left: 20px;
}
.single-toc .ez-toc-list li { margin: 6px 0; }
.single-toc .ez-toc-list a {
  font-size: 15px;
  color: var(--green);
  text-decoration: none;
}
.single-toc .ez-toc-list a:hover { text-decoration: underline; }

/* ── Post content body ── */
.single-post-content {
  font-size: clamp(16px, 2vw, 18px);
  color: var(--text);
  line-height: 1.5;
  margin-bottom: 32px;
    border-bottom: 1px solid #B3B3B3;

}
.single-post-content p             { margin-bottom: 18px; }
.single-post-content p:last-child  { margin-bottom: 0; }

/* heading margin inside post content (sizes come from the shared rule above) */
.single-post-content h1,
.single-post-content h2,
.single-post-content h3,
.single-post-content h4,
.single-post-content h5,
.single-post-content h6 { margin-top: 1.6em; }


.single-post-content li { margin-bottom: 0; }

.single-post-content a       { color: var(--green); }
.single-post-content a:hover { text-decoration: underline; }

.single-post-content img {
  max-width: 100%;
  height: auto;
  border-radius: 10px;
  margin: 1em 0;
  display: block;
}

.single-post-content blockquote {
  border-left: 4px solid var(--green);
  padding: 12px 20px;
  margin: 1.5em 0;
  background: #f7faf2;
  border-radius: 0 8px 8px 0;
}
.single-post-content blockquote p { margin: 0; color: #555; font-style: italic; }

/* Custom WYSIWYG formats in post content */
.single-post-content dl { margin: 1em 0; padding: 0; }
.single-post-content dl dt {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  font-weight: 600;
  color: var(--text);
  margin-top: 18px;
  margin-bottom: 4px;
  line-height: 1.5;
}
.single-post-content dl dt:first-child { margin-top: 0; }
.single-post-content dl dt::before {
  content: '●';
  color: var(--green);
  font-size: 12px;
  flex-shrink: 0;
  margin-top: 4px;
}
.single-post-content dl dd {
  margin-left: 27px;
  color: var(--text);
  line-height: 1.5;
  margin-bottom: 0;
}

/* ── Tags ── */
.single-post-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.post-tag {
  display: inline-block;
  padding: 9px 32px;
  background: #F7E1BA;
  border-radius: 50px;
  font-size: clamp(16px,3vw,18px);
  font-weight: 400;
  color: var(--text);
  text-decoration: none;
  line-height: 1.4;
}


/* ── "Auch interessant" related posts ── */
.single-related {
  padding: 120px 0;
  background: #fff;
  border-top: 1px solid #B3B3B3;
}
.single-related-title {
  font-size: clamp(28px, 3.5vw, 42px);
  font-weight: 600;
  color: var(--text);
  margin-bottom: 40px;
  line-height: 1.2;
  display: block
}
/* Desktop: swiper slides fill equal height (like CSS grid) */
.related-swiper .swiper-slide {
  height: auto;
}
.related-swiper .swiper-slide .blog-card {
  height: 100%;
}


/* ============================================================
   EVENTS SECTION
   ============================================================ */

/* Centre the CTA button below the events grid */
.section-cta--center {
  text-align: center;
}


/* ============================================================
   SINGLE EVENT PAGE
   ============================================================ */

/* Override the blog-post aspect-ratio — event flyers can be any shape */
.single-event-img .single-featured-img__img {
  aspect-ratio: auto;
  max-height: 600px;
  width: 100%;
  object-fit: cover;
  border-radius: 12px;
}

/* ── Event meta box (date + venue + URL) ── */
.event-meta-box {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 40px;
  padding: 20px 24px;
  background: #f7faf2;
  border: 1px solid rgba(105, 191, 59, .25);
  border-radius: 12px;
  margin-bottom: 28px;
}

.event-meta-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 15px;
  color: var(--text);
  line-height: 1.5;
}

.event-meta-icon {
  color: var(--green);
  flex-shrink: 0;
  margin-top: 2px;
  display: flex;
}

.event-meta-item strong {
  font-weight: 600;
}

.event-meta-sub {
  font-size: 14px;
  color: #555;
}

.event-meta-link {
  color: var(--green);
  text-decoration: none;
  word-break: break-all;
}
.event-meta-link:hover { text-decoration: underline; }

/* ── Back-to-calendar link ── */
.event-back-link {
  margin-top: 40px;
  padding-top: 24px;
  border-top: 1px solid #B3B3B3;
}

.event-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  font-weight: 500;
  color: var(--green);
  text-decoration: none;
}
.event-back-btn:hover { text-decoration: underline; }

.event-back-arrow img {
  display: block;
  transform: rotate(180deg);
}


/*TABLE OF CONTENTS*/
div#ez-toc-container {
  border: none;
  padding: 24px 80px;
  border-radius: 12px;
  margin: 28px 0px;
  background-color: rgba(247, 225, 186, 0.4);
  width: 100%;
}
div#ez-toc-container .ez-toc-title {
  margin: 0 0 24px 0;
  font-size: clamp(24px, 3vw + 10px, 36px)!important;
  font-weight: 600;
  color: #333333;
}
/* Remove default bullets */
.ez-toc-list li {
  list-style: none !important;
  padding-left: 28px;
  position: relative;
  margin-bottom: 16px;
  font-size: clamp(16px, 3vw + 10px, 18px)!important;
  font-weight: 600;
  color: #333333;
}

div#ez-toc-container ul li,
div#ez-toc-container ul li a {
  font-size: 18px;
}
ul.ez-toc-list a.ez-toc-link {
  padding: 0 0 18px 28px;
}
/* Add checkmark icon */
.ez-toc-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  width: 20px;
  height: 20px;
  background-image: url("/wp-content/themes/essenundernaehren/assets/images/point.svg");
  background-size: contain;
  background-repeat: no-repeat;
}
#ez-toc-container a:visited {
  color: #333333 !important;
}
#ez-toc-container a:hover {
  text-decoration: none !important;
}

ul.ez-toc-list.ez-toc-list-level-1 {
  margin-top: 16px !important;
  padding: 0;
}
#ez-toc-container a {
  color: #333333 !important;
  text-decoration: none;
  font-size: clamp(16px,3vw,18px)!important;
}



.reviews-badge {
  display: inline-block;
  text-decoration: none;
  transition: transform 0.2s ease;
}

.reviews-badge:hover,
.reviews-badge:focus-visible {
  text-decoration: none;
  transform: translateY(-2px);
}

.reviews-badge__img {
  display: block;
  max-width: 220px;
  height: auto;
}

/* ── Desktop badge: fixed floating pill ── */
.reviews-badge--desktop {
  display: none; /* hidden on mobile by default */
}

/* ── Mobile badge: fixed full-width bar at the bottom ── */
.reviews-badge--mobile {
  display: flex;
  align-items: center;
  justify-content: center;
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 999;
  background: #ffffff;
  border-top: 6px solid #6AA428;
  padding: 6px 16px;
  min-height: 56px;
  box-sizing: border-box;
}

.reviews-badge--mobile .reviews-badge__img {
  display: block;
  width: auto;
  height: auto;
  max-height: 44px;
  max-width: 100%;
  border-radius: 0;
  box-shadow: none;
}

.reviews-badge--mobile:hover,
.reviews-badge--mobile:focus-visible {
  transform: none;
}

/* Hide near footer (JS toggles this class on all floating widgets) */
.reviews-badge--desktop.is-hidden-near-footer,
.reviews-badge--mobile.is-hidden-near-footer {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(8px) !important;
  transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease;
}

/* ============================================================
   TO-TOP BUTTON
   ============================================================ */
.to-top-btn {
  position: fixed;
  bottom: 72px;        /* above mobile badge (56px min-height) */
  right: 20px;
  width: 48px;
  height: 48px;
  background: var(--green);
  border: none;
  border-radius: 10px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 94;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease, background 0.2s ease;
  box-shadow: 0 4px 16px rgba(0,0,0,.18);
}
.to-top-btn.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.to-top-btn.is-hidden-near-footer {
  opacity: 0 !important;
  visibility: hidden !important;
  transform: translateY(10px) !important;
}
.to-top-btn:hover { background: var(--green-dark); }
.to-top-btn img {
  width: 20px;
  height: 20px;
  filter: brightness(0) invert(1); /* white icon */
  display: block;
}
.cc-card-btn{
  text-align: center;
}
/* ============================================================
   RESPONSIVE — CONSOLIDATED MEDIA QUERIES
   ============================================================ */

/* ── max-width: 1024px ── */
@media (max-width: 1024px) {
  .cc-inner {
    grid-template-columns: 1fr 360px;
    gap: 24px;
  }
}



/* ── max-width: 900px ── */
@media (max-width: 900px) {
  .text-module-inner {
  padding: 0px;
}
.nav-menu li ul.sub-menu li.current-menu-item > a {
  background: transparent;
  color: #fff;
}
div#ez-toc-container{padding:12px 16px}
#ez-toc-container a{padding-bottom: 8px;}
.first-section-text-module .site-main > .section-text-module:first-child, .blog .section-blog{
  padding:20px 0 48px 0
}
  .sc-card-img img {
  height: 220px;
}

  .features-grid { grid-template-columns: repeat(2, 1fr);gap: 12px;}
  .section-header{
    max-width: 100%;
    margin-bottom:20px
  }
  .feature-card{padding:20px 16px;}
  .feature-icon{margin-bottom:20px}
  .feature-card-title{margin-bottom:12px}
  .section-cta{padding:48px 0!important}
  .cta-subtitle{font-size:14px;margin-bottom:8px}

  .ti-inner { grid-template-columns: 1fr; gap: 24px; }
  .ti-image-left .ti-image { order: 0; }
    .section-text-image{padding:48px 0}
    .ti-bullet-body,.ti-bullet{gap:4px}
.section-text-image + .section-services-cards {
    padding-top: 24px!important;
}

  .sc-grid                          { grid-template-columns:1fr;gap: 12px; }
  .sc-grid--3                       { grid-template-columns:1fr;gap:12px }
  .sc-grid--2, .sc-grid--1         { max-width: none; }
  .sc-title{margin-bottom:20px}
  .section-services-cards,.section-content-card{padding:48px 0!important}

  .nl-inner {
    flex-direction: column;
    gap: 48px;
  }
  .nl-content,
  .nl-form-wrap {
    width: 100%;
  }

  .team-grid { gap: 20px; }
  .team-member { width: calc((100% - 20px) / 2); } /* 2 per row */
  .section-logos {
    border-bottom: 0;
  }
  .section-logos .container-l {
    padding: 0;
  }
  .section-features{
    padding:48px 0
  }

  .contact-inner {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .contact-form-card {
    padding: 32px 24px;
  }
  .contact-eyebrow , .contact-form-heading {margin: 0 0 8px;}
  .contact-title, .contact-text{margin: 0 0 12px;}
  .contact-highlight{margin: 0 0 20px;}

  .blog-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .blog-card-cats,.blog-card-title{margin: 0 0 8px;}

  .single-post-main  { padding-top: 0; padding-bottom: 64px; }
  .single-related    { padding: 56px 0 64px; }
  .single-related-title { margin-bottom: 32px; }
  .wysiwyg-box{padding:24px 16px;}
  .single-post-content h1, .single-post-content h2, .single-post-content h3, .single-post-content h4, .single-post-content h5, .single-post-content h6{margin:32px 0 12px 0}
}




/* ── max-width: 1280px — nav collapses to hamburger ── */
@media (max-width: 1280px) {
  .navbar-toggler { display: flex; }
  .toggler-bar { background: #fff; transition: transform .25s ease, opacity .2s ease; }

  /* Bars animate to × when drawer is open */
  .navbar-toggler[aria-expanded="true"] .toggler-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .navbar-toggler[aria-expanded="true"] .toggler-bar:nth-child(2) { opacity: 0; transform: scaleX(0); }
  .navbar-toggler[aria-expanded="true"] .toggler-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  /* Header stays white when drawer open — no green overlay, no logo hide */

  /* ── Green dropdown panel below the sticky header ── */
  .navbar-collapse {
    display: none;
    position: fixed;
    top: var(--nav-h);
    left: 0; right: 0;
    max-height: calc(100vh - var(--nav-h));
    background: #6AA428;
    overflow-y: auto;
    overflow-anchor: none; /* prevent browser auto-scroll when submenu opens */
    z-index: 9000;
    flex-direction: column;
    align-items: stretch;
    padding: 0;
    box-shadow: 0 8px 32px rgba(0,0,0,0.18);
  }
  .navbar-collapse.is-open { display: flex; }

  /* Drawer duplicate header not needed — real header stays visible */
  .mobile-menu-header { display: none !important; }

  /* ── Nav list ── */
  .nav-menu {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 0;
    width: 100%;
  }
  .nav-menu li {
    display: block;  /* kill desktop flex — sub-menu stacks below the link */
    width: 100%;
  }
  .nav-menu > li {
    border-bottom: 1px solid rgba(255,255,255,0.2);
  }
  .nav-menu li > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 0;
    color: #fff;
    font-size: 18px;
    font-weight: 400;
    background-color: transparent;
  }
  .nav-menu > li > a:hover, .nav-menu > li.current-menu-item > a, .nav-menu > li.current-menu-ancestor > a, .nav-menu > li.current-menu-parent > a { color: #fff;  }
  .nav-menu > li > a::after { display: none; }
  .nav-menu > li.menu-item-has-children.is-open > a::before { transform: rotate(180deg); }

  /* ── Sub-menu: inline accordion below parent ── */
  .nav-menu li ul.sub-menu {
    position: static !important;
    left: auto !important;
    top: auto !important;
    display: block !important;
    max-height: 0 !important;
    overflow: hidden !important;
    background: transparent;
    box-shadow: none;
    border: none;
    min-width: 0;
    width: 100%;
    padding: 0;
    box-sizing: border-box;
  }
  .nav-menu li.is-open > ul.sub-menu { max-height: 500px !important; }
  .nav-menu li ul.sub-menu li {
    width: 100%;
  }
  .nav-menu li ul.sub-menu li:last-child { border-bottom: none; }
  .nav-menu li ul.sub-menu li a {
    padding: 12px 20px 12px 36px;
    color: #fff;
    font-size: 15px;
    background: transparent;
    border-bottom: none;
  }
  .nav-menu li ul.sub-menu li a:hover { background: rgba(0,0,0,0.1); color: #fff; }
.navbar-logo img {
    height: 46px;
    width: auto;
}
  /* ── Hero ── */
  .hero-inner {
    grid-template-columns: 1fr;
    min-height: auto;
    padding-top: 0;
  }
  .hero-content {
    padding: 40px 0 32px;
    max-width: 100%;
    position: relative;
    z-index: 3;
  }
  .hero-subtitle { font-size: 14px; margin-bottom: 10px; }
  .hero-title    { font-size: 36px; margin-bottom: 16px; }
  .hero-text     { font-size: 18px; line-height: 1.55; margin-bottom: 24px; }
  .hero-image-wrap {
    position: static;   /* cancel desktop absolute */
    width: auto;
    top: auto;
    right: auto;
    padding-top: 0;
    margin-bottom: 0;
    margin-left: -16px; /* full-bleed: cancel container-l padding */
    margin-right: -16px;
    display: block;
  }
  .hero-photo { max-width: 100%; width: 100%; }

  /* ── Footer ── */
  .footer-nav-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    padding: 32px 0;
  }
  .footer-logo-img{width: 100%;}
  .footer-nav  { flex: none; width: 100%; }
  .footer-right { margin-left: 0; flex-wrap: wrap; width: 100%; gap: 16px; }
  .footer-nav-list { flex-direction: column; align-items: flex-start; gap: 4px; }
  .footer-nav-list li a { padding: 8px 0;  }
.footer-right .btn{display: block;width: 100%;text-align: center;}
  .footer-bar .container {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding: 24px 16px;
  }
  nav.footer-legal {
    width: 100%;
}


  .footer-legal-list { flex-wrap: wrap; gap: 16px 0;flex-direction: column;justify-content: center; }
  .footer-legal-list li + li::before{display: none;}
  .footer-legal-list li a { font-size: 18px; }
  .footer-copyright { font-size: 18px;width: 100%;text-align: center; }

  .site-footer .navbar-social {
    width: 100%;
    justify-content: center;
    margin: 0;
    padding: 10px;
  }
}

/* ── max-width: 768px — layout / content ── */
@media (max-width: 768px) {
nav.footer-legal {
    width: 100%;
}
  /* hero already handled in 1280px block */
  .section-logos { padding: 24px 0; }

  .btn {
    display: block;
    width: 100%;
    text-align: center;
    white-space: normal;
  }

  .cta-inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
  }
  .cta-title { font-size: 20px; }
  .cta-action{
    width:100%
  }

  /* Mobile heading scale */
  .ti-text h1, .cc-text h1, .entry-content h1, .single-post-content h1, .text-module-body h1 { font-size: 30px; }
  .ti-text h2, .cc-text h2, .entry-content h2, .single-post-content h2, .text-module-body h2 { font-size: 28px; }
  .ti-text h3, .cc-text h3, .entry-content h3, .single-post-content h3, .text-module-body h3 { font-size: 24px; }
  .ti-text h4, .cc-text h4, .entry-content h4, .single-post-content h4, .text-module-body h4 { font-size: 20px; }
  .ti-text h5, .cc-text h5, .entry-content h5, .single-post-content h5, .text-module-body h5 { font-size: 18px; }
  .ti-text h6, .cc-text h6, .entry-content h6, .single-post-content h6, .text-module-body h6 { font-size: 16px; }

  .cc-text img.alignleft,
  .cc-text .alignleft,
  .cc-text img.alignright,
  .cc-text .alignright {
    float: none;
    display: block;
    margin: 0 0 1em 0;
    max-width: 100%;
  }

  .cc-inner {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .cc-card{padding:8px;}
  .cc-card-body{
    padding:12px 0
  }
  .cc-card-wrap { position: static; }
  .cc-feature{
    gap: 8px;
  }

  .testi-title   { font-size: 28px;margin-bottom: 12px; }
  .testi-header  { margin-bottom: 20px;max-width: 100%; }
  .testi-card    { padding: 24px 16px }
  .testi-subtitle{margin-bottom:8px}
  .testi-logo{margin-bottom: 20px;}
  .section-testimonials { padding: 48px 0; overflow: hidden; }

  .testi-nav-area { display: none; }

  .testi-swiper-col {
    flex-basis: 100%;
    width: 100%;
  }
  .testi-swiper-col .swiper { overflow: visible; }

  .section-blog { padding: 48px 0; }
  .blog-title   { font-size: 28px; }
  .blog-header  { margin-bottom: 36px; }

.blog-grid {
    grid-template-columns: 1fr !important;
  }

  .section-blog--slider .blog-swiper {
    overflow: hidden;
  }
  .section-blog--slider .swiper-slide {
    height: auto;
  }

  .section-newsletter { padding: 40px 0; }
  .nl-inner { flex-direction: column; gap: 32px; }
  .nl-form [class*="sib_signup_box_inside"] {
    flex-direction: column;
    gap: 4px;
  }
  /* Input wrappers: full-width stack on mobile */
  .nl-form [class*="sib_signup_box_inside"] > p[class] {
    flex: 0 0 auto;
    width: 100%;
  }
  .nl-form #sib_signup_form_1 input[type="email"],
  .nl-form #sib_signup_form_1 input[type="text"] {
    height: 48px !important;
    border-radius: 2px!important;
  }
  /* Mobile newsletter button: full-width, text + icon centered */
  .nl-form #sib_signup_form_1 input[type="submit"],
  .nl-form #sib_signup_form_1 button[type="submit"],
  .nl-form #sib_signup_form_1 .sib-default-btn {
    width: 100% !important;
    height: 54px !important;
    border-radius: 4px !important;
    font-size: 18px !important;
    color: #fff !important;
    font-family: var(--font) !important;
    font-weight: 500 !important;
    gap: 10px !important;
    text-transform: uppercase;
    letter-spacing: 2%;
    background-image: none !important;
    padding: 0 20px !important;
  }
  /* After JS replaces <input> with <button>: flex centering of text + icon */
  .nl-form #sib_signup_form_1 button[type="submit"] {
    background-image: none !important;
    padding: 0 20px !important;
  }
  .nl-form button[type="submit"] .nl-btn-icon {
    display: block;
    width: 24px !important;
    height: 24px !important;
  }



  /* Mobile menu container: flex column — honours DOM order: items → social → CTA */
  .mobile-menu-container {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 16px;
    background-color: transparent;
  }

  /* Social icons: same desktop pill style, centred */
  .navbar-collapse .navbar-social {
    align-self: center;
    margin: 40px auto 16px auto;
    border-radius: 50px;
    background-color: #F0F0F0;
    padding: 10px;
    gap: 32px;
    border-top: none;
    justify-content: center;
    width: 100%;
  }
  .navbar-collapse .navbar-social-icon-img {
    filter: none;
  }
  .nav-menu > li:last-child {
    border-bottom: none;
}
 .navbar-collapse  .navbar-social-link svg, .navbar-social-link img.navbar-social-icon-img{width: 32px;height:32px;}
  /* CTA buttons: full-width, white on green */
  .navbar-cta {
    flex-direction: column;
    align-items: stretch;
    padding:16px 0;
    gap: 10px;
    width: 100%;
    box-sizing: border-box;
    background-color: transparent;
  }
  .navbar-cta .btn {
    width: 100%;
    text-align: center;
  }
  .navbar-cta .btn-white {
    background: transparent !important;
    color: #fff !important;
    border: 2px solid #fff !important;
  }
  .navbar-cta .btn-primary {
    background: #fff !important;
    color: var(--green) !important;
    border: 2px solid #fff !important;
  }

  .footer-bar .container { flex-direction: column; justify-content: center; text-align: center; }

  .section-text-module { padding: 48px 0; }
  .text-module-body { font-size: 16px; }
  /* Tighter table cells + smaller text so data tables fit on mobile */
  .ti-text th, .ti-text td,
  .cc-text th, .cc-text td,
  .entry-content th, .entry-content td,
  .single-post-content th, .single-post-content td,
  .text-module-body th, .text-module-body td {
    padding: 8px 10px;
    font-size: 14px;
  }

  .single-post-main  { padding-top: 0; padding-bottom: 48px; }
  .single-post .site-breadcrumbs,
  .single-tribe_events .site-breadcrumbs { padding:8px 16px 40px 16px; }
  .single-related    { padding: 48px 0; border-top: 0px;}
  /* Allow related-swiper slides to peek right of the container */
  .single-related .container { overflow: visible; }
  .related-swiper { overflow: visible; }
  .single-featured-img { margin-bottom: 12px; border-radius: 12px; }
  .single-toc #ez-toc-container { padding: 18px 20px; }
  .single-post-content { margin-bottom: 16px; }
  .single-post-author { margin-bottom: 28px; }

  /* Events */
  .event-meta-box { gap: 12px; padding: 16px; }
  .event-meta-item { font-size: 14px; }
  .event-back-link { margin-top: 28px; padding-top: 20px; }
}

/* ── max-width: 600px ── */
@media (max-width: 600px) {
  .section-team { padding: 48px 0; }
  .team-grid    { gap: 20px; }
  .team-member  { width: 100%; } /* 1 per row */
  .team-member-photo { width: 185px; height: 185px; }
  .team-actions{gap: 10px;}

  .section-contact { padding: 48px 0; }
  .contact-form-card { padding: 24px 8px; }
  .contact-form-card .cf7-field{margin-bottom:8px}

  /* footer already handled at 1280px breakpoint */
}

/* ── max-width: 560px ── */
@media (max-width: 560px) {
  .features-grid { grid-template-columns: 1fr; gap:12px}
  .section-title { font-size: 28px; margin-bottom: 12px;}
}

/* ── max-width: 480px ── */
@media (max-width: 480px) {
  .hero-title { font-size: 26px; }
  /* hero-photo stays full-width — no max-width cap on small phones */

  .sc-grid,
  .sc-grid--3,
  .sc-grid--2 { grid-template-columns: 1fr; gap: 12px; margin-bottom: 20px; }
  .sc-grid--1 { grid-template-columns: minmax(0, 320px); }
  /* No aspect-ratio override on the card — let the image's own ratio control it */

  .team-member-photo { width: 185px; height: 185px; }

  .error-egg  { width: 100%; height: auto; }
  .error-title { font-size: 24px; }
  .page-404-main { padding-top: calc(var(--nav-h) + 48px); padding-bottom: 48px; }
  .error-btn { width: auto; display: inline-flex; } /* override global btn block on mobile */
}

/* ── min-width: 769px (desktop layout) ── */
@media (min-width: 769px) {
  /* To-top sits near the bottom; reviews badge floats above it */
  .to-top-btn { bottom: 24px; }

  .reviews-badge--desktop {
    display: inline-block;
    position: fixed;
    right: 20px;
    bottom: 84px;   /* 24px (btn bottom) + 48px (btn height) + 12px gap */
    z-index: 95;
  }
  .reviews-badge--mobile {
    display: none;
  }
}

/* ==========================================================================
   The Events Calendar — theme color overrides
   ========================================================================== */

/* Font */
.tribe-common,
.tribe-events {
  font-family: var(--font) !important;
  color: var(--text);
}

/* ---- Primary filled button (e.g. search submit) ---- */
.tribe-common-c-btn,
.tribe-events-c-search__button,
.tribe-events-c-search__button:active,
.tribe-events-c-search__button:focus {
  background-color: var(--green) !important;
  border-color: var(--green) !important;
  color: #fff !important;
  font-family: var(--font) !important;
  border-radius: 6px !important;
}
.tribe-common-c-btn:hover,
.tribe-events-c-search__button:hover {
  background-color: var(--green-dark) !important;
  border-color: var(--green-dark) !important;
}

/* ---- Bordered / outline buttons (Today, Subscribe) ---- */
.tribe-common-c-btn-border,
.tribe-common-c-btn-border-small,
.tribe-events-c-top-bar__today-button,
.tribe-events-c-subscribe-dropdown__button {
  border-color: var(--green) !important;
  color: var(--green) !important;
  font-family: var(--font) !important;
  border-radius: 6px !important;
}
.tribe-common-c-btn-border:hover,
.tribe-common-c-btn-border-small:hover,
.tribe-events-c-top-bar__today-button:hover {
  background-color: var(--green) !important;
  color: #fff !important;
}

/* ---- Bottom nav: Prev / Heute / Next ---- */
.tribe-events-c-nav__today {
  color: var(--green) !important;
  border-color: var(--green) !important;
  font-family: var(--font) !important;
}
.tribe-events-c-nav__today:hover {
  background-color: var(--green) !important;
  color: #fff !important;
}
.tribe-events-c-nav__prev,
.tribe-events-c-nav__next {
  color: var(--text) !important;
  font-family: var(--font) !important;
}
.tribe-events-c-nav__prev:hover,
.tribe-events-c-nav__next:hover {
  color: var(--green) !important;
}

/* ---- Event title link ---- */
.tribe-events-calendar-list__event-title-link {
  color: var(--text) !important;
  font-family: var(--font) !important;
}
.tribe-events-calendar-list__event-title-link:hover {
  color: var(--green) !important;
}

/* ---- Month separator ---- */
.tribe-events-calendar-list__month-separator-text {
  color: var(--green) !important;
  font-family: var(--font) !important;
  border-color: var(--green) !important;
}

/* ---- Date tag (day number + weekday) ---- */
.tribe-events-calendar-list__event-date-tag-daynum {
  color: var(--green) !important;
  font-family: var(--font) !important;
}
.tribe-events-calendar-list__event-date-tag-weekday {
  color: var(--text-light) !important;
  font-family: var(--font) !important;
}

/* ---- View selector ---- */
.tribe-events-c-view-selector__button,
.tribe-events-c-view-selector__list-item-link {
  color: var(--text) !important;
  font-family: var(--font) !important;
}
.tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__list-item-link,
.tribe-events-c-view-selector__button[aria-current="true"] {
  color: var(--green) !important;
}

/* ---- SVG icon fills ---- */
.tribe-common-c-svgicon__svg-fill {
  fill: currentColor !important;
}

/* ---- Events bar border ---- */
.tribe-events-c-events-bar--border {
  border-color: #e0e0e0 !important;
}

/* ---- Search input ---- */
.tribe-common-form-control-text__input {
  font-family: var(--font) !important;
  border-color: #e0e0e0 !important;
  color: var(--text) !important;
  border-radius: 6px !important;
}
.tribe-common-form-control-text__input:focus {
  border-color: var(--green) !important;
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(106,164,40,.2) !important;
}

/* ---- Loading dots ---- */
.tribe-common-c-loader__dot {
  fill: var(--green) !important;
}

/* ---- Subscribe dropdown links ---- */
.tribe-events-c-subscribe-dropdown__list-item-link {
  color: var(--text) !important;
  font-family: var(--font) !important;
}
.tribe-events-c-subscribe-dropdown__list-item-link:hover {
  color: var(--green) !important;
}

/* ---- Datepicker button ---- */
.tribe-events-c-top-bar__datepicker-button {
  color: var(--text) !important;
  font-family: var(--font) !important;
}
.tribe-events-c-top-bar__datepicker-button:hover {
  color: var(--green) !important;
}


@media (max-width: 1280px) {
  .nav-menu > li.menu-item-has-children > a:focus {
    scroll-margin-top: 9999px!important;
  }
}
