/*
Theme Name: PSS Estimating
Theme URI: https://prosteelsolution.com
Author: Pro Steel Solutions Ltd
Author URI: https://prosteelsolution.com
Description: Steelwork & construction estimating / takeoff website for Pro Steel Solutions. Includes a 6-step pricing wizard, live price engine, quote database, quote tracking, portfolio, testimonials and auto-setup of all pages on activation.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: Proprietary
Text Domain: pss-est
*/

/* ---------- Tokens ---------- */
:root{
  --navy:#01437C; --navy-2:#0A5596; --ink:#06192C; --orange:#FD6500; --orange-2:#FF8533;
  --steel:#C7D1DB; --steel-2:#E3E9EF; --paper:#F4F7FA; --white:#FFFFFF; --galv:#5B7086;
  --ok:#1D8652; --err:#C0392B;
  /* Brand orange is 2.98:1 on white — fine as a fill or an accent, not behind
     white text or as link text. These are the same hue, darkened to pass 4.5:1. */
  --orange-ink:#C75000;   /* orange text on a light background */
  --orange-btn:#C75000;   /* button fill carrying a white label */
  --bg:var(--paper); --fg:var(--ink); --muted:#4E6276; --card:#FFFFFF; --line:#D5DEE7;
  --r-s:6px; --r-m:14px; --r-l:28px;
  --shadow:0 18px 40px -18px rgba(1,67,124,.35);
  --spring:cubic-bezier(.34,1.56,.64,1);
  --ease:cubic-bezier(.22,.61,.36,1);
  --wrap:1200px;
  --f:'Archivo',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
}
html[data-theme="dark"]{
  --bg:#06192C; --fg:#EAF0F6; --muted:#9FB2C5; --card:#0C2540; --line:#1C3A5C; --paper:#081F36;
}

/* ---------- No italics anywhere (PSS rule) ---------- */
*{font-style:normal!important}
i,em,cite,var,dfn,address,q,blockquote{font-style:normal}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--f);font-size:17px;line-height:1.6;color:var(--fg);background:var(--bg);
  font-variant-numeric:tabular-nums;transition:background .4s var(--ease),color .4s var(--ease)}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy-2)}
html[data-theme="dark"] a{color:var(--orange-2)}
a:hover{color:var(--orange)}
h1,h2,h3,h4{font-family:var(--f);font-stretch:118%;font-weight:800;line-height:1.08;letter-spacing:-.015em;margin:0 0 .5em}
h1{font-size:clamp(2.3rem,5.6vw,4.4rem)}
h2{font-size:clamp(1.8rem,3.6vw,2.9rem)}
h3{font-size:1.3rem;font-stretch:110%}
p{margin:0 0 1em;max-width:68ch}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.skip{position:absolute;left:-999px;top:8px;background:var(--orange-btn);color:#fff;padding:10px 16px;z-index:999;border-radius:var(--r-s)}
.skip:focus{left:8px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
section{padding:96px 0;position:relative}
.lead{font-size:1.2rem;color:var(--muted)}
.muted{color:var(--muted)}

/* ---------- Progress bar ---------- */
#pss-progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--orange),var(--orange-2));z-index:1001}

/* ---------- Buttons: shiny + bouncing ---------- */
.btn{background:var(--orange-btn);--bg-b:var(--orange);position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:10px;
  padding:15px 28px;border-radius:999px;border:0;background:var(--bg-b);color:#fff!important;font:700 1rem var(--f);
  font-stretch:112%;text-decoration:none;cursor:pointer;transition:transform .45s var(--spring),box-shadow .3s var(--ease);
  box-shadow:0 10px 24px -10px rgba(253,101,0,.7)}
.btn::after{content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;
  background:linear-gradient(110deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);transition:left .7s var(--ease)}
.btn:hover{transform:translateY(-3px) scale(1.04)}
.btn:hover::after{left:130%}
.btn:active{transform:scale(.96)}
.btn.ghost{background:transparent;color:var(--fg)!important;box-shadow:inset 0 0 0 2px var(--line)}
.btn.ghost:hover{box-shadow:inset 0 0 0 2px var(--orange)}
.btn.navy{--bg-b:var(--navy);box-shadow:0 10px 24px -10px rgba(1,67,124,.7)}
.btn[disabled]{opacity:.5;pointer-events:none}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:100;background:color-mix(in srgb,var(--bg) 82%,transparent);
  backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid transparent;transition:padding .3s var(--ease),border-color .3s}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:18px;padding-bottom:18px;transition:padding .3s var(--ease)}
.site-header.shrink{border-color:var(--line)}
.site-header.shrink .wrap{padding-top:10px;padding-bottom:10px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--fg)}
.brand img{height:44px;width:auto}
.brand .wm{font-weight:900;font-stretch:125%;font-size:1.15rem;line-height:1}
.brand .wm b{color:var(--orange)} .brand .wm span{color:var(--navy)}
html[data-theme="dark"] .brand .wm span{color:#7FB2E5}
.brand small{display:block;font-weight:600;font-stretch:100%;font-size:.72rem;color:var(--muted);letter-spacing:.02em}
.nav ul{list-style:none;margin:0;padding:0;display:flex;gap:4px}
.nav a{display:block;padding:9px 14px;border-radius:999px;text-decoration:none;color:var(--fg);font-weight:600;font-size:.96rem}
.nav a:hover,.nav .current-menu-item>a{background:var(--steel-2);color:var(--navy)}
html[data-theme="dark"] .nav a:hover,html[data-theme="dark"] .nav .current-menu-item>a{background:var(--card);color:#fff}
.h-actions{display:flex;align-items:center;gap:10px}
.icon-btn{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--fg);display:grid;place-items:center;cursor:pointer;transition:transform .4s var(--spring)}
.icon-btn:hover{transform:rotate(-12deg) scale(1.08)}
.burger{display:none}
@media (max-width:980px){
  .nav{position:fixed;inset:0 0 0 auto;width:min(86vw,360px);background:var(--bg);transform:translateX(105%);transition:transform .5s var(--spring);padding:90px 24px 24px;box-shadow:-20px 0 60px rgba(0,0,0,.25);z-index:120}
  .nav.open{transform:none}
  .nav ul{flex-direction:column}
  .nav a{font-size:1.15rem;padding:14px 16px}
  .burger{display:grid;z-index:130}
  .h-actions .btn{background:var(--orange-btn);display:none}
}

/* ---------- Hero ---------- */
.hero{padding:70px 0 90px;overflow:hidden;background:
  radial-gradient(900px 500px at 85% -10%,rgba(1,67,124,.16),transparent 60%),
  radial-gradient(700px 400px at -10% 110%,rgba(253,101,0,.12),transparent 60%)}
.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}
.hero h1{font-stretch:125%;font-weight:900}
.hero h1 .stroke{display:block;-webkit-text-stroke:2px var(--navy);color:transparent}
html[data-theme="dark"] .hero h1 .stroke{-webkit-text-stroke-color:#7FB2E5}
.hero .lead{margin:18px 0 30px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:14px}
.hero-proof{display:flex;gap:28px;margin-top:38px;flex-wrap:wrap}
.hero-proof div{font-size:.92rem;color:var(--muted)}
.hero-proof strong{display:block;font-size:1.7rem;color:var(--fg);font-stretch:118%}
@media (max-width:980px){.hero-grid{grid-template-columns:1fr}}

/* Live takeoff panel (the signature moment) */
.takeoff{background:var(--ink);color:#DCE6F0;border-radius:var(--r-l);padding:22px;box-shadow:0 40px 80px -30px rgba(6,25,44,.6);position:relative;overflow:hidden}
.takeoff::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:24px 24px;pointer-events:none}
.takeoff-top{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;color:#8FA6BC;position:relative}
.takeoff-top .live{display:inline-flex;align-items:center;gap:8px;color:#fff;font-weight:700}
.takeoff-top .live::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 0 rgba(253,101,0,.7);animation:ping 1.6s infinite}
@keyframes ping{70%{box-shadow:0 0 0 10px rgba(253,101,0,0)}100%{box-shadow:0 0 0 0 rgba(253,101,0,0)}}
.takeoff svg{width:100%;height:auto;margin:10px 0;position:relative}
.takeoff .m{stroke:#3B5873;stroke-width:5;stroke-linecap:round;transition:stroke .4s,stroke-width .4s}
.takeoff .m.on{stroke:var(--orange);stroke-width:6;filter:drop-shadow(0 0 6px rgba(253,101,0,.8))}
.takeoff .m.done{stroke:#7FB2E5}
.takeoff .dim{stroke:#8FA6BC;stroke-width:1;fill:none}
.takeoff .dimt{fill:#8FA6BC;font:600 10px var(--f)}
.sched{width:100%;border-collapse:collapse;font-size:.82rem;position:relative}
.sched th{text-align:left;color:#8FA6BC;font-weight:600;padding:5px 6px;border-bottom:1px solid #1C3A5C}
.sched td{padding:5px 6px;border-bottom:1px solid #12304D}
.sched td:last-child,.sched th:last-child{text-align:right}
.sched tr.new{animation:rowin .6s var(--spring)}
@keyframes rowin{from{opacity:0;transform:translateY(8px) scale(.98)}}
.takeoff-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:12px;padding-top:12px;border-top:1px solid #1C3A5C;position:relative}
.takeoff-total b{font-size:1.8rem;color:#fff;font-stretch:118%}
.takeoff-total span{color:var(--orange-2);font-weight:700}

/* ---------- Marquee ---------- */
.marquee{padding:22px 0;border-block:1px solid var(--line);overflow:hidden;background:var(--card)}
.marquee-track{display:flex;gap:56px;width:max-content;animation:marq 38s linear infinite}
.marquee span{font-weight:700;font-stretch:115%;color:var(--muted);white-space:nowrap;font-size:1.05rem}
.marquee span::before{content:"";display:inline-block;width:8px;height:8px;background:var(--orange);border-radius:2px;margin-right:14px;transform:rotate(45deg) translateY(-2px)}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- Section heading ---------- */
.sh{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:48px}
@media (max-width:860px){.sh{grid-template-columns:1fr}}

/* ---------- Services index (not identical cards) ---------- */
.svc-list{border-top:2px solid var(--fg)}
.svc{display:grid;grid-template-columns:70px 1.2fr 1.6fr 140px;gap:24px;align-items:center;padding:26px 8px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--fg);position:relative;transition:padding .45s var(--spring),background .3s}
.svc:hover{padding-left:22px;background:var(--card)}
.svc .ico{width:54px;height:54px;border-radius:14px;background:var(--steel-2);display:grid;place-items:center;color:var(--navy);transition:transform .5s var(--spring)}
html[data-theme="dark"] .svc .ico{background:#13355A;color:#fff}
.svc:hover .ico{transform:rotate(-8deg) scale(1.12);background:var(--orange-btn);color:#fff}
.svc h3{margin:0}
.svc p{margin:0;color:var(--muted);font-size:.97rem}
.svc .from{text-align:right;font-weight:800;font-stretch:115%}
.svc .from small{display:block;font-weight:500;color:var(--muted);font-size:.78rem;font-stretch:100%}
@media (max-width:860px){.svc{grid-template-columns:54px 1fr;}.svc p{grid-column:2}.svc .from{grid-column:2;text-align:left}}

/* ---------- Process (true sequence → numbered) ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:s;position:relative}
.steps::before{content:"";position:absolute;top:27px;left:28px;right:28px;height:2px;background:repeating-linear-gradient(90deg,var(--steel) 0 10px,transparent 10px 18px)}
.step{padding-right:24px;position:relative}
.step b{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--navy);color:#fff;font-size:1.3rem;font-stretch:120%;margin-bottom:18px;position:relative;box-shadow:0 0 0 8px var(--bg)}
.step:nth-child(4) b{background:var(--orange)}
@media (max-width:860px){.steps{grid-template-columns:1fr 1fr;gap:30px}.steps::before{display:none}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* ---------- Deliverables band ---------- */
.band{background:var(--navy);color:#EAF2FA}
.band h2,.band h3{color:#fff}
.band .muted{color:#B5CBE0}
.deliv{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:rgba(255,255,255,.12);border-radius:var(--r-m);overflow:hidden}
.deliv div{background:var(--navy);padding:28px}
.deliv h3{font-size:1.1rem}
.deliv p{color:#B5CBE0;margin:0;font-size:.96rem}
@media (max-width:860px){.deliv{grid-template-columns:1fr}}

/* ---------- Generic card ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:28px;position:relative;overflow:hidden}
.tilt{transition:transform .5s var(--spring),box-shadow .3s;transform-style:preserve-3d}
.tilt:hover{box-shadow:var(--shadow)}

/* ---------- Pricing plans ---------- */
.bill-toggle{display:inline-flex;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:5px;margin-bottom:34px}
.bill-toggle button{border:0;background:transparent;padding:10px 20px;border-radius:999px;font:700 .95rem var(--f);color:var(--muted);cursor:pointer;transition:all .4s var(--spring)}
.bill-toggle button.on{background:var(--navy);color:#fff;transform:scale(1.04)}
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:stretch}
.plan{display:flex;flex-direction:column}
.plan.feat{background:var(--ink);color:#EAF0F6;border-color:var(--ink);transform:translateY(-12px)}
.plan.feat .muted{color:#9FB2C5}
.plan .badge{position:absolute;top:18px;right:18px;background:var(--orange-btn);color:#fff;font-size:.75rem;font-weight:700;padding:5px 12px;border-radius:999px}
.plan .price{font-size:2.8rem;font-weight:900;font-stretch:120%;line-height:1;margin:14px 0 4px}
.plan .price small{font-size:1rem;font-weight:600;font-stretch:100%}
.plan ul{list-style:none;padding:0;margin:20px 0 26px;flex:1}
.plan li{padding:8px 0 8px 28px;position:relative;border-bottom:1px dashed var(--line)}
.plan.feat li{border-color:#1C3A5C}
.plan li::before{content:"";position:absolute;left:0;top:13px;width:16px;height:9px;border-left:3px solid var(--orange);border-bottom:3px solid var(--orange);transform:rotate(-45deg)}
@media (max-width:900px){.plans{grid-template-columns:1fr}.plan.feat{transform:none}}

/* ---------- Wizard ---------- */
.wiz{background:var(--card);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow);display:grid;grid-template-columns:1.55fr 1fr;overflow:hidden}
.wiz-main{padding:34px}
.wiz-side{background:var(--ink);color:#DCE6F0;padding:34px;position:relative}
.wiz-steps{display:flex;gap:6px;margin-bottom:28px}
.wiz-steps span{flex:1;height:6px;border-radius:6px;background:var(--steel-2);overflow:hidden;position:relative}
html[data-theme="dark"] .wiz-steps span{background:#1C3A5C}
.wiz-steps span::after{content:"";position:absolute;inset:0;width:0;background:var(--orange);transition:width .6s var(--spring)}
.wiz-steps span.done::after{width:100%}
.wiz-count{font-size:.9rem;color:var(--muted);margin-bottom:6px;font-weight:600}
.wiz-pane{display:none;animation:paneIn .55s var(--spring)}
.wiz-pane.on{display:block}
@keyframes paneIn{from{opacity:0;transform:translateX(24px)}}
.opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin:18px 0}
.opt{position:relative}
.opt input{position:absolute;opacity:0}
.opt label{display:block;height:100%;padding:16px;border:2px solid var(--line);border-radius:var(--r-m);cursor:pointer;transition:transform .45s var(--spring),border-color .2s,background .2s}
.opt label strong{display:block;font-stretch:110%;margin-bottom:3px}
.opt label span{font-size:.86rem;color:var(--muted);display:block;line-height:1.4}
.opt label em{display:inline-block;margin-top:8px;font-weight:700;font-size:.82rem;color:var(--navy-2)}
html[data-theme="dark"] .opt label em{color:var(--orange-2)}
.opt label:hover{transform:translateY(-3px)}
.opt input:checked+label{border-color:var(--orange);background:color-mix(in srgb,var(--orange) 8%,var(--card));animation:pop .5s var(--spring)}
.opt input:focus-visible+label{outline:3px solid var(--orange);outline-offset:2px}
@keyframes pop{40%{transform:scale(1.05)}}
.field{margin-bottom:16px}
.field label{display:block;font-weight:700;margin-bottom:6px;font-size:.95rem}
.field input,.field select,.field textarea{width:100%;padding:13px 15px;border:2px solid var(--line);border-radius:var(--r-s);font:500 1rem var(--f);background:var(--bg);color:var(--fg);transition:border-color .2s}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--orange);outline:0}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:600px){.row2{grid-template-columns:1fr}}
.range-row{display:flex;align-items:center;gap:14px}
.range-row input[type=range]{flex:1;accent-color:var(--orange)}
.range-row output{min-width:64px;text-align:center;font-weight:800;font-size:1.3rem;font-stretch:118%;background:var(--steel-2);border-radius:var(--r-s);padding:6px;color:var(--navy)}
html[data-theme="dark"] .range-row output{background:#1C3A5C;color:#fff}
.drop{border:2px dashed var(--steel);border-radius:var(--r-m);padding:28px;text-align:center;cursor:pointer;transition:all .3s var(--spring)}
.drop.over{border-color:var(--orange);background:color-mix(in srgb,var(--orange) 7%,transparent);transform:scale(1.02)}
.drop ul{list-style:none;padding:0;margin:12px 0 0;text-align:left;font-size:.9rem}
.drop li{padding:4px 0;border-bottom:1px solid var(--line)}
.wiz-nav{display:flex;justify-content:space-between;gap:12px;margin-top:22px}
.wiz-side h3{color:#fff}
.sum-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #1C3A5C;font-size:.93rem}
.sum-row span:first-child{color:#8FA6BC}
.sum-row span:last-child{text-align:right;font-weight:600}
.sum-total{margin-top:20px}
.sum-total .big{font-size:3rem;font-weight:900;font-stretch:122%;color:#fff;line-height:1;display:inline-block}
.sum-total .big.bump{animation:bump .55s var(--spring)}
@keyframes bump{40%{transform:scale(1.12);color:var(--orange-2)}}
.sum-total small{display:block;color:#8FA6BC;margin-top:6px}
.sum-eta{margin-top:18px;background:rgba(253,101,0,.12);border:1px solid rgba(253,101,0,.4);border-radius:var(--r-s);padding:12px;font-size:.92rem}
.wiz-done{text-align:center;padding:40px 10px}
.wiz-done .tick{width:84px;height:84px;border-radius:50%;background:var(--ok);display:grid;place-items:center;margin:0 auto 20px;animation:pop .7s var(--spring)}
.wiz-msg{padding:12px 14px;border-radius:var(--r-s);margin-top:12px;font-weight:600}
.wiz-msg.err{background:#FDECEA;color:var(--err)}
@media (max-width:960px){.wiz{grid-template-columns:1fr}.wiz-side{order:-1}}

/* ---------- Calculator widget ---------- */
.calc{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}
.calc .out{font-size:2.4rem;font-weight:900;font-stretch:120%;color:var(--orange)}
@media (max-width:700px){.calc{grid-template-columns:1fr}}

/* ---------- Testimonials ---------- */
.tslider{position:relative;overflow:hidden}
.ttrack{display:flex;transition:transform .8s var(--spring)}
.tslide{min-width:100%;padding:4px}
.tslide blockquote{margin:0;font-size:clamp(1.25rem,2.4vw,1.75rem);font-weight:600;line-height:1.4;font-stretch:105%;max-width:40ch}
.tslide .who{margin-top:22px;color:var(--muted)}
.tslide .who strong{color:var(--fg);display:block}
.tdots{display:flex;gap:8px;margin-top:26px}
.tdots button{width:12px;height:12px;border-radius:999px;border:0;background:var(--steel);cursor:pointer;transition:width .4s var(--spring),background .3s}
.tdots button.on{width:34px;background:var(--orange)}
.stars{color:var(--orange);letter-spacing:3px;margin-bottom:14px}

/* ---------- FAQ ---------- */
.faq details{border-bottom:1px solid var(--line);padding:6px 0}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:18px;padding:18px 0;font-weight:700;font-size:1.08rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.6rem;line-height:1;color:var(--orange);transition:transform .45s var(--spring)}
.faq details[open] summary::after{transform:rotate(135deg)}
.faq details[open] .a{animation:paneIn .5s var(--spring)}
.faq .a{padding:0 0 18px;color:var(--muted)}

/* ---------- Portfolio ---------- */
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}
.filters button{border:1px solid var(--line);background:var(--card);color:var(--fg);padding:9px 18px;border-radius:999px;font:600 .92rem var(--f);cursor:pointer;transition:all .4s var(--spring)}
.filters button.on{background:var(--orange);border-color:var(--orange);color:#fff;transform:scale(1.06)}
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.pitem{transition:transform .5s var(--spring),opacity .35s}
.pitem.hide{display:none}
.pitem .thumb{aspect-ratio:4/3;border-radius:var(--r-m);background:linear-gradient(135deg,var(--navy),var(--ink));margin-bottom:14px;overflow:hidden;position:relative}
.pitem .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.pitem:hover .thumb img{transform:scale(1.07)}
.pitem .thumb svg{position:absolute;inset:0;width:100%;height:100%}
.pitem .meta{font-size:.88rem;color:var(--muted)}
.pitem .meta strong{color:var(--orange)}
@media (max-width:900px){.pgrid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.pgrid{grid-template-columns:1fr}}

/* ---------- Compare table ---------- */
.ctable{width:100%;border-collapse:collapse;background:var(--card);border-radius:var(--r-m);overflow:hidden}
.ctable th,.ctable td{padding:16px 18px;border-bottom:1px solid var(--line);text-align:left}
.ctable th{background:var(--steel-2);color:var(--navy)}
html[data-theme="dark"] .ctable th{background:#13355A;color:#fff}
.ctable td.y{color:var(--ok);font-weight:700}
.ctable td.n{color:var(--muted)}
.tbl-wrap{overflow-x:auto}

/* ---------- CTA band ---------- */
.cta-band{background:linear-gradient(120deg,var(--orange),#E25500);color:#fff;border-radius:var(--r-l);padding:56px;display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;position:relative;overflow:hidden}
.cta-band h2{color:#fff;margin:0}
.cta-band .btn{background:var(--orange-btn);--bg-b:var(--ink)}
.cta-band::after{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;border:30px solid rgba(255,255,255,.12);border-radius:50%}

/* ---------- Page header + breadcrumbs ---------- */
.page-hero{padding:70px 0 40px;background:linear-gradient(180deg,var(--card),var(--bg))}
.crumbs{font-size:.88rem;color:var(--muted);margin-bottom:12px}
.crumbs a{color:var(--muted)}
.entry{max-width:780px}
.entry h2{margin-top:1.4em}
.entry img{border-radius:var(--r-m)}
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media (max-width:900px){.post-grid{grid-template-columns:1fr}}
.post-card a{text-decoration:none;color:var(--fg)}
.post-card .meta{font-size:.85rem;color:var(--muted)}

/* ---------- Track + contact ---------- */
.status-pill{display:inline-block;padding:6px 14px;border-radius:999px;font-weight:700;font-size:.85rem;background:var(--steel-2);color:var(--navy)}
.status-pill.s-received{background:#E8F0FB;color:var(--navy)}
.status-pill.s-in_progress{background:#FFF1E6;color:#B34700}
.status-pill.s-completed{background:#E6F5EC;color:var(--ok)}
.status-pill.s-quoted{background:#F0E9FB;color:#5B2BA0}
.status-track{display:flex;gap:6px;margin:20px 0}
.status-track span{flex:1;height:8px;border-radius:8px;background:var(--steel-2)}
.status-track span.on{background:var(--orange)}
.contact-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:40px}
.map{border-radius:var(--r-m);overflow:hidden;border:1px solid var(--line);aspect-ratio:16/10}
.map iframe{width:100%;height:100%;border:0}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink);color:#B5C6D7;padding:80px 0 30px;margin-top:40px}
.site-footer a{color:#DCE6F0;text-decoration:none}
.site-footer a:hover{color:var(--orange)}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:36px}
.site-footer h4{color:#fff;font-size:1rem;margin-bottom:14px}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{padding:5px 0}
.fbottom{border-top:1px solid #1C3A5C;margin-top:50px;padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:.88rem}
.news{display:flex;gap:8px;margin-top:10px}
.news input{flex:1;padding:12px;border-radius:999px;border:1px solid #1C3A5C;background:#0C2540;color:#fff;font:500 .95rem var(--f)}
@media (max-width:860px){.fgrid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.fgrid{grid-template-columns:1fr}}

/* ---------- Floating bits ---------- */
.fab{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:10px;z-index:90}
.fab a,.fab button{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;color:#fff;border:0;cursor:pointer;box-shadow:0 12px 26px -10px rgba(0,0,0,.45);transition:transform .45s var(--spring)}
.fab a:hover,.fab button:hover{transform:scale(1.12) translateY(-3px)}
.fab .wa{background:#25D366}
.fab .ph{background:var(--navy)}
.fab .top{background:var(--orange);opacity:0;pointer-events:none;transition:opacity .3s,transform .45s var(--spring)}
.fab .top.show{opacity:1;pointer-events:auto}
.fab .wa{animation:nudge 6s 3s infinite}
@keyframes nudge{0%,90%,100%{transform:none}93%{transform:translateY(-8px)}96%{transform:translateY(0)}98%{transform:translateY(-3px)}}
.cookie{position:fixed;left:20px;bottom:20px;max-width:380px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:20px;box-shadow:var(--shadow);z-index:95;font-size:.92rem;transform:translateY(160%);transition:transform .7s var(--spring)}
.cookie.show{transform:none}
.cookie .btn{background:var(--orange-btn);padding:10px 20px;font-size:.9rem}

/* ---------- Reveal (one orchestrated entrance per section) ---------- */
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .9s var(--spring)}
.rv.in{opacity:1;transform:none}
.count{font-variant-numeric:tabular-nums}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .rv{opacity:1;transform:none}
}
@media print{.site-header,.site-footer,.fab,.cookie,#pss-progress,.wiz-nav{display:none!important}
  .wiz{box-shadow:none;border:0;display:block}.wiz-side{background:#fff;color:#000}.sum-total .big{color:#000}
  .wiz-main,.presets,.suggest,.side-actions,.vat-toggle,.resume,.track-add,.track-accept,.filters,.marquee{display:none!important}
  .sum-row span:first-child{color:#444}.sum-eta{border-color:#999}}


/* ---------- Brand marks ---------- */
.brand .pss-mark{height:42px;width:auto;display:block}
.site-header.shrink .brand .pss-mark{height:36px;transition:height .3s var(--ease)}
html[data-theme="dark"] .brand .pss-mark{background:#fff;padding:7px 11px;border-radius:12px;height:30px;box-shadow:0 6px 18px -8px rgba(0,0,0,.6)}
.brand .custom-logo{height:46px;width:auto}
html[data-theme="dark"] .brand .custom-logo{background:#fff;padding:7px 11px;border-radius:12px;height:34px}
.logo-card{display:inline-block;background:#fff;border-radius:16px;padding:16px 20px;box-shadow:0 18px 40px -22px rgba(0,0,0,.7)}
.logo-card img{height:86px;width:auto}
@media (max-width:520px){.brand .pss-mark{height:34px}.logo-card img{height:70px}}


/* ---------- Scope picker ---------- */
.scope-groups{max-height:52vh;overflow-y:auto;padding-right:6px;margin:4px -6px 0 0}
.scope-group{margin-bottom:20px}
.scope-group h3{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:.95rem;font-stretch:112%;
  color:var(--navy);border-bottom:2px solid var(--line);padding-bottom:7px;margin:0 0 12px}
html[data-theme="dark"] .scope-group h3{color:#7FB2E5}
.pick-all{border:0;background:none;color:var(--orange);font:700 .82rem var(--f);cursor:pointer;padding:2px 4px;border-radius:5px}
.pick-all:hover{text-decoration:underline}
.scope-group .opts{margin:0;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.scope-group .opt label{padding:13px 14px}
.opt-ico{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--steel-2);
  color:var(--navy);margin-bottom:8px;transition:background .3s,color .3s}
html[data-theme="dark"] .opt-ico{background:#13355A;color:#fff}
.opt input:checked+label .opt-ico{background:var(--orange-btn);color:#fff}
.no-match{color:var(--muted);padding:18px 2px}
#scope-search{background:var(--card)}
.group-head{display:flex;align-items:baseline;gap:12px;margin:48px 0 14px;font-size:1.1rem;font-stretch:112%;color:var(--navy)}
.group-head:first-child{margin-top:0}
.group-head span{font-size:.82rem;font-weight:600;color:var(--muted);font-stretch:100%}
html[data-theme="dark"] .group-head{color:#7FB2E5}


/* ---------- Presets, suggestions, basis, side actions ---------- */
.presets{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 18px}
.preset{border:2px solid var(--line);background:var(--card);color:var(--fg);border-radius:var(--r-m);
  padding:9px 14px;cursor:pointer;text-align:left;font:600 .88rem var(--f);transition:transform .4s var(--spring),border-color .2s}
.preset span{display:block;font-weight:500;font-size:.78rem;color:var(--muted)}
.preset:hover{transform:translateY(-2px);border-color:var(--orange)}
.preset.on{border-color:var(--orange);background:color-mix(in srgb,var(--orange) 10%,var(--card))}
.preset.clear{align-self:center;border-style:dashed;color:var(--muted)}
.suggest{margin-top:16px;padding:16px;border-radius:var(--r-m);background:color-mix(in srgb,var(--navy) 7%,transparent);border:1px solid var(--line)}
.suggest p{margin:0 0 10px;font-size:.92rem}
.suggest-list{display:flex;flex-wrap:wrap;gap:8px}
.suggest-chip{border:1px solid var(--navy);background:transparent;color:var(--navy);border-radius:999px;
  padding:7px 14px;font:600 .85rem var(--f);cursor:pointer;transition:transform .4s var(--spring),background .2s}
html[data-theme="dark"] .suggest-chip{color:#9FC6EA;border-color:#9FC6EA}
.suggest-chip:hover{background:var(--navy);color:#fff;transform:translateY(-2px)}
.basis-toggle{display:inline-flex;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:4px;margin-bottom:18px}
.basis-toggle button{border:0;background:transparent;padding:9px 18px;border-radius:999px;font:700 .9rem var(--f);
  color:var(--muted);cursor:pointer;transition:all .4s var(--spring)}
.basis-toggle button.on{background:var(--navy);color:#fff}
.deadline-warn{margin:10px 0 0;padding:11px 13px;border-radius:var(--r-s);font-size:.9rem}
.deadline-warn.bad{background:#FDECEA;color:var(--err)}
.deadline-warn.ok{background:#E6F5EC;color:var(--ok)}
.side-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.side-top h3{margin:0}
.vat-toggle{border:1px solid #1C3A5C;background:transparent;color:#8FA6BC;border-radius:999px;
  padding:5px 12px;font:600 .76rem var(--f);cursor:pointer}
.vat-toggle:hover{border-color:var(--orange);color:#fff}
.side-actions{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}
.mini{border:1px solid var(--line);background:transparent;color:inherit;border-radius:999px;
  padding:6px 13px;font:600 .8rem var(--f);cursor:pointer;transition:border-color .2s}
.wiz-side .mini{border-color:#1C3A5C;color:#B5C6D7}
.mini:hover{border-color:var(--orange);color:var(--orange)}
.resume{margin-top:14px;font-size:.84rem;color:#8FA6BC}
.resume button{border:0;background:none;color:var(--orange-2);font:700 .84rem var(--f);cursor:pointer;padding:0;text-decoration:underline}

/* ---------- Tracker portal ---------- */
.track-files,.track-accept,.track-add,.track-history{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}
.track-files h4,.track-accept h4,.track-add h4{margin:0 0 10px;font-size:1rem}
.track-files ul,.track-history ul{list-style:none;padding:0;margin:0;font-size:.9rem}
.track-files li,.track-history li{padding:7px 0;border-bottom:1px solid var(--line);color:var(--muted)}
.track-history summary{cursor:pointer;font-weight:700;font-size:.95rem}
#pss-drop2{padding:20px}
#pss-filelist2{list-style:none;padding:0;margin:10px 0 0;font-size:.88rem;text-align:left}

/* ---------- Scope links ---------- */
.scope-links{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:.9rem}
.scope-links a{color:var(--muted);text-decoration:none}
.scope-links a:hover{color:var(--orange)}


/* ---------- Breakdown, confidence, checklist ---------- */
.breakdown{margin:18px 0 0;border-top:1px solid #1C3A5C;padding-top:14px}
.breakdown summary{cursor:pointer;font-weight:700;font-size:.86rem;color:#B5C6D7;list-style:none}
.breakdown summary::-webkit-details-marker{display:none}
.breakdown summary::before{content:"▸ ";transition:transform .2s}
.breakdown[open] summary::before{content:"▾ "}
.bd-rows{margin-top:10px}
.bd-rows .sum-row{font-size:.86rem;border-color:#15304E}
.confidence{margin-top:18px;padding-top:14px;border-top:1px solid #1C3A5C}
.conf-top{display:flex;justify-content:space-between;align-items:baseline;font-size:.82rem;color:#8FA6BC}
.conf-top strong{font-size:1.05rem;color:#fff}
.conf-bar{height:6px;border-radius:999px;background:#15304E;margin:9px 0;overflow:hidden}
.conf-bar i{display:block;height:100%;border-radius:999px;background:var(--ok);transition:width .5s var(--ease),background .3s}
.confidence[data-level="medium"] .conf-bar i{background:#E0A32E}
.confidence[data-level="low"] .conf-bar i{background:var(--err)}
.conf-why{list-style:none;padding:0;margin:8px 0 0;font-size:.78rem;color:#8FA6BC}
.conf-why li{padding:2px 0}
.conf-why li::before{content:"— "}
.needs{margin-top:22px;padding:18px;border-radius:var(--r-m);background:color-mix(in srgb,var(--navy) 7%,transparent);border:1px solid var(--line)}
.needs p{margin:0 0 8px;font-size:.92rem}
.needs ul{margin:0;padding-left:20px;font-size:.92rem;color:var(--muted)}
.needs li{padding:3px 0}
.sendme{display:flex;gap:8px;margin-top:12px}
.sendme input{flex:1;padding:10px 12px;font-size:.9rem}
.sendme .btn{background:var(--orange-btn);padding:10px 18px}

/* ---------- Thank-you next steps ---------- */
.nextsteps{text-align:left;max-width:560px;margin:28px auto 0;padding:22px;border-radius:var(--r-m);background:var(--bg);border:1px solid var(--line)}
.nextsteps h3{margin:0 0 10px;font-size:1.05rem}
.nextsteps ol{margin:0;padding-left:20px;font-size:.93rem;color:var(--muted)}
.nextsteps li{padding:4px 0}
.excl{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.excl h4{margin:0 0 8px;font-size:.92rem}
.excl ul{margin:0;padding-left:20px;font-size:.86rem;color:var(--muted)}

/* ---------- Trust bar, open state, ticker ---------- */
.trustbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;
  padding:24px;border-radius:var(--r-m);background:var(--card);border:1px solid var(--line)}
.trustbar strong{display:block;font-size:.96rem;margin-bottom:4px}
.trustbar span{font-size:.85rem;color:var(--muted)}
.openstate{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;font-weight:600}
.openstate i{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 rgba(30,138,85,.5);animation:pulse 2.4s infinite}
.openstate.is-shut i{background:var(--galv);animation:none}
@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(30,138,85,0)}100%{box-shadow:0 0 0 0 rgba(30,138,85,0)}}
.ticker{display:flex;gap:10px;align-items:flex-start;font-size:.84rem;color:var(--muted)}
.ticker .dot{width:7px;height:7px;border-radius:50%;background:var(--orange);margin-top:7px;flex:none}
.ticker ul{list-style:none;padding:0;margin:0}
.ticker li{padding:3px 0}

/* ---------- Sticky mobile CTA ---------- */
.stickycta{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:55;
  display:none;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px 10px 18px;
  border-radius:999px;background:var(--ink);color:#fff;box-shadow:0 16px 40px -16px rgba(0,0,0,.7);
  transform:translateY(130%);transition:transform .45s var(--spring)}
.stickycta.show{transform:translateY(0)}
.stickycta span{display:flex;flex-direction:column;line-height:1.2}
.stickycta small{font-size:.74rem;color:#9FB2C5}
.stickycta .btn{background:var(--orange-btn);padding:10px 18px;font-size:.88rem}
@media (max-width:820px){.stickycta{display:flex}}

/* ---------- Feedback stars ---------- */
.stars-pick{display:flex;gap:4px;margin-bottom:14px}
.stars-pick button{border:0;background:none;font-size:1.7rem;line-height:1;color:var(--line);cursor:pointer;padding:0 2px;transition:color .2s,transform .3s var(--spring)}
.stars-pick button.on{color:#E0A32E}
.stars-pick button:hover{transform:scale(1.15)}

/* ---------- Table of contents ---------- */
.toc{margin:0 0 32px;padding:18px 22px;border-radius:var(--r-m);background:var(--card);border:1px solid var(--line)}
.toc p{margin:0 0 8px;font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.toc ol{margin:0;padding-left:20px;font-size:.93rem}
.toc li{padding:3px 0}


/* ---------- Drawing-set analyser ---------- */
.analyser{margin:0 0 24px}
.an-drop{padding:26px 20px}
.an-drop.over{border-color:var(--orange);background:color-mix(in srgb,var(--orange) 8%,transparent)}
.an-busy{display:flex;align-items:center;gap:12px;margin-top:14px;font-size:.88rem;color:var(--muted)}
.an-bar{flex:1;height:6px;border-radius:999px;background:var(--line);overflow:hidden}
.an-bar i{display:block;height:100%;width:0;border-radius:999px;background:var(--orange);transition:width .25s var(--ease)}
.an-status{flex:none;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.an-result{margin-top:16px;padding:20px;border-radius:var(--r-m);background:var(--card);border:1px solid var(--line)}
.an-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.an-head strong{font-size:.98rem}
.an-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:12px}
.an-stats div{background:var(--bg);border-radius:var(--r-s);padding:12px 10px;text-align:center}
.an-stats b{display:block;font-size:1.5rem;line-height:1.1;color:var(--navy)}
html[data-theme="dark"] .an-stats b{color:#7FB2E5}
.an-stats span{font-size:.74rem;color:var(--muted)}
.an-scopes{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.an-scopes p{margin:0 0 10px;font-size:.9rem}
.an-scopes .mini{margin-top:10px}
.an-warn{list-style:none;padding:0;margin:14px 0 0;font-size:.85rem;color:var(--err)}
.an-warn li{padding:5px 0 5px 18px;position:relative}
.an-warn li::before{content:"!";position:absolute;left:0;font-weight:800}


.an-disc{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.an-disc span{background:var(--bg);border-radius:999px;padding:5px 13px;font-size:.8rem;color:var(--muted)}
.an-disc b{color:var(--fg)}
.an-reg{margin-top:16px}
.an-reg summary{cursor:pointer;font-weight:700;font-size:.88rem}
.an-reg .ctable{font-size:.82rem}
.an-reg code{font-size:.78rem}
.an-reg tr.superseded{opacity:.5;text-decoration:line-through}
.an-reg tr.superseded em{text-decoration:none;font-size:.72rem;color:var(--err)}


/* ---------- Accounts ---------- */
.auth-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;align-items:start}
.acct-link{font-weight:600;font-size:.9rem;color:var(--fg);text-decoration:none;opacity:.8;margin-right:4px}
.acct-link:hover{opacity:1;color:var(--orange)}
.acct-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap;
  padding-bottom:20px;margin-bottom:24px;border-bottom:1px solid var(--line)}
.tag{display:inline-block;background:var(--navy);color:#fff;border-radius:999px;padding:2px 10px;font-size:.72rem;font-weight:700}
.pw-meter{height:5px;border-radius:999px;background:var(--line);margin-top:9px;overflow:hidden}
.pw-meter i{display:block;height:100%;width:0;border-radius:999px;background:var(--err);transition:width .3s var(--ease),background .3s}
@media (max-width:820px){.acct-link{display:none}}

/* ---------- Print letterhead ---------- */
@media print{
  body::before{content:"";display:block;height:64px;margin:0 0 18px;
    background:url(assets/img/pss-logo.png) left center/auto 64px no-repeat}
  body{background:#fff;color:#000;font-size:11pt}
  .wiz{display:block}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:9pt;color:#555}
}

/* WP core alignment */
.alignwide{max-width:1100px}.alignfull{width:100%}
.wp-block-image{margin:1.5em 0}

/* ---------- Contrast corrections (measured, not assumed) ---------- */
a{color:var(--orange-ink)}
a:hover{color:var(--orange)}
.btn{background:var(--orange-btn)}
.btn:hover{background:#A84300}
.wiz-side a,.site-footer a:hover,.sum-total .big,.takeoff .live,
html[data-theme="dark"] a{color:var(--orange)}
.resume button{color:var(--orange)}
.svc .from,.opt em{color:var(--orange-ink)}
html[data-theme="dark"] .svc .from,html[data-theme="dark"] .opt em{color:var(--orange)}
.pick-all,.suggest-chip:hover,.mini:hover{color:var(--orange-ink)}
html[data-theme="dark"] .pick-all{color:var(--orange)}

/* ---------- Language switcher ---------- */
.langsw{position:relative}
.langsw-btn{border:1px solid var(--line);background:transparent;color:inherit;border-radius:999px;
  padding:7px 13px;font:700 .8rem var(--f);cursor:pointer;letter-spacing:.04em}
.langsw-btn:hover{border-color:var(--orange);color:var(--orange-ink)}
.langsw-list{position:absolute;top:calc(100% + 8px);right:0;z-index:70;margin:0;padding:6px;
  list-style:none;min-width:190px;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r-m);box-shadow:var(--shadow)}
.langsw-list a{display:block;padding:9px 12px;border-radius:var(--r-s);font-size:.9rem;
  color:inherit;text-decoration:none}
.langsw-list a:hover{background:var(--bg)}
.langsw-list a.on{font-weight:700;color:var(--orange-ink)}
html[data-theme="dark"] .langsw-list a.on{color:var(--orange)}
@media (max-width:820px){.langsw-list{right:auto;left:0}}
