/* ============================================================
   sws-pages.css — shared design layer for the .sws service pages
   Added 2026-11-05. Each service page carries an identical inline
   <style> block in its content; because that inline CSS sits in the
   body it would normally beat a stylesheet in <head><meta charset="utf-8">, so every rule
   here is prefixed with "body" to win on specificity instead of order.
   Deleting this file + its wp_enqueue_style line reverts everything.
   ============================================================ */
body .sws{--leaf:#7fbe4b;--moss:#4b8a1f;--slate:#436b8d;--slate-dk:#35546f;--ink:#1f2a33;--mute:#5d6b76;--line:#dfe6da;--mist:#f2f6ee;--gold:#d9a93a;
  color:var(--ink);font-size:17px;line-height:1.6}
body .sws .wrap{max-width:1140px;padding:0 20px}

/* --- typography: large, light headings with tight tracking --- */
body .sws h2{font-size:34px;font-weight:300;line-height:1.2;letter-spacing:-.01em;color:var(--ink);margin:56px 0 12px}
body .sws h2 b,body .sws h2 strong{font-weight:700}
body .sws h3{font-size:20px;font-weight:600;line-height:1.3;color:var(--ink);margin:0 0 8px}
body .sws p{margin:0 0 14px}
body .sws .lead{font-size:21px;line-height:1.45;color:var(--ink);max-width:840px;margin:26px auto 10px}
body .sws .sub{font-size:17px;color:var(--mute);max-width:780px;margin:0 auto 28px}
body .sws .note{font-size:14px;color:var(--mute)}

/* --- cards: quiet, with the coloured top rule kept as the accent --- */
body .sws .card{background:#fff;border:1px solid var(--line);border-top:4px solid var(--leaf);border-radius:10px;
  padding:24px 24px 20px;box-shadow:0 1px 3px rgba(31,42,51,.05)}
body .sws .card.blue{border-top-color:var(--slate)}
body .sws .card.gold{border-top-color:var(--gold)}
body .sws .card li{margin:5px 0;font-size:16px}
body .sws .card ul{margin:10px 0 0 18px}
body .sws .grid{gap:22px}

/* --- the eyebrow tag as a pill, not tracked-out caps --- */
/* NB: the theme loads Bootstrap, whose .card is display:flex — so a flex child's
   inline-block is blockified and stretched to full width. align-self keeps the pill
   hugging its text. */
body .sws .card .tag{display:inline-block;align-self:flex-start;font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;
  color:var(--moss);background:#eef6e6;border-radius:20px;padding:4px 12px;margin-bottom:10px}

/* --- prices: large and light, like the automation page --- */
body .sws .price{font-size:40px;font-weight:300;line-height:1;letter-spacing:-.02em;color:var(--ink);margin:8px 0 6px}
body .sws .price small{font-size:16px;font-weight:400;color:var(--mute);letter-spacing:0}

/* --- buttons --- */
body .sws .btn{display:inline-block;padding:13px 26px;border-radius:4px;font-weight:600;font-size:16px;line-height:1.2;
  border:2px solid var(--leaf);background:var(--leaf);color:#fff!important;text-decoration:none!important}
body .sws .btn:hover{background:var(--moss);border-color:var(--moss)}
body .sws .btn.alt{background:var(--slate);border-color:var(--slate)}
body .sws .btn.alt:hover{background:var(--slate-dk);border-color:var(--slate-dk)}
body .sws .btn.ghost{background:#fff;color:var(--slate)!important;border-color:var(--slate)}
body .sws .btn.ghost:hover{background:var(--slate);color:#fff!important}
body .sws .btn:focus-visible{outline:3px solid var(--gold);outline-offset:2px}

/* --- comparison table: rules, not boxes --- */
body .sws table.cmp{border-collapse:collapse;font-size:16px;margin:18px 0 22px}
body .sws table.cmp th,body .sws table.cmp td{border:0;border-bottom:1px solid var(--line);padding:14px 16px 14px 0;vertical-align:top}
body .sws table.cmp th{background:transparent;color:var(--mute);font-weight:600;border-bottom:2px solid var(--ink)}
body .sws table.cmp tr:last-child td{border-bottom:0}

/* --- numbered steps with a connector line --- */
body .sws .steps{gap:0}
body .sws .steps div{position:relative;background:transparent;border:0;border-radius:0;padding:22px 24px 10px 0}
body .sws .steps div:before{position:static;display:block;width:36px;height:36px;line-height:36px;background:var(--slate);
  margin-bottom:12px;z-index:1;position:relative}
body .sws .steps div:after{content:"";position:absolute;left:36px;right:0;top:40px;height:2px;background:var(--line)}
body .sws .steps div:last-child:after{display:none}

/* --- proof figures --- */
body .sws .proof div{background:var(--slate);border-radius:10px;padding:22px}
body .sws .proof b{font-size:34px;font-weight:300;letter-spacing:-.02em}

/* --- case blocks --- */
body .sws .case{border:1px solid var(--line);border-radius:10px;padding:28px;box-shadow:0 1px 3px rgba(31,42,51,.05)}
body .sws .case .k{color:var(--moss);font-size:13px;font-weight:600;letter-spacing:0;text-transform:none}

/* --- closing CTA: dark, so the page ends on something --- */
body .sws .cta{background:var(--ink);color:#fff;border-radius:12px;padding:44px 32px;margin:56px 0 24px}
body .sws .cta h2{color:#fff;margin:0 0 10px;font-size:32px}
body .sws .cta p{color:#c9d3da;max-width:640px;margin:0 auto 18px}
body .sws .cta .btn.ghost{background:transparent;color:#fff!important;border-color:#fff}
body .sws .cta .btn.ghost:hover{background:#fff;color:var(--ink)!important}

/* --- pills --- */
body .sws .pill{background:#eef6e6;color:var(--moss);border-radius:20px;font-size:13px;font-weight:600;padding:3px 11px}

@media (max-width:860px){
  body .sws h2{font-size:28px;margin-top:40px}
  body .sws .lead{font-size:19px}
  body .sws .price{font-size:32px}
  body .sws .steps div:after{display:none}
  body .sws .cta{padding:30px 22px}
  body .sws .cta h2{font-size:26px}
}

/* ---- CLS: reserve the logo's box so the header never grows after load ----
   The logo had no width/height and only max-width:170px, so nothing was
   reserved vertically and every page shifted ~0.16 when it decoded. ---- */
a.navbar-brand img{max-width:170px;width:170px;height:50px;object-fit:contain;padding:0}
/* the header's own height, so the nav row cannot resize late */
.header-bottom .navbar{min-height:66px}

/* ---- CLS: pin the desktop nav to a single row ----
   The menu was laying out stacked (~168px tall) during load and snapping to a
   39px row once all stylesheets applied, which dragged <main> up ~97px and was
   the whole of the ~0.16 layout shift. Declaring the row layout and reserving
   the header height here stops the page moving. ---- */
@media (min-width:992px){
  header .navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto;flex-direction:row;flex-wrap:nowrap}
  header .navbar-expand-lg .navbar-nav{flex-direction:row;flex-wrap:nowrap;align-items:center}
  header .header-bottom .navbar{min-height:87px}
  header .header-bottom .navbar-collapse{min-height:39px}
}

/* ---- CLS: fix the desktop header height ----
   Whatever the nav does internally while stylesheets settle, the header box
   itself must not change size, or everything below it moves. 97px = 26px top
   bar + 71px nav row, the header's settled height. ---- */
@media (min-width:992px){
  header{height:97px}
  header .header-bottom .navbar{min-height:0;height:71px}
}
