/*!
Theme Name: SWP Security Services Pro
Theme URI:
Author: ScintillawpThemes
Author URI: https://scintillawpthemes.com/
Description: SWP Security Services Pro is a sharp, orange-and-ink WordPress theme for manned guarding, mobile patrol, CCTV monitoring and alarm-response companies. Powered by the Customizer + Kirki framework, it ships with reorderable homepage sections, a global color palette, a Service post type, Contact Form 7 integration, a testimonial carousel and a full set of inner page templates.
Version: 1.1.0
Requires at least: 5.5
Requires PHP: 7.2
Tested up to: 7.0.1
License: GNU General Public License v3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Text Domain: swp-security-services-pro
Tags: blog, two-columns, custom-background, custom-colors, full-width-template, custom-menu, custom-logo, featured-images, theme-options, threaded-comments, translation-ready
*/

/* ============================================================
   1. DESIGN TOKENS
   The Customizer overrides the colour tokens inline (see
   swp_security_services_pro_dynamic_css()).
   ============================================================ */
:root{
  --orange:#f28134;
  --orange-600:#e06f22;
  --orange-100:#fdf1e8;
  --orange-050:#fef8f3;
  --ink:#1b1b1b;
  --ink-800:#232323;
  --ink-700:#2c2c2c;
  --ink-600:#3a3a3a;
  --body:#6d6d6d;
  --body-light:#a9a9a9;
  --line:#e7e7e7;
  --line-dark:#3d3d3d;
  --paper:#ffffff;
  --paper-2:#f7f7f7;

  --font-head:'Poppins',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-body:'Inter',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;

  /* Side gutter that pins every section's content to exactly 1320px.
     Uncapped on purpose — a max padding would let the content grow past
     1320px on ultra-wide screens. */
  --pad: max(20px, calc((100vw - 1320px) / 2));
  --r-sm:6px;
  --r-md:10px;
  --r-lg:18px;
  --shadow-card:0 18px 40px -24px rgba(0,0,0,.32);
  --shadow-frame:0 26px 60px -30px rgba(0,0,0,.45);
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ============================================================
   2. RESET
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.75;
  color:var(--body);
  background:var(--paper);
  overflow-x:hidden;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}
ul{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4,h5,h6{
  font-family:var(--font-head);
  color:var(--ink);
  margin:0;
  line-height:1.22;
  letter-spacing:-.015em;
  font-weight:700;
}
p{margin:0;}
svg{display:block;}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:2px;}
hr{border:0;border-top:1px solid var(--line);margin:32px 0;}
table{border-collapse:collapse;width:100%;}
code,pre,kbd{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;}

/* ============================================================
   3. TYPE SCALE
   ============================================================ */
.h-xl{font-size:clamp(2.35rem,1.4rem + 3.6vw,4.1rem);}
.h-lg{font-size:clamp(1.95rem,1.35rem + 2.3vw,3rem);}
.h-md{font-size:clamp(1.5rem,1.2rem + 1.2vw,2.05rem);}
.h-sm{font-size:1.18rem;font-weight:600;}
.h-xs{font-size:1rem;font-weight:600;}
.lede{font-size:1.06rem;line-height:1.85;}
.small{font-size:.875rem;}
.tiny{font-size:.79rem;letter-spacing:.09em;text-transform:uppercase;font-weight:600;}

.eyebrow{
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--font-head);font-size:.76rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--orange);
  margin-bottom:14px;
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--orange);flex:none;}
.eyebrow.center::after{content:"";width:26px;height:2px;background:var(--orange);flex:none;}
.hl,.accent{color:var(--orange);}
.light{color:var(--orange);font-style:normal;}
.ul{position:relative;white-space:nowrap;}
.ul::after{content:"";position:absolute;left:0;right:0;bottom:.06em;height:.14em;background:var(--orange-100);z-index:-1;}

/* ============================================================
   4. LAYOUT HELPERS
   ============================================================ */
.wrap{padding-left:var(--pad);padding-right:var(--pad);}
.sec{padding:clamp(64px,7vw,108px) var(--pad);}
.sec-tight{padding:clamp(48px,5vw,76px) var(--pad);}
.grid{display:grid;gap:30px;}
.center{text-align:center;}
.sec-head{max-width:640px;}
.sec-head.center{margin-inline:auto;}
.sec-head p{margin-top:16px;}
.screen-reader-text{
  border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;
  margin:-1px;overflow:hidden;padding:0;position:absolute!important;word-wrap:normal!important;
}
.screen-reader-text:focus{
  clip:auto!important;clip-path:none;display:block;height:auto;width:auto;
  left:6px;top:6px;padding:14px 22px;background:#fff;color:var(--ink);z-index:100000;
  font-family:var(--font-head);font-weight:600;border-radius:var(--r-sm);
  box-shadow:var(--shadow-card);
}
.skip-link:focus{outline:3px solid var(--orange);}

/* ============================================================
   5. BUTTONS
   ============================================================ */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-head);font-size:.9rem;font-weight:600;
  padding:14px 28px;border-radius:var(--r-sm);border:0;cursor:pointer;
  white-space:nowrap;
  transition:background .25s var(--ease),color .25s var(--ease),transform .25s var(--ease),border-color .25s var(--ease);
}
.btn svg{width:16px;height:16px;flex:none;}
.btn-primary{background:var(--orange);color:#fff;}
.btn-primary:hover{background:var(--orange-600);color:#fff;transform:translateY(-2px);}
.btn-dark{background:var(--ink);color:#fff;}
.btn-dark:hover{background:var(--orange);color:#fff;transform:translateY(-2px);}
.btn-ghost{border:1.5px solid rgba(255,255,255,.42);color:#fff;background:transparent;}
.btn-ghost:hover{background:#fff;color:var(--ink);border-color:#fff;}
.btn-outline{border:1.5px solid var(--line);color:var(--ink);background:transparent;}
.btn-outline:hover{border-color:var(--orange);color:var(--orange);}
.btn-sm{padding:9px 22px;font-size:.83rem;}
.btn-block{width:100%;justify-content:center;}
.link-arrow{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-head);font-weight:600;font-size:.88rem;color:var(--orange);
}
.link-arrow svg{width:15px;height:15px;transition:transform .25s var(--ease);}
.link-arrow:hover svg{transform:translateX(5px);}

/* ============================================================
   6. REVEAL ANIMATION (scoped to .js so no-JS still renders)
   ============================================================ */
.js .rv{opacity:0;transform:translateY(26px);transition:opacity .75s var(--ease),transform .75s var(--ease);}
.js .rv.in{opacity:1;transform:none;}
.js .rv-d1{transition-delay:.09s;}
.js .rv-d2{transition-delay:.18s;}
.js .rv-d3{transition-delay:.27s;}
.js .rv-d4{transition-delay:.36s;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .js .rv{opacity:1;transform:none;transition:none;}
  *{animation-duration:.001ms !important;transition-duration:.001ms !important;}
}

/* ============================================================
   7. PRELOADER
   ============================================================ */
.swp-loader{
  position:fixed;inset:0;z-index:9999;display:grid;place-items:center;
  transition:opacity .5s var(--ease),visibility .5s;
}
.swp-loader.loaded{opacity:0;visibility:hidden;}
.swp-loader-logo{max-width:190px;max-height:76px;width:auto;}
.swp-loader-mark{
  display:grid;place-items:center;width:74px;height:74px;border-radius:50%;
  background:var(--orange);color:#fff;
}
.swp-loader-mark svg{width:34px;height:34px;}
.swp-loader.anim-pulse  .swp-loader-inner{animation:swpPulse 1.4s var(--ease) infinite;}
.swp-loader.anim-bounce .swp-loader-inner{animation:swpBounce 1.1s var(--ease) infinite;}
.swp-loader.anim-fade   .swp-loader-inner{animation:swpFade 1.5s var(--ease) infinite;}
.swp-loader.anim-spin   .swp-loader-inner{position:relative;padding:26px;}
.swp-loader.anim-spin   .swp-loader-inner::after{
  content:"";position:absolute;inset:0;border-radius:50%;
  border:3px solid var(--orange-100);border-top-color:var(--orange);
  animation:swpSpin .9s linear infinite;
}
@keyframes swpPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.9);opacity:.65}}
@keyframes swpBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes swpFade{0%,100%{opacity:1}50%{opacity:.25}}
@keyframes swpSpin{to{transform:rotate(360deg)}}

/* ============================================================
   8. UTILITY BAR
   ============================================================ */
.ubar{
  background:var(--ink);color:#c9c9c9;font-size:.8rem;
  padding:9px var(--pad);
}
.ubar-in{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;}
.ubar-left{display:flex;align-items:center;gap:26px;flex-wrap:wrap;}
.ubar-item{display:inline-flex;align-items:center;gap:8px;}
.ubar-item svg{width:14px;height:14px;color:var(--orange);flex:none;}
.ubar a:hover{color:#fff;}
.ubar-right{display:flex;align-items:center;gap:14px;}
.ubar-right > span{color:#8d8d8d;}
.soc{display:flex;gap:12px;}
.soc a{display:grid;place-items:center;width:22px;height:22px;color:#d6d6d6;transition:color .2s,background .2s,border-color .2s;}
.soc a:hover{color:var(--orange);}
.soc svg{width:14px;height:14px;}

/* ============================================================
   9. HEADER
   ============================================================ */
.hdr{
  position:sticky;top:0;z-index:60;background:#fff;
  border-bottom:1px solid var(--line);
  padding:0 var(--pad);
  transition:box-shadow .3s var(--ease),background .3s var(--ease);
}
.hdr.stuck{box-shadow:0 10px 30px -18px rgba(0,0,0,.28);}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:82px;}
.brand{display:inline-flex;align-items:center;gap:11px;}
.brand img{max-height:52px;width:auto;}
/* The swap only happens when a distinct sticky logo was supplied — without
   `.has-sticky-logo` the header logo stays visible once the bar sticks. */
.brand .logo-stuck{display:none;}
.hdr.stuck .brand.has-sticky-logo .logo-main{display:none;}
.hdr.stuck .brand.has-sticky-logo .logo-stuck{display:block;}
.brand-mark{width:40px;height:44px;flex:none;}
.brand-txt{font-family:var(--font-head);line-height:1.08;}
.brand-txt b{display:block;font-size:1.02rem;font-weight:700;color:var(--ink);letter-spacing:-.01em;}
.brand-txt span{display:block;font-size:.63rem;letter-spacing:.22em;text-transform:uppercase;color:var(--orange);font-weight:600;}

/* Primary menu (WP nav) */
.nav{display:flex;align-items:center;}
.nav ul{display:flex;align-items:center;gap:34px;}
.nav li{position:relative;}
.nav a{
  display:inline-block;
  font-family:var(--font-head);font-size:.9rem;font-weight:500;color:var(--ink-600);
  padding:8px 0;position:relative;transition:color .2s;
}
.nav > ul > li > a::after{
  content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--orange);
  transition:width .28s var(--ease);
}
.nav a:hover,
.nav .current-menu-item > a,
.nav .current_page_item > a,
.nav .current-menu-ancestor > a{color:var(--ink);}
.nav > ul > li > a:hover::after,
.nav > ul > li.current-menu-item > a::after,
.nav > ul > li.current_page_item > a::after,
.nav > ul > li.current-menu-ancestor > a::after{width:100%;}
.nav .menu-item-has-children > a{padding-right:16px;}
.nav .menu-item-has-children > a::before{
  content:"";position:absolute;right:0;top:calc(50% - 2px);
  border:4px solid transparent;border-top-color:currentColor;opacity:.6;
}
/* Dropdown */
.nav ul ul{
  position:absolute;top:100%;left:-18px;min-width:236px;display:block;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-md);
  box-shadow:var(--shadow-card);padding:10px 0;gap:0;
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .22s var(--ease),transform .22s var(--ease),visibility .22s;
  z-index:5;
}
.nav li:hover > ul,.nav li:focus-within > ul{opacity:1;visibility:visible;transform:none;}
.nav ul ul li{width:100%;}
.nav ul ul a{
  display:block;padding:9px 22px;font-size:.88rem;width:100%;
  border-left:2px solid transparent;
}
.nav ul ul a:hover{color:var(--orange);border-left-color:var(--orange);background:var(--orange-050);}
.nav ul ul ul{top:0;left:100%;}

.hdr-cta{display:flex;align-items:center;gap:20px;}
.hdr-phone{display:inline-flex;align-items:center;gap:11px;}
.hdr-phone .ic{
  width:42px;height:42px;border-radius:50%;display:grid;place-items:center;
  background:var(--orange-100);color:var(--orange);flex:none;
}
.hdr-phone .ic svg{width:19px;height:19px;}
.hdr-phone small{display:block;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--body-light);line-height:1.5;}
.hdr-phone b{font-family:var(--font-head);font-size:.95rem;color:var(--ink);font-weight:600;}

.hdr-search{position:relative;}
.hdr-search .icon-btn{
  width:42px;height:42px;border-radius:50%;display:grid;place-items:center;
  border:1px solid var(--line);color:var(--ink);transition:border-color .2s,color .2s;
}
.hdr-search .icon-btn:hover{border-color:var(--orange);color:var(--orange);}
.hdr-search .icon-btn svg{width:17px;height:17px;}
.search-pop{
  position:absolute;right:0;top:calc(100% + 14px);width:min(340px,80vw);
  background:#fff;border:1px solid var(--line);border-radius:var(--r-md);
  box-shadow:var(--shadow-card);padding:16px;
  opacity:0;visibility:hidden;transform:translateY(10px);
  transition:opacity .22s var(--ease),transform .22s var(--ease),visibility .22s;
}
.search-pop.open{opacity:1;visibility:visible;transform:none;}

.burger{display:none;width:44px;height:44px;place-items:center;border:1px solid var(--line);border-radius:var(--r-sm);}
.burger svg{width:20px;height:20px;color:var(--ink);}
.burger .x{display:none;}
.burger[aria-expanded="true"] .x{display:block;}
.burger[aria-expanded="true"] .m{display:none;}

/* Mobile nav */
.mnav{display:none;border-top:1px solid var(--line);padding:14px 0 22px;max-height:78vh;overflow-y:auto;}
.mnav.open{display:block;}
.mnav ul{display:block;}
.mnav li{position:relative;border-bottom:1px solid var(--line);}
/* Scoped to the menu list — a bare `.mnav a` outweighs `.btn` and would strip
   the flex layout off the action buttons below. */
.mnav .menu a{display:block;padding:12px 40px 12px 2px;font-family:var(--font-head);font-weight:500;color:var(--ink-600);font-size:.95rem;}
.mnav ul ul{display:none;padding-left:16px;}
.mnav li.open > ul{display:block;}
.mnav li.open > ul li:last-child{border-bottom:0;}
.mnav .sub-toggle{
  position:absolute;right:0;top:4px;width:38px;height:38px;display:grid;place-items:center;
  color:var(--ink-600);
}
.mnav .sub-toggle svg{width:15px;height:15px;transition:transform .25s var(--ease);}
.mnav li.open > .sub-toggle svg{transform:rotate(180deg);}
.mnav-actions{display:grid;gap:12px;margin-top:20px;}
.mnav-actions .btn{display:inline-flex;width:100%;justify-content:center;padding:14px 24px;}

/* ============================================================
   10. HERO
   ============================================================ */
.hero{position:relative;background:#141414;overflow:hidden;}
.hero-bg{position:absolute;inset:0;}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:62% 28%;opacity:.9;}
.hero-veil{
  position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(12,12,12,.94) 0%,rgba(14,14,14,.86) 34%,rgba(18,18,18,.44) 62%,rgba(20,20,20,.22) 100%);
}
.hero-in{
  position:relative;z-index:2;
  padding:clamp(90px,11vw,168px) var(--pad) clamp(130px,15vw,210px);
}
.hero-copy{max-width:610px;}
.hero h1{color:#fff;margin-bottom:22px;}
.hero h1 em,.hero h1 .hl,.hero h1 .accent,.hero h1 .light{font-style:normal;color:var(--orange);}
.hero p{color:#cfcfcf;max-width:520px;margin-bottom:32px;}
.hero-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.hero-curve{position:absolute;left:0;right:0;bottom:-1px;z-index:3;width:100%;height:auto;color:#fff;}
.hero-badges{
  position:relative;z-index:2;display:flex;gap:34px;flex-wrap:wrap;
  margin-top:42px;padding-top:30px;border-top:1px solid rgba(255,255,255,.16);max-width:610px;
}
.hero-badge{display:flex;align-items:center;gap:11px;color:#d8d8d8;font-size:.86rem;}
.hero-badge svg{width:18px;height:18px;color:var(--orange);flex:none;}

/* ============================================================
   11. ABOUT
   ============================================================ */
.about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);gap:clamp(36px,5vw,76px);align-items:center;}
/* With no image set, the copy takes the full row instead of half of it. */
.about.no-img,.split.no-img{grid-template-columns:minmax(0,1fr);}
.about.no-img .about-copy,.split.no-img .split-copy{max-width:860px;}
.frame{
  position:relative;padding:14px;background:#fff;border-radius:var(--r-lg);
  box-shadow:var(--shadow-frame);border:1px solid var(--line);
}
.frame img{border-radius:12px;aspect-ratio:4/3.35;object-fit:cover;width:100%;}
.frame-tag{
  position:absolute;right:-18px;bottom:28px;background:var(--orange);color:#fff;
  border-radius:var(--r-md);padding:18px 24px;box-shadow:var(--shadow-card);
  font-family:var(--font-head);line-height:1.25;max-width:190px;
}
.frame-tag b{display:block;font-size:1.7rem;font-weight:700;}
.frame-tag span{font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;opacity:.92;}
.about-copy > p{margin-top:18px;}
.about-copy > p + p{margin-top:14px;}
.ticks{margin:26px 0 30px;display:grid;gap:13px;}
.ticks li{display:flex;gap:13px;align-items:flex-start;color:var(--ink-600);font-weight:500;}
.ticks li::before{
  content:"";width:9px;height:9px;border-radius:50%;background:var(--orange);
  flex:none;margin-top:10px;box-shadow:0 0 0 4px var(--orange-100);
}

/* ============================================================
   12. SERVICES
   ============================================================ */
.services{position:relative;background:var(--orange-050);overflow:hidden;}
.services::before,.services::after{
  content:"";position:absolute;background:var(--orange-100);z-index:0;pointer-events:none;
}
.services::before{width:520px;height:520px;left:-190px;top:110px;transform:rotate(24deg);border-radius:80px;opacity:.75;}
.services::after{width:420px;height:420px;right:-160px;bottom:-90px;transform:rotate(-18deg);border-radius:70px;opacity:.6;}
.services > *{position:relative;z-index:1;}
.svc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:52px;}
.svc{
  background:var(--ink-800);border-radius:var(--r-md);padding:38px 30px 34px;
  text-align:center;color:#a5a5a5;position:relative;overflow:hidden;
  transition:transform .3s var(--ease),background .3s var(--ease);
}
.svc::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--orange);
  transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease);
}
.svc:hover{transform:translateY(-7px);background:var(--ink-700);}
.svc:hover::after{transform:scaleX(1);}
.svc-ic{
  width:60px;height:60px;margin:0 auto 20px;display:grid;place-items:center;
  color:var(--orange);
}
.svc-ic svg{width:44px;height:44px;}
.svc h3{color:#fff;font-size:1.08rem;font-weight:600;margin-bottom:12px;}
.svc h3 a{color:inherit;transition:color .2s;}
.svc h3 a:hover{color:var(--orange);}
.svc p{font-size:.9rem;line-height:1.8;}
.svc .link-arrow{margin-top:18px;}
.svc-more{margin-top:44px;text-align:center;}

/* ============================================================
   13. SPLIT FEATURE
   ============================================================ */
.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(36px,5vw,78px);align-items:center;}
.split-img{position:relative;}
.split-img img{border-radius:var(--r-lg);width:100%;aspect-ratio:4/3.5;object-fit:cover;}
.split-img.offset::before{
  content:"";position:absolute;inset:26px -26px -26px 26px;border:2px solid var(--orange);
  border-radius:var(--r-lg);z-index:-1;
}
.split.rev .split-img{order:-1;}
.split-copy > p{margin-top:18px;}
.split-copy > p + p{margin-top:14px;}
.mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:32px;}
.mini{display:flex;gap:14px;align-items:flex-start;}
.mini-ic{
  width:44px;height:44px;border-radius:var(--r-sm);flex:none;display:grid;place-items:center;
  background:var(--orange-100);color:var(--orange);
}
.mini-ic svg{width:23px;height:23px;}
.mini h4{font-size:.98rem;font-weight:600;margin-bottom:5px;}
.mini p{font-size:.86rem;line-height:1.7;}

/* ============================================================
   14. COUNTER BAND
   ============================================================ */
.band{position:relative;background:var(--ink);overflow:hidden;}
.band-bg{position:absolute;inset:0;}
.band-bg img{width:100%;height:100%;object-fit:cover;opacity:.28;}
.band::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(18,18,18,.62),rgba(18,18,18,.82));
}
.band-in{position:relative;z-index:2;}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;}
.stat{text-align:center;padding:10px 16px;border-right:1px solid var(--line-dark);}
.stat:last-child{border-right:0;}
.stat b{
  display:block;font-family:var(--font-head);font-size:clamp(2rem,1.3rem + 2.2vw,2.9rem);
  font-weight:700;color:#fff;line-height:1.1;
}
.stat b i{font-style:normal;color:var(--orange);}
.stat b .u{font-size:.42em;font-weight:600;margin-left:5px;letter-spacing:.01em;}
.stat b .count{display:inline;font:inherit;color:inherit;letter-spacing:inherit;margin:0;}
.stat > span{display:block;margin-top:8px;font-size:.83rem;color:#b4b4b4;letter-spacing:.05em;}

/* ============================================================
   15. SECTORS STRIP
   ============================================================ */
.sectors{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:46px;}
.sector{
  display:flex;align-items:center;gap:14px;padding:20px 22px;
  border:1px solid var(--line);border-radius:var(--r-md);background:#fff;
  transition:border-color .25s var(--ease),transform .25s var(--ease);
}
.sector:hover{border-color:var(--orange);transform:translateY(-4px);}
.sector svg{width:26px;height:26px;color:var(--orange);flex:none;}
.sector b{font-family:var(--font-head);font-size:.93rem;font-weight:600;color:var(--ink);}

/* ============================================================
   16. PROCESS
   ============================================================ */
.process{background:var(--paper-2);}
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px;margin-top:52px;}
.step{position:relative;padding:34px 26px 30px;background:#fff;border-radius:var(--r-md);border:1px solid var(--line);}
.step-n{
  position:absolute;top:-19px;left:26px;width:44px;height:44px;border-radius:50%;
  display:grid;place-items:center;background:var(--orange);color:#fff;
  font-family:var(--font-head);font-weight:700;font-size:.95rem;
  box-shadow:0 10px 22px -10px rgba(242,129,52,.85);
}
.step h4{margin:16px 0 10px;font-size:1.03rem;font-weight:600;}
.step p{font-size:.9rem;line-height:1.78;}

/* ============================================================
   17. PLANS
   ============================================================ */
.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:52px;align-items:start;}
.plan{
  border:1px solid var(--line);border-radius:var(--r-lg);padding:36px 32px 34px;background:#fff;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);position:relative;
}
.plan:hover{transform:translateY(-6px);box-shadow:var(--shadow-card);}
.plan.feat{background:var(--ink-800);border-color:var(--ink-800);color:#a8a8a8;}
.plan.feat h3,.plan.feat .price b{color:#fff;}
.plan-tag{
  position:absolute;top:22px;right:26px;background:var(--orange);color:#fff;
  font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;
  padding:5px 12px;border-radius:100px;font-family:var(--font-head);
}
.plan h3{font-size:1.12rem;font-weight:600;margin-bottom:6px;}
.plan > p{font-size:.88rem;}
.price{margin:22px 0 24px;padding-bottom:24px;border-bottom:1px solid var(--line);}
.plan.feat .price{border-color:var(--line-dark);}
.price b{font-family:var(--font-head);font-size:2.15rem;font-weight:700;color:var(--ink);line-height:1;}
.price span{font-size:.85rem;color:var(--body-light);}
.plan ul{display:grid;gap:11px;margin-bottom:28px;}
.plan li{display:flex;gap:11px;font-size:.89rem;align-items:flex-start;}
.plan li svg{width:16px;height:16px;color:var(--orange);flex:none;margin-top:5px;}
.plan .btn{width:100%;justify-content:center;}

/* ============================================================
   18. CREDENTIALS
   ============================================================ */
.creds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:48px;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;}
.cred{padding:34px 30px;border-right:1px solid var(--line);}
.cred:last-child{border-right:0;}
.cred > svg{width:32px;height:32px;color:var(--orange);margin-bottom:16px;}
.cred h4{font-size:1rem;font-weight:600;margin-bottom:9px;}
.cred p{font-size:.88rem;line-height:1.78;}

/* ============================================================
   19. TEAM
   ============================================================ */
.team{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:52px;}
.member{border-radius:var(--r-md);overflow:hidden;background:#fff;border:1px solid var(--line);}
.member-ph{position:relative;overflow:hidden;background:#e9e9e9;}
.member-ph img{width:100%;aspect-ratio:1/1.06;object-fit:cover;transition:transform .5s var(--ease);filter:grayscale(.28);}
.member:hover .member-ph img{transform:scale(1.05);filter:grayscale(0);}
.member-ph-empty{aspect-ratio:1/1.06;display:grid;place-items:center;background:var(--paper-2);color:var(--line);}
.member-ph-empty svg{width:74px;height:74px;}
.member-soc{
  position:absolute;inset:auto 0 0 0;display:flex;justify-content:center;gap:10px;padding:14px;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.6));
  opacity:0;transform:translateY(10px);transition:opacity .3s var(--ease),transform .3s var(--ease);
}
.member:hover .member-soc{opacity:1;transform:none;}
.member-soc a{
  width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:#fff;color:var(--ink);transition:background .2s,color .2s;
}
.member-soc a:hover{background:var(--orange);color:#fff;}
.member-soc svg{width:14px;height:14px;}
.member-body{padding:20px 22px 24px;}
.member-body b{display:block;font-family:var(--font-head);font-size:1rem;font-weight:600;color:var(--ink);}
.member-body span{display:block;font-size:.82rem;color:var(--orange);margin-top:3px;letter-spacing:.04em;}

/* ============================================================
   20. TESTIMONIALS (carousel)
   ============================================================ */
.tst{background:var(--ink);color:#a9a9a9;}
.tst h2,.tst .h-lg{color:#fff;}
.tst .sec-head p{color:#a9a9a9;}
.tst-stage{margin-top:48px;position:relative;overflow:hidden;}
.tst-track{display:flex;transition:transform .6s var(--ease);will-change:transform;}
.tst-item{flex:0 0 100%;padding:0 4px;min-width:0;}
.tst-card{
  background:var(--ink-800);border:1px solid var(--line-dark);border-radius:var(--r-lg);
  padding:clamp(30px,4vw,52px);height:100%;
}
.tst-card .qm{width:42px;height:42px;color:var(--orange);margin-bottom:22px;opacity:.9;}
.tst-card blockquote{margin:0;font-size:clamp(1.02rem,.9rem + .5vw,1.28rem);line-height:1.8;color:#dcdcdc;font-weight:400;}
.tst-stars{display:flex;gap:5px;margin-top:22px;color:var(--orange);}
.tst-stars svg{width:15px;height:15px;}
.tst-by{display:flex;align-items:center;gap:15px;margin-top:30px;padding-top:26px;border-top:1px solid var(--line-dark);}
.tst-av{width:52px;height:52px;border-radius:50%;flex:none;object-fit:cover;}
.tst-by b{display:block;font-family:var(--font-head);color:#fff;font-size:.98rem;font-weight:600;}
.tst-by span{font-size:.82rem;color:#8f8f8f;}
.tst-nav{display:flex;gap:12px;margin-top:32px;align-items:center;}
.tst-btn{
  width:48px;height:48px;border-radius:50%;border:1px solid var(--line-dark);
  display:grid;place-items:center;color:#cfcfcf;transition:background .25s,color .25s,border-color .25s;
}
.tst-btn:hover{background:var(--orange);border-color:var(--orange);color:#fff;}
.tst-btn svg{width:17px;height:17px;}
.tst-dots{display:flex;gap:9px;margin-left:auto;align-items:center;}
.tst-dot{width:9px;height:9px;border-radius:50%;background:var(--line-dark);transition:background .25s,width .25s;border:0;padding:0;}
.tst-dot.on{background:var(--orange);width:26px;border-radius:100px;}

/* Light variant, used on inner pages that sit on paper */
.tst.is-light{background:var(--paper-2);color:var(--body);}
.tst.is-light h2,.tst.is-light .h-lg{color:var(--ink);}
.tst.is-light .sec-head p{color:var(--body);}
.tst.is-light .tst-card{background:#fff;border-color:var(--line);}
.tst.is-light .tst-card blockquote{color:var(--ink-600);}
.tst.is-light .tst-by{border-color:var(--line);}
.tst.is-light .tst-by b{color:var(--ink);}
.tst.is-light .tst-btn{border-color:var(--line);color:var(--ink);}
.tst.is-light .tst-dot{background:var(--line);}
.tst.is-light .tst-dot.on{background:var(--orange);}

/* ============================================================
   21. FAQ
   ============================================================ */
.faq-wrap{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(36px,5vw,72px);align-items:start;}
.faq-intro p{margin-top:16px;}
.faq-intro .btn{margin-top:26px;}
.faq{border-top:1px solid var(--line);}
.faq-i{border-bottom:1px solid var(--line);}
.faq-q{
  display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;
  text-align:left;padding:22px 2px;font-family:var(--font-head);font-weight:600;
  font-size:1rem;color:var(--ink);
}
.faq-q .sign{
  width:32px;height:32px;border-radius:50%;flex:none;display:grid;place-items:center;
  background:var(--orange-100);color:var(--orange);transition:background .25s,color .25s,transform .3s var(--ease);
}
.faq-q .sign svg{width:14px;height:14px;}
.faq-i.open .faq-q .sign{background:var(--orange);color:#fff;transform:rotate(180deg);}
.faq-a{overflow:hidden;height:0;transition:height .35s var(--ease);}
.faq-a p{padding:0 46px 24px 2px;font-size:.94rem;line-height:1.85;}

/* ============================================================
   22. CONTACT / QUOTE
   ============================================================ */
.quote{background:var(--paper-2);}
.quote-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:clamp(36px,5vw,70px);align-items:start;}
.quote-copy > p{margin-top:16px;}
.contact-list{display:grid;gap:20px;margin-top:32px;}
.contact-row{display:flex;gap:16px;align-items:flex-start;}
.contact-row .ic{
  width:48px;height:48px;border-radius:var(--r-sm);flex:none;display:grid;place-items:center;
  background:#fff;border:1px solid var(--line);color:var(--orange);
}
.contact-row .ic svg{width:21px;height:21px;}
.contact-row b{display:block;font-family:var(--font-head);font-size:.95rem;color:var(--ink);font-weight:600;margin-bottom:3px;}
.contact-row span{font-size:.92rem;}
.contact-map{margin-top:32px;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line);}
.contact-map iframe{display:block;width:100%;height:280px;border:0;}

.form{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(26px,3.5vw,42px);}
.field{margin-bottom:18px;}
.field label{display:block;font-size:.83rem;font-weight:600;color:var(--ink);margin-bottom:8px;font-family:var(--font-head);}
.field input,.field select,.field textarea,
.form input[type=text],.form input[type=email],.form input[type=tel],.form input[type=url],.form input[type=date],
.form select,.form textarea{
  width:100%;padding:13px 16px;border:1px solid var(--line);border-radius:var(--r-sm);
  font-family:inherit;font-size:.94rem;color:var(--ink);background:#fff;
  transition:border-color .2s;
}
.field input:focus,.field select:focus,.field textarea:focus,
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--orange);outline:none;}
.field textarea,.form textarea{resize:vertical;min-height:118px;}
.field-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
.form .btn{width:100%;justify-content:center;margin-top:6px;}
.form-note{font-size:.8rem;margin-top:14px;text-align:center;}

/* Contact Form 7 inside .form */
.form .wpcf7-form-control-wrap{display:block;}
.form .wpcf7 p{margin:0;}
.form input[type=submit],
.form .wpcf7-submit{
  display:inline-flex;align-items:center;justify-content:center;width:100%;
  font-family:var(--font-head);font-size:.9rem;font-weight:600;
  padding:15px 28px;border-radius:var(--r-sm);border:0;cursor:pointer;
  background:var(--orange);color:#fff;margin-top:6px;
  transition:background .25s var(--ease),transform .25s var(--ease);
}
.form input[type=submit]:hover,
.form .wpcf7-submit:hover{background:var(--orange-600);transform:translateY(-2px);}
.wpcf7-not-valid-tip{color:#c8391a;font-size:.8rem;margin-top:6px;}
.wpcf7 form .wpcf7-response-output{
  margin:18px 0 0;padding:13px 16px;border-radius:var(--r-sm);border:1px solid var(--line);
  font-size:.88rem;
}
.wpcf7 form.sent .wpcf7-response-output{background:var(--orange-100);border-color:var(--orange);color:var(--orange-600);}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output{background:#fdf1f0;border-color:#e0a79c;color:#a83b23;}
.wpcf7-spinner{margin:10px auto 0;display:block;}

/* ============================================================
   23. CTA BAND
   ============================================================ */
.cta{position:relative;overflow:hidden;background:var(--ink);}
.cta-bg{position:absolute;inset:0;}
.cta-bg img{width:100%;height:100%;object-fit:cover;opacity:.24;}
.cta-in{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:34px;flex-wrap:wrap;}
.cta h2{color:#fff;max-width:640px;}
.cta p{color:#b6b6b6;margin-top:12px;max-width:560px;}
.cta-act{display:flex;gap:14px;flex-wrap:wrap;}

/* ============================================================
   24. FOOTER
   ============================================================ */
.ftr{background:var(--ink-800);color:#9c9c9c;padding:clamp(56px,6vw,86px) var(--pad) 0;}
.ftr-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.35fr;gap:clamp(28px,3.5vw,52px);padding-bottom:52px;}
.ftr h5{color:#fff;font-size:1rem;font-weight:600;margin-bottom:22px;}
.ftr p{font-size:.9rem;line-height:1.85;}
.ftr-links{display:grid;gap:11px;}
.ftr-links li{list-style:none;}
.ftr-links a{font-size:.9rem;display:inline-block;transition:color .2s,padding-left .2s;}
.ftr-links a:hover{color:var(--orange);padding-left:5px;}
.ftr .brand{margin-bottom:20px;}
.ftr .brand-txt b{color:#fff;}
.ftr-contact{display:grid;gap:15px;margin-top:4px;}
.ftr-contact li{display:flex;gap:12px;font-size:.9rem;align-items:flex-start;}
.ftr-contact svg{width:17px;height:17px;color:var(--orange);flex:none;margin-top:5px;}
.ftr .soc{margin-top:24px;}
.ftr .soc a{width:38px;height:38px;border:1px solid var(--line-dark);border-radius:var(--r-sm);}
.ftr .soc a:hover{background:var(--orange);border-color:var(--orange);color:#fff;}
.ftr-btm{
  border-top:1px solid var(--line-dark);padding:24px 0;
  display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:.84rem;
}
.ftr-btm nav ul,.ftr-btm nav{display:flex;gap:22px;flex-wrap:wrap;}
.ftr-btm a:hover{color:var(--orange);}
.ftr .widget{margin-bottom:28px;}
.ftr .widget-title{color:#fff;font-size:1rem;font-weight:600;margin-bottom:20px;}
.ftr .widget ul{display:grid;gap:11px;}
.ftr .widget a:hover{color:var(--orange);}

.totop{
  position:fixed;right:22px;bottom:22px;z-index:70;width:46px;height:46px;border-radius:50%;
  background:var(--orange);color:#fff;display:grid;place-items:center;
  opacity:0;visibility:hidden;transform:translateY(12px);
  transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s;
  box-shadow:0 12px 26px -12px rgba(242,129,52,.9);
}
.totop.on{opacity:1;visibility:visible;transform:none;}
.totop svg{width:17px;height:17px;}

/* ============================================================
   24b. PROMO POPUP
   ============================================================ */
/* Flex, not grid: a single-item grid with `place-items:center` sizes its
   implicit track to the box's max-content width, so the box's `width:…100%`
   resolved against that instead of the screen and overflowed on mobile.
   `margin:auto` on the flex item centres it without clipping a tall box. */
.swp-popup{
  position:fixed;inset:0;z-index:200;display:flex;padding:20px;
  opacity:0;visibility:hidden;
  transition:opacity .32s var(--ease),visibility .32s;
}
.swp-popup.is-open{opacity:1;visibility:visible;}
.swp-popup-backdrop{position:absolute;inset:0;background:var(--popup-overlay,rgba(15,15,15,.72));}
/* `min-width:0` is load-bearing: Contact Form 7 renders its inputs with
   size="40", which makes the box's min-content width ~380px, and a flex item's
   default `min-width:auto` refuses to shrink past that — so the modal spilled
   off the right edge on phones. */
.swp-popup-box{
  position:relative;z-index:1;margin:auto;min-width:0;
  width:min(var(--popup-w,860px),100%);max-width:100%;
  max-height:min(92vh,860px);
  /* dvh tracks the mobile URL bar collapsing; vh above is the fallback. */
  max-height:min(92dvh,860px);
  background:var(--popup-bg,#fff);border-radius:var(--r-lg);overflow:hidden;
  display:grid;grid-template-columns:minmax(0,1fr);
  box-shadow:0 40px 90px -40px rgba(0,0,0,.65);
  transform:translateY(18px) scale(.97);
  transition:transform .38s var(--ease);
}
.swp-popup.is-open .swp-popup-box{transform:none;}
.swp-popup.has-image .swp-popup-box{grid-template-columns:minmax(0,.8fr) minmax(0,1fr);}
.swp-popup-media{position:relative;background:var(--paper-2);}
.swp-popup-media img{width:100%;height:100%;object-fit:cover;}
.swp-popup-body{padding:clamp(24px,3vw,38px);overflow-y:auto;}
.swp-popup-body h2{font-size:clamp(1.35rem,1.1rem + .9vw,1.8rem);margin-bottom:10px;}
.swp-popup-body > p{font-size:.92rem;line-height:1.7;}

/* The modal is short, so the form is compacted to keep the submit button in
   view without scrolling. A textarea sizes itself from its `rows` attribute,
   which CF7 sets to 10 — `min-height` cannot shrink that, only `height` can. */
.swp-popup-form{margin-top:18px;}
.swp-popup-form .wpcf7 p{margin:0;}
.swp-popup-form .field{margin-bottom:12px;}
.swp-popup-form .field-2{gap:14px;}
.swp-popup-form .field label{margin-bottom:6px;}
.swp-popup-form input,
.swp-popup-form select,
.swp-popup-form textarea{padding:11px 14px;min-width:0;max-width:100%;}
.swp-popup-form textarea{min-height:0;height:88px;resize:vertical;}
/* Pinned to the bottom of the scroll area, so however tall the form gets the
   submit is never stranded below the fold. Sticky only engages once the body
   actually overflows, so on roomy screens it behaves like a normal button.
   The halo masks fields scrolling underneath it. */
.swp-popup-form .btn,
.swp-popup-form input[type=submit],
.swp-popup-form .wpcf7-submit{
  width:100%;justify-content:center;padding:13px 24px;margin-top:4px;
  position:sticky;bottom:0;
  box-shadow:0 0 0 10px var(--popup-bg,#fff);
}
.swp-popup-form .form-note{margin-top:16px;font-size:.76rem;}
.swp-popup-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px;}
.swp-popup-close{
  position:absolute;top:14px;right:14px;z-index:3;
  width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  background:#fff;border:1px solid var(--line);color:var(--ink);
  transition:background .2s,color .2s,border-color .2s;
}
.swp-popup-close:hover{background:var(--orange);border-color:var(--orange);color:#fff;}
.swp-popup-close svg{width:16px;height:16px;}
body.swp-popup-open{overflow:hidden;}

@media (max-width:760px){
  .swp-popup{padding:14px;}
  .swp-popup.has-image .swp-popup-box{grid-template-columns:minmax(0,1fr);}
  .swp-popup.has-image .swp-popup-media{display:none;}
  /* Two-up rows stay two-up in the modal. Letting them stack (as they do in
     page forms) adds roughly 150px of height — the main reason the submit
     ended up below the fold on a phone. */
  .swp-popup-form .field-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
}

/* Short viewports: drop the optional copy so the form itself gets the room. */
@media (max-height:780px){
  .swp-popup-body > p{display:none;}
  .swp-popup-form{margin-top:14px;}
  .swp-popup-form textarea{height:70px;}
  .swp-popup-form .form-note{display:none;}
}
@media (prefers-reduced-motion:reduce){
  .swp-popup,.swp-popup-box{transition:none;}
  .swp-popup-box{transform:none;}
}

/* ============================================================
   25. PAGE BANNER
   ============================================================ */
.page-banner{
  position:relative;background:var(--ink);
  padding:clamp(60px,7vw,110px) var(--pad);
  text-align:center;
}
.page-banner .crumbs{
  display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;
  font-family:var(--font-head);font-size:.78rem;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--orange);margin-bottom:14px;
}
/* Without an explicit size an inline <svg> falls back to 300x150. */
.page-banner .crumbs svg{width:11px;height:11px;flex:none;}
.page-banner .crumbs a{color:#d6d6d6;transition:color .2s;}
.page-banner .crumbs a:hover{color:var(--orange);}
.page-banner h1{color:#fff;font-size:clamp(1.9rem,1.3rem + 2.3vw,3rem);}
.page-banner .lede{color:#c3c3c3;margin:16px auto 0;max-width:640px;}
.page-banner.has-image{background-size:cover;background-position:center;}

/* ============================================================
   26. BLOG
   ============================================================ */
.blog-wrap{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:clamp(32px,4vw,58px);align-items:start;}
.blog-wrap.no-sidebar{grid-template-columns:minmax(0,1fr);}
.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;}
.blog-wrap .post-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
.pcard{
  background:#fff;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;
  display:flex;flex-direction:column;
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);
}
.pcard:hover{transform:translateY(-6px);box-shadow:var(--shadow-card);border-color:transparent;}
.pcard-ph{overflow:hidden;background:var(--paper-2);}
.pcard-ph img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform .5s var(--ease);}
.pcard:hover .pcard-ph img{transform:scale(1.05);}
.pcard-body{padding:24px 26px 28px;display:flex;flex-direction:column;flex:1;}
.pcard-meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:.79rem;color:var(--body-light);margin-bottom:12px;}
.pcard-meta span,.pcard-meta a{display:inline-flex;align-items:center;gap:6px;}
.pcard-meta a:hover{color:var(--orange);}
.pcard-meta svg{width:13px;height:13px;flex:none;color:var(--orange);}
.pcard h3{font-size:1.06rem;font-weight:600;line-height:1.4;margin-bottom:10px;}
.pcard h3 a{transition:color .2s;}
.pcard h3 a:hover{color:var(--orange);}
.pcard p{font-size:.9rem;line-height:1.8;}
.pcard .link-arrow{margin-top:16px;align-self:flex-start;}

/* Single post */
.single-wrap{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:clamp(32px,4vw,58px);align-items:start;}
.single-wrap.no-sidebar{grid-template-columns:minmax(0,1fr);}
.entry-thumb{border-radius:var(--r-lg);overflow:hidden;margin-bottom:32px;}
.entry-thumb img{width:100%;object-fit:cover;}
.entry-meta{display:flex;align-items:center;gap:20px;flex-wrap:wrap;font-size:.83rem;color:var(--body-light);margin-bottom:18px;}
.entry-meta span,.entry-meta a{display:inline-flex;align-items:center;gap:7px;}
.entry-meta svg{width:14px;height:14px;flex:none;color:var(--orange);}
.entry-meta a:hover{color:var(--orange);}
.entry-title{font-size:clamp(1.6rem,1.2rem + 1.6vw,2.4rem);margin-bottom:18px;}
.entry-content > *{margin-bottom:22px;}
.entry-content > *:last-child{margin-bottom:0;}
.entry-content h2{font-size:1.6rem;margin-top:38px;}
.entry-content h3{font-size:1.28rem;margin-top:30px;}
.entry-content h4{font-size:1.08rem;margin-top:26px;}
.entry-content ul,.entry-content ol{padding-left:22px;display:grid;gap:9px;}
.entry-content ul li{list-style:disc;}
.entry-content ol li{list-style:decimal;}
.entry-content a{color:var(--orange);text-decoration:underline;text-underline-offset:3px;}
.entry-content a:hover{color:var(--orange-600);}
.entry-content blockquote{
  margin:0;padding:24px 28px;border-left:3px solid var(--orange);background:var(--orange-050);
  border-radius:0 var(--r-md) var(--r-md) 0;font-size:1.04rem;color:var(--ink-600);
}
.entry-content img,.entry-content figure img{border-radius:var(--r-md);}
.entry-content figcaption,.wp-caption-text{font-size:.82rem;color:var(--body-light);margin-top:9px;text-align:center;}
.entry-content pre{background:var(--ink-800);color:#e4e4e4;padding:20px;border-radius:var(--r-md);overflow-x:auto;}
.entry-content table th,.entry-content table td{border:1px solid var(--line);padding:11px 14px;text-align:left;font-size:.92rem;}
.entry-content table th{background:var(--paper-2);font-family:var(--font-head);color:var(--ink);}
.entry-footer{
  margin-top:38px;padding-top:26px;border-top:1px solid var(--line);
  display:flex;gap:18px;justify-content:space-between;flex-wrap:wrap;align-items:center;
}
.tag-links{display:flex;gap:9px;flex-wrap:wrap;}
.tag-links a{
  font-size:.78rem;padding:6px 14px;border:1px solid var(--line);border-radius:100px;
  transition:border-color .2s,color .2s;
}
.tag-links a:hover{border-color:var(--orange);color:var(--orange);}
.post-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:38px;}
.post-nav a{
  display:block;padding:22px 24px;border:1px solid var(--line);border-radius:var(--r-md);
  transition:border-color .25s,transform .25s var(--ease);
}
.post-nav a:hover{border-color:var(--orange);transform:translateY(-3px);}
.post-nav small{display:block;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--orange);margin-bottom:7px;font-weight:600;}
.post-nav b{font-family:var(--font-head);font-size:.96rem;color:var(--ink);font-weight:600;line-height:1.45;}
.post-nav .next{text-align:right;}

/* Pagination */
.pagination,.nav-links{display:flex;gap:9px;flex-wrap:wrap;margin-top:48px;justify-content:center;}
.pagination .page-numbers,.nav-links .page-numbers{
  min-width:44px;height:44px;padding:0 12px;display:grid;place-items:center;
  border:1px solid var(--line);border-radius:var(--r-sm);
  font-family:var(--font-head);font-size:.9rem;font-weight:600;color:var(--ink);
  transition:background .2s,border-color .2s,color .2s;
}
.pagination .page-numbers:hover,.nav-links .page-numbers:hover,
.pagination .page-numbers.current,.nav-links .page-numbers.current{
  background:var(--orange);border-color:var(--orange);color:#fff;
}
.pagination svg,.nav-links svg{width:15px;height:15px;}

/* Comments */
.comments-area{margin-top:52px;padding-top:44px;border-top:1px solid var(--line);}
.comments-title,.comment-reply-title{font-size:1.3rem;margin-bottom:26px;}
.comment-list{display:grid;gap:26px;}
.comment-list ol,.comment-list ul{list-style:none;padding-left:34px;display:grid;gap:26px;margin-top:26px;}
.comment-body{padding:24px 26px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff;}
.comment-author{display:flex;align-items:center;gap:12px;font-family:var(--font-head);font-weight:600;color:var(--ink);font-size:.95rem;}
.comment-author img{border-radius:50%;}
.comment-metadata{font-size:.78rem;color:var(--body-light);margin:6px 0 12px;}
.comment-content p{font-size:.93rem;line-height:1.85;}
.reply a{font-family:var(--font-head);font-size:.82rem;font-weight:600;color:var(--orange);}
.comment-form{display:grid;gap:16px;margin-top:8px;}
.comment-form label{display:block;font-size:.83rem;font-weight:600;color:var(--ink);margin-bottom:8px;font-family:var(--font-head);}
.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{
  width:100%;padding:13px 16px;border:1px solid var(--line);border-radius:var(--r-sm);
  font-family:inherit;font-size:.94rem;color:var(--ink);background:#fff;transition:border-color .2s;
}
.comment-form input:focus,.comment-form textarea:focus{border-color:var(--orange);outline:none;}
.comment-form textarea{min-height:150px;resize:vertical;}
.comment-form .submit{
  justify-self:start;background:var(--orange);color:#fff;border:0;border-radius:var(--r-sm);
  padding:14px 30px;font-family:var(--font-head);font-weight:600;font-size:.9rem;cursor:pointer;
  transition:background .25s;
}
.comment-form .submit:hover{background:var(--orange-600);}
.comment-form-cookies-consent{display:flex;gap:10px;align-items:flex-start;font-size:.86rem;}
.comment-form-cookies-consent label{margin:0;font-weight:400;font-family:var(--font-body);}

/* ============================================================
   27. SIDEBAR / WIDGETS
   ============================================================ */
.sidebar{display:grid;gap:26px;position:sticky;top:104px;}
.sidebar .widget{
  padding:26px 28px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff;
}
.sidebar .widget-title{font-size:1.04rem;font-weight:600;margin-bottom:18px;position:relative;padding-bottom:14px;}
.sidebar .widget-title::after{content:"";position:absolute;left:0;bottom:0;width:34px;height:2px;background:var(--orange);}
.sidebar .widget ul{display:grid;gap:11px;}
.sidebar .widget li{font-size:.92rem;}
.sidebar .widget li a{transition:color .2s,padding-left .2s;display:inline-block;}
.sidebar .widget li a:hover{color:var(--orange);padding-left:4px;}
.widget select{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:var(--r-sm);font-family:inherit;}
.search-form{display:flex;gap:9px;}
.search-form label{flex:1;}
.search-form input[type=search]{
  width:100%;padding:13px 16px;border:1px solid var(--line);border-radius:var(--r-sm);
  font-family:inherit;font-size:.93rem;transition:border-color .2s;
}
.search-form input[type=search]:focus{border-color:var(--orange);outline:none;}
.search-form input[type=submit],.search-form .search-submit{
  background:var(--orange);color:#fff;border:0;border-radius:var(--r-sm);padding:0 20px;
  font-family:var(--font-head);font-weight:600;font-size:.86rem;cursor:pointer;transition:background .25s;
}
.search-form input[type=submit]:hover{background:var(--orange-600);}
.wp-block-tag-cloud a,.tagcloud a{
  display:inline-block;font-size:.78rem!important;padding:6px 14px;margin:0 6px 8px 0;
  border:1px solid var(--line);border-radius:100px;transition:border-color .2s,color .2s;
}
.wp-block-tag-cloud a:hover,.tagcloud a:hover{border-color:var(--orange);color:var(--orange);}

/* ============================================================
   28. SERVICE ARCHIVE / SINGLE
   ============================================================ */
.svc-archive{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;}
.svc-single{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(32px,4vw,56px);align-items:start;}
.svc-single .entry-thumb img{aspect-ratio:16/9;}
.svc-aside{display:grid;gap:22px;position:sticky;top:104px;}
.svc-aside .box{padding:26px 28px;border:1px solid var(--line);border-radius:var(--r-md);background:#fff;}
.svc-aside .box.dark{background:var(--ink-800);border-color:var(--ink-800);color:#a5a5a5;}
.svc-aside .box.dark h4{color:#fff;}
.svc-aside h4{font-size:1.02rem;font-weight:600;margin-bottom:16px;}
.svc-aside .box.dark .btn{margin-top:18px;width:100%;justify-content:center;}
.svc-list{display:grid;gap:8px;}
.svc-list a{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 16px;border-radius:var(--r-sm);background:var(--paper-2);font-size:.9rem;
  transition:background .2s,color .2s;
}
.svc-list a:hover,.svc-list a.is-current{background:var(--orange);color:#fff;}
.svc-list svg{width:14px;height:14px;}

/* ============================================================
   29. 404 / SEARCH / NO RESULTS
   ============================================================ */
.no-results,.error-404{text-align:center;max-width:620px;margin-inline:auto;padding:clamp(40px,6vw,80px) 0;}
.error-404 .code{
  font-family:var(--font-head);font-size:clamp(4.5rem,3rem + 8vw,9rem);font-weight:700;
  color:var(--orange);line-height:1;letter-spacing:-.04em;
}
.no-results p,.error-404 p{margin:16px 0 28px;}
.no-results .search-form{max-width:420px;margin-inline:auto;}

/* ============================================================
   30. WORDPRESS CORE / GUTENBERG
   ============================================================ */
.alignleft{float:left;margin:6px 28px 20px 0;}
.alignright{float:right;margin:6px 0 20px 28px;}
.aligncenter{margin-left:auto;margin-right:auto;}
.alignwide{width:min(1180px,100%);margin-inline:auto;}
.alignfull{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);}
.wp-caption{max-width:100%;}
.sticky .pcard{border-color:var(--orange);}
.wp-block-button__link{
  background:var(--orange);color:#fff;border-radius:var(--r-sm);
  font-family:var(--font-head);font-weight:600;padding:14px 28px;
}
.is-style-swp-security-services-pro-outline-button .wp-block-button__link{
  background:transparent;border:1.5px solid var(--line);color:var(--ink);
}
.is-style-swp-security-services-pro-shadow-image img{border-radius:var(--r-lg);box-shadow:var(--shadow-frame);}
.page-links{margin-top:24px;display:flex;gap:8px;}

/* ============================================================
   31. RESPONSIVE
   ============================================================ */
@media (max-width:1180px){
  .svc-grid,.svc-archive{grid-template-columns:repeat(2,minmax(0,1fr));}
  .steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:44px;}
  .team{grid-template-columns:repeat(2,minmax(0,1fr));}
  .sectors{grid-template-columns:repeat(2,minmax(0,1fr));}
  .ftr-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .post-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .blog-wrap,.single-wrap,.svc-single{grid-template-columns:minmax(0,1fr);}
  .blog-wrap .post-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .sidebar,.svc-aside{position:static;}
}
@media (max-width:1024px){
  /* The desk phone and the CTA move into the overlay menu — side by side with
     the burger they wrap onto two lines and crowd the bar. */
  .nav,.hdr-phone,.hdr-cta > .btn{display:none;}
  .burger{display:grid;}
  .about,.split,.faq-wrap,.quote-wrap{grid-template-columns:minmax(0,1fr);}
  .split.rev .split-img{order:0;}
  .split-img.offset::before{display:none;}
  .plans{grid-template-columns:minmax(0,1fr);}
  .creds{grid-template-columns:minmax(0,1fr);}
  .cred{border-right:0;border-bottom:1px solid var(--line);}
  .cred:last-child{border-bottom:0;}
  .frame-tag{right:16px;}
}
@media (max-width:760px){
  .ubar-left .hide-sm{display:none;}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:32px;}
  .stat{border-right:0;}
  .stat:nth-child(1),.stat:nth-child(2){border-bottom:1px solid var(--line-dark);padding-bottom:26px;}
  .svc-grid,.steps,.team,.sectors,.mini-grid,.field-2,.svc-archive,
  .post-grid,.blog-wrap .post-grid,.post-nav{grid-template-columns:minmax(0,1fr);}
  .hero-badges{gap:18px;}
  .cta-in{flex-direction:column;align-items:flex-start;}
  .post-nav .next{text-align:left;}
  .comment-list ol,.comment-list ul{padding-left:14px;}
  .alignleft,.alignright{float:none;margin:0 0 20px;}
}
@media (max-width:480px){
  .ubar-right span{display:none;}
  .frame-tag{position:static;margin-top:16px;max-width:none;}
  .tst-nav{flex-wrap:wrap;}
  .tst-dots{margin-left:0;width:100%;}
}
