/* =====================================================================
   Techsure360 — custom design system (light / white)
   Sections are full-bleed; inner content uses .ts-container.
   ===================================================================== */

:root{
  --ts-navy:#0b1b3a;
  --ts-navy-2:#12305f;
  --ts-blue:#1f6f8b;
  --ts-accent:#1e73ff;
  --ts-accent-dark:#0d4fd6;
  --ts-teal:#12b5a5;
  --ts-ink:#1f2733;
  --ts-muted:#5b6b7f;
  --ts-line:#e4e9f1;
  --ts-bg:#ffffff;
  --ts-bg-soft:#f5f8fc;
  --ts-bg-soft-2:#eef3fa;
  --ts-radius:14px;
  --ts-shadow:0 10px 30px rgba(11,27,58,.08);
  --ts-shadow-lg:0 20px 50px rgba(11,27,58,.14);
  --ts-container:1200px;
}

/* Header: logo image only — hide the duplicate text site-title */
.site-branding .site-title-wrap{ display:none !important; }
/* Constrain logo height so the wide logo sits neatly in the header */
.site-header-item .brand img.custom-logo{ max-height:44px; width:auto; }

/* --- Header layout: logo left · nav centered · CTA button right (CyCopz-style) --- */
/* Right section spans the space after the logo so the menu can center in it */
.site-main-header-inner-wrap .site-header-main-section-right{ flex:1 1 auto; }
.site-main-header-inner-wrap .site-header-item-main-navigation,
.site-main-header-inner-wrap .main-navigation,
.site-main-header-inner-wrap .primary-menu-container{ width:100%; }
.site-main-header-inner-wrap #primary-menu.menu{ display:flex; align-items:center; width:100%; margin:0; }
/* First real item pushes the menu group to centre; CTA pushes to the far right */
.site-main-header-inner-wrap #primary-menu.menu > li:first-child{ margin-left:auto; }
.site-main-header-inner-wrap #primary-menu.menu > li.ts-header-cta{ margin-left:auto; }

/* Nav link styling to match the light theme */
.main-navigation .primary-menu-container > ul > li.menu-item > a{
  font-weight:600; font-size:.98rem; color:var(--ts-navy);
}
.main-navigation .primary-menu-container > ul > li.menu-item > a:hover,
.main-navigation .primary-menu-container > ul > li.menu-item.current-menu-item > a{ color:var(--ts-accent); }

/* Header CTA button */
.ts-header-cta{ margin-right:0; }
.ts-header-cta > a.ts-btn{ padding:10px 20px; font-size:.95rem; border-radius:10px; }
.ts-header-cta > a.ts-btn-primary,
.ts-header-cta > a.ts-btn-primary:hover{ color:#fff; }

/* Give the header a subtle divider + comfy height */
#masthead .site-main-header-inner-wrap{ gap:20px; }
.site-main-header-wrap{ border-bottom:1px solid var(--ts-line); }

/* Mobile: the CTA lands in the drawer menu — render it as a full-width button */
.mobile-navigation .ts-header-cta{ padding:14px 20px; }
.mobile-navigation .ts-header-cta > a.ts-btn{ display:flex; justify-content:center; width:100%; }

/* Typography — match reference (Inter) */
body, button, input, select, textarea,
#ts-main, #ts-main h1, #ts-main h2, #ts-main h3, #ts-main h4, #ts-main h5{
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,system-ui,sans-serif;
}
body{ -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }

#ts-main, #ts-main p, #ts-main li{ color:var(--ts-ink); }
#ts-main h1,#ts-main h2,#ts-main h3,#ts-main h4{ color:var(--ts-navy); line-height:1.15; letter-spacing:-.01em; }

/* Force our templates to full width (neutralise Kadence content box) -- */
body.ts-fullwidth #inner-wrap.wrap,
body.ts-fullwidth .content-container,
body.ts-fullwidth .content-container.site-container{
  max-width:100% !important; width:100% !important;
  padding-left:0 !important; padding-right:0 !important; margin-left:0 !important; margin-right:0 !important;
}
body.ts-fullwidth #inner-wrap{ padding-top:0 !important; }

/* Section + centered container --------------------------------------- */
.ts-section{ width:100%; padding:76px 0; }
.ts-section.tight{ padding:52px 0; }
.ts-container{ max-width:var(--ts-container); margin:0 auto; padding:0 24px; }
.ts-bg-soft{ background:var(--ts-bg-soft); }
.ts-bg-soft-2{ background:var(--ts-bg-soft-2); }
.ts-bg-navy{ background:linear-gradient(135deg,var(--ts-navy) 0%,var(--ts-navy-2) 100%); }
.ts-bg-navy, .ts-bg-navy h1,.ts-bg-navy h2,.ts-bg-navy h3,.ts-bg-navy p{ color:#fff; }

/* Typography helpers ------------------------------------------------- */
.ts-eyebrow{ display:inline-block; font-size:.8rem; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ts-blue); margin:0 0 14px; }
.ts-bg-navy .ts-eyebrow{ color:#8fd0e0; }
.ts-h1{ font-size:clamp(2.1rem,4.6vw,3.4rem); font-weight:800; margin:0 0 18px; }
.ts-h2{ font-size:clamp(1.6rem,3vw,2.3rem); font-weight:800; margin:0 0 14px; }
.ts-h2-xl{ font-size:clamp(2rem,4.4vw,3.1rem); line-height:1.08; }
.ts-lead{ font-size:clamp(1.05rem,1.6vw,1.22rem); color:var(--ts-muted); max-width:44ch; }
.ts-bg-navy .ts-lead{ color:#c8d6ea; }
.ts-center{ text-align:center; }
.ts-center .ts-lead{ margin-left:auto; margin-right:auto; }
.ts-section-head{ max-width:64ch; margin:0 auto 40px; }

/* Buttons ------------------------------------------------------------ */
.ts-btn{ display:inline-flex; align-items:center; gap:.5rem; font-weight:700; font-size:1rem;
  padding:14px 26px; border-radius:999px; text-decoration:none; transition:.18s ease; border:2px solid transparent; cursor:pointer; }
.ts-btn-primary{ background:var(--ts-accent); color:#fff; }
.ts-btn-primary:hover{ background:var(--ts-accent-dark); transform:translateY(-2px); box-shadow:0 10px 24px rgba(30,115,255,.35); color:#fff; }
.ts-btn-ghost{ background:transparent; color:var(--ts-navy); border-color:var(--ts-line); }
.ts-btn-ghost:hover{ border-color:var(--ts-accent); color:var(--ts-accent); }
.ts-bg-navy .ts-btn-ghost{ color:#fff; border-color:rgba(255,255,255,.35); }
.ts-bg-navy .ts-btn-ghost:hover{ border-color:#fff; color:#fff; }
.ts-btn-row{ display:flex; gap:14px; flex-wrap:wrap; }

/* Hero --------------------------------------------------------------- */
.ts-hero{ position:relative; overflow:hidden;
  background:
    radial-gradient(900px 480px at 50% -8%, #e6efff 0%, rgba(230,239,255,0) 62%),
    radial-gradient(700px 400px at 88% 8%, #e6faf6 0%, rgba(230,250,246,0) 60%),
    linear-gradient(180deg,#f7faff 0%, #ffffff 70%);
  padding:92px 0 80px; }
/* subtle grid texture */
.ts-hero::before{ content:""; position:absolute; inset:0; pointer-events:none; opacity:.5;
  background-image:linear-gradient(var(--ts-line) 1px,transparent 1px),linear-gradient(90deg,var(--ts-line) 1px,transparent 1px);
  background-size:44px 44px; -webkit-mask-image:radial-gradient(680px 360px at 50% 0,#000 0,transparent 75%);
  mask-image:radial-gradient(680px 360px at 50% 0,#000 0,transparent 75%); }

/* Centered hero (CyCopz-style, light) */
.ts-hero-center .ts-hero-inner{ position:relative; z-index:1; max-width:900px; margin:0 auto; text-align:center; }
.ts-hero-center .ts-eyebrow{ color:var(--ts-blue); }
.ts-hero-title{ font-size:clamp(2.5rem,6.2vw,4.6rem); font-weight:800; line-height:1.04; letter-spacing:-.02em; margin:6px 0 22px; color:var(--ts-navy); }
.ts-hero-title .ts-grad{ display:block;
  background:linear-gradient(92deg,var(--ts-accent) 0%, var(--ts-teal) 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; }
.ts-hero-tagline{ font-size:clamp(1.15rem,2vw,1.5rem); font-weight:700; color:var(--ts-navy); margin:0 0 12px; }
.ts-hero-desc{ font-size:clamp(1rem,1.5vw,1.15rem); color:var(--ts-muted); max-width:62ch; margin:0 auto; }
.ts-center-row{ justify-content:center; margin-top:32px; }

/* Trust badges row */
.ts-trust{ list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:14px 30px;
  margin:40px 0 0; padding:26px 0 0; border-top:1px solid var(--ts-line); }
.ts-trust li{ display:inline-flex; align-items:center; gap:9px; color:var(--ts-muted); font-weight:600; font-size:.92rem; }
.ts-trust li svg{ color:var(--ts-accent); flex:0 0 auto; }

/* Stat band ---------------------------------------------------------- */
.ts-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.ts-stat{ text-align:center; }
.ts-stat b{ display:block; font-size:2.4rem; font-weight:800; color:#fff; }
.ts-stat span{ color:#aebfd8; font-weight:600; font-size:.95rem; }

/* Cards / grids ------------------------------------------------------ */
.ts-grid{ display:grid; gap:22px; }
.ts-grid-3{ grid-template-columns:repeat(3,1fr); }
.ts-grid-2{ grid-template-columns:repeat(2,1fr); }
.ts-card{ background:#fff; border:1px solid var(--ts-line); border-radius:var(--ts-radius);
  padding:26px; box-shadow:var(--ts-shadow); transition:.18s ease; display:flex; flex-direction:column; }
.ts-card:hover{ transform:translateY(-4px); box-shadow:var(--ts-shadow-lg); border-color:#cfe0ff; }
.ts-card h3{ font-size:1.15rem; margin:0 0 10px; }
.ts-card p{ color:var(--ts-muted); margin:0 0 16px; font-size:.96rem; }
.ts-card .ts-more{ margin-top:auto; font-weight:700; color:var(--ts-accent); text-decoration:none; font-size:.95rem; }
.ts-card .ts-more:hover{ color:var(--ts-accent-dark); }
.ts-card-icon{ width:46px; height:46px; border-radius:12px; display:grid; place-items:center;
  background:linear-gradient(135deg,#e7f0ff,#dbe8ff); color:var(--ts-accent); font-weight:800; margin-bottom:16px; font-size:1.1rem; }
.ts-badge{ display:inline-block; font-size:.72rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  color:var(--ts-blue); background:#e9f3f7; border-radius:999px; padding:5px 11px; margin-bottom:12px; align-self:flex-start; }

/* Steps -------------------------------------------------------------- */
.ts-steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; counter-reset:step; }
.ts-step{ position:relative; padding:26px; background:#fff; border:1px solid var(--ts-line); border-radius:var(--ts-radius); }
.ts-step::before{ counter-increment:step; content:"0" counter(step); font-weight:800; font-size:1.5rem;
  color:var(--ts-accent); opacity:.35; }
.ts-step h3{ font-size:1.05rem; margin:8px 0 8px; }
.ts-step p{ color:var(--ts-muted); font-size:.92rem; margin:0; }

/* Numbered steps (How it works) -------------------------------------- */
/* How it works — larger, roomier, connector line (matches reference) */
.ts-section-steps{ padding:96px 0; background:var(--ts-bg-soft); }
.ts-section-steps .ts-section-head{ margin-bottom:64px; }
.ts-steps-num{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; position:relative; max-width:1000px; margin:0 auto; }
/* faint connector behind the numbered circles */
.ts-steps-num::before{ content:""; position:absolute; top:29px; left:16.66%; right:16.66%; height:2px;
  background:linear-gradient(90deg,transparent,var(--ts-line) 12%,var(--ts-line) 88%,transparent); z-index:0; }
.ts-stepn{ text-align:center; padding:0 12px; position:relative; z-index:1; }
.ts-stepn-no{ display:inline-grid; place-items:center; width:58px; height:58px; border-radius:50%;
  background:linear-gradient(135deg,var(--ts-accent),var(--ts-blue)); color:#fff; font-weight:800; font-size:1.4rem;
  margin-bottom:22px; box-shadow:0 8px 22px rgba(30,115,255,.32); outline:8px solid var(--ts-bg-soft); }
.ts-stepn h3{ font-size:1.28rem; margin:0 0 10px; }
.ts-stepn p{ color:var(--ts-muted); font-size:.97rem; line-height:1.6; margin:0; max-width:30ch; margin-left:auto; margin-right:auto; }

/* What we do (service rows) ------------------------------------------ */
.ts-dowhat{ margin-top:8px; }
/* icon · title-block · description · links (matches reference) */
.ts-do-row{ display:grid; grid-template-columns:auto minmax(200px,1fr) minmax(220px,1.4fr) minmax(190px,230px);
  gap:34px; align-items:start; padding:34px 0; border-top:1px solid var(--ts-line); }
.ts-do-row:first-child{ border-top:0; }
.ts-do-icon{ width:44px; height:44px; display:grid; place-items:center; color:var(--ts-accent); flex:0 0 auto; }
.ts-do-icon svg{ width:26px; height:26px; }
.ts-do-head{ min-width:0; }
.ts-do-cat{ display:block; font-size:.74rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ts-blue); margin-bottom:8px; }
.ts-do-title{ font-size:1.24rem; margin:0; line-height:1.3; }
.ts-do-desc{ color:var(--ts-muted); margin:0; font-size:.97rem; line-height:1.6; }
.ts-do-links{ display:flex; flex-direction:column; gap:6px; }
.ts-do-links a{ display:flex; align-items:center; justify-content:space-between; gap:14px;
  text-decoration:none; color:var(--ts-navy); font-weight:600; font-size:.92rem; padding:6px 0; transition:.15s; }
.ts-do-links a:hover{ color:var(--ts-accent); }
.ts-do-arrow{ color:var(--ts-accent); flex:0 0 auto; transition:transform .15s; }
.ts-do-links a:hover .ts-do-arrow{ transform:translateX(3px); }

/* Standards strip ---------------------------------------------------- */
.ts-logos{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }
.ts-logos span{ background:#fff; border:1px solid var(--ts-line); color:var(--ts-navy); font-weight:700;
  padding:10px 18px; border-radius:10px; font-size:.9rem; box-shadow:var(--ts-shadow); }

/* CTA band ----------------------------------------------------------- */
.ts-cta{ text-align:center; }
.ts-cta .ts-h2{ color:#fff; }
.ts-cta p{ max-width:52ch; margin:0 auto 26px; }

/* ==== Services portfolio filter ==================================== */
.ts-portfolio{ display:grid; grid-template-columns:260px 1fr; gap:34px; align-items:start; }
.ts-filter{ position:sticky; top:110px; background:#fff; border:1px solid var(--ts-line); border-radius:var(--ts-radius); padding:22px; box-shadow:var(--ts-shadow); }
.ts-filter h4{ font-size:.8rem; text-transform:uppercase; letter-spacing:.1em; color:var(--ts-muted); margin:0 0 12px; }
.ts-search{ width:100%; padding:12px 14px; border:1px solid var(--ts-line); border-radius:10px; margin-bottom:20px; font-size:.95rem; }
.ts-filter-list{ list-style:none; margin:0; padding:0; }
.ts-filter-list li{ margin:0 0 4px; }
.ts-filter-list button{ width:100%; text-align:left; background:transparent; border:0; padding:9px 12px; border-radius:9px;
  cursor:pointer; font-size:.93rem; color:var(--ts-ink); display:flex; justify-content:space-between; align-items:center; transition:.14s; }
.ts-filter-list button:hover{ background:var(--ts-bg-soft); }
.ts-filter-list button.active{ background:var(--ts-accent); color:#fff; }
.ts-filter-list button .cnt{ font-size:.78rem; opacity:.7; }
.ts-filter-list button.active .cnt{ opacity:.9; }
.ts-result-count{ color:var(--ts-muted); margin:0 0 18px; font-size:.95rem; }
.ts-svc-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.ts-svc{ background:#fff; border:1px solid var(--ts-line); border-radius:var(--ts-radius); padding:22px; box-shadow:var(--ts-shadow); transition:.18s; display:flex; flex-direction:column; }
.ts-svc:hover{ transform:translateY(-3px); box-shadow:var(--ts-shadow-lg); border-color:#cfe0ff; }
.ts-svc .sid{ font-size:.74rem; font-weight:700; color:var(--ts-muted); letter-spacing:.05em; }
.ts-svc h3{ font-size:1.06rem; margin:6px 0 8px; }
.ts-svc h3 a{ color:var(--ts-navy); text-decoration:none; }
.ts-svc h3 a:hover{ color:var(--ts-accent); }
.ts-svc p{ color:var(--ts-muted); font-size:.9rem; margin:0 0 14px; }
.ts-svc .dom{ margin-top:auto; font-size:.78rem; color:var(--ts-blue); font-weight:600; }
.ts-hide{ display:none !important; }
.ts-empty{ padding:40px; text-align:center; color:var(--ts-muted); background:#fff; border:1px dashed var(--ts-line); border-radius:var(--ts-radius); }

/* ==== Single service / package ===================================== */
.ts-single-hero{ padding:56px 0 34px; }
.ts-breadcrumb{ font-size:.85rem; color:var(--ts-muted); margin-bottom:16px; }
.ts-breadcrumb a{ color:var(--ts-blue); text-decoration:none; }
.ts-single-grid{ display:grid; grid-template-columns:1fr 340px; gap:40px; align-items:start; padding-bottom:70px; }
.ts-block{ margin:0 0 30px; }
.ts-block h2{ font-size:1.25rem; margin:0 0 12px; padding-bottom:8px; border-bottom:2px solid var(--ts-bg-soft-2); }
.ts-tags{ display:flex; flex-wrap:wrap; gap:8px; }
.ts-tag{ background:var(--ts-bg-soft); border:1px solid var(--ts-line); border-radius:8px; padding:6px 12px; font-size:.82rem; color:var(--ts-navy); font-weight:600; }
.ts-aside{ position:sticky; top:110px; background:#fff; border:1px solid var(--ts-line); border-radius:var(--ts-radius); box-shadow:var(--ts-shadow); padding:26px; }
.ts-aside h3{ margin:0 0 8px; font-size:1.1rem; }
.ts-aside .meta-row{ display:flex; justify-content:space-between; gap:10px; padding:10px 0; border-top:1px solid var(--ts-line); font-size:.9rem; }
.ts-aside .meta-row:first-of-type{ border-top:0; }
.ts-aside .meta-row span{ color:var(--ts-muted); }
.ts-aside .meta-row b{ color:var(--ts-navy); text-align:right; }
.ts-aside .ts-btn{ width:100%; justify-content:center; margin-top:16px; }

/* Included services list (package) */
.ts-inc{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.ts-inc li a{ display:flex; justify-content:space-between; gap:12px; text-decoration:none; background:#fff;
  border:1px solid var(--ts-line); border-radius:10px; padding:12px 16px; color:var(--ts-navy); font-weight:600; transition:.15s; }
.ts-inc li a:hover{ border-color:var(--ts-accent); color:var(--ts-accent); }
.ts-inc .sid{ color:var(--ts-muted); font-weight:700; font-size:.8rem; }

/* ==== Inquiry hero extras ========================================== */
.ts-inquiry-hero{ padding:70px 0 40px; }
.ts-pill{ display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--ts-line);
  color:var(--ts-blue); font-weight:700; font-size:.82rem; padding:8px 16px; border-radius:999px; box-shadow:var(--ts-shadow); margin-bottom:18px; }
.ts-inline-feats{ list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:14px 34px; margin:26px 0 0; padding:0; }
.ts-inline-feats li{ display:inline-flex; align-items:center; gap:9px; color:var(--ts-muted); font-weight:600; font-size:.95rem; }
.ts-inline-feats li svg{ color:var(--ts-accent); }

/* Centered form card + reassurance row */
.ts-form-wrap{ max-width:820px; margin:0 auto; }
.ts-form-head{ margin:0 0 22px; padding-bottom:18px; border-bottom:1px solid var(--ts-line); }
.ts-form-head h3{ margin:0 0 4px; font-size:1.35rem; }
.ts-form-head p{ margin:0; color:var(--ts-muted); font-size:.95rem; }
.ts-btn-block{ width:100%; justify-content:center; margin-top:6px; font-size:1.05rem; padding:16px; }
.ts-assure{ max-width:820px; margin:34px auto 0; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; text-align:center; }
.ts-assure svg{ color:var(--ts-accent); margin-bottom:8px; }
.ts-assure h4{ margin:0 0 4px; color:var(--ts-navy); font-size:1.02rem; }
.ts-assure p{ margin:0; color:var(--ts-muted); font-size:.9rem; }

/* ==== Enquiry form ================================================= */
.ts-form{ background:#fff; border:1px solid var(--ts-line); border-radius:var(--ts-radius); box-shadow:var(--ts-shadow); padding:34px; }
.ts-form select{ width:100%; padding:12px 14px; border:1px solid var(--ts-line); border-radius:10px; font-size:.95rem; font-family:inherit; background:#fff; }
.ts-form optgroup{ font-weight:700; color:var(--ts-navy); }
.ts-form .row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.ts-field{ margin:0 0 16px; }
.ts-field label{ display:block; font-weight:600; margin-bottom:6px; font-size:.92rem; }
.ts-field input,.ts-field select,.ts-field textarea{ width:100%; padding:12px 14px; border:1px solid var(--ts-line);
  border-radius:10px; font-size:.95rem; font-family:inherit; }
.ts-field input:focus,.ts-field select:focus,.ts-field textarea:focus{ outline:none; border-color:var(--ts-accent); box-shadow:0 0 0 3px rgba(30,115,255,.12); }
.ts-form-note{ font-size:.82rem; color:var(--ts-muted); margin-top:8px; }
.ts-alert{ padding:14px 18px; border-radius:10px; margin-bottom:18px; font-weight:600; }
.ts-alert-ok{ background:#e7f7ee; color:#146c43; border:1px solid #b7e4c7; }
.ts-alert-err{ background:#fdecec; color:#b02a2a; border:1px solid #f5c2c2; }
.ts-hp{ position:absolute; left:-9999px; }

/* ==== Pricing calculator =========================================== */
.ts-calc{ display:grid; grid-template-columns:1fr 360px; gap:28px; align-items:start; }
.ts-calc-main{ display:grid; gap:22px; }
.ts-panel{ background:#fff; border:1px solid var(--ts-line); border-radius:var(--ts-radius); box-shadow:var(--ts-shadow); padding:26px; }
.ts-panel-title{ margin:0 0 2px; font-size:1.2rem; }
.ts-panel-sub{ margin:0; color:var(--ts-muted); font-size:.92rem; }

/* Sliders */
.ts-sliders{ display:grid; grid-template-columns:1fr 1fr; gap:22px 26px; margin-top:20px; }
.ts-slider-head{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:8px; font-size:.92rem; font-weight:600; color:var(--ts-navy); }
.ts-slider-head b{ color:var(--ts-accent); font-size:1.05rem; }
.ts-slider input[type=range]{ width:100%; -webkit-appearance:none; appearance:none; height:6px; border-radius:6px;
  background:linear-gradient(90deg,var(--ts-accent),#bcd6ff); outline:none; }
.ts-slider input[type=range]::-webkit-slider-thumb{ -webkit-appearance:none; width:20px; height:20px; border-radius:50%;
  background:#fff; border:3px solid var(--ts-accent); box-shadow:var(--ts-shadow); cursor:pointer; }
.ts-slider input[type=range]::-moz-range-thumb{ width:18px; height:18px; border-radius:50%; background:#fff; border:3px solid var(--ts-accent); cursor:pointer; }
.ts-slider-note{ font-size:.78rem; color:var(--ts-muted); margin-top:6px; }

/* Plan items (toggle rows) */
.ts-plan-list{ display:grid; gap:12px; margin-top:18px; }
.ts-plan{ display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:start; padding:18px 20px;
  border:1px solid var(--ts-line); border-radius:12px; cursor:pointer; transition:.15s; background:#fff; }
.ts-plan:hover{ border-color:#cfe0ff; }
.ts-plan.on{ border-color:var(--ts-accent); box-shadow:0 0 0 3px rgba(30,115,255,.10); background:#f8fbff; }
.ts-switch{ position:relative; display:inline-block; margin-top:2px; }
.ts-switch input{ position:absolute; opacity:0; width:44px; height:24px; margin:0; cursor:pointer; }
.ts-switch-ui{ display:block; width:44px; height:24px; border-radius:999px; background:#cdd6e3; transition:.18s; position:relative; }
.ts-switch-ui::after{ content:""; position:absolute; top:3px; left:3px; width:18px; height:18px; border-radius:50%; background:#fff; transition:.18s; box-shadow:0 1px 3px rgba(0,0,0,.25); }
.ts-plan.on .ts-switch-ui{ background:var(--ts-accent); }
.ts-plan.on .ts-switch-ui::after{ transform:translateX(20px); }
.ts-plan-top{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; }
.ts-plan-name{ font-weight:700; color:var(--ts-navy); }
.ts-unit{ display:inline-block; font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  color:var(--ts-blue); background:#e9f3f7; border-radius:6px; padding:3px 8px; margin-left:6px; vertical-align:middle; }
.ts-plan-price{ font-weight:800; color:var(--ts-navy); white-space:nowrap; }
.ts-plan-price em{ font-style:normal; font-weight:600; color:var(--ts-muted); font-size:.82rem; }
.ts-plan-desc{ display:block; color:var(--ts-muted); font-size:.9rem; margin:4px 0 10px; }
.ts-plan-tags{ display:flex; flex-wrap:wrap; gap:6px; }
.ts-plan-tags span{ font-size:.74rem; color:var(--ts-navy); background:var(--ts-bg-soft); border:1px solid var(--ts-line); border-radius:6px; padding:4px 9px; }

/* Estimate sidebar */
.ts-estimate{ position:sticky; top:100px; }
.ts-estimate-card{ background:linear-gradient(160deg,#0b1b3a,#12305f); color:#fff; border-radius:16px; padding:26px; box-shadow:var(--ts-shadow-lg); }
.ts-estimate-card h3{ color:#fff; margin:0 0 2px; font-size:1.2rem; }
.ts-est-sub{ color:#9fb4d4; font-size:.86rem; margin:0 0 16px; }
.ts-est-row{ display:flex; justify-content:space-between; align-items:center; padding:12px 0; border-top:1px solid rgba(255,255,255,.12); font-size:.95rem; color:#c8d6ea; }
.ts-est-row b{ color:#fff; font-size:1.05rem; }
.ts-est-row b em{ font-style:normal; font-weight:600; color:#9fb4d4; font-size:.78rem; }
.ts-est-total{ border-top:1px solid rgba(255,255,255,.25); margin-top:4px; }
.ts-est-total span{ color:#fff; font-weight:700; }
.ts-est-total b{ font-size:1.5rem; color:#8fd0e0; }
.ts-est-note{ font-size:.76rem; color:#8ea6c8; margin:14px 0 0; }
.ts-estimate-card .ts-btn{ margin-top:16px; }

/* ==== Responsive =================================================== */
@media(max-width:960px){
  .ts-hero .ts-grid2{ grid-template-columns:1fr; }
  .ts-hero-card{ order:-1; }
  .ts-grid-3,.ts-steps{ grid-template-columns:repeat(2,1fr); }
  .ts-stats{ grid-template-columns:repeat(2,1fr); gap:30px 16px; }
  .ts-portfolio{ grid-template-columns:1fr; }
  .ts-filter{ position:static; }
  .ts-single-grid{ grid-template-columns:1fr; }
  .ts-aside{ position:static; }
  .ts-calc{ grid-template-columns:1fr; }
  .ts-estimate{ position:static; }
  .ts-steps-num{ grid-template-columns:1fr; gap:22px; }
  .ts-do-row{ grid-template-columns:auto 1fr; gap:8px 20px; }
  .ts-do-desc{ grid-column:2 / -1; margin-top:10px; }
  .ts-do-links{ grid-column:2 / -1; flex-direction:row; flex-wrap:wrap; gap:6px 24px; margin-top:6px; }
  .ts-do-links a{ justify-content:flex-start; gap:8px; }
}
@media(max-width:560px){
  .ts-grid-3,.ts-grid-2,.ts-steps,.ts-svc-grid,.ts-form .row,.ts-sliders{ grid-template-columns:1fr; }
  .ts-section{ padding:52px 0; }
}

/* =====================================================================
 * Footer (CTA band + dark multi-column footer, CyCopz-style)
 * ===================================================================== */
.ts-foot-cta{ background:linear-gradient(120deg,var(--ts-accent),var(--ts-teal)); color:#fff; }
.ts-foot-cta-inner{ display:flex; align-items:center; justify-content:space-between; gap:30px;
  padding:46px 0; flex-wrap:wrap; }
.ts-foot-cta h2{ color:#fff !important; margin:0 0 6px; font-size:1.7rem; }
.ts-foot-cta p{ color:rgba(255,255,255,.9); margin:0; max-width:620px; }
.ts-foot-cta .ts-btn-primary{ background:#fff; color:var(--ts-navy); white-space:nowrap; }
.ts-foot-cta .ts-btn-primary:hover{ background:#f2f6ff; color:var(--ts-navy); box-shadow:0 10px 24px rgba(0,0,0,.2); }

.ts-footer{ background:var(--ts-navy); color:rgba(255,255,255,.72); padding:64px 0 40px; }
.ts-footer-grid{ display:grid; grid-template-columns:2fr 1fr 1fr 1.2fr; gap:40px; }
.ts-footer-logo{ max-height:40px; width:auto; height:auto; filter:brightness(0) invert(1); }
.ts-footer-name{ font-size:1.35rem; font-weight:800; color:#fff; }
.ts-footer-desc{ margin:16px 0 14px; font-size:.94rem; line-height:1.6; max-width:420px; }
.ts-footer-contact a{ color:#fff; font-weight:600; }
.ts-footer-contact a:hover{ color:var(--ts-teal); }
.ts-footer-col h4{ color:#fff; font-size:1rem; margin:0 0 14px; }
.ts-footer-col ul{ list-style:none; margin:0 0 8px; padding:0; }
.ts-footer-col li{ margin:0 0 10px; }
.ts-footer-col a{ color:rgba(255,255,255,.72); font-size:.94rem; }
.ts-footer-col a:hover{ color:#fff; }
.ts-footer-offices-h{ margin-top:22px !important; }
.ts-footer-office{ font-size:.94rem; color:rgba(255,255,255,.72); margin:0; }
.ts-footer-office span{ color:rgba(255,255,255,.5); font-size:.86rem; }

/* Kadence bottom bar — sit it on the dark footer, tidy the type */
#colophon.site-footer{ background:var(--ts-navy); }
#colophon .site-footer-wrap{ border-top:1px solid rgba(255,255,255,.12); }
#colophon .footer-html, #colophon .footer-html p{ color:rgba(255,255,255,.55); font-size:.86rem; }
#colophon .footer-html a{ color:rgba(255,255,255,.75); }

@media(max-width:900px){
  .ts-footer-grid{ grid-template-columns:1fr 1fr; }
  .ts-footer-brand{ grid-column:1 / -1; }
}
@media(max-width:560px){
  .ts-footer-grid{ grid-template-columns:1fr; }
  .ts-foot-cta-inner{ flex-direction:column; align-items:flex-start; }
}

/* =====================================================================
 * Secondary pages (About / Methodology / Standards / Industries / Insights)
 * ===================================================================== */
/* Two-column intro: sticky-ish heading left, body right */
.ts-2col{ display:grid; grid-template-columns:1fr 1.2fr; gap:48px; align-items:start; }
.ts-2col .ts-h2{ margin-top:6px; }
.ts-2col-body p{ color:var(--ts-ink); font-size:1.02rem; line-height:1.7; margin:0 0 16px; }
.ts-2col-body p:last-child{ margin-bottom:0; }

/* Value / deliverable cards (icon + text) */
.ts-values{ margin-top:6px; }
.ts-value-card{ display:flex; gap:18px; align-items:flex-start; background:#fff;
  border:1px solid var(--ts-line); border-radius:var(--ts-radius); padding:26px; box-shadow:var(--ts-shadow); }
.ts-value-ic{ width:48px; height:48px; flex:0 0 auto; border-radius:12px; display:grid; place-items:center;
  background:linear-gradient(135deg,#e7f0ff,#dbe8ff); color:var(--ts-accent); }
.ts-value-card h3{ margin:0 0 6px; font-size:1.12rem; color:var(--ts-navy); }
.ts-value-card p{ margin:0; color:var(--ts-muted); font-size:.96rem; line-height:1.6; }

/* Inline CTA row (heading + button) */
.ts-cta-inline{ display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap;
  background:#fff; border:1px solid var(--ts-line); border-radius:var(--ts-radius); padding:34px 38px; box-shadow:var(--ts-shadow); }
.ts-cta-inline .ts-btn{ white-space:nowrap; }

/* Methodology phases — vertical numbered timeline */
.ts-phases{ list-style:none; margin:0 auto; padding:0; max-width:840px; position:relative; }
.ts-phases::before{ content:""; position:absolute; left:23px; top:12px; bottom:12px; width:2px; background:var(--ts-line); }
.ts-phase{ display:grid; grid-template-columns:auto 1fr; gap:24px; align-items:start; padding:0 0 34px; position:relative; }
.ts-phase:last-child{ padding-bottom:0; }
.ts-phase-no{ width:48px; height:48px; flex:0 0 auto; border-radius:50%; display:grid; place-items:center;
  background:linear-gradient(135deg,var(--ts-accent),var(--ts-blue)); color:#fff; font-weight:800; font-size:1.2rem;
  box-shadow:0 8px 20px rgba(30,115,255,.30); position:relative; z-index:1; outline:6px solid var(--ts-bg); }
.ts-phase-body h3{ margin:8px 0 8px; font-size:1.2rem; }
.ts-phase-body p{ margin:0; color:var(--ts-muted); line-height:1.65; font-size:.98rem; }

/* Standards family cards */
.ts-std-card{ align-items:flex-start; }
.ts-std-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:auto; padding-top:14px; }
.ts-std-tags span{ background:var(--ts-bg-soft); border:1px solid var(--ts-line); color:var(--ts-navy);
  font-weight:600; font-size:.82rem; padding:5px 11px; border-radius:8px; }

/* Industry cards */
.ts-industry-card .ts-card-icon{ margin-bottom:16px; }

/* Insight cards */
.ts-insight-card{ overflow:hidden; }
.ts-insight-thumb{ display:block; margin:-26px -26px 18px; }
.ts-insight-thumb img{ width:100%; height:180px; object-fit:cover; display:block; }
.ts-insight-card .ts-badge{ margin-bottom:10px; }

@media(max-width:820px){
  .ts-2col{ grid-template-columns:1fr; gap:20px; }
  .ts-values.ts-grid-2{ grid-template-columns:1fr; }
  .ts-cta-inline{ flex-direction:column; align-items:flex-start; }
}

/* =====================================================================
   Assessment wizard (multi-step requirements gathering)
   ===================================================================== */
.ts-wizard{
  max-width:820px; margin:0 auto; background:var(--ts-bg);
  border:1px solid var(--ts-line); border-radius:calc(var(--ts-radius) + 4px);
  box-shadow:var(--ts-shadow-lg); padding:34px 38px 38px;
}

/* Progress */
.ts-wiz-progress{ margin-bottom:30px; }
.ts-wiz-bar{ height:6px; border-radius:99px; background:var(--ts-bg-soft-2); overflow:hidden; }
.ts-wiz-bar > span{
  display:block; height:100%; width:0;
  background:linear-gradient(90deg,var(--ts-accent),var(--ts-teal));
  border-radius:99px; transition:width .35s ease;
}
.ts-wiz-steps{
  list-style:none; margin:16px 0 0; padding:0;
  display:flex; justify-content:space-between; gap:8px;
}
.ts-wiz-step{ display:flex; flex-direction:column; align-items:center; gap:7px; flex:1 1 0; text-align:center; }
.ts-wiz-dot{
  width:34px; height:34px; border-radius:50%; display:grid; place-items:center;
  background:var(--ts-bg-soft-2); color:var(--ts-muted); font-weight:700; font-size:.9rem;
  border:2px solid transparent; transition:.2s;
}
.ts-wiz-label{ font-size:.78rem; font-weight:600; color:var(--ts-muted); letter-spacing:.01em; }
.ts-wiz-step.is-active .ts-wiz-dot{ background:var(--ts-accent); color:#fff; box-shadow:0 0 0 4px rgba(30,115,255,.15); }
.ts-wiz-step.is-active .ts-wiz-label{ color:var(--ts-navy); }
.ts-wiz-step.is-done{ cursor:pointer; }
.ts-wiz-step.is-done .ts-wiz-dot{ background:var(--ts-teal); color:#fff; }
.ts-wiz-step.is-done .ts-wiz-label{ color:var(--ts-ink); }

/* Panels */
.ts-wiz-panel{ border:0; padding:0; margin:0; min-width:0; }
.ts-wiz-panel[hidden]{ display:none; }
.ts-wiz-q{ font-size:1.5rem; line-height:1.2; font-weight:800; color:var(--ts-navy); padding:0; }
.ts-wiz-help{ color:var(--ts-muted); margin:8px 0 22px; font-size:.98rem; }

/* Card options (radio) */
.ts-wiz-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.ts-wiz-cards-2{ grid-template-columns:repeat(2,1fr); }
.ts-wiz-opt{ position:relative; display:block; cursor:pointer; }
.ts-wiz-opt input{ position:absolute; opacity:0; inset:0; margin:0; cursor:pointer; }
.ts-wiz-opt-in{
  display:flex; flex-direction:column; gap:3px; justify-content:center;
  min-height:58px; padding:14px 16px; border-radius:12px;
  border:1.5px solid var(--ts-line); background:var(--ts-bg);
  font-weight:600; color:var(--ts-ink); font-size:.95rem; transition:.15s;
}
.ts-wiz-opt-in em{ font-style:normal; font-weight:500; font-size:.82rem; color:var(--ts-muted); }
.ts-wiz-opt:hover .ts-wiz-opt-in{ border-color:var(--ts-accent); background:var(--ts-bg-soft); }
.ts-wiz-opt input:checked + .ts-wiz-opt-in{
  border-color:var(--ts-accent); background:rgba(30,115,255,.06);
  box-shadow:0 0 0 3px rgba(30,115,255,.12);
}
.ts-wiz-opt input:focus-visible + .ts-wiz-opt-in{ outline:2px solid var(--ts-accent); outline-offset:2px; }

/* Chips (checkbox) */
.ts-wiz-chips{ display:flex; flex-wrap:wrap; gap:10px; }
.ts-wiz-chip{ position:relative; cursor:pointer; }
.ts-wiz-chip input{ position:absolute; opacity:0; inset:0; margin:0; cursor:pointer; }
.ts-wiz-chip span{
  display:inline-block; padding:10px 16px; border-radius:99px;
  border:1.5px solid var(--ts-line); background:var(--ts-bg);
  font-weight:600; font-size:.9rem; color:var(--ts-ink); transition:.15s;
}
.ts-wiz-chip:hover span{ border-color:var(--ts-accent); }
.ts-wiz-chip input:checked + span{
  border-color:var(--ts-accent); background:var(--ts-accent); color:#fff;
}
.ts-wiz-chip input:focus-visible + span{ outline:2px solid var(--ts-accent); outline-offset:2px; }

.ts-wiz-selects{ margin-top:22px; }

/* Validation */
.ts-wiz-err{ margin-top:12px; color:#c0392b; font-size:.88rem; font-weight:600; }
.ts-wiz-cards.ts-wiz-invalid .ts-wiz-opt-in{ border-color:#e7b3ac; }

/* Summary brief */
.ts-wiz-summary{
  background:var(--ts-bg-soft); border:1px solid var(--ts-line);
  border-radius:12px; padding:20px 22px; margin-bottom:26px;
}
.ts-wiz-summary h4{ margin:0 0 12px; font-size:.82rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ts-muted); }
.ts-wiz-summary dl{ margin:0; display:grid; grid-template-columns:minmax(120px,190px) 1fr; gap:8px 18px; }
.ts-wiz-summary dt{ font-weight:700; color:var(--ts-navy); font-size:.9rem; }
.ts-wiz-summary dd{ margin:0; color:var(--ts-ink); font-size:.92rem; }
.ts-wiz-sum-empty{ grid-column:1 / -1; color:var(--ts-muted); font-style:italic; }

/* Nav row */
.ts-wiz-nav{ display:flex; justify-content:space-between; align-items:center; gap:14px; margin-top:30px; }
.ts-wiz-nav .ts-btn-ghost{ background:transparent; }

@media(max-width:680px){
  .ts-wizard{ padding:24px 20px 28px; }
  .ts-wiz-cards, .ts-wiz-cards-2{ grid-template-columns:1fr 1fr; }
  .ts-wiz-label{ display:none; }
  .ts-wiz-q{ font-size:1.25rem; }
  .ts-wiz-summary dl{ grid-template-columns:1fr; gap:2px 0; }
  .ts-wiz-summary dt{ margin-top:8px; }
}
