:root{--orange:#EE7305;--carbon:#0A0A0A;--carbon-2:#141414;--carbon-3:#1E1E1E;--steel:#6E6E6E;--light-grey:#C8C8C8;--paper:#FFFFFF;--stone:#F3F3F3;--stone-2:#E6E6E6;--line:#E0E0E0;--ink:#0A0A0A;--mute:#6E6E6E;--ok:#1F8A4C;--warn:#B86A00;}
/* Perimeter One — finished-site concept, in P1's own brand.
   Black and white with Safety Orange accents. Arial Bold headings. Square corners, solid colour, no gradients.
   Text on orange is black. Tokens come from brand.py (injected as :root vars). */
:root {
  --f: Arial, 'Helvetica Neue', Helvetica, sans-serif;
  --w: 1320px;
  --g: 40px;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: var(--f); color: var(--ink); background: var(--paper); font-size: 16px; line-height: 1.55; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
img, svg { display: block; }
.wrap { max-width: var(--w); margin: 0 auto; padding: 0 var(--g); }
.d { font-family: var(--f); font-weight: 700; text-transform: uppercase; letter-spacing: -.015em; line-height: .98; }
.eyebrow { font-weight: 700; letter-spacing: .24em; text-transform: uppercase; font-size: 12px; color: var(--steel); display: flex; align-items: center; gap: 10px; }
.eyebrow::before { content: ""; width: 26px; height: 2px; background: var(--orange); }
.dark .eyebrow, .eyebrow.lt { color: var(--light-grey); }
.est .r .eyebrow { color: var(--steel); }
.mute { color: var(--mute); }
.o { color: var(--orange); }

/* ---------- buttons (black text on orange, per brand) ---------- */
.btn { white-space: nowrap; display: inline-flex; align-items: center; gap: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: 14px; padding: 17px 26px; background: var(--orange); color: var(--carbon); }
.btn::after { content: "→"; letter-spacing: 0; }
.btn.dark { background: var(--carbon); color: #fff; }
.btn.line { background: transparent; color: inherit; box-shadow: inset 0 0 0 2px currentColor; }
.btn.sm { padding: 11px 16px; font-size: 12px; }

/* ---------- header ---------- */
.util { background: var(--carbon); color: var(--light-grey); font-size: 13px; border-bottom: 1px solid #222; }
.util .wrap { display: flex; justify-content: space-between; height: 38px; align-items: center; }
.util b { color: #fff; }
.util .sep { display: inline-block; width: 4px; height: 4px; background: var(--orange); margin: 0 14px 2px; }
.mast { background: var(--carbon); display: flow-root; }
.mast .wrap { display: grid; grid-template-columns: 200px 1fr auto; gap: 40px; align-items: center; height: 96px; }
.search { display: flex; height: 50px; background: #fff; }
.search span { flex: 1; display: flex; align-items: center; padding: 0 20px; color: #8a8a8a; font-size: 15px; }
.search i { width: 64px; background: var(--orange); display: grid; place-items: center; }
.mast-acts { display: flex; gap: 26px; color: #fff; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; font-size: 13px; }
.mast-acts a { display: flex; align-items: center; gap: 10px; }
.count { background: var(--orange); color: var(--carbon); font-size: 12px; padding: 2px 7px; font-weight: 700; letter-spacing: 0; }
.cats { background: var(--carbon); border-top: 1px solid #222; }
.cats .wrap { display: flex; height: 50px; align-items: stretch; }
.cats a { display: flex; align-items: center; padding: 0 13px; white-space: nowrap; color: #d9d9d9; font-weight: 700; font-size: 12.5px; letter-spacing: .06em; text-transform: uppercase; border-bottom: 3px solid transparent; }
.cats a:first-child { padding-left: 0; }
.cats a.on { color: #fff; border-color: var(--orange); }
.cats a.hot { margin-left: auto; background: var(--orange); color: var(--carbon); padding: 0 20px; }

/* ---------- hero ---------- */
.hero { position: relative; background: var(--carbon); color: #fff; overflow: hidden; min-height: 640px; }
.hero .ph { position: absolute; top: 0; right: 0; bottom: 0; width: 54%; clip-path: polygon(14% 0, 100% 0, 100% 100%, 0 100%); }
.hero .ph img { width: 100%; height: 100%; object-fit: cover; }
.hero .slash { position: absolute; top: 0; bottom: 0; right: 54%; width: 120px; margin-right: -126px; background: var(--orange); clip-path: polygon(calc(100% - 12px) 0, 100% 0, 12px 100%, 0 100%); z-index: 1; }
.hero .wrap { position: relative; z-index: 2; padding-top: 92px; padding-bottom: 100px; }
.hero h1 { font-size: 78px; margin: 22px 0 24px; max-width: 640px; }
.hero h1 em { font-style: normal; color: var(--orange); }
.hero p.lede { font-size: 19px; color: var(--light-grey); max-width: 500px; margin-bottom: 36px; }
.hero .ctas { display: flex; gap: 14px; }
.hero .btn.line { color: #fff; }
.hero .tags { display: flex; gap: 0; margin-top: 44px; font-weight: 700; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: #fff; }
.hero .tags span + span::before { content: "|"; color: var(--orange); margin: 0 14px; }
.quote-chip { position: absolute; right: var(--g); bottom: 48px; z-index: 3; width: 320px; background: #fff; color: var(--ink); padding: 22px 24px; border-top: 5px solid var(--orange); }
.quote-chip .lab { font-weight: 700; letter-spacing: .14em; text-transform: uppercase; font-size: 11px; color: var(--steel); }
.quote-chip .big { font-weight: 700; font-size: 40px; line-height: 1; margin: 8px 0 4px; letter-spacing: -.02em; }
.quote-chip .big small { font-size: 15px; color: var(--steel); font-weight: 700; letter-spacing: 0; }
.quote-chip ul { list-style: none; margin-top: 14px; border-top: 1px solid var(--line); padding-top: 12px; font-size: 14px; }
.quote-chip li { display: flex; justify-content: space-between; padding: 3px 0; }

/* ---------- trust bar (orange: black text) ---------- */
.trust { background: var(--orange); color: var(--carbon); }
.trust .wrap { display: grid; grid-template-columns: repeat(4, 1fr); }
.trust div { padding: 22px 0 22px 22px; border-left: 1px solid rgba(10,10,10,.25); font-weight: 700; font-size: 15px; letter-spacing: .06em; text-transform: uppercase; }
.trust div:first-child { border: 0; padding-left: 0; }
.trust small { display: block; font-weight: 400; letter-spacing: 0; text-transform: none; font-size: 14px; }

/* ---------- sections ---------- */
section.s { padding: 100px 0; }
section.s.stone { background: var(--stone); }
section.s.dark { background: var(--carbon); color: #fff; }
.s-head { display: flex; justify-content: space-between; align-items: end; margin-bottom: 44px; gap: 40px; }
.s-head h2 { font-size: 48px; margin-top: 14px; }
.s-head p { max-width: 420px; color: var(--mute); }
.dark .s-head p { color: var(--light-grey); }

/* category tiles: full photo, black label block */
.bento { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 250px; gap: 12px; }
.tile { position: relative; overflow: hidden; background: var(--carbon); color: #fff; }
.tile > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tile .lab { position: absolute; left: 0; bottom: 0; background: var(--carbon); padding: 14px 18px 15px; max-width: 92%; border-left: 5px solid var(--orange); }
.tile .lab .n { display: block; font-weight: 700; letter-spacing: .14em; font-size: 11px; color: var(--orange); text-transform: uppercase; margin-bottom: 5px; }
.tile .lab h3 { font-weight: 700; font-size: 18px; text-transform: uppercase; line-height: 1.05; letter-spacing: -.01em; }
.tile.big { grid-column: span 2; grid-row: span 2; }
.tile.big .lab { padding: 24px 28px 26px; }
.tile.big .lab h3 { font-size: 40px; }
.tile.big .lab p { color: var(--light-grey); margin-top: 8px; max-width: 360px; font-size: 15px; }
.tile.big .lab .n { font-size: 12px; }

/* product cards */
.grid { display: grid; gap: 18px; }
.g4 { grid-template-columns: repeat(4, 1fr); }
.g3 { grid-template-columns: repeat(3, 1fr); }
.card { background: #fff; border: 1px solid var(--line); display: flex; flex-direction: column; }
.card .pic { position: relative; aspect-ratio: 4/3; background: var(--stone); overflow: hidden; }
.card .pic img { width: 100%; height: 100%; object-fit: cover; }
.badge { position: absolute; top: 12px; left: 12px; background: var(--carbon); color: #fff; font-weight: 700; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; padding: 5px 9px; }
.badge.o { background: var(--orange); color: var(--carbon); }
.card .body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.sku { font-size: 11px; letter-spacing: .12em; color: var(--steel); text-transform: uppercase; }
.card h4 { font-weight: 700; font-size: 16.5px; line-height: 1.2; text-transform: uppercase; letter-spacing: -.005em; }
.card .spec { font-size: 14px; color: var(--mute); }
.prices { display: flex; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--line); }
.prices div { flex: 1; }
.prices div + div { border-left: 1px solid var(--line); padding-left: 14px; }
.prices small { display: block; font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--steel); font-weight: 700; }
.prices b { font-size: 21px; font-weight: 700; letter-spacing: -.02em; }
.card .row { display: flex; justify-content: space-between; align-items: center; margin-top: 14px; }
.stock { font-size: 13px; font-weight: 700; color: var(--ok); display: flex; align-items: center; gap: 7px; }
.stock::before { content: ""; width: 8px; height: 8px; background: currentColor; }
.add { background: var(--carbon); color: #fff; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: 11.5px; padding: 10px 13px; }

/* estimator band */
.est { display: grid; grid-template-columns: 1.05fr 1fr; background: var(--carbon-2); }
.est .l { padding: 56px; }
.est .r { padding: 56px; background: #fff; color: var(--ink); }
.est h2 { font-size: 50px; margin: 16px 0 18px; }
.field { margin-top: 26px; }
.field label { font-weight: 700; letter-spacing: .14em; text-transform: uppercase; font-size: 12px; color: var(--light-grey); display: flex; justify-content: space-between; }
.field label b { color: #fff; font-size: 20px; letter-spacing: 0; }
.slider { height: 6px; background: #333; margin-top: 16px; position: relative; }
.slider i { position: absolute; left: 0; top: 0; bottom: 0; width: 46%; background: var(--orange); }
.slider i::after { content: ""; position: absolute; right: -9px; top: -8px; width: 18px; height: 22px; background: #fff; }
.seg { display: flex; margin-top: 12px; border: 1px solid #3a3a3a; }
.seg span { flex: 1; text-align: center; padding: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: 12.5px; color: var(--light-grey); }
.seg span.on { background: var(--orange); color: var(--carbon); }
.lines { list-style: none; margin: 18px 0; }
.lines li { display: flex; justify-content: space-between; padding: 13px 0; border-bottom: 1px solid var(--line); font-size: 15px; }
.total { display: flex; justify-content: space-between; align-items: end; margin: 22px 0 26px; }
.total .d { font-size: 50px; }
.total small { font-size: 14px; color: var(--mute); display: block; }

/* three pillars */
.pillars { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--line); }
.pillar { border-left: 1px solid var(--line); background: #fff; }
.pillar:first-child { border-left: 0; }
.pillar .ph { height: 230px; overflow: hidden; }
.pillar .ph img { width: 100%; height: 100%; object-fit: cover; }
.pillar .in { padding: 30px 32px 32px; }
.pillar .num { font-weight: 700; font-size: 12px; letter-spacing: .22em; color: var(--orange); }
.pillar h3 { font-weight: 700; font-size: 28px; text-transform: uppercase; margin: 10px 0 16px; line-height: 1; letter-spacing: -.01em; }
.pillar ul { list-style: none; font-size: 15px; }
.pillar li { padding: 8px 0; border-top: 1px solid var(--line); display: flex; justify-content: space-between; }

/* sectors + steps */
.sectors { display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid #2a2a2a; }
.sector { padding: 30px 24px 34px 0; border-right: 1px solid #2a2a2a; margin-right: 24px; }
.sector:last-child { border: 0; }
.sector b { font-weight: 700; font-size: 20px; text-transform: uppercase; display: block; margin: 8px 0; }
.sector span { color: var(--light-grey); font-size: 15px; }
.sector i { font-style: normal; color: var(--orange); font-weight: 700; letter-spacing: .14em; font-size: 12px; }
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.step { background: #fff; padding: 34px; border-top: 5px solid var(--carbon); }
.step:nth-child(2) { border-color: var(--orange); }
.step .d { font-size: 64px; color: var(--stone-2); }
.step h3 { font-weight: 700; text-transform: uppercase; font-size: 22px; margin: 6px 0 8px; }
.step p { color: var(--mute); }
.uses { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; }
.uses div { height: 86px; background: #fff; border: 1px solid var(--line); display: grid; place-items: center; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; font-size: 12px; text-align: center; padding: 8px; border-top: 3px solid var(--orange); }

/* orange call band: black text */
.cta { background: var(--orange); color: var(--carbon); }
.cta .wrap { display: flex; justify-content: space-between; align-items: center; padding-top: 68px; padding-bottom: 68px; gap: 40px; }
.cta h2 { font-size: 52px; max-width: 760px; }
.cta .btn.line { color: var(--carbon); }

/* footer */
footer { background: var(--carbon); color: var(--light-grey); font-size: 14px; }
footer .wrap { display: grid; grid-template-columns: 1.4fr repeat(4, 1fr); gap: 36px; padding-top: 72px; padding-bottom: 48px; }
footer h5 { color: #fff; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; font-size: 13px; margin-bottom: 14px; }
footer li { list-style: none; padding: 4px 0; }
footer .base { border-top: 1px solid #222; }
footer .base .wrap { display: flex; justify-content: space-between; padding-top: 20px; padding-bottom: 20px; font-size: 13px; }

/* ---------- inner pages ---------- */
.crumbs { font-size: 13px; color: var(--mute); padding: 20px 0; }
.crumbs b { color: var(--ink); }
.pagehead { background: var(--stone); border-bottom: 1px solid var(--line); }
.pagehead .wrap { display: grid; grid-template-columns: 1.5fr 1fr; align-items: end; padding-bottom: 44px; gap: 40px; }
.pagehead .wrap > div:first-child { min-width: 0; }
.pagehead h1 { font-size: 60px; margin-top: 14px; }
.pagehead p { color: var(--mute); font-size: 17px; max-width: 520px; }
.pagehead.dark { background: var(--carbon); color: #fff; border: 0; }
.pagehead.dark .crumbs, .pagehead.dark .crumbs b, .pagehead.dark p { color: var(--light-grey); }
.pagehead.photo { position: relative; overflow: hidden; }
.pagehead.photo .ph { position: absolute; top: 0; right: 0; bottom: 0; width: 42%; clip-path: polygon(16% 0, 100% 0, 100% 100%, 0 100%); }
.pagehead.photo .ph img { width: 100%; height: 100%; object-fit: cover; }
.pagehead.photo .wrap { position: relative; grid-template-columns: 1fr; min-height: 300px; }
.pagehead.photo p { max-width: 560px; margin-top: 14px; }
.shop { display: grid; grid-template-columns: 260px 1fr; gap: 40px; padding: 40px 0 96px; }
.filters h6 { font-weight: 700; letter-spacing: .14em; text-transform: uppercase; font-size: 12.5px; padding: 18px 0 10px; border-top: 2px solid var(--carbon); }
.filters h6 + div { padding-bottom: 14px; }
.opt { display: flex; align-items: center; gap: 10px; font-size: 15px; padding: 5px 0; }
.opt i { width: 16px; height: 16px; border: 2px solid #b5b5b5; }
.opt.on i { background: var(--orange); border-color: var(--orange); }
.opt span { margin-left: auto; color: var(--mute); font-size: 13px; }
.toolbar { display: flex; justify-content: space-between; align-items: center; padding-bottom: 18px; margin-bottom: 22px; border-bottom: 1px solid var(--line); }
.chips { display: flex; gap: 8px; flex-wrap: wrap; }
.chip { font-weight: 700; letter-spacing: .06em; text-transform: uppercase; font-size: 12px; padding: 9px 14px; border: 1px solid var(--line); background: #fff; }
.chip.on { background: var(--carbon); color: #fff; border-color: var(--carbon); }
.pager { display: flex; gap: 6px; justify-content: center; margin-top: 40px; }
.pager span { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--line); font-weight: 700; }
.pager span.on { background: var(--orange); color: var(--carbon); border-color: var(--orange); }

/* product detail */
.pdp { display: grid; grid-template-columns: 1.15fr 1fr; gap: 56px; padding: 10px 0 80px; }
.gallery .main { aspect-ratio: 5/4; position: relative; overflow: hidden; background: var(--stone); }
.gallery .main img { width: 100%; height: 100%; object-fit: cover; }
.thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 12px; }
.thumbs div { aspect-ratio: 4/3; overflow: hidden; border: 3px solid transparent; }
.thumbs div.on { border-color: var(--orange); }
.thumbs img { width: 100%; height: 100%; object-fit: cover; }
.buybox h1 { font-size: 40px; margin: 10px 0 14px; }
.buybox .sub { color: var(--mute); font-size: 17px; }
.tiers { width: 100%; border-collapse: collapse; margin: 22px 0; }
.tiers th, .tiers td { text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--line); font-size: 15px; }
.tiers th { font-weight: 700; letter-spacing: .12em; text-transform: uppercase; font-size: 11px; color: var(--steel); background: var(--stone); }
.tiers td b { font-size: 19px; }
.tiers tr.on td { background: #fdf1e6; }
.seg.l { border-color: var(--line); margin: 22px 0 0; }
.seg.l span { color: var(--ink); }
.seg.l span.on { color: var(--carbon); }
.qty { display: flex; gap: 12px; margin: 18px 0; }
.qty .box { display: flex; border: 1px solid var(--line); }
.qty .box span { width: 52px; display: grid; place-items: center; font-size: 20px; }
.qty .box b { width: 80px; display: grid; place-items: center; font-size: 21px; border-left: 1px solid var(--line); border-right: 1px solid var(--line); }
.qty .btn { flex: 1; justify-content: center; }
.depots { border: 1px solid var(--line); margin-top: 18px; }
.depots div { display: flex; justify-content: space-between; padding: 12px 16px; font-size: 15px; border-top: 1px solid var(--line); }
.depots div:first-child { border: 0; background: var(--stone); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; font-size: 11px; color: var(--steel); }
.specs { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; }
.spec-table div { display: flex; justify-content: space-between; padding: 13px 0; border-bottom: 1px solid var(--line); font-size: 15px; }
.spec-table div span:first-child { color: var(--mute); }
.tabs { display: flex; gap: 34px; border-bottom: 1px solid var(--line); margin-bottom: 30px; }
.tabs span { font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 14px 0; font-size: 13px; color: var(--mute); }
.tabs span.on { color: var(--ink); border-bottom: 3px solid var(--orange); }
.kit { background: var(--carbon); color: #fff; padding: 34px; }
.kit h3 { font-weight: 700; text-transform: uppercase; font-size: 26px; margin: 10px 0 18px; }
.kit li { list-style: none; display: grid; grid-template-columns: 70px 1fr auto; gap: 16px; align-items: center; padding: 12px 0; border-top: 1px solid #2a2a2a; }
.kit li div { height: 50px; overflow: hidden; }
.kit li img { width: 100%; height: 100%; object-fit: cover; }
.kit li b { font-size: 17px; }

/* basket */
.basket { display: grid; grid-template-columns: 1fr 420px; gap: 40px; padding: 30px 0 96px; }
.bsteps { display: flex; margin-bottom: 30px; }
.bsteps span { flex: 1; padding: 14px 18px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: 12.5px; background: var(--stone); color: var(--mute); clip-path: polygon(0 0, calc(100% - 14px) 0, 100% 50%, calc(100% - 14px) 100%, 0 100%, 14px 50%); margin-right: -6px; }
.bsteps span.on { background: var(--carbon); color: #fff; }
.bline { display: grid; grid-template-columns: 110px 1fr 120px 120px; gap: 20px; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--line); }
.bline .pic { height: 82px; overflow: hidden; }
.bline .pic img { width: 100%; height: 100%; object-fit: cover; }
.bline h4 { font-weight: 700; font-size: 16px; text-transform: uppercase; }
.bline .q { font-size: 19px; font-weight: 700; text-align: center; border: 1px solid var(--line); padding: 8px; }
.bline .p { text-align: right; font-size: 20px; font-weight: 700; }
.summary { background: var(--carbon); color: #fff; padding: 34px; align-self: start; }
.summary .lines li { border-color: #2a2a2a; color: #d9d9d9; }
.input { border: 1px solid #3a3a3a; padding: 14px 16px; color: var(--light-grey); font-size: 15px; margin-top: 10px; }
.input.l { border-color: var(--line); color: var(--mute); background: #fff; }
.agent-note { margin-top: 18px; padding: 16px; background: var(--carbon-3); border-left: 4px solid var(--orange); font-size: 14px; color: #d9d9d9; }

/* training */
.courses { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.course { background: #fff; border: 1px solid var(--line); display: grid; grid-template-columns: 150px 1fr 170px; }
.course .cph { overflow: hidden; }
.course .cph img { width: 100%; height: 100%; object-fit: cover; }
.course .info { padding: 24px 26px; }
.course h3 { font-weight: 700; font-size: 19px; text-transform: uppercase; line-height: 1.1; margin: 8px 0 10px; }
.course .meta { display: flex; gap: 14px; font-size: 13px; color: var(--mute); margin-bottom: 14px; }
.course .dates { display: flex; gap: 6px; flex-wrap: wrap; }
.course .dates span { font-size: 12px; font-weight: 700; padding: 5px 8px; background: var(--stone); }
.course .side { background: var(--carbon); color: #fff; padding: 24px; display: flex; flex-direction: column; justify-content: space-between; }
.course .side b { font-size: 34px; line-height: 1; letter-spacing: -.02em; }
.course .side small { color: var(--light-grey); }

/* contact */
.contact { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; padding: 56px 0 96px; }
.form .input { margin-top: 12px; }
.form .two { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.form .ta { height: 120px; }
.depot-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.depot-card { background: var(--carbon); color: #fff; padding: 26px; border-top: 5px solid var(--orange); }
.depot-card b { display: block; font-size: 26px; text-transform: uppercase; letter-spacing: -.01em; margin: 6px 0 8px; }
.depot-card span { color: var(--light-grey); font-size: 14px; }
.faq div { padding: 18px 0; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; font-weight: 700; font-size: 16px; }
.faq div span { color: var(--orange); font-size: 22px; }

/* ---------- mobile ---------- */
.msearch { display: none; height: 46px; background: #fff; margin: 0 18px 14px; }
.msearch span { flex: 1; display: flex; align-items: center; padding: 0 14px; color: #8a8a8a; font-size: 15px; }
.msearch i { width: 52px; background: var(--orange); }
.mbar { display: none; }
@media (max-width: 600px) {
  :root { --g: 18px; }
  .util, .cats { display: none; }
  .mast .wrap { grid-template-columns: 1fr auto; height: 72px; gap: 12px; }
  .mast .search { display: none; }
  .mast-acts span.lbl { display: none; }
  .mast-acts { gap: 16px; }
  .msearch { display: flex; }
  .hero { min-height: 0; }
  .hero .ph { position: relative; width: 100%; height: 230px; clip-path: none; }
  .hero .slash { display: none; }
  .hero .wrap { padding-top: 36px; padding-bottom: 40px; }
  .hero h1 { font-size: 44px; }
  .hero p.lede { font-size: 16px; }
  .hero .ctas { flex-direction: column; }
  .hero .tags { display: none; }
  .quote-chip { display: none; }
  .trust .wrap { grid-template-columns: 1fr 1fr; }
  .trust div { border: 0; padding: 14px 0; font-size: 13px; }
  section.s { padding: 56px 0; }
  .s-head { display: block; }
  .s-head h2 { font-size: 32px; }
  .bento { grid-template-columns: 1fr 1fr; grid-auto-rows: 160px; gap: 8px; }
  .tile.big { grid-column: span 2; grid-row: span 1; }
  .tile.big .lab h3 { font-size: 24px; }
  .tile.big .lab p { display: none; }
  .tile .lab h3 { font-size: 13px; }
  .g4, .g3 { grid-template-columns: 1fr 1fr; gap: 10px; }
  .card h4 { font-size: 13.5px; }
  .card .spec, .card .row .add { display: none; }
  .card .body { padding: 12px; }
  .prices b { font-size: 17px; }
  .pdp { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .pdp > *, .shop > *, .basket > * { min-width: 0; }
  .thumbs { gap: 8px; }
  .buybox h1 { font-size: 30px; }
  .pagehead .wrap { grid-template-columns: 1fr; }
  .pagehead h1 { font-size: 38px; }
  .pagehead.photo .ph { display: none; }
  .pagehead.photo .wrap { min-height: 0; }
  .shop { grid-template-columns: 1fr; padding-top: 20px; }
  .filters { display: none; }
  .toolbar .chips { flex-wrap: nowrap; overflow: hidden; }
  .toolbar > span { display: none; }
  .tiers th, .tiers td { padding: 10px 8px; }
  .basket { grid-template-columns: 1fr; }
  .basket h1.d { font-size: 34px !important; }
  .bsteps span { font-size: 10.5px; padding: 10px 14px; }
  .bline { grid-template-columns: 70px minmax(0, 1fr) auto; gap: 12px; }
  .bline .q { display: none; }
  .bline h4 { font-size: 13.5px; }
  .bline .p { font-size: 16px; }
  .qty .btn { font-size: 11px; padding: 14px 10px; }
  .qty .box b { width: 56px; }
  .qty .box span { width: 40px; }
  .mbar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; background: var(--carbon); z-index: 50; }
  .mbar a { flex: 1; padding: 14px 0; text-align: center; color: #d9d9d9; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; font-size: 11.5px; }
  .mbar a.on { background: var(--orange); color: var(--carbon); }
}

/* ===================== LIVE SITE ADDITIONS ===================== */
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: -999px; top: 0; background: var(--orange); color: var(--carbon); padding: 10px 16px; font-weight: 700; z-index: 100; }
.skip:focus { left: 10px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 3px solid var(--orange); outline-offset: 2px; }
button { font: inherit; cursor: pointer; border: 0; }
.btn { border: 0; cursor: pointer; transition: transform .15s ease, background .15s ease; }
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.btn.wide { width: 100%; justify-content: center; }
.util a:hover, footer a:hover, .crumbs a:hover { color: #fff; text-decoration: underline; }
.crumbs a:hover { color: var(--ink); }
.logo img { height: 58px; width: auto; }
.search { padding: 0; }
.search input, .msearch input { flex: 1; border: 0; padding: 0 20px; font: inherit; font-size: 15px; min-width: 0; color: var(--ink); background: #fff; }
.search button, .msearch button { width: 64px; background: var(--orange); display: grid; place-items: center; }
.msearch button { width: 52px; }
.mast-acts a:hover .lbl { color: var(--orange); }
.cats a:hover { color: #fff; }
.tile { transition: transform .2s ease; }
.tile:hover > img { transform: scale(1.04); }
.tile > img { transition: transform .4s ease; }
.tilebox { height: 300px; display: grid; }
.card { transition: box-shadow .2s ease, transform .2s ease; }
.card:hover { box-shadow: 0 10px 30px rgba(10,10,10,.10); transform: translateY(-2px); }
.card h3.h4 { font-weight: 700; font-size: 16.5px; line-height: 1.2; text-transform: uppercase; letter-spacing: -.005em; }
.card h3.h4 a:hover { color: var(--orange); }
.card .pic { display: block; }
.card .more { font-size: 13px; font-weight: 700; text-decoration: underline; color: var(--mute); }
.add { cursor: pointer; }
.add:hover { background: var(--orange); color: var(--carbon); }
.add.done { background: var(--ok); color: #fff; }
.prices.por b { font-size: 15px; letter-spacing: 0; }
.por-note { margin: 22px 0; padding: 14px 16px; background: var(--stone); border-left: 4px solid var(--orange); font-size: 15px; }
.pillar { display: block; transition: background .2s; }
.pillar:hover { background: var(--stone); }
.u { text-decoration: underline; }
.small { font-size: 13px; }
.narrow { max-width: 860px; }
.big { font-size: 64px; margin: 14px 0 18px; }
.lead { font-size: 19px; line-height: 1.55; margin-bottom: 16px; }
.reg { font-size: 12px; color: #8a8a8a; padding-bottom: 20px !important; padding-top: 0 !important; }
.ctas { display: flex; gap: 14px; flex-wrap: wrap; }
.qh { font-size: 52px; margin-bottom: 10px; }
.related { padding-bottom: 96px; }
.tabh { font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: 13px; padding-bottom: 14px; margin-bottom: 18px; border-bottom: 3px solid var(--orange); display: inline-block; }
.specs { padding-bottom: 80px; }
.sort { font-size: 14px; color: var(--mute); display: flex; gap: 8px; align-items: center; }
.sort select { font: inherit; border: 1px solid var(--line); padding: 6px 8px; background: #fff; }
.chip { cursor: pointer; }
.chip:hover { border-color: var(--carbon); }
.card[hidden] { display: none; }

/* estimator: real controls */
.est select { width: 100%; margin-top: 12px; padding: 13px 14px; font: inherit; font-weight: 700; background: var(--carbon-3); color: #fff; border: 1px solid #3a3a3a; }
.est input[type=range] { width: 100%; margin-top: 16px; accent-color: var(--orange); height: 28px; }
.flabel { font-weight: 700; letter-spacing: .14em; text-transform: uppercase; font-size: 12px; color: var(--light-grey); }
.seg label { flex: 1; position: relative; cursor: pointer; }
.seg label input { position: absolute; opacity: 0; inset: 0; }
.seg label span { display: block; text-align: center; padding: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: 12.5px; color: var(--light-grey); }
.seg label input:checked + span { background: var(--orange); color: var(--carbon); }
.seg label input:focus-visible + span { outline: 3px solid #fff; outline-offset: -3px; }
.seg.l label span { color: var(--ink); }
.seg.l label input:checked + span { color: var(--carbon); }
.lines li b { white-space: nowrap; padding-left: 12px; }

/* qty */
.qty .box button { width: 52px; display: grid; place-items: center; font-size: 20px; background: #fff; }
.qty .box input { width: 80px; text-align: center; font: inherit; font-size: 21px; font-weight: 700; border: 0; border-left: 1px solid var(--line); border-right: 1px solid var(--line); -moz-appearance: textfield; }
.qty .box input::-webkit-outer-spin-button, .qty .box input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* quote basket */
.blines { margin-top: 24px; }
.bline .q input { width: 70px; text-align: center; font: inherit; font-weight: 700; border: 0; font-size: 19px; }
.bline .q { padding: 4px; }
.bline .rm { font-size: 12px; text-decoration: underline; color: var(--mute); background: none; padding: 4px 0; margin-top: 6px; }
.bline .mode { font: inherit; font-size: 13px; padding: 4px 6px; border: 1px solid var(--line); background: #fff; margin-top: 6px; }
.bact { display: flex; gap: 12px; margin-top: 24px; flex-wrap: wrap; }
.empty { padding: 40px 0; }
.empty p { font-size: 19px; margin-bottom: 16px; }
.btotal { display: flex; justify-content: space-between; padding: 18px 0; font-weight: 700; font-size: 18px; border-bottom: 2px solid var(--carbon); }

/* forms */
.dform .fld { display: block; font-weight: 700; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--light-grey); margin-top: 12px; }
.dform.light .fld { color: var(--steel); }
.dform input:not([type=checkbox]):not([type=hidden]), .dform select, .dform textarea { display: block; width: 100%; margin-top: 6px; padding: 13px 14px; font: inherit; font-size: 15px; font-weight: 400; letter-spacing: 0; text-transform: none; color: #fff; background: var(--carbon-3); border: 1px solid #3a3a3a; border-radius: 0; }
.dform.light input:not([type=checkbox]):not([type=hidden]), .dform.light select, .dform.light textarea { color: var(--ink); background: #fff; border-color: #cfcfcf; }
.dform .two { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.dform .btn { margin-top: 18px; }
.check { display: flex; gap: 10px; align-items: flex-start; margin-top: 16px; font-size: 14px; }
.check input { margin-top: 3px; accent-color: var(--orange); width: 18px; height: 18px; flex-shrink: 0; }
.summary .check, .summary .small { color: var(--light-grey); }
.summary .small a { color: #fff; }

/* faq */
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { padding: 18px 0; display: flex; justify-content: space-between; font-weight: 700; font-size: 16px; cursor: pointer; list-style: none; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary span { color: var(--orange); font-size: 22px; transition: transform .2s; }
.faq details[open] summary span { transform: rotate(45deg); }
.faq details p { padding: 0 0 18px; color: var(--mute); max-width: 680px; }

/* prose / legal */
.prose p, .prose li { font-size: 16.5px; line-height: 1.7; max-width: 760px; }
.prose p { margin: 0 0 14px; }
.prose h2 { font-weight: 700; text-transform: uppercase; font-size: 24px; margin: 40px 0 14px; letter-spacing: -.005em; }
.prose h3 { font-weight: 700; font-size: 18px; margin: 26px 0 10px; }
.prose ul, .prose ol { margin: 0 0 16px 22px; }
.prose li { margin-bottom: 6px; }
.prose a { text-decoration: underline; }
.prose table { width: 100%; border-collapse: collapse; margin: 16px 0 24px; font-size: 15px; }
.prose th, .prose td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.prose th { background: var(--stone); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }

/* search */
.bigsearch { display: flex; gap: 0; margin: 10px 0 18px; max-width: 760px; }
.bigsearch input { flex: 1; padding: 16px 18px; font: inherit; font-size: 17px; border: 2px solid var(--carbon); border-right: 0; min-width: 0; }

/* toast */
.toast { position: fixed; left: 50%; bottom: 28px; transform: translateX(-50%); background: var(--carbon); color: #fff; padding: 14px 20px; font-weight: 700; border-left: 5px solid var(--orange); z-index: 80; box-shadow: 0 10px 30px rgba(0,0,0,.25); max-width: calc(100% - 32px); }
.toast a { color: var(--orange); margin-left: 12px; text-decoration: underline; }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }

/* tablet */
@media (max-width: 1100px) and (min-width: 601px) {
  :root { --g: 28px; }
  .mast .wrap { grid-template-columns: 170px 1fr auto; gap: 24px; }
  .cats .wrap { overflow-x: auto; }
  .hero h1 { font-size: 58px; }
  .hero .ph { width: 44%; }
  .bento { grid-template-columns: repeat(3, 1fr); }
  .g4 { grid-template-columns: repeat(3, 1fr); }
  .est { grid-template-columns: 1fr; }
  .sectors { grid-template-columns: repeat(3, 1fr); }
  .pillars, .steps { grid-template-columns: 1fr; }
  .pillar { border-left: 0; border-top: 1px solid var(--line); }
  .pdp, .specs, .contact, .basket { grid-template-columns: 1fr; }
  .courses { grid-template-columns: 1fr; }
  footer .wrap { grid-template-columns: 1fr 1fr; }
  .util { display: none; }
}

/* phone */
@media (max-width: 600px) {
  .cats { display: block; }
  .cats .wrap { overflow-x: auto; height: 46px; }
  .cats a.hot { margin-left: 12px; }
  .logo img { height: 44px; }
  .est .l, .est .r { padding: 28px 20px; }
  .est h2 { font-size: 32px; }
  .total .d { font-size: 36px; }
  .qh, .big { font-size: 38px; }
  .pillars, .steps, .sectors, .courses { grid-template-columns: 1fr; }
  .pillar { border-left: 0; border-top: 1px solid var(--line); }
  .sector { border-right: 0; border-bottom: 1px solid #2a2a2a; margin: 0; padding: 20px 0; }
  .course { grid-template-columns: 100px 1fr; }
  .course .side { grid-column: 1 / -1; flex-direction: row; align-items: center; }
  .specs, .contact { grid-template-columns: 1fr; gap: 28px; }
  .depot-cards { grid-template-columns: 1fr; }
  .dform .two { grid-template-columns: 1fr; }
  .cta .wrap { flex-direction: column; align-items: flex-start; }
  .cta h2 { font-size: 34px; }
  footer .wrap { grid-template-columns: 1fr; padding-top: 48px; }
  footer .base .wrap { flex-direction: column; gap: 6px; }
  body { padding-bottom: 50px; }
  .card .row .add { display: inline-block; font-size: 10.5px; padding: 8px 9px; }
  .card .more { display: none; }
  .tilebox { height: 200px; }
  .bline .q { display: block; grid-column: 2; justify-self: start; }
  .toast { bottom: 64px; }
}
@media (max-width: 600px) {
  .bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g4, .g3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tile .lab { max-width: 100%; }
  .est { grid-template-columns: minmax(0, 1fr); }
}
[hidden] { display: none !important; }

/* WhatsApp quick quote: on-brand black/orange, WhatsApp green only on the icon */
:root { --wa: #25D366; }
[data-wa], .mwa { display: inline-flex; align-items: center; gap: 8px; }
[data-wa] svg, .wa-inline svg, .waband .btn svg { color: var(--wa); flex-shrink: 0; }
.wa-float { position: fixed; right: 22px; bottom: 22px; z-index: 60; background: var(--carbon); color: #fff; border-left: 5px solid var(--orange);
  padding: 12px 18px 12px 14px; gap: 12px; box-shadow: 0 10px 28px rgba(0,0,0,.28); transition: transform .15s; }
.wa-float:hover { transform: translateY(-2px); }
.wa-float .ic { width: 38px; height: 38px; background: var(--wa); display: grid; place-items: center; }
.wa-float .ic svg { color: #0A0A0A; }
.wa-float .tx { font-weight: 700; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; line-height: 1.25; }
.wa-float small { display: block; font-size: 11px; color: var(--light-grey); letter-spacing: .04em; text-transform: none; font-weight: 400; }
.wa-btn { background: var(--carbon) !important; color: #fff !important; box-shadow: inset 0 0 0 2px var(--wa); gap: 10px; }
.wa-btn svg { color: var(--wa); }
.wa-btn::after { content: none; }
.summary .wa-btn { background: transparent !important; margin-top: 10px; }
.wa-util { color: #fff; font-weight: 700; }
.wa-foot { color: #fff; font-weight: 700; }
.wa-inline { display: flex; align-items: center; gap: 10px; margin: 6px 0 4px; padding: 12px 14px; border: 1px solid var(--line); font-size: 14px; }
.wa-inline:hover { border-color: var(--carbon); }
.mbar a.mwa { color: #fff; justify-content: center; box-shadow: inset 0 -3px 0 var(--wa); }
.waband { background: var(--carbon-2); color: #fff; border-bottom: 1px solid #222; }
.waband .wrap { display: flex; justify-content: space-between; align-items: center; gap: 40px; padding-top: 56px; padding-bottom: 56px; }
.waband h2 { font-size: 46px; margin: 14px 0 12px; }
.waband h2 em { font-style: normal; color: var(--orange); }
.waband p { color: var(--light-grey); max-width: 520px; margin-bottom: 22px; font-size: 17px; }
.wa-qr { text-align: center; border: 1px solid #333; padding: 18px; }
.wa-qr img { width: 150px; height: 150px; }
.wa-qr span { display: block; margin-top: 10px; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--light-grey); font-weight: 700; }
@media (max-width: 600px) { .wa-float { display: none; } .wa-qr { display: none; } .waband h2 { font-size: 32px; } .waband .wrap { padding-top: 40px; padding-bottom: 40px; } }

.regcard { margin-top: 12px; border: 1px solid var(--line); border-top: 5px solid var(--carbon); padding: 22px 24px; }
.regcard p { margin-top: 10px; font-size: 15px; line-height: 1.6; }
.reg { font-size: 12.5px; color: #9a9a9a; }
