/*
Theme Name:   TechnoSquid
Theme URI:    https://technosquid.com
Description:  Divi child theme for TechnoSquid Limited — brand tokens, typography, components.
Author:       TechnoSquid Limited
Template:     Divi
Version:      1.0.0
Text Domain:  technosquid
*/

/* ==========================================================================
   1. Fonts (self-hosted, SIL OFL 1.1 — see fonts/OFL-*.txt)
   ========================================================================== */
@font-face{font-family:"Manrope";font-style:normal;font-weight:600 800;font-display:swap;src:url("fonts/manrope-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Manrope";font-style:normal;font-weight:600 800;font-display:swap;src:url("fonts/manrope-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:400 700;font-display:swap;src:url("fonts/inter-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Inter";font-style:normal;font-weight:400 700;font-display:swap;src:url("fonts/inter-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ==========================================================================
   2. Tokens
   ========================================================================== */
:root{
  --navy-950:#06132B; --navy-900:#091E3C; --navy-800:#13345F;
  --blue-700:#084BBD; --blue-600:#075BE8; --blue-500:#087CF5; --cyan-400:#11BDF5;
  --slate-600:#52647C; --slate-400:#B8C8DB; --slate-200:#DFE7F0;
  --surface:#F6F9FD; --tint:#EAF2FE; --white:#FFFFFF;
  --on-dark:#E7EEF8; --on-dark-muted:#A9BBD3;
  --brand-gradient:linear-gradient(110deg,#08468F 0%,#087CF5 62%,#11BDF5 100%);
  --focus-ring:0 0 0 3px rgba(8,124,245,.28);

  --font-head:"Manrope",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --font-body:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;

  --content:1240px; --wide:1440px;
  --gutter:20px; --gap:16px;
  --section-y:80px;
  --radius-card:16px; --radius-btn:10px; --radius-tile:12px;
  --header-h:68px;
  --t-fast:160ms; --t-med:220ms;
  --ease:cubic-bezier(.2,.7,.2,1);
}
@media (min-width:768px){:root{--gutter:32px;--gap:24px;--section-y:96px}}
@media (min-width:1025px){:root{--gutter:56px;--section-y:120px;--header-h:82px}}
@media (min-width:1440px){:root{--gutter:64px;--section-y:128px}}

/* ==========================================================================
   3. Divi neutralisation (layout is owned by the components below)
   ========================================================================== */
body.ts-site{font-family:var(--font-body);font-size:17px;line-height:1.6;color:var(--navy-900);background:var(--white);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-weight:400}
body.ts-site #page-container{padding-top:0!important;overflow:visible}
body.ts-site #main-content{background:transparent}
body.ts-site #main-content .container:before{display:none}
body.ts-site .et-l--post .et_builder_inner_content,
body.ts-site .et-l--header .et_builder_inner_content,
body.ts-site .et-l--footer .et_builder_inner_content{z-index:auto}
body.ts-site .et-l .et_pb_section{padding:0!important;margin:0!important;background-color:transparent}
body.ts-site .et-l .et_pb_row{width:100%!important;max-width:none!important;padding:0!important;margin:0!important}
body.ts-site .et-l .et_pb_row:after{display:none}
body.ts-site .et-l .et_pb_column{margin:0!important;width:100%!important;float:none}
body.ts-site .et-l .et_pb_module,body.ts-site .et-l .et_pb_code{margin:0!important;padding:0!important}
body.ts-site .et-l .et_pb_code_inner{position:static}
body.ts-site h1,body.ts-site h2,body.ts-site h3,body.ts-site h4{padding:0;font-family:var(--font-head)}
:where(body.ts-site) :where(h1,h2,h3,h4){color:var(--navy-950)}
body.ts-site p{padding:0}
body.ts-site a{color:var(--blue-600);text-decoration:none}
body.ts-site img{max-width:100%;height:auto}
body.ts-site ul,body.ts-site ol{padding:0;list-style:none}
body.ts-site #et-main-area,body.ts-site #main-content{overflow-x:clip}

/* ==========================================================================
   4. Base typography
   ========================================================================== */
.ts h1,.ts-h1{font-family:var(--font-head);font-weight:800;font-size:clamp(36px,8.6vw,42px);line-height:1.08;letter-spacing:-.025em;color:var(--navy-950);margin:0}
.ts h2,.ts-h2{font-family:var(--font-head);font-weight:700;font-size:30px;line-height:1.15;letter-spacing:-.02em;color:var(--navy-950);margin:0}
.ts h3,.ts-h3{font-family:var(--font-head);font-weight:700;font-size:22px;line-height:1.25;letter-spacing:-.012em;color:var(--navy-950);margin:0}
.ts h4{font-family:var(--font-body);font-weight:600;font-size:15px;line-height:1.4;letter-spacing:0;color:var(--navy-950);margin:0}
.ts p{margin:0;max-width:70ch}
.ts p+p{margin-top:1em}
.ts-lede{font-size:18px;line-height:1.6;color:var(--slate-600)}
.ts-muted{color:var(--slate-600)}
.ts-overline{display:block;font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--blue-600);margin:0 0 16px}
@media (min-width:768px){
  .ts h1,.ts-h1{font-size:clamp(48px,6.4vw,56px)}
  .ts h2,.ts-h2{font-size:36px}
  .ts h3,.ts-h3{font-size:24px}
}
@media (min-width:1025px){
  .ts h1,.ts-h1{font-size:clamp(60px,4.9vw,72px)}
  .ts h2,.ts-h2{font-size:clamp(40px,3.2vw,48px)}
  .ts h3,.ts-h3{font-size:26px}
  .ts-lede{font-size:19px}
}
.ts-skip{position:absolute;left:12px;top:-60px;z-index:1000;background:var(--navy-950);color:var(--white)!important;padding:12px 18px;border-radius:var(--radius-btn);font-weight:600;transition:top var(--t-fast)}
.ts-skip:focus{top:12px;outline:none;box-shadow:var(--focus-ring)}
.ts a:focus-visible,.ts button:focus-visible,.ts-header a:focus-visible,.ts-header button:focus-visible,.ts-footer a:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:6px}
.ts-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ==========================================================================
   5. Layout primitives
   ========================================================================== */
.ts{position:relative}
.ts-wrap{width:100%;max-width:calc(var(--content) + 2*var(--gutter));margin-inline:auto;padding-inline:var(--gutter);box-sizing:border-box}
.ts-wrap--wide{max-width:calc(var(--wide) + 2*var(--gutter))}
.ts-sec{position:relative;padding-block:var(--section-y);isolation:isolate}
.ts-sec--tight{padding-block:calc(var(--section-y)*.55)}
.ts-sec--surface{background:var(--surface)}
.ts-sec--dark{background:var(--navy-950);color:var(--on-dark)}
.ts-sec--dark h1,.ts-sec--dark h2,.ts-sec--dark h3,.ts-sec--dark h4{color:var(--white)}
.ts-sec--dark .ts-lede,.ts-sec--dark .ts-muted{color:var(--on-dark-muted)}
.ts-sec--dark .ts-overline{color:var(--cyan-400)}
.ts-sec--line{border-top:1px solid var(--slate-200)}
.ts-head{max-width:760px;margin-bottom:48px}
.ts-head .ts-lede{margin-top:20px}
.ts-head--split{display:grid;gap:20px;max-width:none}
@media (min-width:1025px){.ts-head{margin-bottom:64px}.ts-head--split{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:var(--gap);align-items:end}.ts-head--split .ts-lede{margin-top:0}}
.ts-grid{display:grid;gap:var(--gap)}
.ts-grid--2{grid-template-columns:1fr}
.ts-grid--3{grid-template-columns:1fr}
@media (min-width:768px){.ts-grid--2,.ts-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1025px){.ts-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Decorative grid + curves (backgrounds only, aria-hidden) */
.ts-gridlines{position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(to right,rgba(19,52,95,.055) 1px,transparent 1px),linear-gradient(to bottom,rgba(19,52,95,.055) 1px,transparent 1px);
  background-size:48px 48px;
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at 70% 40%,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse 80% 70% at 70% 40%,#000 30%,transparent 75%)}
.ts-sec--dark .ts-gridlines{background-image:linear-gradient(to right,rgba(169,187,211,.07) 1px,transparent 1px),linear-gradient(to bottom,rgba(169,187,211,.07) 1px,transparent 1px)}
.ts-curves{position:absolute;z-index:-1;pointer-events:none}

/* ==========================================================================
   6. Buttons
   ========================================================================== */
.ts-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;box-sizing:border-box;min-height:48px;padding:0 22px;border-radius:var(--radius-btn);font-family:var(--font-body);font-weight:600;font-size:15px;line-height:1;letter-spacing:0;border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:background-color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}
.ts-btn--sm{min-height:44px;padding:0 16px;font-size:14px}
.ts-btn--lg{min-height:56px;padding:0 28px;font-size:16px}
.ts-btn--primary{background:var(--blue-600);color:var(--white)!important}
.ts-btn--primary:hover{background:var(--blue-700)}
.ts-btn--secondary{background:var(--navy-900);color:var(--white)!important}
.ts-btn--secondary:hover{background:var(--navy-800)}
.ts-btn--outline{background:transparent;color:var(--navy-900)!important;border-color:var(--slate-400)}
.ts-btn--outline:hover{border-color:var(--navy-900);background:var(--white)}
.ts-btn--inverse{background:var(--white);color:var(--navy-950)!important}
.ts-btn--inverse:hover{background:var(--tint)}
.ts-btn--outline-inverse{background:transparent;color:var(--white)!important;border-color:rgba(255,255,255,.38)}
.ts-btn--outline-inverse:hover{border-color:var(--white);background:rgba(255,255,255,.06)}
.ts-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.ts-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
.ts-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:600;color:var(--blue-600);border-bottom:1px solid transparent;transition:border-color var(--t-fast)}
.ts-link:hover{border-bottom-color:currentColor}
.ts-sec--dark .ts-link{color:var(--cyan-400)}

/* ==========================================================================
   7. Header (Theme Builder → [ts_header])
   ========================================================================== */
body.ts-site .et-l--header{position:fixed;top:var(--wp-admin--admin-bar--height,0px);left:0;right:0;z-index:999}
body.ts-site #et-main-area{padding-top:var(--header-h)}
.ts-header{position:relative;height:var(--header-h);background:rgba(255,255,255,.98);border-bottom:1px solid transparent;transition:background-color var(--t-med) var(--ease),border-color var(--t-med) var(--ease),box-shadow var(--t-med) var(--ease)}
.ts-header.is-scrolled{background:rgba(255,255,255,.82);-webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px);border-bottom-color:var(--slate-200)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.ts-header.is-scrolled{background:rgba(255,255,255,.97)}}
.ts-header__inner{height:100%;display:flex;align-items:center;gap:24px}
.ts-brand{display:inline-flex;align-items:center;gap:4px;min-height:44px;color:var(--navy-950)!important;margin-right:auto}
.ts-brand__mark{display:block;height:56px;width:auto;flex:none;margin-left:-8px}
.ts-brand__word{font-family:var(--font-head);font-weight:700;font-size:21px;letter-spacing:-.015em;line-height:1}
.ts-brand__techno{color:var(--navy-950)}
.ts-brand__squid{color:var(--blue-500)}
@media (min-width:1025px){.ts-brand__mark{height:67px;margin-left:-10px}.ts-brand__word{font-size:23px}}
.ts-nav{display:none}
.ts-nav ul{display:flex;align-items:center;gap:4px;margin:0}
.ts-nav a{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 14px;font-family:var(--font-body);font-size:15px;font-weight:500;color:var(--navy-900)!important;border-radius:8px;transition:color var(--t-fast) var(--ease),background-color var(--t-fast) var(--ease)}
.ts-nav a:hover{color:var(--blue-600)!important;background:var(--surface)}
.ts-nav a[aria-current="page"]{color:var(--blue-600)!important;font-weight:600}
.ts-nav a[aria-current="page"]:after{content:"";position:absolute;left:14px;right:14px;bottom:4px;height:2px;border-radius:2px;background:var(--blue-500)}
.ts-header__cta{display:none!important}
@media (min-width:1025px){.ts-nav{display:block}.ts-header__cta{display:inline-flex!important}.ts-burger{display:none!important}}
.ts-burger{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--slate-200);border-radius:var(--radius-btn);background:var(--white);color:var(--navy-950);cursor:pointer;padding:0}
.ts-burger svg{width:22px;height:22px}
.ts-burger .ts-i-close{display:none}
.ts-burger[aria-expanded="true"] .ts-i-open{display:none}
.ts-burger[aria-expanded="true"] .ts-i-close{display:block}
.ts-drawer{position:fixed;left:0;right:0;top:calc(var(--wp-admin--admin-bar--height,0px) + var(--header-h));bottom:0;background:var(--white);border-top:1px solid var(--slate-200);overflow-y:auto;padding:12px var(--gutter) 32px;opacity:0;transform:translateY(-8px);transition:opacity var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}
.ts-drawer.is-open{opacity:1;transform:none}
.ts-drawer[hidden]{display:none}
.ts-drawer ul{margin:0}
.ts-drawer li{border-bottom:1px solid var(--slate-200)}
.ts-drawer li a{display:flex;align-items:center;min-height:56px;font-family:var(--font-head);font-weight:700;font-size:22px;letter-spacing:-.01em;color:var(--navy-950)!important}
.ts-drawer li a[aria-current="page"]{color:var(--blue-600)!important}
.ts-drawer__foot{margin-top:28px;display:grid;gap:16px}
.ts-drawer__foot .ts-btn{width:100%}
.ts-drawer__mail{font-size:15px;color:var(--slate-600)!important}
body.ts-drawer-open{overflow:hidden}

/* ==========================================================================
   8. Hero
   ========================================================================== */
.ts-hero{padding-block:56px 72px;overflow:hidden}
.ts-hero__grid{display:grid;gap:40px;align-items:center}
.ts-hero__copy{max-width:640px}
.ts-hero h1{max-width:13ch}
.ts-hero .ts-lede{margin-top:24px;max-width:46ch}
.ts-hero__art{position:relative;aspect-ratio:1.18/1;width:100%;max-width:620px;justify-self:center}
.ts-hero__art svg{width:100%;height:100%;display:block;overflow:visible}
@media (min-width:1025px){
  .ts-hero{padding-block:88px 120px}
  .ts-hero__grid{grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:56px}
  .ts-hero__art{justify-self:end}
}
@media (prefers-reduced-motion:no-preference){
  .ts-hero__copy>*{animation:ts-rise 300ms var(--ease) both}
  .ts-hero__copy>*:nth-child(2){animation-delay:60ms}
  .ts-hero__copy>*:nth-child(3){animation-delay:120ms}
  .ts-hero__copy>*:nth-child(4){animation-delay:180ms}
  .ts-hero__art{animation:ts-fade 300ms var(--ease) 120ms both}
  .ts-hero__art .ts-draw{stroke-dasharray:1;stroke-dashoffset:1;animation:ts-draw 1.6s cubic-bezier(.45,0,.2,1) 200ms forwards}
  .ts-hero__art .ts-node{opacity:0;animation:ts-fade 260ms var(--ease) forwards}
}
@keyframes ts-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes ts-fade{from{opacity:0}to{opacity:1}}
@keyframes ts-draw{to{stroke-dashoffset:0}}

/* ==========================================================================
   9. Expertise strip
   ========================================================================== */
.ts-strip{padding-block:28px;border-block:1px solid var(--slate-200);background:var(--surface)}
.ts-strip__inner{display:flex;flex-wrap:wrap;align-items:center;gap:8px 0}
.ts-strip__label{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--slate-600);margin-right:28px;flex-basis:100%;margin-bottom:6px}
.ts-strip ul{display:flex;flex-wrap:wrap;gap:10px 0;margin:0}
.ts-strip li{font-family:var(--font-head);font-weight:700;font-size:16px;color:var(--navy-900);letter-spacing:-.01em;padding-right:20px;margin-right:20px;border-right:1px solid var(--slate-400);line-height:1.3}
.ts-strip li:last-child{border-right:0;margin-right:0;padding-right:0}
@media (min-width:1025px){.ts-strip__label{flex-basis:auto;margin-bottom:0}.ts-strip li{font-size:18px;padding-right:28px;margin-right:28px}}

/* ==========================================================================
   10. Cards (Solutions)
   ========================================================================== */
.ts-card{position:relative;display:flex;flex-direction:column;gap:14px;box-sizing:border-box;background:var(--white);border:1px solid var(--slate-200);border-radius:var(--radius-card);padding:28px;color:var(--navy-900)!important;transition:transform var(--t-med) var(--ease),border-color var(--t-med) var(--ease),box-shadow var(--t-med) var(--ease)}
@media (min-width:1025px){.ts-card{padding:32px}}
a.ts-card:hover{transform:translateY(-3px);border-color:#C5D6EA;box-shadow:0 14px 34px -18px rgba(9,30,60,.28)}
a.ts-card:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.ts-card h3{font-size:21px}
.ts-card p{color:var(--slate-600);font-size:16px}
.ts-card__more{margin-top:auto;padding-top:8px;font-size:14px;font-weight:600;color:var(--blue-600)}
.ts-tile{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--radius-tile);background:var(--tint);color:var(--blue-600);flex:none}
.ts-tile svg{width:26px;height:26px}
.ts-card--lead{background:var(--navy-950);border-color:var(--navy-950);color:var(--on-dark)!important;overflow:hidden;isolation:isolate}
.ts-card--lead h3{color:var(--white)}
.ts-card--lead p{color:var(--on-dark-muted)}
.ts-card--lead .ts-tile{background:rgba(17,189,245,.12);color:var(--cyan-400)}
.ts-card--lead .ts-card__more{color:var(--cyan-400)}
.ts-card--lead:after{content:"";position:absolute;right:-90px;bottom:-110px;width:280px;height:280px;border-radius:50%;border:1px solid rgba(17,189,245,.22);box-shadow:0 0 0 34px rgba(8,124,245,.06),0 0 0 68px rgba(8,124,245,.04);z-index:-1}
a.ts-card--lead:hover{border-color:var(--navy-800)}
@media (min-width:1025px){.ts-solutions .ts-card--lead{grid-row:span 2;justify-content:flex-start}.ts-solutions .ts-card--lead h3{font-size:28px}}
.ts-outcome{font-size:14px!important;color:var(--navy-800)!important;border-top:1px solid var(--slate-200);padding-top:14px;margin-top:4px!important}
.ts-card--lead .ts-outcome{color:var(--on-dark)!important;border-top-color:rgba(169,187,211,.22)}

/* ==========================================================================
   11. Process (How we work) — a real sequence, so numbered
   ========================================================================== */
.ts-steps{display:grid;gap:0;margin:0;counter-reset:step}
.ts-step{position:relative;padding:0 0 36px 64px}
.ts-step:last-child{padding-bottom:0}
.ts-step__n{position:absolute;left:0;top:0;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-weight:700;font-size:15px;color:var(--white);background:var(--navy-800);border:1px solid rgba(17,189,245,.35)}
.ts-step:before{content:"";position:absolute;left:21.5px;top:48px;bottom:4px;width:1px;background:linear-gradient(to bottom,rgba(17,189,245,.5),rgba(17,189,245,.08))}
.ts-step:last-child:before{display:none}
.ts-step h3{font-size:22px;margin-bottom:8px}
.ts-step p{font-size:16px;color:var(--on-dark-muted)}
.ts-sec:not(.ts-sec--dark) .ts-step p{color:var(--slate-600)}
.ts-sec:not(.ts-sec--dark) .ts-step__n{background:var(--white);color:var(--blue-600);border-color:var(--slate-400)}
.ts-sec:not(.ts-sec--dark) .ts-step:before{background:linear-gradient(to bottom,var(--slate-400),var(--slate-200))}
@media (min-width:1025px){
  .ts-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap)}
  .ts-step{padding:76px 24px 0 0}
  .ts-step__n{top:0}
  .ts-step:before{left:56px;right:-12px;top:21.5px;bottom:auto;width:auto;height:1px;background:linear-gradient(to right,rgba(17,189,245,.55),rgba(17,189,245,.1))}
  .ts-sec:not(.ts-sec--dark) .ts-step:before{background:linear-gradient(to right,var(--slate-400),var(--slate-200))}
}

/* ==========================================================================
   12. Focus areas (rows) and differentiators
   ========================================================================== */
.ts-rows{margin:0;border-top:1px solid var(--slate-200)}
.ts-row{display:grid;gap:8px;padding:24px 0;border-bottom:1px solid var(--slate-200)}
.ts-row h3{font-size:20px}
.ts-row p{color:var(--slate-600);font-size:16px}
@media (min-width:768px){.ts-row{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--gap);align-items:baseline;padding:30px 0}.ts-row h3{font-size:22px}}
.ts-note{margin-top:20px!important;font-size:14px!important;color:var(--slate-600)}
.ts-diff{display:grid;gap:var(--gap)}
@media (min-width:768px){.ts-diff{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px var(--gap)}}
.ts-diff__item{padding-left:22px;border-left:2px solid var(--blue-500)}
.ts-diff__item h3{font-size:21px;margin-bottom:8px}
.ts-diff__item p{color:var(--slate-600);font-size:16px}

/* ==========================================================================
   13. Split blocks, particulars, about preview
   ========================================================================== */
.ts-split{display:grid;gap:40px}
@media (min-width:1025px){.ts-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:72px;align-items:start}.ts-split--wide-left{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)}}
.ts-panel{background:var(--white);border:1px solid var(--slate-200);border-radius:var(--radius-card);padding:28px}
@media (min-width:1025px){.ts-panel{padding:36px}}
.ts-panel--surface{background:var(--surface)}
.ts-facts{margin:0;display:grid}
.ts-facts div{display:grid;gap:4px;padding:16px 0;border-bottom:1px solid var(--slate-200)}
.ts-facts div:first-child{padding-top:0}
.ts-facts div:last-child{border-bottom:0;padding-bottom:0}
.ts-facts dt{font-size:13px;font-weight:600;color:var(--slate-600);letter-spacing:.01em}
.ts-facts dd{margin:0;font-size:16px;color:var(--navy-950);font-weight:500;line-height:1.5}
@media (min-width:768px){.ts-facts div{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--gap)}}
.ts-lockup{display:block;width:100%;max-width:360px;height:auto;padding:8%;box-sizing:border-box}

/* ==========================================================================
   14. Solutions / Expertise detail sections
   ========================================================================== */
.ts-toc{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.ts-toc a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--slate-200);border-radius:999px;background:var(--white);font-size:14px;font-weight:600;color:var(--navy-900)!important;transition:border-color var(--t-fast),color var(--t-fast)}
.ts-toc a:hover{border-color:var(--blue-500);color:var(--blue-600)!important}
.ts-detail{scroll-margin-top:calc(var(--header-h) + 24px)}
.ts-detail__grid{display:grid;gap:32px}
@media (min-width:1025px){.ts-detail__grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:72px}}
.ts-detail__intro .ts-tile{margin-bottom:24px}
.ts-detail__intro .ts-lede{margin-top:18px}
.ts-detail__cols{display:grid;gap:var(--gap)}
@media (min-width:768px){.ts-detail__cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ts-list{margin:12px 0 0;display:grid;gap:10px}
.ts-list li{position:relative;padding-left:22px;font-size:16px;color:var(--navy-900);line-height:1.5}
.ts-list li:before{content:"";position:absolute;left:2px;top:.55em;width:7px;height:7px;border-radius:2px;background:var(--blue-500)}
.ts-sec--dark .ts-list li{color:var(--on-dark)}
.ts-sec--dark .ts-list li:before{background:var(--cyan-400)}
.ts-sec--dark .ts-panel{background:var(--navy-900);border-color:var(--navy-800)}

/* ==========================================================================
   15. Page heads (inner pages)
   ========================================================================== */
.ts-pagehead{padding-block:64px 56px;overflow:hidden;border-bottom:1px solid var(--slate-200)}
.ts-pagehead h1{max-width:18ch}
.ts-pagehead .ts-lede{margin-top:22px;max-width:60ch}
@media (min-width:1025px){.ts-pagehead{padding-block:104px 88px}}
.ts-pagehead .ts-curves{right:-120px;top:-40px;width:min(720px,70vw);opacity:.9}
@media (max-width:767px){.ts-pagehead .ts-curves{opacity:.35;right:-260px}}

/* ==========================================================================
   16. CTA band
   ========================================================================== */
.ts-cta{overflow:hidden}
.ts-cta__inner{display:grid;gap:28px;align-items:center}
.ts-cta h2{max-width:16ch}
.ts-cta .ts-curves{left:auto;right:-520px;bottom:-200px;width:1250px;opacity:.6}
@media (max-width:1024px){.ts-cta .ts-curves{right:-760px;bottom:-260px;opacity:.4}}
@media (min-width:1025px){.ts-cta__inner{grid-template-columns:minmax(0,1fr) auto;gap:48px}}
.ts-cta__mail{display:block;margin-top:14px;font-size:15px;color:var(--on-dark-muted)!important}

/* ==========================================================================
   17. Contact
   ========================================================================== */
.ts-mailbig{display:inline-block;font-family:var(--font-head);font-weight:700;font-size:clamp(24px,6vw,44px);letter-spacing:-.02em;color:var(--navy-950)!important;border-bottom:2px solid var(--blue-500);line-height:1.25;word-break:break-word;transition:color var(--t-fast)}
.ts-mailbig:hover{color:var(--blue-600)!important}
.ts-contact-phone{margin-top:40px;padding-top:32px;border-top:1px solid var(--slate-200)}
.ts-telbig{display:inline-flex;align-items:center;min-height:44px;font-family:var(--font-head);font-weight:700;font-size:clamp(22px,4.5vw,32px);letter-spacing:-.01em;color:var(--navy-950)!important;border-bottom:2px solid var(--blue-500);line-height:1.25;white-space:nowrap;transition:color var(--t-fast)}
.ts-telbig:hover{color:var(--blue-600)!important}
.ts-cta__tel{margin-top:6px}
.ts-mailbig{word-break:normal;overflow-wrap:anywhere}
.ts-address{font-style:normal;line-height:1.6;font-size:17px;color:var(--navy-950)}

/* ==========================================================================
   18. Legal pages
   ========================================================================== */
.ts-legal{max-width:760px}
.ts-legal h2{font-size:26px;margin:48px 0 14px}
.ts-legal h2:first-child{margin-top:0}
.ts-legal p,.ts-legal li{color:var(--navy-900);font-size:17px}
.ts-legal ul{margin:12px 0 0;display:grid;gap:8px}
.ts-legal ul li{position:relative;padding-left:20px}
.ts-legal ul li:before{content:"";position:absolute;left:2px;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--blue-500)}
.ts-updated{display:inline-block;margin-top:24px!important;font-size:14px!important;color:var(--slate-600)}
@media (min-width:1025px){.ts-legal h2{font-size:28px}}

/* ==========================================================================
   19. Footer (Theme Builder → [ts_footer])
   ========================================================================== */
.ts-footer{background:var(--surface);border-top:1px solid var(--slate-200);color:var(--navy-900);font-size:15px}
.ts-footer__top{display:grid;gap:40px;padding-block:64px 48px}
.ts-footer__brand img{display:block;width:220px;height:auto;margin-left:-16px}
.ts-footer__brand p{margin-top:16px;color:var(--slate-600);max-width:34ch;font-size:15px}
.ts-footer h2{font-family:var(--font-body)!important;font-size:13px!important;font-weight:600!important;letter-spacing:.08em!important;text-transform:uppercase;color:var(--slate-600)!important;margin:0 0 14px!important;line-height:1.4!important}
.ts-footer ul{margin:0;display:grid;gap:2px}
.ts-footer li a,.ts-footer__contact a{display:inline-flex;align-items:center;min-height:40px;color:var(--navy-900)!important;font-weight:500}
.ts-footer li a:hover,.ts-footer__contact a:hover{color:var(--blue-600)!important}
.ts-footer__contact a{display:flex;width:fit-content}
.ts-footer address{font-style:normal;color:var(--slate-600);line-height:1.6;margin-top:6px}
.ts-footer__bar{border-top:1px solid var(--slate-200);padding-block:22px 28px;font-size:13px;color:var(--slate-600);line-height:1.6}
.ts-footer__bar p{max-width:none}
@media (min-width:768px){.ts-footer__top{grid-template-columns:repeat(3,minmax(0,1fr))}.ts-footer__brand{grid-column:1/-1}}
@media (min-width:1025px){.ts-footer__top{grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));padding-block:80px 56px}.ts-footer__brand{grid-column:auto}}

/* ==========================================================================
   20. 404
   ========================================================================== */
.ts-404{min-height:56vh;display:flex;align-items:center}
.ts-404 .ts-actions{margin-top:28px}

/* ==========================================================================
   21. Reduced motion
   ========================================================================== */
@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}
  a.ts-card:hover{transform:none}
}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ==========================================================================
   22. Small-screen refinements
   ========================================================================== */
@media (max-width:1024px){
  .ts-strip ul{display:grid;gap:8px 32px}
  .ts-strip li{border-right:0;margin-right:0;padding:0 0 0 18px;position:relative}
  .ts-strip li:before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;border-radius:2px;background:var(--blue-500)}
  .ts-hero__art{max-width:480px}
}
@media (min-width:768px) and (max-width:1024px){
  .ts-strip ul{grid-template-columns:repeat(2,minmax(0,max-content))}
  .ts-hero__grid{gap:8px}
}
@media (max-width:767px){
  .ts-hero__art text{font-size:24px}
  .ts-hero__art{margin-block:-12px -24px}
  .ts-actions .ts-btn{flex:1 1 100%}
  .ts-cta .ts-actions .ts-btn,.ts-cta__inner .ts-btn{width:100%}
}

.ts-mt{margin-top:22px}
.ts-legal a,.ts p a:not(.ts-btn):not(.ts-mailbig):not(.ts-link),.ts-facts dd a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.ts-legal a:hover,.ts p a:not(.ts-btn):hover{text-decoration-thickness:2px}
main#main-content:focus{outline:none}
