/*!
Theme Name: SWP Junk Removal Pro
Theme URI: https://scintillawpthemes.com/themes/swp-junk-removal-pro/
Author: ScintillaWPThemes
Author URI: https://scintillawpthemes.com/
Description: SWP Junk Removal Pro is a fast, WooCommerce-ready WordPress theme for junk removal, waste collection, rubbish clearance and recycling companies. It ships a section-built homepage, a Services custom post type, Contact Form 7 booking forms, a scroll-triggered promo popup, a testimonial carousel and a one-click demo importer.
Version: 2.0.1
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: swp-junk-removal-pro
Tags: business, portfolio, blog, e-commerce, one-column, two-columns, right-sidebar, custom-colors, custom-logo, custom-menu, featured-images, block-styles, wide-blocks, translation-ready, theme-options, threaded-comments
*/

/* ============================================================
   TABLE OF CONTENTS
   01. Tokens
   02. Reset + base
   03. Shared components
   04. Header
   05. Hero
   06. Ticker
   07. About band
   08. Mission / vision
   09. Services (tabbed)
   10. Stats band
   11. Why choose us
   12. Process
   13. Quote strip + forms
   14. Service areas
   15. Partners
   16. Team
   17. Testimonials carousel
   18. CTA banner
   19. Blog grid
   20. FAQ
   21. Newsletter
   22. Products (WooCommerce section)
   23. Footer
   24. Popup
   25. Page banner + inner pages
   26. Blog templates + comments + widgets
   27. WooCommerce
   28. Preloader + back to top
   29. Motion
   30. Responsive
   ============================================================ */

/* ============================================================
   01. TOKENS
   The Customizer overwrites these with an inline <style> block,
   so every value below doubles as the theme's shipped default.
   ============================================================ */
:root{
  /* Brand palette */
  --forest-900:#0C2113;      /* footer / deepest surface        */
  --forest-800:#14351E;      /* dark sections                   */
  --forest-700:#1D4A2A;      /* dark surface tint / hover       */
  --lime-500:#B7EC5C;        /* primary action colour           */
  --lime-400:#C9F27E;        /* light lime fill                 */
  --lime-200:#E4F9C4;        /* faint lime wash                 */
  --mint-100:#EEF5EF;        /* page section wash               */
  --mint-050:#F7FAF7;        /* card wash                       */

  /* Neutrals */
  --ink:#0F2417;             /* headings on light               */
  --body:#546258;            /* body text on light              */
  --body-inv:#C3D6C8;        /* body text on dark               */
  --line:#DFE9E1;            /* hairline on light               */
  --line-dark:#2A5335;       /* hairline on dark                */
  --white:#FFFFFF;
  --star:#F2A93B;

  /* Type */
  --font-display:"Plus Jakarta Sans","Segoe UI",system-ui,sans-serif;
  --font-body:"Inter","Segoe UI",system-ui,sans-serif;

  /* Radius + shadow */
  --r-sm:10px;
  --r-md:16px;
  --r-lg:24px;
  --r-xl:32px;
  --r-pill:999px;
  --shadow-card:0 18px 40px -24px rgba(12,33,19,.35);
  --shadow-float:0 26px 60px -28px rgba(12,33,19,.5);

  /* Layout */
  --wrap:1220px;
  --gutter:24px;
}

/* ============================================================
   02. RESET + BASE
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--white);
  color:var(--body);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
button{font:inherit;cursor:pointer;}
ul{margin:0;padding:0;list-style:none;}
figure{margin:0;}
hr{border:0;border-top:1px solid var(--line);margin:32px 0;}

h1,h2,h3,h4,h5,h6{
  font-family:var(--font-display);
  color:var(--ink);
  margin:0 0 .5em;
  line-height:1.14;
  letter-spacing:-.02em;
  font-weight:700;
}
h1{font-size:clamp(2.4rem,4.6vw,3.65rem);font-weight:800;}
h2{font-size:clamp(1.85rem,3.1vw,2.55rem);}
h3{font-size:1.2rem;}
h4{font-size:1.02rem;}
h5{font-size:.98rem;}
h6{font-size:.9rem;}
p{margin:0 0 1em;}
p:last-child{margin-bottom:0;}
blockquote{margin:0 0 1em;}
code,kbd,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;}
pre{background:var(--mint-050);border:1px solid var(--line);border-radius:var(--r-md);padding:18px;overflow:auto;}
table{border-collapse:collapse;width:100%;}
:focus-visible{outline:3px solid var(--lime-500);outline-offset:3px;border-radius:4px;}

.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter);}
.section{padding:96px 0;}
.section--tight{padding:72px 0;}
.bg-mint{background:var(--mint-100);}
.bg-dark{background:var(--forest-800);color:var(--body-inv);}
.bg-dark h2,.bg-dark h3,.bg-dark h4,.bg-dark h5{color:var(--white);}

/* WordPress accessibility helpers */
.screen-reader-text{
  border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;
  overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important;
}
.screen-reader-text:focus{
  background:var(--white);clip:auto!important;clip-path:none;color:var(--ink);display:block;
  font-size:.9rem;height:auto;left:16px;line-height:normal;padding:14px 22px;
  text-decoration:none;top:16px;width:auto;z-index:100000;border-radius:0 0 12px 12px;
}
.skip-link{
  position:absolute;left:16px;top:-80px;z-index:200;background:var(--forest-800);color:var(--white);
  font-family:var(--font-display);font-weight:600;padding:12px 20px;border-radius:0 0 12px 12px;transition:top .2s ease;
}
.skip-link:focus{top:0;color:var(--white);}

/* Core block alignment */
.alignleft{float:left;margin:.4em 1.6em 1em 0;}
.alignright{float:right;margin:.4em 0 1em 1.6em;}
.aligncenter{margin-inline:auto;display:block;}
.alignwide{margin-inline:-60px;max-width:calc(100% + 120px);}
.alignfull{margin-inline:calc(50% - 50vw);max-width:100vw;width:100vw;}
.wp-caption{max-width:100%;}
.wp-caption-text,figcaption{font-size:.84rem;color:var(--body);margin-top:8px;text-align:center;}
.sticky .post-title::before{content:"★ ";color:var(--lime-500);}

/* ============================================================
   03. SHARED COMPONENTS
   ============================================================ */
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-display);font-size:.8rem;font-weight:600;
  color:var(--forest-700);background:var(--white);
  border:1px solid var(--line);border-radius:var(--r-pill);
  padding:6px 14px 6px 8px;margin-bottom:18px;
}
.eyebrow svg{width:16px;height:16px;flex:none;color:var(--forest-700);}
.bg-dark .eyebrow{background:rgba(255,255,255,.06);border-color:var(--line-dark);color:var(--lime-400);}
.bg-dark .eyebrow svg{color:var(--lime-500);}
.bg-mint .eyebrow{background:var(--white);}

.section-head{max-width:640px;}
.section-head--center{margin-inline:auto;text-align:center;}
.lede{font-size:1.02rem;color:var(--body);}
.bg-dark .lede{color:var(--body-inv);}

.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-display);font-weight:600;font-size:.95rem;
  padding:14px 24px;border-radius:var(--r-pill);border:1px solid transparent;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
  text-align:center;
}
.btn svg{width:18px;height:18px;flex:none;}
.btn--lime{background:var(--lime-500);color:var(--forest-900);}
.btn--lime:hover{background:var(--lime-400);color:var(--forest-900);}
.btn--dark{background:var(--forest-800);color:var(--white);}
.btn--dark:hover{background:var(--forest-700);color:var(--white);}
.btn--ghost{background:transparent;color:var(--white);border-color:rgba(255,255,255,.35);}
.btn--ghost:hover{background:rgba(255,255,255,.1);color:var(--white);}
.btn--outline{background:transparent;color:var(--ink);border-color:var(--line);}
.btn--outline:hover{border-color:var(--forest-700);color:var(--ink);}
.btn--block{width:100%;justify-content:center;}
.bg-dark .btn--outline{color:var(--white);border-color:var(--line-dark);}
.bg-dark .btn--outline:hover{border-color:var(--lime-500);}

.tick{display:flex;gap:10px;align-items:flex-start;font-size:.92rem;color:var(--body);}
.tick svg{width:18px;height:18px;flex:none;margin-top:3px;color:var(--forest-700);}
.bg-dark .tick{color:var(--body-inv);}
.bg-dark .tick svg{color:var(--lime-500);}

.chip{
  background:var(--lime-500);color:var(--forest-900);font-family:var(--font-display);
  font-weight:700;font-size:.72rem;padding:5px 12px;border-radius:var(--r-pill);
}
.stars{display:flex;gap:3px;}
.stars svg{width:15px;height:15px;color:var(--lime-500);}
.link-arrow{
  display:inline-flex;align-items:center;gap:8px;font-family:var(--font-display);
  font-weight:600;font-size:.92rem;color:var(--forest-700);
}
.link-arrow svg{width:17px;height:17px;transition:transform .25s ease;}
.link-arrow:hover svg{transform:translateX(4px);}
.bg-dark .link-arrow{color:var(--lime-500);}

/* [accent]…[/accent] in any Customizer heading */
.accent{font-style:normal;color:var(--forest-700);}
.bg-dark .accent,.hero .accent,.cta-copy .accent{color:var(--lime-500);}
.light{opacity:.72;}

/* ============================================================
   04. HEADER
   ============================================================ */
.site-header{position:sticky;top:0;z-index:60;background:var(--white);border-bottom:1px solid var(--line);transition:box-shadow .25s ease;}
.site-header.is-stuck{box-shadow:0 10px 30px -22px rgba(12,33,19,.55);}
.header-bar{display:flex;align-items:center;gap:20px;height:78px;flex-wrap:nowrap;}
.logo{display:flex;align-items:center;gap:11px;}
.logo svg{width:38px;height:38px;flex:none;}
.logo img{max-height:46px;width:auto;}
.logo-word{font-family:var(--font-display);font-weight:800;font-size:1.12rem;color:var(--ink);letter-spacing:-.02em;line-height:1;}
.logo-word span{display:block;font-size:.62rem;font-weight:600;letter-spacing:.14em;color:var(--forest-700);margin-top:3px;text-transform:uppercase;}

/* The nav sits between the logo and the actions and never wraps — a wrapped
   menu item breaks the 78px bar height the whole header is built on. */
.nav{margin-left:auto;display:flex;gap:22px;}
.nav ul{display:flex;gap:22px;align-items:center;}
.nav li{position:relative;}
.nav a{
  display:block;font-family:var(--font-display);font-weight:500;font-size:.94rem;
  color:var(--ink);padding:6px 0;border-bottom:2px solid transparent;white-space:nowrap;
}
.nav .sub-menu a{white-space:normal;}
.nav a:hover,.nav .current-menu-item>a,.nav .current_page_item>a,
.nav .current-menu-ancestor>a,.nav a[aria-current]{border-bottom-color:var(--lime-500);}
.nav .menu-item-has-children>a::after{
  content:"";display:inline-block;width:6px;height:6px;margin-left:7px;vertical-align:2px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);
}
.nav .sub-menu{
  position:absolute;top:100%;left:-18px;min-width:236px;background:var(--white);
  border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-float);
  padding:10px;display:block;flex-direction:column;gap:0;
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .2s ease,transform .2s ease,visibility .2s;z-index:20;
}
.nav li:hover>.sub-menu,.nav li:focus-within>.sub-menu{opacity:1;visibility:visible;transform:none;}
.nav .sub-menu li{width:100%;}
.nav .sub-menu a{padding:9px 14px;border-radius:var(--r-sm);border-bottom:none;font-size:.9rem;}
.nav .sub-menu a:hover{background:var(--mint-100);border-bottom:none;}
.nav .sub-menu .sub-menu{top:0;left:100%;}

.header-cta{display:flex;align-items:center;gap:12px;margin-left:auto;flex:none;}
.nav + .header-cta{margin-left:0;}
.header-cta .btn{white-space:nowrap;}
.header-phone{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:700;font-size:.92rem;color:var(--ink);white-space:nowrap;}
.header-phone .ico{width:38px;height:38px;border-radius:50%;background:var(--mint-100);display:grid;place-items:center;flex:none;}
.header-phone .ico svg{width:17px;height:17px;color:var(--forest-700);}
.header-phone small{display:block;font-weight:500;font-size:.7rem;color:var(--body);}

.icon-btn{
  background:none;border:1px solid var(--line);border-radius:12px;padding:9px;color:var(--ink);
  display:grid;place-items:center;transition:border-color .2s ease;
}
.icon-btn:hover{border-color:var(--forest-700);}
.icon-btn svg{width:19px;height:19px;display:block;}
.hdr-search{position:relative;}
.search-pop{
  position:absolute;right:0;top:calc(100% + 14px);width:320px;background:var(--white);
  border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-float);padding:14px;
  opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease,visibility .2s;z-index:30;
}
.search-pop.open{opacity:1;visibility:visible;transform:none;}

.nav-toggle{display:none;background:none;border:1px solid var(--line);border-radius:12px;padding:9px;color:var(--ink);}
.nav-toggle svg{width:20px;height:20px;display:block;}
.nav-toggle svg + svg{display:none;}
.nav-toggle[aria-expanded="true"] svg{display:none;}
.nav-toggle[aria-expanded="true"] svg + svg{display:block;}

/* Mobile drawer */
.mobile-nav{display:none;border-top:1px solid var(--line);background:var(--white);max-height:78vh;overflow-y:auto;}
.mobile-nav.is-open{display:block;}
.mobile-nav ul{padding:12px var(--gutter) 22px;}
.mobile-nav .sub-menu{padding:0 0 8px 16px;display:none;}
.mobile-nav .menu-item-has-children.is-open>.sub-menu{display:block;}
.mobile-nav li{border-bottom:1px solid var(--line);position:relative;}
.mobile-nav .sub-menu li{border-bottom:none;}
.mobile-nav li:last-child{border-bottom:none;}
.mobile-nav a{display:block;padding:14px 0;font-family:var(--font-display);font-weight:600;color:var(--ink);}
.mobile-nav .sub-menu a{padding:9px 0;font-weight:500;font-size:.92rem;color:var(--body);}
.mobile-nav .sub-toggle{
  position:absolute;right:0;top:6px;background:none;border:1px solid var(--line);
  border-radius:8px;padding:6px;color:var(--ink);line-height:0;
}
.mobile-nav .sub-toggle svg{width:16px;height:16px;transition:transform .2s ease;}
.mobile-nav .is-open>.sub-toggle svg{transform:rotate(180deg);}
.mobile-nav .mnav-actions{padding:0 var(--gutter) 22px;display:grid;gap:10px;}
.mobile-nav .btn{width:100%;justify-content:center;}

/* Sticky mobile action bar */
.action-bar{display:none;}
.action-bar .btn{flex:1;justify-content:center;padding:13px 16px;}

/* ============================================================
   05. HERO
   ============================================================ */
.hero{padding:0;}
.hero-panel{
  position:relative;border-radius:0 0 var(--r-xl) var(--r-xl);overflow:hidden;
  min-height:640px;display:flex;align-items:flex-end;
  background:var(--forest-800);
}
.hero-panel > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero-panel::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(9,28,16,.95) 2%,rgba(9,28,16,.82) 38%,rgba(9,28,16,.30) 66%,rgba(9,28,16,.06) 88%);
}
.hero-inner{position:relative;z-index:2;width:100%;max-width:var(--wrap);margin-inline:auto;padding:96px var(--gutter) 78px;}
.hero-copy{max-width:660px;}
.hero-rating{display:flex;align-items:center;gap:14px;margin-bottom:22px;flex-wrap:wrap;}
.hero-rating span{font-size:.82rem;color:#DCEADF;}
.rating-pill{border:1px solid rgba(255,255,255,.24);border-radius:var(--r-pill);padding:5px 13px;font-size:.78rem;color:#DCEADF;}
.hero h1{color:var(--white);margin-bottom:20px;}
.hero h1 em,.hero h1 .accent{font-style:normal;color:var(--lime-500);}
.hero p{color:#C9DCCF;max-width:520px;font-size:1rem;}
.hero-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:30px;}
.hero-phone{display:flex;align-items:center;gap:11px;color:var(--white);font-family:var(--font-display);font-weight:600;}
.hero-phone .ico{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.12);flex:none;}
.hero-phone .ico svg{width:18px;height:18px;color:var(--lime-500);}
.hero-phone small{display:block;font-weight:400;font-size:.74rem;color:#A9C3B1;}

/* ============================================================
   06. FEATURE TICKER
   ============================================================ */
.ticker{border-bottom:1px solid var(--line);overflow:hidden;padding:20px 0;}
.ticker-track{display:flex;gap:44px;align-items:center;animation:slide 36s linear infinite;width:max-content;}
.ticker-item{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:600;font-size:.92rem;color:var(--ink);white-space:nowrap;}
.ticker-item svg{width:17px;height:17px;color:var(--forest-700);flex:none;}
@keyframes slide{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ============================================================
   07. ABOUT BAND
   ============================================================ */
.about-cols{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:56px;align-items:start;}
.about-cols h2{margin-bottom:0;}
.about-points{display:grid;grid-template-columns:1fr 1fr;gap:12px 26px;margin-top:28px;}
.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:54px;padding-top:44px;border-top:1px solid var(--line);}
.stat-cell{display:flex;flex-direction:column;align-items:flex-start;}
.stat-cell strong{display:block;font-family:var(--font-display);font-size:2.5rem;font-weight:800;color:var(--ink);line-height:1;margin-bottom:10px;}
.stat-cell span{display:block;font-size:.88rem;max-width:215px;}
.avatars{display:flex;margin-top:16px;}
.avatars svg,.avatars img{width:36px;height:36px;border-radius:50%;border:2px solid var(--white);margin-left:-11px;background:var(--lime-200);object-fit:cover;}
.avatars svg:first-child,.avatars img:first-child{margin-left:0;}

/* ============================================================
   08. MISSION / VISION
   ============================================================ */
.mission-top{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:56px;align-items:center;}
.mission-photo{border-radius:var(--r-lg);overflow:hidden;height:330px;}
.mission-photo img{width:100%;height:100%;object-fit:cover;}
.mv-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:56px;}
.mv-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;display:grid;grid-template-columns:1fr 168px;gap:22px;align-items:center;}
.mv-card .mv-photo{height:158px;border-radius:var(--r-md);overflow:hidden;}
.mv-card .mv-photo img{width:100%;height:100%;object-fit:cover;}
.mv-badge{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.mv-badge .ico{width:38px;height:38px;border-radius:50%;background:var(--lime-200);display:grid;place-items:center;flex:none;}
.mv-badge .ico svg{width:19px;height:19px;color:var(--forest-700);}
.mv-badge h3{margin:0;font-size:1.02rem;}
.mv-card p{font-size:.9rem;margin-bottom:14px;}
.mv-card .tick{font-size:.85rem;margin-bottom:7px;}

/* ============================================================
   09. SERVICES — tabbed switcher
   ============================================================ */
.services-head{text-align:center;max-width:660px;margin:0 auto 48px;}
.haul{display:grid;grid-template-columns:minmax(0,350px) minmax(0,1fr);gap:26px;align-items:start;}
.haul-tabs{display:grid;gap:12px;}
.haul-tab{
  position:relative;display:grid;gap:5px;width:100%;text-align:left;
  background:rgba(255,255,255,.04);border:1px solid var(--line-dark);border-radius:var(--r-md);
  padding:20px 46px 20px 26px;color:var(--body-inv);overflow:hidden;
  transition:background .25s ease,border-color .25s ease,transform .25s cubic-bezier(.22,.61,.36,1);
}
.haul-tab::before{
  content:"";position:absolute;left:0;top:16px;bottom:16px;width:3px;border-radius:0 3px 3px 0;
  background:transparent;transition:background .25s ease,top .25s ease,bottom .25s ease;
}
.haul-tab:hover{background:rgba(255,255,255,.08);transform:translateX(3px);}
.haul-tab[aria-selected="true"]{background:rgba(183,236,92,.11);border-color:var(--lime-500);}
.haul-tab[aria-selected="true"]::before{background:var(--lime-500);top:0;bottom:0;}
.haul-tab .idx{font-family:var(--font-display);font-size:.72rem;font-weight:700;letter-spacing:.14em;color:var(--lime-500);}
.haul-tab .ttl{font-family:var(--font-display);font-size:1.06rem;font-weight:700;color:var(--white);line-height:1.3;}
.haul-tab .sum{font-size:.84rem;line-height:1.5;}
.haul-tab .go{
  position:absolute;right:20px;top:50%;width:19px;height:19px;color:var(--lime-500);
  transform:translateY(-50%) translateX(-6px);opacity:0;transition:opacity .25s ease,transform .25s ease;
}
.haul-tab[aria-selected="true"] .go{opacity:1;transform:translateY(-50%) translateX(0);}

.haul-panel{display:none;}
.haul-panel.is-active{
  display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  background:rgba(255,255,255,.05);border:1px solid var(--line-dark);
  border-radius:var(--r-lg);overflow:hidden;
  animation:panelIn .42s cubic-bezier(.22,.61,.36,1) both;
}
@keyframes panelIn{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
.haul-photo{position:relative;min-height:420px;}
.haul-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.haul-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,26,15,.28),rgba(8,26,15,.62));}
.haul-flag{
  position:absolute;z-index:2;left:20px;top:20px;background:var(--lime-500);color:var(--forest-900);
  font-family:var(--font-display);font-size:.7rem;font-weight:700;padding:6px 13px;border-radius:var(--r-pill);
}
.haul-detail{padding:34px 34px 32px;}
.haul-detail h3{font-size:1.42rem;color:var(--white);margin-bottom:12px;}
.haul-detail h3 a:hover{color:var(--lime-500);}
.haul-detail > p{font-size:.93rem;color:var(--body-inv);max-width:520px;}
.haul-list{display:grid;grid-template-columns:1fr 1fr;gap:11px 24px;margin:22px 0 24px;}
.haul-list li{display:flex;gap:10px;align-items:flex-start;font-size:.88rem;color:var(--body-inv);}
.haul-list li svg{width:15px;height:15px;flex:none;margin-top:4px;color:var(--lime-500);}
.haul-facts{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:26px;}
.haul-fact{
  display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--body-inv);
  border:1px solid var(--line-dark);border-radius:var(--r-pill);padding:7px 14px;
}
.haul-fact svg{width:15px;height:15px;flex:none;color:var(--lime-500);}
.haul-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.haul-note{font-size:.85rem;color:var(--body-inv);}
.haul-note a{color:var(--lime-500);border-bottom:1px solid rgba(183,236,92,.5);}
.services-foot{
  display:flex;justify-content:center;align-items:center;gap:14px;margin-top:44px;flex-wrap:wrap;
  background:rgba(255,255,255,.05);border:1px solid var(--line-dark);border-radius:var(--r-pill);
  padding:14px 22px;width:max-content;margin-inline:auto;max-width:100%;
}
.services-foot span{font-family:var(--font-display);font-weight:600;color:var(--white);font-size:.95rem;}
.services-foot .chip{color:var(--forest-900);}
.services-foot a{color:var(--lime-500);font-family:var(--font-display);font-weight:600;border-bottom:1px solid var(--lime-500);}

/* ============================================================
   10. STATS BAND
   ============================================================ */
.stats-band{background:var(--lime-500);}
.stats-band .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;padding-block:38px;}
.stat{display:flex;align-items:center;gap:16px;justify-content:center;}
.stat strong{font-family:var(--font-display);font-size:2.6rem;font-weight:800;color:var(--forest-900);line-height:1;}
.stat span{font-size:.84rem;color:var(--forest-800);max-width:130px;line-height:1.4;}

/* ============================================================
   11. WHY CHOOSE US
   ============================================================ */
.why-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:56px;align-items:center;}
.why-photo{position:relative;border-radius:var(--r-lg);overflow:hidden;height:420px;}
.why-photo img{width:100%;height:100%;object-fit:cover;}
.float-pill{
  position:absolute;display:flex;align-items:center;gap:9px;background:var(--white);
  border-radius:var(--r-pill);padding:9px 16px 9px 10px;box-shadow:var(--shadow-float);
  font-family:var(--font-display);font-size:.82rem;font-weight:600;color:var(--ink);
}
.float-pill .ico{width:26px;height:26px;border-radius:50%;background:var(--lime-500);display:grid;place-items:center;flex:none;}
.float-pill .ico svg{width:14px;height:14px;color:var(--forest-900);}
.float-pill.a{left:22px;bottom:78px;}
.float-pill.b{left:22px;bottom:24px;}
.why-features{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:56px;}
.feature{background:var(--white);border:1px solid var(--line);border-radius:var(--r-md);padding:24px 20px;text-align:center;}
.feature .ico{width:54px;height:54px;border-radius:50%;background:var(--forest-800);display:grid;place-items:center;margin:0 auto 16px;}
.feature .ico svg{width:24px;height:24px;color:var(--lime-500);}
.feature h4{font-family:var(--font-display);font-size:.95rem;margin:0;color:var(--ink);line-height:1.4;}

/* ============================================================
   12. PROCESS
   ============================================================ */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:46px;}
.step{background:var(--mint-050);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px;}
.step--accent{background:var(--lime-400);border-color:var(--lime-500);}
.step-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;}
.step-no{font-family:var(--font-display);font-size:2.1rem;font-weight:800;color:var(--forest-800);line-height:1;}
.step-top svg{width:34px;height:34px;color:var(--forest-700);}
.step h3{font-size:1.15rem;}
.step p{font-size:.9rem;margin-bottom:16px;}
.step .tick{font-size:.85rem;margin-bottom:7px;}

/* ============================================================
   13. QUOTE STRIP + FORMS
   ============================================================ */
.quote-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,500px);gap:56px;align-items:center;}
.quote-lines{display:grid;gap:11px;margin:24px 0 30px;}
.quote-contact{display:flex;gap:34px;flex-wrap:wrap;}
.quote-contact a{display:flex;gap:12px;align-items:center;font-family:var(--font-display);font-weight:600;font-size:.95rem;color:var(--ink);}
.quote-contact .ico{width:44px;height:44px;border-radius:50%;background:var(--white);border:1px solid var(--line);display:grid;place-items:center;flex:none;}
.quote-contact .ico svg{width:18px;height:18px;color:var(--forest-700);}
.quote-contact small{display:block;font-weight:400;font-size:.76rem;color:var(--body);}
.quote-card{
  background:var(--white);border:2px solid var(--lime-500);
  border-radius:var(--r-lg);padding:34px 30px;box-shadow:var(--shadow-card);
}
.quote-card h3{font-size:1.55rem;text-align:center;margin-bottom:22px;}

/* Fields — shared by the built-in form, CF7 and WooCommerce */
.field{margin-bottom:14px;}
.field label,.quote-card label{display:block;font-family:var(--font-display);font-size:.78rem;font-weight:600;color:var(--ink);margin-bottom:6px;}
.field input,.field select,.field textarea,
.quote-card input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.quote-card select,.quote-card textarea{
  width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-sm);
  font-family:var(--font-body);font-size:.9rem;color:var(--ink);background:var(--mint-050);
}
/* An explicit height, not just a floor: Contact Form 7 emits rows="10" on its
   textareas, and a min-height alone leaves them three times the design size. */
.field textarea,.quote-card textarea{resize:vertical;min-height:92px;height:92px;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--lime-500);background:var(--white);}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.quote-card .btn{width:100%;justify-content:center;margin-top:6px;}
.form-note{font-size:.76rem;text-align:center;margin-top:12px;color:var(--body);}
.form-alert{
  border-radius:var(--r-sm);padding:12px 16px;font-size:.88rem;margin-bottom:16px;
  background:var(--lime-200);color:var(--forest-800);border:1px solid var(--lime-500);
}
.form-alert.is-error{background:#FDECEC;border-color:#F0B4B4;color:#8C2323;}

/* Contact Form 7 — inherits the theme field styling */
.wpcf7 form .wpcf7-response-output{
  border-radius:var(--r-sm);border-width:1px;margin:16px 0 0;padding:12px 16px;font-size:.86rem;
}
.wpcf7-not-valid-tip{font-size:.76rem;color:#B03030;margin-top:5px;}
.wpcf7 input:not([type=submit]):not([type=checkbox]):not([type=radio]),
.wpcf7 select,.wpcf7 textarea{
  width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-sm);
  font-family:var(--font-body);font-size:.9rem;color:var(--ink);background:var(--mint-050);
}
.wpcf7 textarea{min-height:92px;height:92px;resize:vertical;}
/* The theme upgrades CF7's submit <input> to a <button> so the arrow icon can
   live inside it — see swp_cf7_submit_button(). Both are styled here in case a
   plugin filters that markup back. */
.wpcf7 input[type=submit],
.wpcf7 button[type=submit]{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;
  font-family:var(--font-display);font-weight:600;font-size:.95rem;padding:14px 24px;
  border-radius:var(--r-pill);border:1px solid transparent;background:var(--forest-800);color:var(--white);
  transition:background .18s ease;margin-top:6px;cursor:pointer;
}
.wpcf7 input[type=submit]:hover,
.wpcf7 button[type=submit]:hover{background:var(--forest-700);}
.wpcf7 button[type=submit] svg{width:18px;height:18px;flex:none;transition:transform .25s ease;}
.wpcf7 button[type=submit]:hover svg{transform:translateX(4px);}
.wpcf7 .wpcf7-spinner{display:block;margin:10px auto 0;}
.quote-card .wpcf7 input[type=submit]{background:var(--forest-800);}

/* Search form */
.search-form{display:flex;gap:8px;}
.search-form label{flex:1;}
.search-form .search-field{
  width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-sm);
  background:var(--mint-050);font-family:var(--font-body);font-size:.9rem;color:var(--ink);
}
.search-form .search-submit{
  border:none;border-radius:var(--r-sm);background:var(--lime-500);color:var(--forest-900);
  font-family:var(--font-display);font-weight:600;padding:0 18px;font-size:.88rem;
}

/* ============================================================
   14. SERVICE AREAS
   ============================================================ */
.areas-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:56px;align-items:center;}
.city-list{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 28px;}
.city{
  display:flex;align-items:center;gap:7px;border:1px solid var(--line-dark);border-radius:var(--r-pill);
  padding:8px 15px;font-size:.85rem;color:var(--white);font-family:var(--font-display);font-weight:500;
  transition:border-color .25s ease,background .25s ease;
}
.city svg{width:14px;height:14px;color:var(--lime-500);flex:none;}
.city:hover{border-color:var(--lime-500);background:rgba(183,236,92,.1);}
.map-card{background:var(--white);border-radius:var(--r-lg);padding:12px;box-shadow:var(--shadow-float);}
.map-card svg{width:100%;height:auto;display:block;border-radius:var(--r-md);}
.map-card iframe{width:100%;height:360px;border:0;display:block;border-radius:var(--r-md);}

/* ============================================================
   15. PARTNERS
   ============================================================ */
.partners{padding:52px 0;border-bottom:1px solid var(--line);}
.partners p{text-align:center;font-size:.85rem;margin-bottom:26px;}
.partner-row{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;}
.partner{
  border:1px solid var(--line);border-radius:var(--r-md);height:78px;display:flex;
  align-items:center;justify-content:center;gap:9px;color:var(--ink);
  font-family:var(--font-display);font-weight:700;font-size:.95rem;
  transition:border-color .25s ease,transform .25s ease;overflow:hidden;padding:10px;
}
.partner svg{width:22px;height:22px;color:var(--forest-700);flex:none;}
.partner img{max-height:44px;width:auto;object-fit:contain;}
.partner:hover{border-color:var(--forest-700);transform:translateY(-3px);}

/* ============================================================
   16. TEAM
   ============================================================ */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:44px;align-items:end;}
.member{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;}
.member--raised{transform:translateY(-26px);}
.member .portrait{border-radius:var(--r-md);overflow:hidden;background:var(--mint-100);aspect-ratio:26/30;}
.member .portrait svg,.member .portrait img{width:100%;height:100%;display:block;object-fit:cover;}
.member-role{
  display:inline-block;background:var(--lime-500);color:var(--forest-900);font-family:var(--font-display);
  font-weight:700;font-size:.7rem;padding:5px 12px;border-radius:var(--r-pill);margin:16px 0 8px;
}
.member h4{font-family:var(--font-display);font-size:1rem;margin:0;color:var(--ink);}
.member p{font-size:.82rem;margin:6px 0 0;}
.member-social{display:flex;gap:8px;margin-top:12px;}
.member-social a{
  width:30px;height:30px;border-radius:50%;border:1px solid var(--line);
  display:grid;place-items:center;color:var(--forest-700);transition:background .2s ease,border-color .2s ease;
}
.member-social a:hover{background:var(--lime-500);border-color:var(--lime-500);color:var(--forest-900);}
.member-social svg{width:14px;height:14px;}

/* ============================================================
   17. TESTIMONIALS — carousel
   ============================================================ */
.testi-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:40px;}
.tst-stage{position:relative;}
.tst-viewport{overflow:hidden;margin-inline:-12px;padding-inline:12px;}
.tst-track{display:flex;transition:transform .55s cubic-bezier(.22,.61,.36,1);will-change:transform;}
.tst-item{flex:0 0 100%;padding:6px 12px;display:flex;}
.testi{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px;display:flex;flex-direction:column;width:100%;}
.testi .stars{margin-bottom:16px;}
.testi .stars svg{color:var(--star);width:16px;height:16px;}
.testi blockquote{margin:0 0 22px;font-size:.93rem;color:var(--ink);line-height:1.65;}
.testi-person{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:18px;border-top:1px solid var(--line);}
.testi-person .face{width:42px;height:42px;border-radius:50%;background:var(--lime-200);flex:none;object-fit:cover;}
.testi-person strong{display:block;font-family:var(--font-display);font-size:.9rem;color:var(--ink);}
.testi-person span{font-size:.78rem;}
.testi-person .mark{margin-left:auto;color:var(--lime-500);width:26px;height:26px;flex:none;}

.tst-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:32px;}
.tst-arrow{
  width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--white);
  display:grid;place-items:center;color:var(--ink);transition:background .2s ease,border-color .2s ease,color .2s ease;
}
.tst-arrow:hover{background:var(--lime-500);border-color:var(--lime-500);color:var(--forest-900);}
.tst-arrow svg{width:18px;height:18px;}
.tst-dots{display:flex;gap:8px;align-items:center;}
.tst-dot{
  width:9px;height:9px;padding:0;border-radius:50%;border:none;background:var(--line);
  transition:width .25s ease,background .25s ease;
}
.tst-dot.on{width:26px;border-radius:var(--r-pill);background:var(--forest-700);}
.bg-dark .tst-arrow{background:rgba(255,255,255,.06);border-color:var(--line-dark);color:var(--white);}
.bg-dark .tst-dot{background:var(--line-dark);}
.bg-dark .tst-dot.on{background:var(--lime-500);}
.bg-dark .testi{background:rgba(255,255,255,.05);border-color:var(--line-dark);}
.bg-dark .testi blockquote{color:var(--white);}
.bg-dark .testi-person{border-top-color:var(--line-dark);}
.bg-dark .testi-person strong{color:var(--white);}

.trust-strip{
  display:flex;align-items:center;justify-content:center;gap:12px;margin-top:34px;background:var(--white);
  border:1px solid var(--line);border-radius:var(--r-pill);padding:12px 22px;width:max-content;
  margin-inline:auto;font-size:.87rem;max-width:100%;text-align:center;
}
.bg-dark .trust-strip{background:rgba(255,255,255,.05);border-color:var(--line-dark);color:var(--body-inv);}

/* ============================================================
   18. CTA BANNER
   ============================================================ */
.cta-band{background:var(--lime-500);padding:64px 0;}
.cta-panel{background:var(--forest-800);border-radius:var(--r-xl);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);overflow:hidden;}
.cta-copy{padding:52px 48px;}
.cta-copy h2{color:var(--white);}
.cta-copy p{color:var(--body-inv);max-width:420px;}
.cta-copy .eyebrow{background:rgba(255,255,255,.06);border-color:var(--line-dark);color:var(--lime-400);}
.cta-copy .eyebrow svg{color:var(--lime-500);}
.cta-photo img{width:100%;height:100%;object-fit:cover;min-height:300px;}

/* ============================================================
   19. BLOG GRID
   ============================================================ */
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:44px;}
.post-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;}
.post-card .cover{height:196px;overflow:hidden;background:var(--mint-100);}
.post-card .cover img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.22,.61,.36,1);}
.post-card:hover .cover img{transform:scale(1.06);}
.post-body{padding:22px;display:flex;flex-direction:column;flex:1;}
.post-meta{display:flex;align-items:center;gap:14px;font-size:.78rem;margin-bottom:12px;flex-wrap:wrap;}
.post-meta .dot{width:5px;height:5px;border-radius:50%;background:var(--lime-500);flex:none;}
.post-card h3{font-size:1.05rem;line-height:1.45;}
.post-card h3 a:hover{color:var(--forest-700);}
.post-card p{font-size:.9rem;margin-bottom:18px;}
.post-card .btn{margin-top:auto;align-self:flex-start;}

/* ============================================================
   20. FAQ
   ============================================================ */
.faq-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:56px;align-items:start;}
.faq-help{background:var(--forest-800);border-radius:var(--r-lg);padding:30px;margin-top:28px;}
.faq-help h3{color:var(--white);font-size:1.15rem;}
.faq-help p{color:var(--body-inv);font-size:.88rem;}
.faq-item{background:var(--white);border:1px solid var(--line);border-radius:var(--r-md);padding:18px 22px;margin-bottom:12px;}
.faq-item.is-open{border-color:var(--lime-500);}
.faq-q{
  list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:18px;
  font-family:var(--font-display);font-weight:600;font-size:.97rem;color:var(--ink);
  width:100%;background:none;border:none;padding:0;text-align:left;
}
.faq-q::-webkit-details-marker{display:none;}
.faq-q .plus{width:26px;height:26px;flex:none;border-radius:50%;background:var(--mint-100);display:grid;place-items:center;}
.faq-q .plus svg{width:14px;height:14px;color:var(--forest-800);transition:transform .2s ease;}
.faq-item.is-open .faq-q .plus{background:var(--lime-500);}
.faq-item.is-open .faq-q .plus svg{transform:rotate(45deg);}
.faq-a{overflow:hidden;height:0;transition:height .32s cubic-bezier(.22,.61,.36,1);}
.faq-a p{margin-top:14px;font-size:.9rem;}

/* ============================================================
   21. NEWSLETTER
   ============================================================ */
.newsletter{background:var(--lime-500);padding:44px 0;}
.newsletter .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:center;}
.newsletter h3{font-size:1.35rem;margin-bottom:6px;color:var(--forest-900);}
.newsletter p{font-size:.88rem;color:var(--forest-800);}
.subscribe{display:flex;gap:10px;align-items:center;background:var(--white);border-radius:var(--r-pill);padding:7px 7px 7px 20px;flex-wrap:wrap;}
.subscribe input{flex:1 1 140px;border:none;background:none;font-family:var(--font-body);font-size:.92rem;color:var(--ink);min-width:0;}
.subscribe input:focus{outline:none;}
.subscribe .btn{flex:none;white-space:nowrap;}
/* Contact Form 7 in the newsletter strip.
   CF7 wraps every field in <span class="wpcf7-form-control-wrap"> and, with
   auto-paragraphs on, in <p> as well — both have to become flex participants
   or the field and the button stack instead of sitting in one pill. */
.newsletter .wpcf7 form{
  display:flex;gap:10px;background:var(--white);border-radius:var(--r-pill);
  padding:7px 7px 7px 20px;align-items:center;flex-wrap:wrap;position:relative;
}
/* CF7's spinner is only visibility:hidden, so as a flex item it still claims a
   whole row once the form wraps. Take it out of the flow instead of hiding it,
   so it can still appear while a submission is in flight. */
.newsletter .wpcf7 .wpcf7-spinner{position:absolute;right:14px;bottom:-30px;margin:0;}
.newsletter .wpcf7 form > p{display:contents;}
.newsletter .wpcf7 .wpcf7-form-control-wrap{flex:1;min-width:120px;}
.newsletter .wpcf7 input[type=email]{border:none;background:none;padding:0;width:100%;}
.newsletter .wpcf7 input[type=email]:focus{outline:none;}
.newsletter .wpcf7 input[type=submit],
.newsletter .wpcf7 button[type=submit]{width:auto;margin:0;flex:none;white-space:nowrap;}
.newsletter .wpcf7 .wpcf7-spinner{margin:0;}
.newsletter .wpcf7 .wpcf7-response-output{flex-basis:100%;margin:6px 0 0;}
.newsletter .wpcf7-not-valid-tip{flex-basis:100%;}

/* ============================================================
   22. PRODUCTS SECTION (front-end grid, WooCommerce driven)
   ============================================================ */
.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:44px;}
.p-card{
  background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);
  overflow:hidden;display:flex;flex-direction:column;position:relative;
  transition:transform .3s cubic-bezier(.22,.61,.36,1),border-color .3s ease,box-shadow .3s ease;
}
.p-card:hover{transform:translateY(-4px);border-color:#C6DDCB;box-shadow:var(--shadow-card);}
.p-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--mint-100);display:block;}
.p-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.22,.61,.36,1);}
.p-card:hover .p-media img{transform:scale(1.06);}
.p-flag{
  position:absolute;left:14px;top:14px;z-index:2;background:var(--lime-500);color:var(--forest-900);
  font-family:var(--font-display);font-size:.68rem;font-weight:700;padding:5px 12px;border-radius:var(--r-pill);
}
.p-flag.is-sale{background:var(--forest-800);color:var(--lime-500);}
.p-body{padding:20px;display:flex;flex-direction:column;flex:1;gap:8px;}
.p-cat{font-size:.72rem;font-family:var(--font-display);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--forest-700);}
.p-body h3{font-size:1rem;line-height:1.4;margin:0;}
.p-body h3 a:hover{color:var(--forest-700);}
.p-rating{display:flex;align-items:center;gap:6px;font-size:.78rem;}
.p-rating .stars svg{width:13px;height:13px;color:var(--star);}
.p-price{font-family:var(--font-display);font-weight:800;font-size:1.15rem;color:var(--ink);margin-top:auto;}
.p-price del{color:var(--body);font-weight:500;font-size:.88rem;margin-right:8px;}
.p-price ins{text-decoration:none;}
.p-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}
.p-actions .btn{flex:1 1 0;justify-content:center;padding:11px 14px;font-size:.86rem;white-space:nowrap;min-width:0;}
/* WooCommerce injects a "View cart" link after an AJAX add — keep it out of
   the two-button row rather than letting it wedge between them. */
.p-actions .added_to_cart{flex:1 0 100%;order:3;text-align:center;font-size:.82rem;font-family:var(--font-display);font-weight:600;color:var(--forest-700);}
.p-actions .added_to_cart:hover{color:var(--ink);}

/* ============================================================
   23. FOOTER
   ============================================================ */
.site-footer{background:var(--forest-900);color:var(--body-inv);padding:72px 0 0;overflow:hidden;}
.footer-grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:40px;}
.site-footer h4,.site-footer h5,.site-footer .widget-title{font-family:var(--font-display);color:var(--white);font-size:.98rem;margin-bottom:18px;}
.site-footer a:hover{color:var(--lime-500);}
.footer-links li{margin-bottom:10px;font-size:.9rem;}
.footer-about p{font-size:.9rem;max-width:320px;margin-bottom:22px;}
.footer-logo{display:flex;align-items:center;gap:11px;margin-bottom:18px;}
.footer-logo svg{width:38px;height:38px;flex:none;}
.footer-logo img{max-height:52px;width:auto;}
.footer-logo .logo-word{color:var(--white);}
.footer-logo .logo-word span{color:var(--lime-500);}
.socials{display:flex;gap:10px;flex-wrap:wrap;}
.socials a{width:38px;height:38px;border-radius:50%;border:1px solid var(--line-dark);display:grid;place-items:center;transition:background .2s ease,border-color .2s ease;}
.socials a:hover{background:var(--forest-700);border-color:var(--forest-700);}
.socials svg{width:16px;height:16px;}
.contact-line{display:flex;gap:11px;font-size:.9rem;margin-bottom:14px;align-items:flex-start;}
.contact-line svg{width:17px;height:17px;flex:none;margin-top:4px;color:var(--lime-500);}
.contact-line address{font-style:normal;}
.wordmark{
  font-family:var(--font-display);font-weight:800;text-align:center;
  font-size:clamp(3rem,15vw,11rem);line-height:.9;letter-spacing:-.04em;
  color:transparent;-webkit-text-stroke:1px rgba(183,236,92,.24);
  margin:56px 0 -14px;user-select:none;
}
.legal{border-top:1px solid var(--line-dark);padding:22px 0;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:.83rem;}
.legal a{color:var(--body-inv);}
.legal nav{display:flex;gap:18px;flex-wrap:wrap;}
.legal ul{display:flex;gap:18px;flex-wrap:wrap;}

/* Footer widgets pick up the dark palette */
.site-footer .widget{margin-bottom:26px;}
.site-footer .widget ul li{margin-bottom:10px;font-size:.9rem;}
.site-footer .widget a{color:var(--body-inv);}

/* ============================================================
   24. POPUP
   ============================================================ */
.swp-popup{
  position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;
  padding:var(--gutter);
}
.swp-popup.is-open{display:flex;}
.swp-popup-backdrop{position:absolute;inset:0;background:var(--popup-overlay,rgba(12,33,19,.72));animation:fadeIn .3s ease both;}
.swp-popup-box{
  position:relative;z-index:2;background:var(--popup-bg,var(--white));border-radius:var(--r-lg);
  width:100%;max-width:var(--popup-w,860px);max-height:90vh;overflow:auto;
  box-shadow:var(--shadow-float);animation:popIn .38s cubic-bezier(.22,.61,.36,1) both;
}
.swp-popup.has-image .swp-popup-box{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);}
.swp-popup-media{overflow:hidden;}
.swp-popup-media img{width:100%;height:100%;object-fit:cover;min-height:100%;}
.swp-popup-body{padding:36px 34px;}
.swp-popup-body h2{font-size:1.5rem;}
.swp-popup-body p{font-size:.92rem;margin-bottom:18px;}
.swp-popup-close{
  position:absolute;right:12px;top:12px;z-index:3;width:38px;height:38px;border-radius:50%;
  border:1px solid var(--line);background:var(--white);color:var(--ink);display:grid;place-items:center;
}
.swp-popup-close:hover{background:var(--lime-500);border-color:var(--lime-500);color:var(--forest-900);}
.swp-popup-close svg{width:17px;height:17px;}
.swp-popup-actions{display:flex;gap:12px;flex-wrap:wrap;}
.swp-popup-item{
  display:flex;align-items:center;gap:10px;margin:0 0 18px;padding:12px 14px;
  background:var(--lime-200);border-radius:var(--r-sm);font-size:.9rem;
}
.swp-popup-item strong{font-family:var(--font-display);color:var(--ink);}
.swp-book-single{margin:24px 0 0;}
.swp-book-single .btn{width:100%;justify-content:center;}
body.swp-popup-open{overflow:hidden;}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes popIn{from{opacity:0;transform:translateY(24px) scale(.97);}to{opacity:1;transform:none;}}

/* ============================================================
   25. PAGE BANNER + INNER PAGES
   ============================================================ */
.page-banner{
  position:relative;background:var(--forest-800);color:var(--white);
  padding:88px 0 78px;text-align:center;background-size:cover;background-position:center;
  border-radius:0 0 var(--r-xl) var(--r-xl);
}
.page-banner .wrap{position:relative;z-index:2;}
.page-banner h1{color:var(--white);margin-bottom:14px;}
.page-banner .lede{color:var(--body-inv);max-width:640px;margin-inline:auto;}
.crumbs{
  display:inline-flex;align-items:center;gap:8px;font-size:.82rem;color:var(--body-inv);
  margin-bottom:16px;font-family:var(--font-display);font-weight:500;flex-wrap:wrap;justify-content:center;
}
.crumbs svg{width:14px;height:14px;color:var(--lime-500);}
.crumbs a:hover{color:var(--lime-500);}

.entry-content{font-size:1rem;}
.entry-content > * + *{margin-top:1.1em;}
.entry-content h2{font-size:1.7rem;margin-top:1.6em;}
.entry-content h3{font-size:1.28rem;margin-top:1.4em;}
.entry-content ul,.entry-content ol{padding-left:1.3em;margin-bottom:1em;}
.entry-content ul{list-style:disc;}
.entry-content ol{list-style:decimal;}
.entry-content li{margin-bottom:.5em;}
.entry-content a{color:var(--forest-700);text-decoration:underline;text-underline-offset:3px;}
.entry-content a:hover{color:var(--lime-500);}
.entry-content blockquote{
  border-left:3px solid var(--lime-500);background:var(--mint-050);border-radius:0 var(--r-md) var(--r-md) 0;
  padding:20px 24px;font-size:1.02rem;color:var(--ink);
}
.entry-content img{border-radius:var(--r-md);}
.entry-content table th,.entry-content table td{border:1px solid var(--line);padding:10px 14px;text-align:left;font-size:.92rem;}
.entry-content table th{background:var(--mint-050);font-family:var(--font-display);color:var(--ink);}

/* ============================================================
   26. BLOG TEMPLATES + COMMENTS + WIDGETS
   ============================================================ */
.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:52px;align-items:start;}
.content-grid.no-sidebar{grid-template-columns:minmax(0,1fr);max-width:820px;margin-inline:auto;}
/* A card grid loses a column once the sidebar takes one. */
.content-grid .post-grid{grid-template-columns:repeat(2,1fr);}
.content-grid.no-sidebar .post-grid{grid-template-columns:repeat(3,1fr);}
.content-grid.no-sidebar{max-width:1000px;}
.content-grid.no-sidebar .entry-content,
.content-grid.no-sidebar > div > article.entry-content{max-width:820px;margin-inline:auto;}

.single-hero{margin-bottom:32px;}
.single-hero .cover{border-radius:var(--r-lg);overflow:hidden;margin-bottom:28px;max-height:460px;}
.single-hero .cover img{width:100%;height:100%;object-fit:cover;}
.entry-meta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;font-size:.84rem;margin-bottom:18px;}
.entry-meta a,.entry-meta span{display:inline-flex;align-items:center;gap:7px;}
.entry-meta svg{width:15px;height:15px;color:var(--forest-700);}
.entry-meta a:hover{color:var(--forest-700);}
.entry-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-top:36px;padding-top:26px;border-top:1px solid var(--line);}
.tag-links{display:flex;gap:8px;flex-wrap:wrap;}
.tag-links a{
  font-size:.8rem;border:1px solid var(--line);border-radius:var(--r-pill);padding:5px 13px;
  font-family:var(--font-display);font-weight:500;color:var(--body);
}
.tag-links a:hover{border-color:var(--lime-500);color:var(--ink);}

.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:36px;}
.post-nav a{
  border:1px solid var(--line);border-radius:var(--r-md);padding:18px 22px;
  font-family:var(--font-display);font-weight:600;color:var(--ink);font-size:.92rem;
}
.post-nav a:hover{border-color:var(--lime-500);}
.post-nav small{display:block;font-weight:500;font-size:.76rem;color:var(--body);margin-bottom:5px;}
.post-nav .next{text-align:right;}

.pagination{margin-top:48px;}
.pagination .nav-links{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;}
.pagination .page-numbers{
  min-width:42px;height:42px;border-radius:var(--r-sm);border:1px solid var(--line);
  display:inline-flex;align-items:center;justify-content:center;padding:0 12px;
  font-family:var(--font-display);font-weight:600;font-size:.9rem;color:var(--ink);
}
.pagination .page-numbers svg{width:16px;height:16px;}
.pagination .page-numbers:hover{border-color:var(--forest-700);}
.pagination .page-numbers.current{background:var(--lime-500);border-color:var(--lime-500);color:var(--forest-900);}

.widget{background:var(--mint-050);border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;margin-bottom:24px;}
/* Block-based widgets emit their own <h2 class="wp-block-heading"> and ignore
   the sidebar's before_title, so size every heading in the column instead. */
.widget-title,
.widget-area .widget > h2,
.widget-area .widget > h3,
.widget-area .wp-block-heading,
.widget-area .wp-block-search__label{
  font-family:var(--font-display);font-size:1.02rem;font-weight:700;
  color:var(--ink);margin:0 0 16px;line-height:1.3;letter-spacing:-.01em;
}
.widget-area .wp-block-search__inside-wrapper{gap:8px;}
.widget-area .wp-block-search__input{
  border:1px solid var(--line);border-radius:var(--r-sm);background:var(--white);
  padding:12px 14px;font-family:var(--font-body);font-size:.9rem;color:var(--ink);
}
.widget-area .wp-block-search__button{
  border:none;border-radius:var(--r-sm);background:var(--forest-800);color:var(--white);
  font-family:var(--font-display);font-weight:600;font-size:.88rem;padding:0 18px;
}
.widget-area .wp-block-search__button:hover{background:var(--forest-700);}
.widget ul li{margin-bottom:10px;font-size:.92rem;padding-bottom:10px;border-bottom:1px solid var(--line);}
.widget ul li:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none;}
.widget ul li a:hover{color:var(--forest-700);}
.widget select{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--white);font-family:var(--font-body);}
.widget .tagcloud a{
  display:inline-block;font-size:.8rem!important;border:1px solid var(--line);border-radius:var(--r-pill);
  padding:5px 13px;margin:0 5px 7px 0;color:var(--body);
}
.widget .tagcloud a:hover{border-color:var(--lime-500);color:var(--ink);}

.comments-area{margin-top:52px;padding-top:44px;border-top:1px solid var(--line);}
.comments-title,.comment-reply-title{font-family:var(--font-display);font-size:1.35rem;margin-bottom:24px;}
.comment-list{margin-bottom:36px;}
.comment-list li{list-style:none;}
.comment-body{background:var(--mint-050);border:1px solid var(--line);border-radius:var(--r-md);padding:22px;margin-bottom:16px;}
.comment-list .children{padding-left:32px;}
.comment-author{display:flex;align-items:center;gap:12px;margin-bottom:10px;}
.comment-author img{border-radius:50%;}
.comment-author .fn{font-family:var(--font-display);font-weight:700;color:var(--ink);font-style:normal;font-size:.94rem;}
.comment-metadata{font-size:.78rem;margin-bottom:10px;}
.comment-content{font-size:.93rem;}
.reply a{font-family:var(--font-display);font-weight:600;font-size:.84rem;color:var(--forest-700);}
.comment-form{display:grid;gap:14px;}
.comment-form p{margin:0;}
.comment-form label{display:block;font-family:var(--font-display);font-size:.78rem;font-weight:600;color:var(--ink);margin-bottom:6px;}
.comment-form input:not([type=submit]):not([type=checkbox]),.comment-form textarea{
  width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-sm);
  background:var(--mint-050);font-family:var(--font-body);font-size:.9rem;color:var(--ink);
}
.comment-form textarea{min-height:130px;resize:vertical;}
.comment-form .submit{
  display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-display);
  font-weight:600;font-size:.95rem;padding:14px 26px;border-radius:var(--r-pill);border:none;
  background:var(--forest-800);color:var(--white);width:max-content;
}
.comment-form .submit:hover{background:var(--forest-700);}
.comment-form-cookies-consent{display:flex;gap:9px;align-items:center;font-size:.85rem;}
.comment-form-cookies-consent label{margin:0;font-weight:500;}

.no-results{text-align:center;padding:60px 20px;}
.error-404{text-align:center;padding:96px 0;}
.error-404 .code{font-family:var(--font-display);font-weight:800;font-size:clamp(5rem,18vw,11rem);line-height:1;color:var(--lime-500);}

/* Service archive + single */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.svc-card{
  background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;
  display:flex;flex-direction:column;
  transition:transform .3s cubic-bezier(.22,.61,.36,1),border-color .3s ease,box-shadow .3s ease;
}
.svc-card:hover{transform:translateY(-4px);border-color:#C6DDCB;box-shadow:var(--shadow-card);}
.svc-card .cover{aspect-ratio:3/2;overflow:hidden;background:var(--mint-100);}
.svc-card .cover img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.22,.61,.36,1);}
.svc-card:hover .cover img{transform:scale(1.06);}
.svc-body{padding:24px;display:flex;flex-direction:column;flex:1;}
.svc-ico{width:48px;height:48px;border-radius:50%;background:var(--lime-200);display:grid;place-items:center;margin-bottom:14px;}
.svc-ico svg{width:23px;height:23px;color:var(--forest-700);}
.svc-body h3{font-size:1.1rem;}
.svc-body p{font-size:.9rem;margin-bottom:18px;}
.svc-body .link-arrow{margin-top:auto;}

.service-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:52px;align-items:start;}
.service-aside{position:sticky;top:104px;display:grid;gap:20px;}
.svc-box{background:var(--mint-050);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;}
.svc-box h4{font-size:1.02rem;margin-bottom:14px;}
.svc-list li{border-bottom:1px solid var(--line);}
.svc-list li:last-child{border-bottom:none;}
.svc-list a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;font-family:var(--font-display);font-weight:600;font-size:.92rem;color:var(--ink);}
.svc-list a:hover{color:var(--forest-700);}
.svc-list svg{width:16px;height:16px;color:var(--forest-700);flex:none;}
.svc-list .is-current a{color:var(--forest-700);}
.svc-cta{background:var(--forest-800);border-radius:var(--r-lg);padding:28px;color:var(--body-inv);}
.svc-cta h4{color:var(--white);}
.svc-cta p{font-size:.88rem;margin-bottom:18px;}
.service-booking{margin-top:56px;}
.service-booking .quote-card{max-width:720px;margin-inline:auto;}

/* ============================================================
   27. WOOCOMMERCE
   ============================================================ */
.woocommerce-page .site-main,.woocommerce .site-main{padding-block:0;}
.woo-wrap{padding:72px 0 96px;}
.woocommerce .woocommerce-result-count{font-size:.88rem;margin:0;}
.woocommerce .woocommerce-ordering select{
  padding:11px 14px;border:1px solid var(--line);border-radius:var(--r-sm);
  background:var(--white);font-family:var(--font-body);font-size:.9rem;color:var(--ink);
}
.shop-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:32px;}

.woocommerce ul.products,
.woocommerce-page ul.products{
  display:grid!important;grid-template-columns:repeat(4,1fr);gap:24px;margin:0;padding:0;list-style:none;
}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none;}
.woocommerce ul.products li.product{
  width:auto!important;margin:0!important;float:none!important;clear:none!important;
  background:var(--white);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;
  display:flex;flex-direction:column;padding:0;position:relative;text-align:left;
  transition:transform .3s cubic-bezier(.22,.61,.36,1),border-color .3s ease,box-shadow .3s ease;
}
.woocommerce ul.products li.product:hover{transform:translateY(-4px);border-color:#C6DDCB;box-shadow:var(--shadow-card);}
.woocommerce ul.products li.product a img{
  margin:0;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:0;box-shadow:none;
  transition:transform .7s cubic-bezier(.22,.61,.36,1);
}
.woocommerce ul.products li.product:hover a img{transform:scale(1.06);}
.woocommerce ul.products li.product .woocommerce-loop-product__link{display:flex;flex-direction:column;flex:1;}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--font-display);font-size:1rem!important;font-weight:700;color:var(--ink);
  padding:18px 20px 0!important;margin:0;line-height:1.4;
}
.woocommerce ul.products li.product .price{
  font-family:var(--font-display);font-weight:800;font-size:1.12rem;color:var(--ink);
  padding:8px 20px 0;margin:0;display:block;
}
.woocommerce ul.products li.product .price del{color:var(--body);font-weight:500;font-size:.86rem;opacity:1;}
.woocommerce ul.products li.product .price ins{text-decoration:none;font-weight:800;}
.woocommerce ul.products li.product .star-rating{margin:8px 20px 0;font-size:.8em;color:var(--star);}
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart{
  margin:16px 20px 20px;align-self:flex-start;
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-display);font-weight:600;font-size:.86rem;padding:11px 20px;
  border-radius:var(--r-pill);background:var(--lime-500);color:var(--forest-900);border:none;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .added_to_cart:hover{background:var(--lime-400);color:var(--forest-900);}
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale{
  position:absolute;left:14px;top:14px;right:auto;margin:0;z-index:2;min-width:0;min-height:0;
  line-height:1;padding:6px 13px;border-radius:var(--r-pill);
  background:var(--forest-800);color:var(--lime-500);
  font-family:var(--font-display);font-size:.68rem;font-weight:700;
}

/* Single product */
.woocommerce div.product{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:52px;align-items:start;}
.woocommerce div.product > .woocommerce-tabs,
.woocommerce div.product > .related,
.woocommerce div.product > .upsells,
.woocommerce div.product > .woocommerce-notices-wrapper{grid-column:1/-1;}
.woocommerce div.product div.images,
.woocommerce div.product div.summary{width:auto!important;float:none!important;margin:0!important;}
.woocommerce div.product div.images img{border-radius:var(--r-lg);}
.woocommerce div.product .product_title{font-size:2rem;margin-bottom:12px;}
.woocommerce div.product p.price,.woocommerce div.product span.price{
  font-family:var(--font-display);font-weight:800;font-size:1.7rem;color:var(--ink);margin-bottom:16px;
}
.woocommerce div.product p.price del{font-size:1.05rem;color:var(--body);font-weight:500;}
.woocommerce div.product p.price ins{text-decoration:none;}
.woocommerce div.product .woocommerce-product-rating{margin-bottom:14px;}
.woocommerce .star-rating span::before,.woocommerce .star-rating::before{color:var(--star);}
.woocommerce div.product form.cart{margin:24px 0;display:flex;gap:12px;flex-wrap:wrap;align-items:center;}
.woocommerce div.product form.cart .variations{width:100%;}
.woocommerce div.product form.cart .variations td{padding:6px 0;}
.woocommerce .quantity .qty{
  width:82px;padding:13px 10px;border:1px solid var(--line);border-radius:var(--r-sm);
  background:var(--mint-050);font-family:var(--font-display);font-weight:600;text-align:center;color:var(--ink);
}
.woocommerce div.product .product_meta{font-size:.86rem;border-top:1px solid var(--line);padding-top:18px;margin-top:8px;}
.woocommerce div.product .product_meta > span{display:block;margin-bottom:6px;}

/* Buttons — one look across the whole shop */
.woocommerce #respond input#submit,
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--font-display);font-weight:600;font-size:.92rem;line-height:1.2;
  padding:14px 24px;border-radius:var(--r-pill);border:1px solid transparent;
  background:var(--lime-500);color:var(--forest-900);text-shadow:none;
  transition:background .18s ease,color .18s ease;
}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,
.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,.woocommerce #respond input#submit:hover{
  background:var(--lime-400);color:var(--forest-900);
}
.woocommerce button.button.alt.single_add_to_cart_button{background:var(--forest-800);color:var(--white);}
.woocommerce button.button.alt.single_add_to_cart_button:hover{background:var(--forest-700);color:var(--white);}
.woocommerce a.button.wc-backward,.woocommerce .cart .button[name="update_cart"]{
  background:transparent;border-color:var(--line);color:var(--ink);
}
.woocommerce a.button.wc-backward:hover{border-color:var(--forest-700);background:transparent;color:var(--ink);}
.woocommerce .button.disabled,.woocommerce .button:disabled{opacity:.5;}

/* Tabs */
.woocommerce div.product .woocommerce-tabs ul.tabs{padding:0;margin:0 0 24px;display:flex;gap:8px;flex-wrap:wrap;}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{display:none;}
.woocommerce div.product .woocommerce-tabs ul.tabs li{
  background:var(--white);border:1px solid var(--line);border-radius:var(--r-pill);
  margin:0;padding:0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{display:none;}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
  padding:10px 20px;font-family:var(--font-display);font-weight:600;font-size:.9rem;color:var(--ink);
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{background:var(--lime-500);border-color:var(--lime-500);}
.woocommerce div.product .woocommerce-tabs .panel{padding:0;margin:0;}
.woocommerce div.product .woocommerce-tabs h2{font-size:1.3rem;}
.woocommerce .related > h2,.woocommerce .upsells > h2,.woocommerce .cross-sells > h2{font-size:1.6rem;margin-bottom:28px;}

/* Tables — cart, checkout review, order details */
.woocommerce table.shop_table{
  border:1px solid var(--line);border-radius:var(--r-lg);border-collapse:separate;
  border-spacing:0;overflow:hidden;margin-bottom:26px;
}
.woocommerce table.shop_table th{
  background:var(--mint-050);font-family:var(--font-display);font-weight:700;color:var(--ink);
  font-size:.84rem;letter-spacing:.03em;text-transform:uppercase;padding:16px 18px;border:none;
}
.woocommerce table.shop_table td{padding:18px;border-top:1px solid var(--line);font-size:.92rem;vertical-align:middle;}
.woocommerce table.shop_table .product-thumbnail img{width:72px;border-radius:var(--r-sm);}
.woocommerce table.shop_table .product-name a{font-family:var(--font-display);font-weight:600;color:var(--ink);}
.woocommerce a.remove{
  color:var(--body)!important;font-size:1.2rem;width:26px;height:26px;line-height:24px;
  border:1px solid var(--line);background:var(--white);
}
.woocommerce a.remove:hover{background:var(--forest-800)!important;color:var(--white)!important;border-color:var(--forest-800);}
.woocommerce table.shop_table td.actions{background:var(--mint-050);}
.woocommerce .coupon{display:flex;gap:10px;flex-wrap:wrap;}
.woocommerce #coupon_code{
  width:auto!important;min-width:180px;padding:13px 14px;border:1px solid var(--line);
  border-radius:var(--r-sm);background:var(--white);font-family:var(--font-body);font-size:.9rem;
}

/* Cart — two columns against WooCommerce's own containers */
.woocommerce-cart .woocommerce{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.9fr);gap:44px;align-items:start;}
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-cart .woocommerce > .cart-empty,
.woocommerce-cart .woocommerce > .no-results,
.woocommerce-cart .woocommerce > .return-to-shop{grid-column:1/-1;}
.woocommerce-cart form.woocommerce-cart-form{grid-column:1;margin:0;}
.woocommerce .cart-collaterals,.woocommerce-page .cart-collaterals{width:auto;float:none;grid-column:2;}
.woocommerce .cart-collaterals .cart_totals,.woocommerce-page .cart-collaterals .cart_totals{width:auto;float:none;}
.woocommerce .cart_totals h2,.woocommerce-checkout #order_review_heading{
  font-family:var(--font-display);font-size:1.2rem;margin-bottom:18px;
}
.woocommerce .cart_totals table.shop_table th{text-transform:none;font-size:.9rem;background:transparent;}
.woocommerce .cart_totals{background:var(--mint-050);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;}
.woocommerce .cart_totals table.shop_table{border:none;border-radius:0;margin-bottom:16px;}
.woocommerce .wc-proceed-to-checkout{padding:0;}
.woocommerce .wc-proceed-to-checkout a.checkout-button{
  display:flex;width:100%;justify-content:center;background:var(--forest-800);color:var(--white);font-size:.98rem;
}
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover{background:var(--forest-700);color:var(--white);}

/* Checkout */
.woocommerce-checkout .col2-set{display:grid;grid-template-columns:1fr 1fr;gap:36px;width:auto;}
.woocommerce-checkout .col2-set .col-1,.woocommerce-checkout .col2-set .col-2{width:auto;float:none;}
.woocommerce form .form-row{padding:0;margin:0 0 14px;display:block;}
.woocommerce form .form-row label{
  display:block;font-family:var(--font-display);font-size:.78rem;font-weight:600;color:var(--ink);margin-bottom:6px;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single{
  width:100%;padding:12px 14px;height:auto;border:1px solid var(--line);border-radius:var(--r-sm);
  background:var(--mint-050);font-family:var(--font-body);font-size:.9rem;color:var(--ink);line-height:1.5;
}
.woocommerce .select2-container .select2-selection--single .select2-selection__rendered{padding:0;line-height:1.5;color:var(--ink);}
.woocommerce .select2-container .select2-selection--single .select2-selection__arrow{top:50%;transform:translateY(-50%);right:10px;}
.woocommerce form .form-row textarea{min-height:110px;}
.woocommerce form .form-row-first,.woocommerce form .form-row-last{width:100%;float:none;}
.woocommerce-checkout #customer_details .col2-set{display:grid;}

/* Checkout — details on the left, order review pinned to the right column */
.woocommerce-checkout form.checkout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr);gap:44px 44px;align-items:start;}
.woocommerce-checkout form.checkout #customer_details{grid-column:1;grid-row:1/span 2;}
.woocommerce-checkout form.checkout #order_review_heading{grid-column:2;grid-row:1;margin:0;}
.woocommerce-checkout form.checkout #order_review{grid-column:2;grid-row:2;}
.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup{grid-column:1/-1;}
.woocommerce-checkout form.checkout #customer_details .col2-set{grid-template-columns:1fr;}

.woocommerce-checkout-review-order{background:var(--mint-050);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;}
.woocommerce-checkout-review-order table.shop_table{border:none;margin-bottom:18px;}
.woocommerce-checkout-review-order table.shop_table th,
.woocommerce-checkout-review-order table.shop_table td{padding:12px 0;background:transparent;text-transform:none;font-size:.9rem;}
.woocommerce-checkout #payment{background:transparent;border-radius:0;}
.woocommerce-checkout #payment ul.payment_methods{border:none;padding:0 0 18px;}
.woocommerce-checkout #payment ul.payment_methods li{margin-bottom:10px;font-size:.92rem;}
.woocommerce-checkout #payment div.payment_box{
  background:var(--white);border-radius:var(--r-sm);font-size:.86rem;color:var(--body);
}
.woocommerce-checkout #payment div.payment_box::before{border-bottom-color:var(--white);}
.woocommerce-checkout #payment div.form-row{padding:0;}
.woocommerce-checkout #payment #place_order{width:100%;background:var(--forest-800);color:var(--white);font-size:.98rem;}
.woocommerce-checkout #payment #place_order:hover{background:var(--forest-700);color:var(--white);}
.woocommerce-form-login,.woocommerce-form-coupon,.woocommerce-form-coupon-toggle{margin-bottom:22px;}

/* Notices */
.woocommerce-message,.woocommerce-info,.woocommerce-error,.woocommerce-noreviews,p.no-comments{
  border-radius:var(--r-md);border:1px solid var(--line);border-top-width:1px;
  background:var(--mint-050);color:var(--ink);font-size:.92rem;padding:16px 18px 16px 52px;
  list-style:none;margin-bottom:22px;
}
.woocommerce-message::before,.woocommerce-info::before,.woocommerce-error::before{
  color:var(--forest-700);left:20px;top:16px;
}
.woocommerce-message{border-left:3px solid var(--lime-500);}
.woocommerce-error{border-left:3px solid #D06060;}
.woocommerce-error::before{color:#D06060;}
.woocommerce-message .button,.woocommerce-info .button{float:right;padding:9px 18px;font-size:.84rem;}

/* My account */
.woocommerce-account .woocommerce{display:grid;grid-template-columns:270px minmax(0,1fr);gap:44px;align-items:start;}
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-account.woocommerce-lost-password .woocommerce,
.woocommerce-account:not(.logged-in) .woocommerce{grid-column:1/-1;display:block;}
.woocommerce-account .woocommerce-MyAccount-navigation{
  background:var(--mint-050);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px;width:auto;float:none;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul{display:grid;gap:2px;}
.woocommerce-account .woocommerce-MyAccount-navigation li{border:none;}
.woocommerce-account .woocommerce-MyAccount-navigation li a{
  display:block;padding:11px 16px;border-radius:var(--r-sm);
  font-family:var(--font-display);font-weight:600;font-size:.9rem;color:var(--ink);
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover{background:var(--white);}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a{background:var(--lime-500);color:var(--forest-900);}
.woocommerce-account .woocommerce-MyAccount-content{width:auto;float:none;}
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3{font-size:1.2rem;}
.woocommerce-account .addresses .title h3{font-size:1.05rem;}
.woocommerce-account .col2-set{display:grid;grid-template-columns:1fr 1fr;gap:32px;width:auto;}
.woocommerce-account .col2-set .col-1,.woocommerce-account .col2-set .col-2{width:auto;float:none;}
#customer_login{display:grid;grid-template-columns:1fr 1fr;gap:36px;}
#customer_login .col-1,#customer_login .col-2{
  width:auto;float:none;background:var(--mint-050);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:30px;
}
#customer_login h2{font-size:1.25rem;margin-bottom:18px;}
.woocommerce form.login,.woocommerce form.register{border:none;padding:0;margin:0;border-radius:0;}
/* With registration disabled WooCommerce prints the login form on its own,
   without the #customer_login two-column wrapper — give it the same panel. */
.woocommerce-account .woocommerce > h2,
.woocommerce-account .woocommerce > form.login{max-width:520px;margin-inline:auto;}
.woocommerce-account .woocommerce > form.login{
  background:var(--mint-050);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:30px;
}
.woocommerce-account .woocommerce > h2{text-align:center;font-size:1.35rem;}
.woocommerce-account .woocommerce-form-login__submit{width:100%;}
.woocommerce-LostPassword{text-align:center;font-size:.86rem;margin-top:14px;}
.woocommerce form.login .button,.woocommerce form.register .button{width:100%;background:var(--forest-800);color:var(--white);}
.woocommerce form.login .button:hover,.woocommerce form.register .button:hover{background:var(--forest-700);color:var(--white);}
.woocommerce-form__label-for-checkbox{display:flex;gap:9px;align-items:center;font-size:.88rem;}
.woocommerce-form__label-for-checkbox input{width:auto;}

/* Thank you / order received */
.woocommerce .woocommerce-order{max-width:820px;margin-inline:auto;}
.woocommerce ul.order_details{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;margin:0 0 32px;padding:0;
  background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;
}
.woocommerce ul.order_details li{
  float:none;margin:0;padding:20px;border:none;background:var(--mint-050);
  font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;font-family:var(--font-display);font-weight:600;
}
.woocommerce ul.order_details li strong{
  display:block;font-size:1.02rem;text-transform:none;letter-spacing:0;color:var(--ink);margin-top:6px;
}
.thankyou-hero{text-align:center;margin-bottom:40px;}
.thankyou-hero .ico{
  width:74px;height:74px;border-radius:50%;background:var(--lime-500);
  display:grid;place-items:center;margin:0 auto 20px;
}
.thankyou-hero .ico svg{width:34px;height:34px;color:var(--forest-900);}
.thankyou-hero h2{font-size:1.9rem;margin-bottom:10px;}
.thankyou-next{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px;}
.thankyou-next .step{background:var(--mint-050);}

/* ------------------------------------------------------------------
   Cart / Checkout BLOCKS
   The demo importer switches these two pages to the classic shortcodes,
   because the blocks ignore theme templates and the collection-slot
   fields. These rules keep the blocks on-brand for anyone who puts
   them back.
   ------------------------------------------------------------------ */
.wp-block-woocommerce-cart,.wp-block-woocommerce-checkout{max-width:none;margin-inline:0;}
.wc-block-components-title,
.wp-block-woocommerce-cart .wc-block-cart__submit-container ~ *,
.wc-block-components-checkout-step__title{font-family:var(--font-display);color:var(--ink);letter-spacing:-.02em;}
.wc-block-components-button:not(.is-link){
  border-radius:var(--r-pill)!important;background:var(--forest-800)!important;color:var(--white)!important;
  font-family:var(--font-display);font-weight:600;padding:14px 24px;
}
.wc-block-components-button:not(.is-link):hover{background:var(--forest-700)!important;}
.wc-block-cart__submit-button,.wc-block-components-checkout-place-order-button{width:100%;}
.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-form .wc-block-components-text-input input{
  border:1px solid var(--line)!important;border-radius:var(--r-sm)!important;background:var(--mint-050)!important;
  font-family:var(--font-body);color:var(--ink);
}
.wc-block-components-text-input.is-active label,
.wc-block-components-text-input input:focus + label{color:var(--forest-700);}
.wc-block-components-sidebar .wc-block-components-totals-wrapper,
.wp-block-woocommerce-checkout-order-summary-block,
.wc-block-cart__sidebar .wc-block-components-sidebar{
  background:var(--mint-050);border:1px solid var(--line);border-radius:var(--r-lg);
}
.wc-block-components-product-name{font-family:var(--font-display);font-weight:600;color:var(--ink);}
.wc-block-components-totals-item__value,.wc-block-formatted-money-amount{color:var(--ink);font-family:var(--font-display);font-weight:700;}
.wc-block-components-panel__button{font-family:var(--font-display);color:var(--ink);}
.wc-block-components-notice-banner{border-radius:var(--r-md);}

/* Mini cart in the header */
.cart-btn{position:relative;}
.cart-btn .count{
  position:absolute;top:-6px;right:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:var(--r-pill);
  background:var(--lime-500);color:var(--forest-900);font-family:var(--font-display);font-weight:700;
  font-size:.66rem;display:grid;place-items:center;line-height:1;
}
.woocommerce .widget_shopping_cart .buttons a{margin-right:8px;}

/* ============================================================
   28. PRELOADER + BACK TO TOP
   ============================================================ */
.swp-loader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;transition:opacity .5s ease;}
.swp-loader.loaded{opacity:0;pointer-events:none;}
.swp-loader-logo{max-width:190px;height:auto;}
.swp-loader-mark svg{width:64px;height:64px;color:var(--forest-800);}
.swp-loader.anim-pulse .swp-loader-inner{animation:ldPulse 1.2s ease-in-out infinite;}
.swp-loader.anim-bounce .swp-loader-inner{animation:ldBounce 1s ease-in-out infinite;}
.swp-loader.anim-spin .swp-loader-inner{animation:ldSpin 1.4s linear infinite;}
.swp-loader.anim-fade .swp-loader-inner{animation:ldFade 1.4s ease-in-out infinite;}
@keyframes ldPulse{0%,100%{transform:scale(1);opacity:1;}50%{transform:scale(.88);opacity:.6;}}
@keyframes ldBounce{0%,100%{transform:translateY(0);}50%{transform:translateY(-14px);}}
@keyframes ldSpin{to{transform:rotate(360deg);}}
@keyframes ldFade{0%,100%{opacity:1;}50%{opacity:.25;}}

.totop{
  position:fixed;right:20px;bottom:96px;z-index:70;width:46px;height:46px;border-radius:50%;
  background:var(--forest-800);color:var(--lime-500);display:grid;place-items:center;
  opacity:0;visibility:hidden;transform:translateY(12px);
  transition:opacity .25s ease,transform .25s ease,visibility .25s;box-shadow:var(--shadow-float);
}
.totop.on{opacity:1;visibility:visible;transform:none;}
.totop svg{width:19px;height:19px;}

/* ============================================================
   29. MOTION
   ============================================================ */
.post-card,.testi,.member,.feature,.step,.mv-card,.svc-card{
  transition:transform .3s cubic-bezier(.22,.61,.36,1),border-color .3s ease,box-shadow .3s ease;
}
.post-card:hover,.testi:hover,.member:hover,.feature:hover,.mv-card:hover{
  transform:translateY(-4px);border-color:#C6DDCB;box-shadow:var(--shadow-card);
}
.btn svg{transition:transform .25s ease;}
.btn:hover svg{transform:translateX(4px);}
.btn--block:hover svg,.quote-card .btn:hover svg{transform:none;}
@keyframes faqOpen{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:none;}}

/* Scroll reveal — one orchestrated entrance per block, never repeated */
html.anim [data-anim]:not(.is-in){opacity:0;transform:translateY(22px);}
[data-anim]{transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1);}
html.anim [data-anim-group]:not(.is-in) > *{opacity:0;transform:translateY(24px);}
[data-anim-group] > *{transition:opacity .6s cubic-bezier(.22,.61,.36,1),transform .6s cubic-bezier(.22,.61,.36,1);}
[data-anim-group].is-in > *:nth-child(1){transition-delay:0s;}
[data-anim-group].is-in > *:nth-child(2){transition-delay:.09s;}
[data-anim-group].is-in > *:nth-child(3){transition-delay:.18s;}
[data-anim-group].is-in > *:nth-child(4){transition-delay:.27s;}
[data-anim-group].is-in > *:nth-child(5){transition-delay:.36s;}
[data-anim-group].is-in > *:nth-child(6){transition-delay:.45s;}

@keyframes heroIn{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}
html.anim .hero-copy > *{animation:heroIn .85s cubic-bezier(.22,.61,.36,1) both;}
html.anim .hero-copy > *:nth-child(1){animation-delay:.10s;}
html.anim .hero-copy > *:nth-child(2){animation-delay:.20s;}
html.anim .hero-copy > *:nth-child(3){animation-delay:.30s;}
html.anim .hero-copy > *:nth-child(4){animation-delay:.40s;}

@media (prefers-reduced-motion:reduce){
  .ticker-track{animation:none;}
  html.anim [data-anim]:not(.is-in),
  html.anim [data-anim-group]:not(.is-in) > *{opacity:1;transform:none;}
  html.anim .hero-copy > *{animation:none;}
  .post-card:hover,.testi:hover,.member:hover,.feature:hover,.mv-card:hover,
  .haul-tab:hover,.partner:hover,.p-card:hover,.svc-card:hover,
  .woocommerce ul.products li.product:hover{transform:none;}
  .post-card:hover .cover img,.p-card:hover .p-media img,.svc-card:hover .cover img{transform:none;}
  .haul-panel.is-active{animation:none;}
  .tst-track{transition:none;}
  *{scroll-behavior:auto;}
}

/* ============================================================
   30. RESPONSIVE
   ============================================================ */
@media (max-width:1200px){
  .product-grid,.woocommerce ul.products,.woocommerce-page ul.products{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:1080px){
  .about-cols,.quote-layout,.mission-top,.why-grid,.areas-grid,.faq-grid,
  .newsletter .wrap,.content-grid,.service-layout,
  .woocommerce-cart .woocommerce{
    grid-template-columns:1fr;gap:36px;
  }
  .woocommerce-cart form.woocommerce-cart-form,
  .woocommerce .cart-collaterals,.woocommerce-page .cart-collaterals{grid-column:1;}
  .woocommerce-checkout form.checkout{grid-template-columns:1fr;gap:28px;}
  .woocommerce-checkout form.checkout #customer_details,
  .woocommerce-checkout form.checkout #order_review_heading,
  .woocommerce-checkout form.checkout #order_review{grid-column:1;grid-row:auto;}
  .content-grid.no-sidebar{max-width:none;}
  .content-grid .post-grid{grid-template-columns:repeat(2,1fr);}
  .service-aside{position:static;}
  .stat-strip{grid-template-columns:1fr 1fr;gap:30px;}
  .post-grid,.steps,.svc-grid,.thankyou-next{grid-template-columns:1fr 1fr;}
  .haul{grid-template-columns:1fr;gap:20px;}
  .haul-panel.is-active{grid-template-columns:1fr;}
  .haul-photo{min-height:260px;}
  .team-grid,.why-features{grid-template-columns:1fr 1fr;}
  .member--raised{transform:none;}
  .partner-row{grid-template-columns:repeat(3,1fr);}
  /* Four footer columns become two before the words start breaking. */
  .footer-grid{grid-template-columns:1fr 1fr;gap:36px;}
  .footer-about{grid-column:1/-1;}
  .footer-about p{max-width:none;}
  .cta-panel{grid-template-columns:1fr;}
  .hero-inner{padding:64px var(--gutter) 54px;}
  .product-grid,.woocommerce ul.products,.woocommerce-page ul.products{grid-template-columns:repeat(2,1fr);}
  .woocommerce div.product{grid-template-columns:1fr;gap:32px;}
  .woocommerce-account .woocommerce{grid-template-columns:1fr;}
  .swp-popup.has-image .swp-popup-box{grid-template-columns:1fr;}
  .swp-popup-media{max-height:200px;}
  .alignwide{margin-inline:0;max-width:100%;}
}
/* The header bar drops its optional pieces before the menu itself,
   so a long menu never forces a second row. */
@media (max-width:1260px){
  .header-phone small{display:none;}
}
@media (max-width:1150px){
  .header-phone{display:none;}
  .hdr-search{display:none;}
}
@media (max-width:860px){
  .nav{display:none;}
  .nav-toggle{display:block;}
  /* `.nav + .header-cta` still matches once the nav is display:none, so the
     actions need the auto margin back or they sit against the logo. */
  .header-cta,
  .nav + .header-cta{margin-left:auto;}
  #customer_login,.woocommerce-checkout .col2-set,.woocommerce-account .col2-set{grid-template-columns:1fr;}
}
@media (max-width:720px){
  .section{padding:66px 0;}
  body{padding-bottom:76px;}
  .header-cta .btn{display:none;}
  .action-bar{
    display:flex;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:80;
    background:var(--white);border-top:1px solid var(--line);padding:12px var(--gutter);
    box-shadow:0 -12px 30px -24px rgba(12,33,19,.6);
  }
  .totop{bottom:88px;right:16px;}
  .quote-contact{gap:16px;flex-direction:column;}

  /* The "NEW … Ask about a route" strip is a pill at desktop width. Once its
     text wraps to three lines the pill radius reads as a blob, so it becomes a
     centred card instead. */
  .services-foot{
    width:auto;margin-inline:0;flex-direction:column;text-align:center;
    border-radius:var(--r-lg);padding:22px;gap:12px;
  }

  /* Counters: let the label use the full width instead of wrapping every
     two words beside the figure. */
  .stat{gap:14px;align-items:baseline;}
  .stat span{max-width:none;}
  .stat strong{font-size:2.2rem;}
  .stats-band .wrap{gap:22px;}
  .haul-detail{padding:26px 22px 24px;}
  .haul-photo{min-height:210px;}
  .haul-tab{padding:17px 40px 17px 22px;}
  .post-grid,.steps,.mv-grid,.stats-band .wrap,.haul-list,.svc-grid,
  .team-grid,.why-features,.partner-row,.about-points,.stat-strip,
  .field-row,.post-nav,.thankyou-next,
  .content-grid .post-grid,.content-grid.no-sidebar .post-grid{grid-template-columns:1fr;}
  .mv-card{grid-template-columns:1fr;}
  .mv-card .mv-photo{height:180px;order:-1;}

  /* One footer column on phones — two was still forcing a word per line. */
  .footer-grid{grid-template-columns:1fr;gap:34px;}
  .site-footer{padding-top:56px;}
  .wordmark{margin:38px 0 -10px;}
  .legal{flex-direction:column;align-items:flex-start;gap:12px;}
  .hero-panel{min-height:auto;border-radius:0 0 var(--r-lg) var(--r-lg);}
  .hero-inner{padding:44px var(--gutter) 40px;}
  .cta-copy{padding:36px 26px;}
  .stat{justify-content:flex-start;}
  .testi-head{flex-direction:column;align-items:flex-start;}
  .page-banner{padding:60px 0 54px;border-radius:0 0 var(--r-lg) var(--r-lg);}
  .quote-card{padding:26px 22px;}
  .comment-list .children{padding-left:14px;}
  /* The subscribe pill becomes a stacked card — a 140px field and a button
     side by side on a 390px screen leaves room for neither. */
  .newsletter .wpcf7 form,
  .subscribe{
    flex-wrap:wrap;border-radius:var(--r-lg);padding:14px;gap:12px;
  }
  .newsletter .wpcf7 .wpcf7-form-control-wrap,
  .subscribe input{flex:1 1 100%;min-width:0;}
  .subscribe input{padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--mint-050);}
  .newsletter .wpcf7 input[type=email]{padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--mint-050);}
  .newsletter .wpcf7 input[type=submit],
  .newsletter .wpcf7 button[type=submit],
  .subscribe .btn{width:100%;flex:1 1 100%;justify-content:center;}
  .woocommerce table.shop_table_responsive tr td{text-align:right;}
  .service-booking .quote-card{padding:24px 20px;}
}
@media (max-width:520px){
  .product-grid,.woocommerce ul.products,.woocommerce-page ul.products{grid-template-columns:1fr;}
  .tst-nav{gap:10px;}
  .legal{flex-direction:column;gap:10px;}
}
