/* Enterprise stylesheet (Oct 31 2026; scripts/build_enterprise.py, plan/enterprise-segment-design-2026-10-31.md section 4.1).
   The electronics side's construction (square corners, 4px rules over section heads, the 6px accent bar under the header,
   mono uppercase kickers, block buttons, the 1392px wrap) in the Enterprise palette, graphite and steel: graphite for
   buttons, rules and bars on paper; near-black for the header, the page head and dark bands; steel for the accents that
   sit on near-black (the G square, the accent bar, kickers on dark); mist behind the full-colour logo rows.
   Self-contained: the Enterprise pages load this file and strip.css only. */

:root{
  --en:#2a3038;
  --end:#161a1f;
  --ens:#7f8c9a;
  --enp:#eef0f2;
  --paper:#f5f6f7;
  --ink:#161a1f;
  --ink-2:#4a5260;
  --line:#d3d8de;
  --on-dark:#e6e9ee;
  --muted-dark:#a7b0bc;

  --sans:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --display:"Archivo", Helvetica, Arial, sans-serif;
  --mono:"IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;

  --wrap:1392px;
  --gutter:clamp(24px, 3vw, 48px);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ background:var(--enp); -webkit-text-size-adjust:100%; }
body{ font-family:var(--sans); font-size:16px; line-height:1.55; color:var(--ink); background:var(--paper); -webkit-font-smoothing:antialiased; }
img{ max-width:100%; height:auto; }
a{ color:var(--ink); text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:1px; }
a:hover{ text-decoration-thickness:2px; }
.wrap{ width:100%; max-width:var(--wrap); margin:0 auto; padding:0 var(--gutter); }
.sr{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
.skip{ position:absolute; left:-9999px; top:0; background:var(--en); color:#fff; padding:10px 16px; z-index:60;
  font-family:var(--mono); font-size:.75rem; text-transform:uppercase; letter-spacing:.14em; }
.skip:focus{ left:0; }
:focus-visible{ outline:3px solid var(--ens); outline-offset:2px; }

/* ---------- header: the G. mark and Enterprise, the contacts inside the header, the other two sides in new tabs ---------- */
.en-header{ background:var(--end); color:#fff; }
.en-hgrid{ display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; grid-template-areas:"mark . switch contact" "nav nav nav nav";
  column-gap:28px; row-gap:0; align-items:center; padding-top:14px; }
.en-wordmark{ grid-area:mark; display:inline-flex; align-items:center; gap:12px; white-space:nowrap; font-family:var(--display); font-weight:800;
  font-size:1.5rem; letter-spacing:-0.022em; line-height:1; color:#fff; text-decoration:none; }
.en-wordmark:hover{ color:#fff; }
.gmark{ position:relative; display:inline-block; color:#fff; font-size:2rem; line-height:1; padding-right:.42em; }
.gmark i{ position:absolute; right:0; bottom:.05em; width:.3em; height:.3em; background:var(--ens); }
.en-switches{ grid-area:switch; justify-self:end; display:flex; flex-wrap:wrap; justify-content:flex-end; align-items:center; gap:8px; }
.en-switch{ display:inline-flex; align-items:center; gap:8px; font-family:var(--mono); font-weight:600; font-size:.8rem; letter-spacing:.12em;
  text-transform:uppercase; color:#fff; text-decoration:none; padding:5px 12px; border:2px solid var(--ens); white-space:nowrap; }
.en-switch:hover{ background:var(--ens); color:var(--end); }
.en-switch .ext{ opacity:.85; }
.hcontact{ grid-area:contact; justify-self:end; display:flex; align-items:center; gap:2px; margin-right:-10px; }
.hcontact a{ display:inline-flex; align-items:center; gap:8px; color:var(--on-dark); text-decoration:none; padding:9px 10px; border-radius:4px;
  font-family:var(--mono); font-weight:600; font-size:.8rem; letter-spacing:.06em; white-space:nowrap; }
.hcontact a:hover{ background:#fff; color:var(--end); }
.hcontact svg{ flex:0 0 auto; }
.en-hnav{ grid-area:nav; display:flex; align-items:center; gap:16px; padding:8px 0 10px; }
.en-nav{ display:flex; flex-wrap:wrap; align-items:center; gap:4px 30px; flex:1 1 auto; min-width:0; }
.en-nav a{ font-family:var(--mono); font-weight:600; font-size:.86rem; letter-spacing:.12em; text-transform:uppercase; color:var(--on-dark);
  text-decoration:none; padding:8px 0; border-bottom:3px solid transparent; white-space:nowrap; }
.en-nav a:hover{ color:#fff; border-bottom-color:#4a5260; }
.en-nav a[aria-current="page"]{ color:#fff; border-bottom-color:var(--ens); }
.en-quote{ flex:0 0 auto; margin-left:auto; font-family:var(--mono); font-weight:600; font-size:.74rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--end); background:var(--ens); text-decoration:none; padding:9px 14px; white-space:nowrap; border:2px solid var(--ens); }
.en-quote:hover, .en-quote[aria-current="page"]{ background:#fff; color:var(--end); border-color:#fff; }
.en-hmenu{ display:none; grid-area:menu; width:44px; height:44px; align-items:center; justify-content:center; background:transparent; color:#fff;
  border:2px solid #fff; cursor:pointer; padding:0; justify-self:end; }
.en-hmenu svg{ fill:currentColor; }
.en-accentbar{ height:6px; background:var(--ens); }

@media (max-width:1100px){
  .en-hgrid{ grid-template-columns:auto minmax(0,1fr) auto; grid-template-areas:"mark . contact" "nav nav nav" "switch switch switch"; row-gap:6px; }
  .en-switches{ justify-self:start; padding-bottom:12px; }
  .en-hnav{ padding:4px 0 6px; }
}
@media (max-width:640px){
  .en-hgrid{ grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"mark menu" "nav nav" "switch switch" "contact contact"; column-gap:8px; row-gap:0; padding-top:12px; padding-bottom:12px; }
  .en-hmenu{ display:inline-flex; }
  .en-hnav, .en-switches, .hcontact{ display:none; }
  .en-header.open .en-hnav{ display:flex; flex-direction:column; align-items:stretch; gap:0; margin-top:12px; padding:4px 0 6px; border-top:2px solid rgba(255,255,255,.25); }
  .en-header.open .en-nav{ display:flex; flex-direction:column; align-items:stretch; gap:0; }
  .en-header.open .en-nav a{ display:block; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.18); }
  .en-header.open .en-quote{ margin:12px 0 4px; text-align:center; }
  .en-header.open .en-switches{ display:flex; flex-direction:column; align-items:stretch; justify-self:stretch; gap:6px; padding:0; margin-top:10px; }
  .en-header.open .en-switch{ justify-content:center; }
  .en-header.open .hcontact{ display:flex; justify-self:start; flex-wrap:wrap; margin:10px 0 0 -6px; }
  .en-header.open .en-hmenu{ background:#fff; color:var(--end); }
  .en-wordmark{ font-size:1.15rem; gap:9px; }
  .gmark{ font-size:1.5rem; }
}

/* ---------- page head band: near-black like the header, the content follows in its own wrap ---------- */
.en-head{ background:var(--end); color:#fff; }
.en-head .pagehead{ padding:48px 0 46px; }
.en-head h1{ font-family:var(--display); font-weight:800; font-size:clamp(2.25rem, 5vw, 4.25rem); line-height:1.02; letter-spacing:-0.032em; max-width:22ch; color:#fff; }
.en-head .lead{ margin-top:18px; font-size:1.08rem; color:var(--on-dark); max-width:70ch; }
.en-head .btn-row{ margin-top:28px; }
.en-question{ margin-top:16px; font-family:var(--mono); font-weight:600; font-size:.86rem; letter-spacing:.06em; color:var(--muted-dark); max-width:80ch; }
.crumbs{ display:flex; flex-wrap:wrap; gap:4px 8px; padding:18px 0 0; font-family:var(--mono); font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; color:var(--muted-dark); }
.crumbs a{ color:var(--muted-dark); text-decoration:none; }
.crumbs a:hover{ color:#fff; }
.crumbs + .pagehead{ padding-top:28px; }

.kicker{ font-family:var(--mono); font-weight:600; font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--en); display:block; margin-bottom:12px; }
.en-head .kicker, .inked .kicker{ color:var(--ens); }

/* ---------- bands ---------- */
.en-band{ padding:44px 0; }
.en-band.tinted{ background:var(--enp); }
.en-band.inked{ background:var(--end); color:#fff; }
.en-band.inked h2, .en-band.inked h3{ color:#fff; }
.en-band.inked p{ color:var(--on-dark); }
.en-intro{ padding-bottom:12px; }
.en-intro + .en-band:not(.tinted){ padding-top:20px; }

.sec-head{ display:flex; align-items:baseline; gap:16px; flex-wrap:wrap; border-top:4px solid var(--en); padding-top:10px; margin-bottom:22px; }
.sec-head h2{ font-family:var(--display); font-weight:800; font-size:clamp(1.2rem, 2.6vw, 1.6rem); letter-spacing:-0.012em; text-transform:uppercase; }
.inked .sec-head{ border-top-color:var(--ens); }

h3{ font-family:var(--display); font-weight:800; font-size:1.05rem; letter-spacing:-0.006em; }
p + p{ margin-top:12px; }
.prose p, .prose li{ max-width:72ch; }
.prose p + h3, .prose .list + h3, .prose .table-scroll + h3{ margin-top:26px; }
.prose h3 + p, .prose h3 + .list{ margin-top:8px; }
.prose > * + .list, .prose p + .list, .prose .wrap > .list{ margin-top:12px; }
.prose .list + p, .prose .table-scroll + p, .prose p + .table-scroll, .prose .list + .table-scroll{ margin-top:16px; }
.prose ol.steps-numbered{ margin-top:12px; }

.list{ list-style:none; }
.list li{ position:relative; padding-left:16px; margin-bottom:7px; font-size:.97rem; line-height:1.5; }
.list li::before{ content:""; position:absolute; left:0; top:.6em; width:7px; height:7px; background:var(--en); }
.inked .list li::before{ background:var(--ens); }

.steps-numbered{ counter-reset:s; list-style:none; }
.steps-numbered li{ counter-increment:s; position:relative; padding-left:44px; margin-bottom:16px; border-top:2px solid var(--line); padding-top:12px; max-width:80ch; }
.steps-numbered li::before{ content:counter(s, decimal-leading-zero); position:absolute; left:0; top:12px; font-family:var(--display); font-weight:800; font-size:1.1rem; color:var(--en); }

/* ---------- columns: a section of ### groups ---------- */
.en-cols{ display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:28px 36px; }
.en-col h3{ font-size:1.08rem; text-transform:uppercase; letter-spacing:.01em; border-top:4px solid var(--en); padding-top:10px; margin-bottom:10px; }
.en-col p{ font-size:.97rem; }
.en-col p + p{ margin-top:10px; }
.en-band.inked .en-col h3{ border-top-color:var(--ens); }

/* ---------- buttons ---------- */
.btn{ display:inline-flex; align-items:center; gap:10px; background:var(--en); color:var(--paper); text-decoration:none; font-family:var(--mono); font-weight:600;
  font-size:.76rem; letter-spacing:.13em; text-transform:uppercase; padding:14px 22px; border:0; cursor:pointer; line-height:1.2; text-align:center; }
.btn:hover{ background:var(--end); color:#fff; }
.btn.ghost{ background:transparent; color:var(--ink); box-shadow:inset 0 0 0 2px var(--en); }
.btn.ghost:hover{ background:var(--en); color:var(--paper); }
.btn[disabled]{ opacity:.45; cursor:not-allowed; }
.en-head .btn, .inked .btn{ background:var(--paper); color:var(--end); }
.en-head .btn:hover, .inked .btn:hover{ background:var(--ens); color:var(--end); }
.en-head .btn.ghost, .inked .btn.ghost{ background:transparent; color:#fff; box-shadow:inset 0 0 0 2px #fff; }
.en-head .btn.ghost:hover, .inked .btn.ghost:hover{ background:#fff; color:var(--end); }
.btn-row{ display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.btn.small{ padding:9px 14px; font-size:.68rem; letter-spacing:.1em; }
.en-band.inked a:not(.btn){ color:#fff; }
.en-cta .prose p, .en-cta p{ max-width:72ch; }
.en-more{ margin-top:24px; }

/* ---------- tables ---------- */
.table-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; max-width:100%; contain:paint; }
table.grid{ width:100%; border-collapse:collapse; font-size:.92rem; min-width:560px; }
table.grid th{ font-family:var(--mono); font-weight:600; font-size:.68rem; letter-spacing:.13em; text-transform:uppercase; text-align:left; color:var(--ink);
  border-bottom:3px solid var(--en); padding:8px 12px 8px 0; vertical-align:bottom; }
table.grid td{ border-bottom:1px solid var(--line); padding:10px 12px 10px 0; vertical-align:top; }
table.grid tr:last-child td{ border-bottom:2px solid var(--en); }

/* ---------- partner badges at each program's legal size, supplier marks, on mist ---------- */
.en-badges, .en-suppliers{ list-style:none; display:flex; flex-wrap:wrap; align-items:center; gap:28px 48px; padding:28px clamp(20px, 3vw, 40px); background:var(--enp); }
.en-band.tinted .en-badges, .en-band.tinted .en-suppliers{ background:#fff; }
.en-badges li, .en-suppliers li{ display:flex; align-items:center; }
.en-badges a{ display:block; line-height:0; }
.en-badges img, .en-badge-box img{ display:block; max-width:none; }
.b-ftnt{ width:190px; height:auto; }
.b-cisco{ width:auto; height:40px; }
.b-lenovo{ width:auto; height:64px; }
.b-intel{ width:248px; height:auto; }
.b-hp{ width:auto; height:130px; }
.b-smc{ width:auto; height:48px; }
.d-mark{ display:block; width:auto; height:44px; max-width:180px; object-fit:contain; }
/* ingram-micro.png carries a white matte: multiply drops it onto the mist panel */
.d-mark[src$="ingram-micro.png"]{ mix-blend-mode:multiply; }
.prose + .en-badges, .prose .en-badges, .prose .en-suppliers{ margin-top:24px; }

/* the partners page: one program per row, its badge in a mist box beside its paragraph */
.en-program-grid{ display:grid; grid-template-columns:minmax(260px, 320px) minmax(0, 1fr); gap:40px; align-items:start; }
.en-badge-box{ display:flex; align-items:center; justify-content:center; min-height:180px; padding:28px; background:var(--enp); }
.en-program.tinted .en-badge-box{ background:#fff; }
@media (max-width:760px){
  .en-program-grid{ grid-template-columns:1fr; gap:20px; }
  .en-badge-box{ min-height:0; justify-content:flex-start; }
}

/* ---------- where to go next ---------- */
.en-next{ list-style:none; display:flex; flex-wrap:wrap; gap:10px 12px; }
.en-next a{ display:inline-block; padding:10px 14px; font-family:var(--mono); font-weight:600; font-size:.74rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink); text-decoration:none; box-shadow:inset 0 0 0 2px var(--en); background:transparent; }
.en-next a:hover{ background:var(--en); color:var(--paper); }

/* ---------- questions ---------- */
.en-faq .faq-q{ margin-top:22px; font-size:1.08rem; }
.en-faq .faq-q:first-of-type{ margin-top:0; }
.en-faq .faq-a{ margin-top:8px; }

/* ---------- forms ---------- */
.form-grid{ position:relative; display:grid; grid-template-columns:1fr 1fr; gap:18px 22px; max-width:1040px; }
.field{ display:flex; flex-direction:column; }
.field.wide{ grid-column:1 / -1; }
.field label{ font-family:var(--mono); font-weight:600; font-size:.68rem; letter-spacing:.13em; text-transform:uppercase; margin-bottom:6px; }
.field .hint{ font-size:.8rem; color:var(--ink-2); margin-top:6px; }
input[type="text"], input[type="email"], input[type="tel"], input[type="date"], select, textarea{
  font-family:var(--sans); font-size:.95rem; color:var(--ink); background:#fff; border:2px solid var(--en); padding:10px 12px; width:100%; border-radius:0;
  appearance:none; -webkit-appearance:none; }
input[type="date"]{ min-height:46px; }
textarea{ min-height:110px; resize:vertical; line-height:1.45; }
select{ background-image:linear-gradient(45deg, transparent 50%, var(--en) 50%), linear-gradient(135deg, var(--en) 50%, transparent 50%);
  background-position:calc(100% - 18px) 50%, calc(100% - 12px) 50%; background-size:6px 6px, 6px 6px; background-repeat:no-repeat; padding-right:38px; }
/* line items: one row per line, part number or model, quantity, unit; the script joins them into the lines field */
.en-lines{ grid-column:1 / -1; border:0; padding:0; margin:0; min-width:0; }
.en-lines legend{ font-family:var(--mono); font-weight:600; font-size:.68rem; letter-spacing:.13em; text-transform:uppercase; margin-bottom:6px; padding:0; }
.en-line-head, .en-line{ display:grid; grid-template-columns:minmax(0,3fr) minmax(0,1fr) minmax(0,1fr); gap:10px; }
.en-line-head span{ font-family:var(--mono); font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-2); margin-bottom:4px; }
.en-line + .en-line{ margin-top:8px; }
.en-lines .btn.small{ margin-top:10px; }
.en-after{ margin-top:30px; max-width:1040px; }
.en-after h3{ margin-top:18px; }
.en-after h3:first-child{ margin-top:0; }
.en-form-band .sec-head + p{ margin-bottom:20px; max-width:72ch; }
input:focus, select:focus, textarea:focus{ outline:3px solid var(--ens); outline-offset:1px; }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.submit-check{ margin:14px 0 0; }
.alert{ padding:14px 18px; border-left:6px solid var(--en); background:var(--enp); font-size:.94rem; margin-bottom:20px; max-width:1040px; }
.alert[hidden], .panel[hidden], form[hidden]{ display:none; }
.panel{ background:var(--enp); padding:18px 20px; border-left:6px solid var(--en); max-width:1040px; }
.panel.on-paper{ background:#fff; border:2px solid var(--en); border-left:6px solid var(--en); }
.panel h3{ font-size:1.1rem; }
.panel p{ margin-top:8px; color:var(--ink-2); }
.en-band.tinted input, .en-band.tinted textarea, .en-band.tinted select{ background:#fff; }
@media (max-width:640px){ .form-grid{ grid-template-columns:1fr; } .en-line-head{ display:none; } .en-line{ grid-template-columns:1fr 1fr; } .en-line [data-li="part"]{ grid-column:1 / -1; } .en-line + .en-line{ margin-top:14px; } }

/* ---------- footer ---------- */
.en-footer{ margin-top:0; }
.en-foot-contact{ background:var(--en); color:#fff; padding:16px 0; }
.en-foot-contact .wrap{ display:flex; flex-wrap:wrap; gap:6px 26px; align-items:baseline; font-family:var(--mono); font-size:.74rem; font-weight:500; letter-spacing:.05em; }
.en-foot-contact .name{ font-family:var(--display); font-weight:800; font-size:.95rem; letter-spacing:.02em; text-transform:uppercase; }
.en-foot-contact a{ color:#fff; }
.en-foot-note{ background:var(--end); color:var(--muted-dark); padding:20px 0 24px; font-size:.85rem; }
.en-foot-note p{ max-width:96ch; }
.en-foot-note .legal.tm{ margin-top:6px; font-size:.75rem; line-height:1.45; color:#8d97a4; }
.en-foot-note a{ color:#fff; }
.en-foot-links{ margin-top:14px; display:flex; flex-wrap:wrap; gap:6px 20px; font-family:var(--mono); font-size:.7rem; letter-spacing:.13em; text-transform:uppercase; }

/* ---------- responsive ---------- */
@media (max-width:640px){
  :root{ --gutter:18px; }
  .en-head .pagehead{ padding:32px 0 34px; }
  .en-band{ padding:34px 0; }
  .en-badges, .en-suppliers{ gap:22px 32px; padding:22px 18px; }
  .b-intel{ width:248px; }
}

@media print{
  .strip, .en-header, .en-accentbar, .en-next-band, .en-cta, .en-footer .en-foot-links{ display:none; }
  .en-head{ background:none; color:var(--ink); }
  .en-head h1, .en-head .lead{ color:var(--ink); }
}
