/*
Theme Name: GeneratePress Child
Theme URI: https://generatepress.com
Template: generatepress
Author: Tom Usborne
Author URI: https://generatepress.com/about
Description: GeneratePress is a lightweight WordPress theme built with a focus on speed and usability. Performance is important to us, which is why a fresh GeneratePress install adds less than 10kb (gzipped) to your page size. We take full advantage of the block editor (Gutenberg), which gives you more control over creating your content. If you use page builders, GeneratePress is the right theme for you. It is completely compatible with all major page builders, including Beaver Builder and Elementor. Thanks to our emphasis on WordPress coding standards, we can boast full compatibility with all well-coded plugins, including WooCommerce. GeneratePress is fully responsive, uses valid HTML/CSS, and is translated into over 25 languages by our amazing community of users. A few of our many features include 60+ color controls, powerful dynamic typography, 5 navigation locations, 5 sidebar layouts, dropdown menus (click or hover), and 9 widget areas. Learn more and check out our powerful premium version at https://generatepress.com
Tags: two-columns,three-columns,one-column,right-sidebar,left-sidebar,footer-widgets,blog,e-commerce,flexible-header,full-width-template,buddypress,custom-header,custom-background,custom-menu,custom-colors,sticky-post,threaded-comments,translation-ready,rtl-language-support,featured-images,theme-options
Version: 3.6.1.1782132468
Updated: 2026-06-22 12:47:48

*/
/* ---- GeneratePress integration ----------------------------------------
   Our page blocks include their own <h1> hero, so hide the theme's auto
   page title and let GenerateBlocks containers run full-width. (You can also
   do this per-page in GeneratePress → Layout, but this is the global default.) */
.page .entry-header{display:none;}
/* PAGE LAYOUT (do this per page or globally for Pages):
   GeneratePress → Layout → Sidebars = "No Sidebars", and Content/Container =
   "Full Width". Then sections fill the screen, the alternating backgrounds span
   edge-to-edge, and the centred .svpl-wrap / .svpl-narrow inside are centred on
   the page. A leftover default sidebar is the usual cause of content that
   "isn't centred". See README → "Page layout". */

:root{
  --svpl-accent:        var(--accent,#cf2224);
  --svpl-accent-rgb:    207,34,36;
  --svpl-accent-dark:   #a81a1c;
  --svpl-ink:           var(--contrast,#2a261c);
  --svpl-ink-2:         var(--contrast-2,#5c5547);
  --svpl-ink-3:         var(--contrast-3,#8a8170);
  --svpl-bg:            var(--base,#ffffff);
  --svpl-bg-2:          var(--base-2,#fcf9f3);
  --svpl-bg-3:          var(--base-3,#f3ead9);
  --svpl-line:          #e7ddca;
  --svpl-radius:        14px;
  --svpl-radius-sm:     9px;
  --svpl-shadow:        0 6px 24px rgba(42,38,28,.08);
  --svpl-shadow-lg:     0 16px 48px rgba(42,38,28,.14);
  --svpl-maxw:          1180px;
}

/* ---- Section scaffolding ------------------------------------------------- */
/* Each section fills the content area edge-to-edge; on a full-width, no-sidebar
   page (see the layout note above) that means the full screen width. The inner
   .svpl-wrap / .svpl-narrow then centre the content. */
.svpl-section{padding:clamp(48px,7vw,92px) 20px;box-sizing:border-box;width:100%;}
.svpl-section.is-tight{padding:clamp(32px,4vw,52px) 20px;}
.svpl-alt{background:var(--svpl-bg-2);}
.svpl-ink-bg{background:var(--svpl-ink);color:#f4f1ea;}
.svpl-wrap{max-width:var(--svpl-maxw);margin-inline:auto;}
.svpl-narrow{max-width:780px;margin-inline:auto;}

/* ---- Typography --------------------------------------------------------- */
.svpl-eyebrow{display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--svpl-accent);margin:0 0 12px;}
.svpl-h2{font-size:clamp(1.7rem,3.4vw,2.5rem);line-height:1.15;color:var(--svpl-ink);
  margin:0 0 14px;font-weight:800;letter-spacing:-.01em;}
.svpl-h3{font-size:clamp(1.2rem,2vw,1.45rem);color:var(--svpl-ink);margin:0 0 8px;font-weight:700;}
.svpl-lead{font-size:1.08rem;line-height:1.7;color:var(--svpl-ink-2);margin:0 auto;max-width:64ch;}
/* Balance multi-line headings (no lone orphan word) and tidy paragraph rags. */
.svpl-hero h1,.svpl-h2,.svpl-h3{text-wrap:balance;}
.svpl-lead,.svpl-card p,.svpl-faq-a,.svpl-hero p{text-wrap:pretty;}
.svpl-center{text-align:center;}
.svpl-head{margin:0 0 42px;}
.svpl-head.svpl-center{margin-inline:auto;}
.svpl-head.svpl-center .svpl-lead{margin-inline:auto;}

/* ---- Buttons ------------------------------------------------------------ */
.svpl-btn{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:1rem;
  line-height:1;padding:15px 26px;border-radius:var(--svpl-radius-sm);text-decoration:none;
  border:2px solid transparent;cursor:pointer;transition:transform .15s ease,background .15s ease,
  color .15s ease,border-color .15s ease,box-shadow .15s ease;}
.svpl-btn svg{width:18px;height:18px;}
.svpl-btn-primary{background:var(--svpl-accent);color:#fff;border-color:var(--svpl-accent);}
.svpl-btn-primary:hover{background:var(--svpl-accent-dark);border-color:var(--svpl-accent-dark);
  color:#fff;transform:translateY(-2px);box-shadow:0 8px 22px rgba(var(--svpl-accent-rgb),.32);}
.svpl-btn-outline{background:transparent;color:var(--svpl-accent);border-color:var(--svpl-accent);}
.svpl-btn-outline:hover{background:var(--svpl-accent);color:#fff;transform:translateY(-2px);}
.svpl-btn-ghost{background:#fff;color:var(--svpl-ink);border-color:var(--svpl-line);}
.svpl-btn-ghost:hover{border-color:var(--svpl-accent);color:var(--svpl-accent);}
.svpl-btn-lg{padding:18px 32px;font-size:1.06rem;}
.svpl-btn-block{display:flex;width:100%;justify-content:center;}
.svpl-cta-row{display:flex;flex-wrap:wrap;gap:14px;}
.svpl-cta-row.svpl-center{justify-content:center;}

/* ---- Hero --------------------------------------------------------------- */
.svpl-hero{background:linear-gradient(180deg,var(--svpl-bg-2),var(--svpl-bg));}
.svpl-hero-split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,60px);align-items:center;}
.svpl-hero-copy{min-width:0;}
.svpl-hero h1{font-size:clamp(2rem,4.6vw,3.25rem);line-height:1.08;color:var(--svpl-ink);
  margin:0 0 18px;font-weight:800;letter-spacing:-.02em;}
.svpl-hero h1 .hl{color:var(--svpl-accent);}
.svpl-hero p{font-size:1.13rem;line-height:1.7;color:var(--svpl-ink-2);margin:0 0 26px;max-width:56ch;}
.svpl-hero-media img{width:100%;height:auto;max-height:460px;object-fit:contain;
  background:var(--svpl-bg-2);border-radius:var(--svpl-radius);box-shadow:var(--svpl-shadow-lg);display:block;}
.svpl-trust{display:flex;flex-wrap:wrap;gap:18px;margin-top:26px;align-items:center;}
.svpl-trust span{display:inline-flex;align-items:center;gap:7px;font-size:.86rem;font-weight:600;color:var(--svpl-ink-2);}
.svpl-trust svg{width:17px;height:17px;color:var(--svpl-accent);}

/* ---- Stat strip --------------------------------------------------------- */
.svpl-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center;}
.svpl-statnum{font-size:clamp(2rem,4vw,2.9rem);font-weight:800;line-height:1;color:var(--svpl-accent);}
.svpl-statlbl{margin-top:8px;font-size:.9rem;color:var(--svpl-ink-2);}

/* ---- Grids -------------------------------------------------------------- */
.svpl-grid{display:grid;gap:24px;}
.svpl-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));}
.svpl-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.svpl-grid-4{grid-template-columns:repeat(4,minmax(0,1fr));}

/* ---- Cards -------------------------------------------------------------- */
.svpl-card{background:#fff;border:1px solid var(--svpl-line);border-radius:var(--svpl-radius);
  padding:28px;box-shadow:var(--svpl-shadow);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;height:100%;}
.svpl-card:hover{transform:translateY(-4px);box-shadow:var(--svpl-shadow-lg);border-color:var(--svpl-bg-3);}
.svpl-card .svpl-icon{width:34px;height:34px;color:var(--svpl-accent);margin-bottom:14px;}
.svpl-card h3{margin:0 0 8px;font-size:1.14rem;color:var(--svpl-ink);}
/* Card titles that are links (e.g. the Related equipment strip) — real anchor text, brand styling */
.svpl-card h3 a{color:var(--svpl-ink);text-decoration:none;}
.svpl-card h3 a:hover{color:var(--svpl-accent);}
.svpl-card h3 a:focus-visible{outline:2px solid var(--svpl-accent);outline-offset:3px;border-radius:2px;}
.svpl-card p{margin:0;color:var(--svpl-ink-2);font-size:.96rem;line-height:1.6;}

/* product / category cards (image-led, whole card clickable) */
.svpl-pcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--svpl-line);
  border-radius:var(--svpl-radius);overflow:hidden;box-shadow:var(--svpl-shadow);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;height:100%;}
.svpl-pcard:hover{transform:translateY(-5px);box-shadow:var(--svpl-shadow-lg);border-color:var(--svpl-accent);}
.svpl-pcard-img{aspect-ratio:4/3;width:100%;object-fit:contain;background:var(--svpl-bg-2);display:block;box-sizing:border-box;padding:10px;}
.svpl-pcard-body{padding:20px;display:flex;flex-direction:column;gap:7px;flex:1;}
.svpl-pcard-body h3{margin:0;font-size:1.08rem;line-height:1.3;}
.svpl-pcard-body h3 a{color:var(--svpl-ink);text-decoration:none;}
.svpl-pcard:hover .svpl-pcard-body h3 a{color:var(--svpl-accent);}
.svpl-pcard-body p{margin:0;color:var(--svpl-ink-2);font-size:.9rem;line-height:1.55;}
.svpl-pcard-more{margin-top:auto;padding-top:12px;font-weight:700;font-size:.86rem;color:var(--svpl-accent);
  display:inline-flex;align-items:center;gap:6px;}
.svpl-pcard-more svg{width:15px;height:15px;}
.svpl-stretch{position:absolute;inset:0;z-index:1;}

/* ---- Checklist / icon list --------------------------------------------- */
.svpl-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:13px;}
.svpl-list li{display:flex;gap:12px;align-items:flex-start;color:var(--svpl-ink-2);line-height:1.55;}
.svpl-list svg{width:21px;height:21px;color:var(--svpl-accent);flex-shrink:0;margin-top:1px;}
.svpl-list b{color:var(--svpl-ink);font-weight:700;}

/* ---- Split (media + text) ---------------------------------------------- */
.svpl-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,56px);align-items:start;}
.svpl-split.is-rev .svpl-split-media{order:2;}
/* aspect-ratio reserves the column even if the photo is slow/missing (so text
   never gets pushed to one side), and contain prevents any cropping. */
.svpl-split-media img{width:100%;aspect-ratio:4/3;object-fit:contain;background:var(--svpl-bg-2);
  border-radius:var(--svpl-radius);box-shadow:var(--svpl-shadow);display:block;}

/* ---- Specs / data table ------------------------------------------------ */
.svpl-tablewrap{overflow-x:auto;border:1px solid var(--svpl-line);border-radius:var(--svpl-radius);}
.svpl-table{width:100%;border-collapse:collapse;font-size:.94rem;min-width:520px;}
.svpl-table th,.svpl-table td{padding:13px 16px;text-align:left;border-bottom:1px solid var(--svpl-line);}
.svpl-table thead th{background:var(--svpl-ink);color:#f4f1ea;font-weight:700;}
.svpl-table tbody tr:nth-child(even){background:var(--svpl-bg-2);}
.svpl-table tbody tr:last-child td{border-bottom:none;}
.svpl-table td{color:var(--svpl-ink-2);}
.svpl-table td:first-child{color:var(--svpl-ink);font-weight:600;}

/* ---- Cert / badge row --------------------------------------------------- */
.svpl-badges{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;}
.svpl-badge{display:inline-flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--svpl-line);
  border-radius:999px;padding:10px 18px;font-weight:700;font-size:.92rem;color:var(--svpl-ink);
  text-decoration:none;}
.svpl-badge svg{width:18px;height:18px;color:var(--svpl-accent);}
/* Badges that are links (e.g. downloadable certificates) must read as interactive */
a.svpl-badge{transition:border-color .15s ease,color .15s ease,transform .15s ease;}
a.svpl-badge:hover{border-color:var(--svpl-accent);color:var(--svpl-accent);transform:translateY(-2px);}
a.svpl-badge:focus-visible{outline:2px solid var(--svpl-accent);outline-offset:2px;}
/* Inline links inside spec/certification tables — brand colour, not browser blue */
.svpl-table td a{color:var(--svpl-accent);font-weight:600;text-decoration:none;}
.svpl-table td a:hover{text-decoration:underline;}

/* ---- Industries grid ---------------------------------------------------- */
.svpl-ind{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.svpl-ind a{display:flex;align-items:center;gap:12px;padding:18px 20px;background:#fff;
  border:1px solid var(--svpl-line);border-radius:var(--svpl-radius-sm);text-decoration:none;
  color:var(--svpl-ink);font-weight:600;transition:transform .15s ease,border-color .15s ease,color .15s ease;}
.svpl-ind a:hover{transform:translateY(-3px);border-color:var(--svpl-accent);color:var(--svpl-accent);}
.svpl-ind svg{width:24px;height:24px;color:var(--svpl-accent);flex-shrink:0;}

/* ---- FAQ accordion ------------------------------------------------------ */
.svpl-faq{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:12px;}
.svpl-faq details{background:#fff;border:1px solid var(--svpl-line);border-radius:var(--svpl-radius-sm);overflow:hidden;}
.svpl-faq summary{list-style:none;cursor:pointer;padding:18px 22px;font-weight:700;color:var(--svpl-ink);
  display:flex;justify-content:space-between;align-items:center;gap:16px;}
.svpl-faq summary::-webkit-details-marker{display:none;}
.svpl-faq summary::after{content:"+";font-size:1.5rem;font-weight:400;color:var(--svpl-accent);transition:transform .2s ease;line-height:1;}
.svpl-faq details[open] summary::after{transform:rotate(45deg);}
.svpl-faq .svpl-faq-a{padding:0 22px 20px;color:var(--svpl-ink-2);line-height:1.7;}

/* ---- CTA band ----------------------------------------------------------- */
.svpl-ctaband{background:var(--svpl-accent);color:#fff;border-radius:var(--svpl-radius);
  padding:clamp(34px,5vw,56px);text-align:center;}
.svpl-ctaband h2{color:#fff;font-size:clamp(1.6rem,3vw,2.2rem);margin:0 0 12px;font-weight:800;}
.svpl-ctaband p{color:rgba(255,255,255,.92);font-size:1.08rem;margin:0 auto 26px;max-width:60ch;line-height:1.6;}
.svpl-ctaband .svpl-btn-primary{background:#fff;color:var(--svpl-accent);border-color:#fff;}
.svpl-ctaband .svpl-btn-primary:hover{background:var(--svpl-ink);color:#fff;border-color:var(--svpl-ink);}
.svpl-ctaband .svpl-btn-outline{color:#fff;border-color:rgba(255,255,255,.7);}
.svpl-ctaband .svpl-btn-outline:hover{background:#fff;color:var(--svpl-accent);border-color:#fff;}

/* ---- Breadcrumb --------------------------------------------------------- */
.svpl-crumb{font-size:.85rem;color:var(--svpl-ink-3);margin:0 0 6px;}
.svpl-crumb a{color:var(--svpl-ink-3);text-decoration:none;}
.svpl-crumb a:hover{color:var(--svpl-accent);}

/* ---- Forms -------------------------------------------------------------- */
.svpl-formcard{background:#fff;border:1px solid var(--svpl-line);border-radius:var(--svpl-radius);
  padding:clamp(24px,4vw,40px);box-shadow:var(--svpl-shadow);}
.svpl-contactlines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:20px;}
.svpl-contactlines li{display:flex;gap:14px;align-items:flex-start;}
.svpl-contactlines svg{width:22px;height:22px;color:var(--svpl-accent);flex-shrink:0;margin-top:3px;}
.svpl-contactlines .lbl{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--svpl-ink-3);font-weight:700;margin-bottom:3px;}
.svpl-contactlines a{color:var(--svpl-ink);text-decoration:none;font-weight:600;}
.svpl-contactlines a:hover{color:var(--svpl-accent);}
.svpl-contactlines address{font-style:normal;color:var(--svpl-ink-2);line-height:1.55;}

/* ---- Floating WhatsApp CTA (optional, drop on any page) ----------------- */
.svpl-wa{position:fixed;right:22px;bottom:22px;z-index:990;display:inline-flex;align-items:center;gap:10px;
  background:#25d366;color:#fff;font-weight:700;padding:13px 18px;border-radius:999px;text-decoration:none;
  box-shadow:0 10px 26px rgba(0,0,0,.22);transition:transform .15s ease;}
.svpl-wa:hover{transform:translateY(-2px);color:#fff;}
.svpl-wa svg{width:22px;height:22px;}

/* ---- Client logo wall (home #clients) ----------------------------------- */
.svpl-logowall{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;align-items:center;}
.svpl-logowall img{width:100%;height:74px;object-fit:contain;background:#fff;
  border:1px solid var(--svpl-line);border-radius:var(--svpl-radius-sm);padding:12px;
  box-sizing:border-box;filter:grayscale(1);opacity:.72;
  transition:filter .2s ease,opacity .2s ease,transform .2s ease;}
.svpl-logowall img:hover{filter:none;opacity:1;transform:translateY(-2px);}
@media(max-width:960px){.svpl-logowall{grid-template-columns:repeat(4,1fr);}}
@media(max-width:560px){.svpl-logowall{grid-template-columns:repeat(3,1fr);gap:10px;}
  .svpl-logowall img{height:58px;padding:8px;}}

/* ---- Industry tile image on sector cards -------------------------------- */
.svpl-card .svpl-tile{width:100%;height:150px;object-fit:cover;border-radius:var(--svpl-radius-sm);
  margin-bottom:16px;display:block;}

/* ---- Diagram strip (working-principle images) --------------------------- */
.svpl-diagrams{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:26px;}
.svpl-diagrams figure{margin:0;background:#fff;border:1px solid var(--svpl-line);
  border-radius:var(--svpl-radius-sm);padding:12px;text-align:center;}
.svpl-diagrams img{width:100%;height:150px;object-fit:contain;}
.svpl-diagrams figcaption{font-size:.82rem;color:var(--svpl-ink-3);margin-top:8px;}
.svpl-diagrams.is-2{grid-template-columns:repeat(2,1fr);}
@media(max-width:680px){.svpl-diagrams,.svpl-diagrams.is-2{grid-template-columns:1fr 1fr;}}

/* ---- Map embed (contact #map) ------------------------------------------- */
.svpl-map{position:relative;width:100%;aspect-ratio:16/7;border-radius:var(--svpl-radius);
  overflow:hidden;box-shadow:var(--svpl-shadow);margin-top:28px;background:var(--svpl-bg-2);}
.svpl-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
@media(max-width:680px){.svpl-map{aspect-ratio:4/3;}}

/* ---- Icons -------------------------------------------------------------- */
.svpl-icon{display:inline-block;vertical-align:middle;}

/* ---- Carousel (Splide) -------------------------------------------------- */
/* Markup is a standard Splide structure inside any `.svpl-carousel` wrapper;
   the library + init load once via the WPCode snippet in `carousel-setup.txt`.
   Slides can be <img> (photo/GIF) or a `.svpl-embed` wrapping a YouTube <iframe>.
   A single-slide carousel just shows the image (init disables arrows/dots). */
.svpl-carousel{position:relative;}
.svpl-carousel .splide__slide img{width:100%;aspect-ratio:4/3;object-fit:contain;
  background:var(--svpl-bg-2);border-radius:var(--svpl-radius);display:block;box-shadow:var(--svpl-shadow);}
.svpl-carousel .svpl-embed{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;
  border-radius:var(--svpl-radius);background:#000;box-shadow:var(--svpl-shadow);}
.svpl-carousel .svpl-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
/* brand skin over Splide's default theme */
.svpl-carousel .splide__arrow{background:#fff;border:1px solid var(--svpl-line);opacity:1;box-shadow:var(--svpl-shadow);}
.svpl-carousel .splide__arrow svg{fill:var(--svpl-ink);height:1.1em;width:1.1em;transition:fill .15s ease;}
.svpl-carousel .splide__arrow:hover:not(:disabled){background:var(--svpl-accent);border-color:var(--svpl-accent);}
.svpl-carousel .splide__arrow:hover:not(:disabled) svg{fill:#fff;}
.svpl-carousel .splide__pagination{bottom:-1.6em;}
.svpl-carousel .splide__pagination__page{background:var(--svpl-line);opacity:1;margin:0 5px;}
.svpl-carousel .splide__pagination__page.is-active{background:var(--svpl-accent);transform:scale(1.3);}
.svpl-carousel .splide__slide{width:100%;}
/* No-JS / pre-mount fallback: if Splide hasn't loaded yet (or the CDN is blocked),
   render the list cleanly — no bullets/indent, image full width, extra slides stacked.
   Once Splide mounts it sets inline widths + .is-initialized and takes over. */
.svpl-carousel .splide__list{list-style:none;margin:0;padding:0;}
.svpl-carousel .splide:not(.is-initialized) .splide__slide + .splide__slide{margin-top:14px;}
/* in the hero column, keep slides to the hero image height */
.svpl-hero-media .svpl-carousel .splide__slide img{max-height:460px;}

/* ============================================================================
   SITE CHROME — header, footer, floating CTA, mobile CTA bar
   Markup lives in /elements as GenerateBlocks elements (GeneratePress →
   Appearance → Elements). Edit the element once; it updates site-wide.
   ========================================================================== */

/* ---- Site header (elements/site-header.txt) ----------------------------- */
.svpl-siteheader{position:sticky;top:0;z-index:1000;background:#fff;
  border-bottom:1px solid var(--svpl-line);}
body.admin-bar .svpl-siteheader{top:32px;}
.svpl-siteheader-in{max-width:var(--svpl-maxw);margin-inline:auto;display:flex;
  align-items:center;gap:clamp(18px,3vw,34px);padding:0 20px;min-height:74px;}
/* Logo — text wordmark until the client logo file arrives (see elements/README) */
.svpl-logo{display:inline-flex;flex-direction:column;text-decoration:none;line-height:1.1;}
.svpl-logo img{display:block;height:44px;width:auto;}
.svpl-logo-mark{font-size:1.42rem;font-weight:800;letter-spacing:.02em;color:var(--svpl-accent);}
.svpl-logo-sub{font-size:.62rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--svpl-ink-2);}
/* Desktop nav */
.svpl-nav{margin-left:auto;}
.svpl-nav ul{display:flex;align-items:center;gap:clamp(14px,2vw,26px);list-style:none;margin:0;padding:0;}
.svpl-nav li{margin:0;}
.svpl-nav a{color:var(--svpl-ink);text-decoration:none;font-weight:600;font-size:.97rem;}
.svpl-nav a:hover{color:var(--svpl-accent);}
.svpl-nav a:focus-visible{outline:2px solid var(--svpl-accent);outline-offset:3px;border-radius:2px;}
/* Products dropdown — opens on hover and on keyboard focus */
.svpl-nav .has-sub{position:relative;}
.svpl-nav .has-sub>a{display:inline-flex;align-items:center;gap:6px;padding:26px 0;}
.svpl-nav .has-sub>a svg{width:11px;height:11px;transition:transform .15s ease;}
.svpl-nav .has-sub:hover>a svg,.svpl-nav .has-sub:focus-within>a svg{transform:rotate(180deg);}
.svpl-sub{position:absolute;top:100%;left:-16px;min-width:250px;display:none;
  flex-direction:column;background:#fff;border:1px solid var(--svpl-line);
  border-radius:var(--svpl-radius-sm);box-shadow:var(--svpl-shadow-lg);padding:8px;z-index:1001;}
.svpl-nav .has-sub:hover .svpl-sub,.svpl-nav .has-sub:focus-within .svpl-sub{display:flex;}
.svpl-sub a{display:block;padding:11px 14px;border-radius:7px;font-size:.94rem;}
.svpl-sub a:hover{background:var(--svpl-bg-2);}
.svpl-sub .svpl-sub-all{border-top:1px solid var(--svpl-line);margin-top:6px;padding-top:13px;color:var(--svpl-accent);}
/* Header quote button */
.svpl-nav-cta{padding:13px 22px;font-size:.94rem;flex-shrink:0;}
/* Mobile menu — <details> disclosure, no JS required */
.svpl-m-nav{display:none;margin-left:auto;}
.svpl-m-nav>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;
  justify-content:center;width:46px;height:46px;border:1px solid var(--svpl-line);
  border-radius:var(--svpl-radius-sm);color:var(--svpl-ink);}
.svpl-m-nav>summary::-webkit-details-marker{display:none;}
.svpl-m-nav>summary svg{width:24px;height:24px;}
.svpl-m-nav>summary .svpl-i-close{display:none;}
.svpl-m-nav[open]>summary .svpl-i-close{display:block;}
.svpl-m-nav[open]>summary .svpl-i-burger{display:none;}
.svpl-m-panel{position:fixed;left:0;right:0;top:74px;bottom:0;overflow:auto;background:#fff;
  border-top:1px solid var(--svpl-line);padding:20px 20px 110px;z-index:999;}
body.admin-bar .svpl-m-panel{top:120px;}
.svpl-m-panel ul{list-style:none;margin:0;padding:0;}
.svpl-m-panel li{margin:0;}
.svpl-m-panel a{display:block;padding:15px 4px;font-size:1.08rem;font-weight:700;
  color:var(--svpl-ink);text-decoration:none;border-bottom:1px solid var(--svpl-bg-3);}
.svpl-m-panel a:hover{color:var(--svpl-accent);}
.svpl-m-panel .svpl-m-sub a{padding-left:22px;font-weight:600;font-size:.98rem;color:var(--svpl-ink-2);}
.svpl-m-panel .svpl-m-cta{margin-top:22px;}
/* the quote button must not inherit the panel's link styling */
.svpl-m-panel .svpl-m-cta a{display:flex;justify-content:center;color:#fff;
  border-bottom:none;font-size:1.02rem;padding:17px 24px;}

/* ---- Site footer (elements/site-footer.txt) ----------------------------- */
.svpl-sitefooter{background:var(--svpl-ink);color:#cfc8b8;}
.svpl-sitefooter-in{max-width:var(--svpl-maxw);margin-inline:auto;
  padding:clamp(48px,6vw,72px) 20px 0;display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1.35fr;gap:clamp(28px,4vw,48px);}
.svpl-f-h{color:#fff;font-size:.85rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;margin:0 0 16px;}
.svpl-sitefooter p{color:#cfc8b8;font-size:.94rem;line-height:1.7;margin:0 0 18px;}
.svpl-sitefooter ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.svpl-sitefooter li{margin:0;}
.svpl-sitefooter a{color:#e8e2d4;text-decoration:none;font-size:.94rem;}
.svpl-sitefooter a:hover{color:#fff;text-decoration:underline;}
.svpl-sitefooter a:focus-visible{outline:2px solid #fff;outline-offset:2px;}
.svpl-f-logo .svpl-logo-mark{color:#fff;}
.svpl-f-logo .svpl-logo-sub{color:#cfc8b8;}
.svpl-f-certs{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px;}
.svpl-f-certs a,.svpl-f-certs span{display:inline-block;border:1px solid rgba(255,255,255,.25);
  border-radius:999px;padding:6px 13px;font-size:.8rem;font-weight:700;color:#e8e2d4;}
.svpl-f-certs a:hover{border-color:#fff;text-decoration:none;}
.svpl-f-contact li{display:flex;gap:10px;align-items:flex-start;font-size:.94rem;line-height:1.6;}
.svpl-f-contact svg{width:18px;height:18px;color:var(--svpl-accent);flex-shrink:0;margin-top:3px;}
.svpl-f-contact address{font-style:normal;color:#cfc8b8;}
.svpl-f-bottom{border-top:1px solid rgba(255,255,255,.14);margin-top:clamp(36px,5vw,56px);}
.svpl-f-bottom-in{max-width:var(--svpl-maxw);margin-inline:auto;padding:22px 20px;
  display:flex;flex-wrap:wrap;gap:12px 26px;align-items:center;justify-content:space-between;
  font-size:.85rem;color:var(--svpl-ink-3);}
.svpl-f-bottom-in a{font-size:.85rem;color:#cfc8b8;}
.svpl-f-legal{display:flex;gap:22px;}

/* ---- Floating WhatsApp CTA (elements/floating-cta.txt) ------------------
   Base .svpl-wa styling is defined above under "Floating WhatsApp CTA".
   On phones it is hidden — the mobile CTA bar below takes over. */
.svpl-floatcta{display:contents;}   /* GB element wrapper — no layout of its own */

/* ---- Mobile CTA bottom bar (elements/mobile-cta-bar.txt) ----------------
   Fixed call/WhatsApp/quote bar, phones only (≤768px). */
.svpl-mobilebar{position:fixed;left:0;right:0;bottom:0;z-index:995;display:none;
  grid-template-columns:1fr 1fr 1.35fr;gap:8px;background:#fff;
  border-top:1px solid var(--svpl-line);box-shadow:0 -6px 24px rgba(42,38,28,.14);
  padding:8px 10px calc(8px + env(safe-area-inset-bottom));}
.svpl-mobilebar a{display:inline-flex;align-items:center;justify-content:center;gap:7px;
  font-weight:700;font-size:.92rem;line-height:1;padding:12px 8px;
  border-radius:var(--svpl-radius-sm);text-decoration:none;}
.svpl-mobilebar svg{width:17px;height:17px;flex-shrink:0;}
.svpl-mobilebar .is-call{color:var(--svpl-ink);border:1.5px solid var(--svpl-line);}
.svpl-mobilebar .is-wa{color:#fff;background:#25d366;}
.svpl-mobilebar .is-quote{color:#fff;background:var(--svpl-accent);}

/* ---- Chrome responsive --------------------------------------------------- */
@media(max-width:960px){
  .svpl-nav,.svpl-nav-cta{display:none;}
  .svpl-m-nav{display:block;}
  .svpl-sitefooter-in{grid-template-columns:1fr 1fr;}
}
@media(max-width:768px){
  .svpl-mobilebar{display:grid;}
  .svpl-wa{display:none;}                       /* bar replaces the bubble */
  body{padding-bottom:calc(66px + env(safe-area-inset-bottom));}
}
@media(max-width:560px){
  .svpl-sitefooter-in{grid-template-columns:1fr;}
}

/* ---- Responsive --------------------------------------------------------- */
@media(max-width:960px){
  .svpl-hero-split,.svpl-split{grid-template-columns:1fr;}
  .svpl-split.is-rev .svpl-split-media{order:0;}
  .svpl-grid-4{grid-template-columns:repeat(2,minmax(0,1fr));}
  .svpl-ind{grid-template-columns:repeat(2,1fr);}
  .svpl-stats{grid-template-columns:repeat(2,1fr);gap:30px;}
}
@media(max-width:680px){
  .svpl-grid-2,.svpl-grid-3,.svpl-grid-4{grid-template-columns:minmax(0,1fr);}
  .svpl-ind{grid-template-columns:1fr;}
  .svpl-cta-row .svpl-btn{width:100%;justify-content:center;}
}


