/* Generative Z components, loaded on every page after blog.css (tokens).
   Colour carries meaning: blue = systems, yellow = people (approval, training), ink = structure. */
.home-page [hidden],.info-page [hidden]{display:none!important}
:where(.home-page) :where(button,input,select,textarea){font:inherit}
.home-section{padding-block:var(--section-space)}
.home-section+.home-section{border-top:1px solid var(--line)}

/* Language switcher */
.home-tools{display:flex;justify-content:flex-end;padding-top:var(--s-4)}
.home-tools fieldset{display:flex;gap:2px;margin:0;padding:2px;background:var(--surface-raised);border:1px solid var(--line);border-radius:10px}
.home-tools legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
/* Reserve the switcher's space before JS reveals it, so the page does not shift (CLS). */
.home-tools fieldset[hidden]{display:flex!important;visibility:hidden}
.home-tools button{min-height:44px;padding:0 .8rem;background:transparent;border:0;border-radius:var(--radius-control);color:var(--muted);font-size:var(--fs-label);font-weight:600;cursor:pointer;transition:background-color var(--motion-micro),color var(--motion-micro)}
.home-tools button:hover{background:var(--paper);color:var(--text-primary)}
.home-tools button[aria-pressed=true]{background:var(--text-primary);color:var(--surface-page)}

/* Buttons */
.home-button,.home-form button[type=submit]{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;min-height:48px;padding:.7rem 1.25rem;background:var(--blue);border:1px solid var(--blue);border-radius:var(--radius-control);color:var(--white);font-size:.9375rem;font-weight:600;line-height:1.3;text-align:center;text-decoration:none;cursor:pointer;transition:background-color var(--motion-micro),border-color var(--motion-micro),color var(--motion-micro)}
.home-button:hover,.home-form button[type=submit]:hover{background:var(--blue-hover);border-color:var(--blue-hover);color:var(--white);text-decoration:none}
.home-button svg{flex:none;width:18px;height:18px;transition:transform var(--motion-micro) var(--ease-out)}
.home-button:hover svg{transform:translateX(3px)}
.home-button--secondary{background:var(--surface-raised);border-color:var(--line-strong);color:var(--text-primary)}
.home-button--secondary:hover{background:var(--surface-raised);border-color:var(--border-strong);color:var(--text-primary)}
/* Micro-interactions: hover adds depth, press compresses. Neither moves neighbouring content. */
.home-button,.home-form button,.gate-actions button{transition:background-color var(--motion-micro),border-color var(--motion-micro),color var(--motion-micro),box-shadow var(--motion-micro),transform var(--motion-micro)}
.home-button:hover,.home-form button[type=submit]:hover{box-shadow:0 6px 16px rgb(11 59 170 / 18%)}
.home-button--secondary:hover,.home-button--ink:hover{box-shadow:0 6px 16px rgb(10 10 10 / 10%)}
:is(.home-button,.home-form button,.gate-actions button):active:not(:disabled){transform:scale(.98)}
.home-button--ink{background:var(--surface-band);border-color:var(--border-strong)}
.home-button--ink:hover{background:var(--ink-hover);border-color:var(--ink-hover)}
.home-actions{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-6)}

/* Hero */
.home-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:clamp(2rem,5vw,5rem);align-items:center;padding-block:clamp(1.5rem,3vw,3rem) var(--section-space)}
.hero-copy{min-width:0}
.hero-kicker{display:flex;align-items:flex-start;gap:.65rem;margin:0 0 var(--s-5);color:var(--text-primary);font-size:var(--fs-small);font-weight:600}
.hero-kicker::before{content:"";flex:none;width:10px;height:10px;margin-top:.4em;background:var(--yellow);border:1.5px solid var(--border-strong);border-radius:1px}
.home-hero h1{max-width:11ch;margin:0 0 var(--s-5);font-size:var(--fs-display);font-weight:780;line-height:.98;letter-spacing:-.055em}
.home-hero .intro{max-width:46ch;margin:0}
.hero-note{margin:var(--s-4) 0 0;color:var(--subtle);font-size:var(--fs-small)}

/* Workflow sheet: an engineering drawing with real HTML text. */
/* Wires are positioned on the same percentage grid as the nodes. */

/* Capabilities rail */
.expertise h2{max-width:18ch;margin-bottom:var(--s-7)}
.expertise-rail{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--s-6) 0;margin:0;padding:0;list-style:none}
.expertise-rail li{position:relative;padding:var(--s-5) var(--s-5) 0 0;border-top:1px solid var(--border-strong)}
.expertise-rail li::before{content:"";position:absolute;top:-5px;left:0;width:9px;height:9px;background:var(--surface-raised);border:1.5px solid var(--border-strong);border-radius:1px}
.expertise-rail li:nth-child(n+5)::before{background:var(--yellow)}
.expertise-icon{display:flex;margin-bottom:var(--s-4);color:var(--text-link)}
.expertise-rail li:nth-child(n+5) .expertise-icon{color:var(--text-primary)}
.expertise-rail h3{margin:0 0 .35rem;font-size:1rem}
.expertise-rail p{max-width:24ch;margin:0;color:var(--muted);font-size:var(--fs-small);line-height:1.55}

/* Problems mapped to system responses */
.problems{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s-8);align-items:start}
.problems .split-heading{display:block;position:sticky;top:calc(var(--header-h) + var(--s-6));margin:0}
.problems .split-heading h2{max-width:12ch;margin-bottom:var(--s-4)}
.problem-columns,.problem-row{display:grid;grid-template-columns:minmax(0,1fr) 56px minmax(0,1fr)}
.problem-columns{padding-bottom:var(--s-3);border-bottom:1px solid var(--border-strong);color:var(--subtle);font-size:var(--fs-micro);font-weight:650}
.problem-columns span:last-child{grid-column:3}
.problem-map dl{margin:0}
.problem-row{align-items:center;padding-block:var(--s-4);border-bottom:1px solid var(--line)}
.problem-row dt{color:var(--text-primary);font-weight:600;line-height:1.45}
.problem-row dd{margin:0;color:var(--muted);font-size:var(--fs-small);line-height:1.55}
.problem-wire{position:relative;height:1.5px;margin-inline:10px 14px;background:var(--line-strong);transition:background-color var(--motion-normal)}
.problem-wire::after{content:"";position:absolute;top:50%;right:-9px;width:8px;height:8px;translate:0 -50%;background:var(--surface-raised);border:1.5px solid var(--text-link);border-radius:1px}
.problem-row:hover .problem-wire{background:var(--blue)}

/* Solutions: three entry points in one connected frame, then the full catalogue */
.solutions .section-heading h2{max-width:18ch;margin:0}
.solutions .section-heading .intro{margin:var(--s-4) 0 0}
.offer-frame{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-panel)}
.offer{position:relative;display:flex;flex-direction:column;gap:var(--s-3);min-width:0;padding:var(--s-6);transition:background-color var(--motion-normal)}
.offer+.offer{border-left:1px solid var(--line-strong)}
.offer+.offer::before{content:"";position:absolute;top:var(--s-6);left:-5px;width:9px;height:9px;background:var(--surface-raised);border:1.5px solid var(--border-strong);border-radius:1px}
.offer-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line-strong);border-radius:var(--radius-control);color:var(--text-link)}
.offer h3{margin:var(--s-2) 0 0;font-size:clamp(1.2rem,1.05rem + .5vw,1.45rem);letter-spacing:-.03em;line-height:1.2}
.offer h3 a{color:var(--text-primary);text-decoration:none}
.offer h3 a::after{content:"";position:absolute;inset:0;border-radius:var(--radius-panel)}
.offer:hover{background:var(--sheet)}
.offer:hover h3 a,.offer:focus-within h3 a{color:var(--text-link);text-decoration:underline}
.offer-desc{margin:0;color:var(--muted);font-size:.9375rem}
.offer-outcome{margin:auto 0 0;padding-top:var(--s-4);border-top:1px dashed var(--line-strong);color:var(--text-primary);font-size:var(--fs-small);font-weight:600}
.catalogue{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--s-8);margin-top:var(--s-8);padding-top:var(--s-6);border-top:1px solid var(--line)}
.catalogue-heading h3{font-size:1.25rem}
.catalogue-heading p{color:var(--muted);font-size:var(--fs-small)}
.home-services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 var(--s-5)}
.home-services article{padding:var(--s-4) 0;border-bottom:1px solid var(--line)}
.home-services h4{margin:0 0 .25rem;font-size:.9375rem;letter-spacing:-.015em}
.home-services p{margin:0;color:var(--muted);font-size:var(--fs-label);line-height:1.5}
.home-related{display:flex;flex-wrap:wrap;gap:0 var(--s-5)}
.home-related a{display:inline-flex;align-items:center;min-height:44px;font-size:var(--fs-small);font-weight:600}

/* System architecture sheet */
.system{position:relative;overflow:hidden;background:var(--paper)}
.system>.shell{position:relative}
/* Decorative blueprint grid; moved slightly by [data-parallax] on large screens only. */
.system-backdrop{position:absolute;inset:-80px 0;background:linear-gradient(rgb(11 59 170 / 6%) 1px,transparent 1px) 0 0 / 96px 96px,linear-gradient(90deg,rgb(11 59 170 / 6%) 1px,transparent 1px) 0 0 / 96px 96px;pointer-events:none}
.split-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s-5) var(--s-8);align-items:end;margin-bottom:var(--s-7)}
.split-heading h2{max-width:18ch;margin:0}
.split-heading .intro{margin:0}
.system-sheet{position:relative;padding:var(--s-7) var(--s-5) var(--s-5);background:var(--surface-raised);background-image:var(--grid-paper);border:1px solid var(--border-strong);border-radius:var(--radius-sheet)}
.system-layers{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--s-4);margin:0;padding:0;list-style:none}
/* Spans first to last marker: one column width (minus a marker radius) is removed on the right. */
.system-bus{position:absolute;top:calc(var(--s-7) + 14px);right:calc(var(--s-5) + (100% - 2 * var(--s-5) - 5 * var(--s-4)) / 6 - 14px);left:calc(var(--s-5) + 14px);height:2px;background:var(--line-strong)}
.system-bus-fill{position:absolute;inset:0;background:var(--border-strong);transform-origin:left center}
.system-layer{position:relative;min-width:0}
.layer-index{position:relative;z-index:1;display:grid;place-items:center;width:28px;height:28px;margin-bottom:var(--s-5);background:var(--surface-raised);border:1.5px solid var(--border-strong);border-radius:4px;color:var(--text-primary);font:600 var(--fs-micro) var(--font-mono);transition:background-color .3s,color .3s,border-color .3s}
.system-layer h3{margin:0 0 .25rem;font-size:1.0625rem}
.layer-role{min-height:2.9em;margin:0 0 var(--s-4);color:var(--muted);font-size:var(--fs-small);line-height:1.45}
.system-layer ul{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.system-layer ul li{padding:.4rem .6rem;background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:4px;color:var(--text);font-size:var(--fs-label);line-height:1.35}
.system-layer--1 .layer-index,.system-layer--2 .layer-index{background:var(--blue);border-color:var(--blue);color:var(--white)}
.system-layer--1 ul li,.system-layer--2 ul li{border-color:var(--blue-300)}
.system-layer--4 .layer-index{background:var(--yellow)}
.system-layer--4 ul li{background:var(--yellow-50);border-color:var(--border-strong)}
.system-layer--5 .layer-index{background:var(--surface-band);color:var(--white)}
/* When scroll motion runs, layers light up as the signal reaches them. */
.system-sheet.is-live .system-layer:not(.is-active) .layer-index{background:var(--surface-raised);border-color:var(--line-strong);color:var(--subtle)}
.system-note{display:flex;gap:.5rem;margin:var(--s-5) 0 0;color:var(--subtle);font-size:var(--fs-micro)}

/* Human control */
.control{background:var(--surface-band);color:var(--on-ink-muted)}
.control :is(h2,h3){color:var(--white)}
.control .eyebrow{color:var(--yellow)}
.control .intro{color:var(--on-ink-muted)}
.control :focus-visible{outline-color:var(--yellow)}
.control-grid-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--s-8);align-items:start}
.control h2{max-width:15ch}
.control-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-5) var(--s-6);margin:var(--s-6) 0 var(--s-5);padding:0;list-style:none}
.control-list li{position:relative;padding-top:var(--s-4);border-top:1px solid var(--ink-line)}
.control-list li::before{content:"";position:absolute;top:-5px;left:0;width:9px;height:9px;background:var(--yellow);border-radius:1px}
.control-list h3{margin:0 0 .3rem;font-size:.9875rem}
.control-list p{margin:0;color:var(--on-ink-muted);font-size:var(--fs-small)}
.control-more{display:inline-flex;align-items:center;min-height:44px;color:var(--white);font-weight:600}
.control-more:hover{color:var(--yellow)}
.gate{position:sticky;top:calc(var(--header-h) + var(--s-6));margin:0;padding:var(--s-5);background:var(--surface-raised);border-radius:var(--radius-sheet);color:var(--text)}
.gate-head{display:flex;justify-content:space-between;gap:var(--s-4);margin-bottom:var(--s-4);padding-bottom:var(--s-3);border-bottom:1px solid var(--line);color:var(--subtle);font-size:var(--fs-micro)}
.gate-head span{font-family:var(--font-mono)}
.gate-hint{margin:0}
.control .gate h3{margin-bottom:var(--s-5);color:var(--text-primary);font-size:1.25rem}
.gate-draft,.gate-node{position:relative;display:grid;grid-template-columns:22px minmax(0,1fr);gap:.75rem;align-items:start;padding:var(--s-4);border:1px solid var(--border-strong);border-radius:6px}
.gate-icon{display:flex}
.gate-icon svg{width:20px;height:20px}
.gate-draft{background:var(--blue);border-color:var(--blue);color:var(--white)}
.gate-draft p{margin:0;font-size:var(--fs-small);font-weight:600}
.gate-node{margin-top:var(--s-6);background:var(--yellow);color:var(--ink)}
.gate-node::before,.gate-outcomes::before{content:"";position:absolute;left:32px;width:1.5px;height:var(--s-6);background:var(--border-strong)}
.gate-node::before{top:calc(-1 * var(--s-6) - 1px)}
.gate-node>p{align-self:center;margin:0;font-weight:650}
.gate-actions{display:flex;flex-wrap:wrap;grid-column:1 / -1;gap:.5rem}
.gate-actions button{min-height:44px;padding:0 1rem;background:var(--surface-raised);border:1.5px solid var(--border-strong);border-radius:var(--radius-control);color:var(--text-primary);font-size:var(--fs-small);font-weight:600;cursor:pointer;transition:background-color var(--motion-micro),color var(--motion-micro)}
.gate-actions button:hover,.gate-actions button[aria-pressed=true]{background:var(--text-primary);color:var(--surface-page)}
.gate .gate-actions button:focus-visible{outline-color:var(--focus-ring)}
.gate-outcomes{position:relative;display:grid;gap:.75rem;margin:var(--s-6) 0 0;padding:0;list-style:none}
.gate-outcomes::before{top:calc(-1 * var(--s-6))}
.gate-outcome{display:grid;grid-template-columns:20px minmax(0,1fr);gap:.75rem;align-items:start;padding:var(--s-3) var(--s-4);border:1px solid var(--line-strong);border-radius:6px;color:var(--text);font-size:var(--fs-small);transition:background-color .3s,border-color .3s,color .3s}
.gate-outcome svg{width:20px;height:20px}
.gate-outcome--approve svg{color:var(--success)}
.gate-outcome--reject svg{color:var(--danger)}
.gate[data-state=approve] .gate-outcome--approve{background:var(--success-50);border-color:var(--success);color:var(--text-primary)}
.gate[data-state=reject] .gate-outcome--reject{background:var(--danger-50);border-color:var(--danger);color:var(--text-primary)}
.gate[data-state=approve] .gate-outcome--reject,.gate[data-state=reject] .gate-outcome--approve{border-style:dashed;color:var(--subtle)}

/* Delivery process, shared with Services */
.home-process{padding-block:var(--section-space);background:var(--surface-raised);border-top:1px solid var(--line)}
.process-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s-3) var(--s-8);align-items:end;margin-bottom:var(--s-7)}
.process-heading .eyebrow{grid-column:1 / -1;margin:0}
.process-heading h2{max-width:20ch;margin:0}
.process-heading .intro{margin:0}
.process-track{position:relative}
.process-line{position:absolute;top:19px;right:calc((100% - 5 * var(--s-5)) / 6 - 20px);left:20px;height:2px;background:var(--line)}
.process-line-fill{position:absolute;inset:0;background:var(--border-strong);transform-origin:left center}
.process-steps{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--s-5);margin:0;padding:0;list-style:none}
.process-steps li{min-width:0}
.process-number{display:grid;place-items:center;width:40px;height:40px;margin-bottom:var(--s-5);background:var(--surface-raised);border:1.5px solid var(--border-strong);border-radius:4px;color:var(--text-primary);font:600 var(--fs-label) var(--font-mono)}
.process-number.is-human{background:var(--yellow)}
.process-number{transition:background-color .35s,border-color .35s,color .35s}
/* Set by motion only while the line has not reached the step; the static drawing never uses it. */
.process-steps li.is-pending .process-number{background:var(--surface-raised);border-color:var(--line-strong);color:var(--subtle)}
.process-steps h3{margin:0 0 .35rem;font-size:1.0625rem}
.process-steps p{margin:0;color:var(--muted);font-size:var(--fs-small)}

/* Training: yellow marks people, so training gets its own band. */
.training-band{background:var(--yellow);color:var(--ink)}
.home-section.training-band,.training-band+.home-section{border-top:0}
.training-band .eyebrow{color:var(--text-primary)}
.training-band .intro{color:var(--text)}
.training-band :focus-visible{outline-color:var(--border-strong)}
.training-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--s-8);align-items:start}
.training-band h2{max-width:15ch}
.training-contrast{max-width:42ch;margin:var(--s-5) 0 var(--s-6);padding-left:var(--s-4);border-left:3px solid var(--border-strong);font-size:1.0625rem;font-weight:650}
.curriculum{padding:var(--s-5);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sheet);box-shadow:8px 8px 0 var(--border-strong)}
.curriculum ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--s-5);margin:0;padding:0;list-style:none}
.curriculum li{display:flex;align-items:center;gap:.7rem;min-height:48px;padding:.6rem 0;border-bottom:1px solid var(--line);font-size:var(--fs-small);font-weight:600}
.curriculum li::before{content:"";flex:none;width:8px;height:8px;border:1.5px solid var(--border-strong);border-radius:1px}
.curriculum-outcome{margin:var(--s-5) 0 0;color:var(--muted);font-size:var(--fs-small)}

/* Final call to action */
.final-cta{background:var(--paper)}
.final-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:var(--s-8);align-items:start}
.final-copy h2{max-width:14ch}
.journey{position:relative;margin:var(--s-6) 0 var(--s-7);padding:0;list-style:none;counter-reset:journey}
.journey::before{content:"";position:absolute;top:22px;bottom:22px;left:13px;width:1.5px;background:var(--border-strong)}
.journey li{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr);gap:var(--s-4);align-items:center;padding:.55rem 0;color:var(--text-primary);font-weight:600;counter-increment:journey}
.journey li::before{content:counter(journey);position:relative;z-index:1;display:grid;place-items:center;width:28px;height:28px;background:var(--surface-raised);border:1.5px solid var(--border-strong);border-radius:4px;font:600 var(--fs-micro) var(--font-mono)}
.journey li:last-child::before{background:var(--blue);border-color:var(--blue);color:var(--white)}
.final-form{padding:clamp(1.25rem,3vw,2.25rem);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sheet)}

/* Forms (shared by home, contact) */
.home-form{display:grid;gap:.5rem}
.home-form label,.home-form legend{color:var(--text-primary);font-size:var(--fs-small);font-weight:600}
.home-form :is(input:not([type=checkbox]),textarea,select){width:100%;min-width:0;min-height:48px;margin-bottom:.6rem;padding:.65rem .85rem;background:var(--surface-raised);border:1px solid var(--control-line);border-radius:var(--radius-control);color:var(--text-primary);font-size:1rem;transition:border-color var(--motion-micro)}
.home-form :is(input,textarea,select):hover{border-color:var(--border-strong)}
.home-form :is(input,textarea,select):focus-visible{border-color:var(--text-link);outline:3px solid var(--focus-ring);outline-offset:3px}
.home-form textarea{min-height:120px;resize:vertical}
.home-form fieldset{min-width:0;margin:0 0 .75rem;padding:var(--s-4);background:var(--sheet);border:1px solid var(--line);border-radius:var(--radius-panel)}
.home-form legend{padding:0 .25rem}
.home-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem .75rem;margin-bottom:var(--s-3)}
.home-form .home-options label{display:flex;align-items:flex-start;gap:.65rem;min-height:44px;padding:.55rem .6rem;border:1px solid transparent;border-radius:var(--radius-control);font-weight:500;cursor:pointer}
.home-form .home-options label:has(input:checked){background:var(--blue-50);border-color:var(--blue-300)}
.home-form input[type=checkbox]{flex:0 0 1.15rem;width:1.15rem;height:1.15rem;margin:.2rem 0 0;accent-color:var(--text-link)}
.home-form button:not([type=submit]){justify-self:start;min-height:44px;padding:.6rem 1rem;background:var(--surface-raised);border:1px solid var(--text-link);border-radius:var(--radius-control);color:var(--text-link);font-weight:600;cursor:pointer}
.home-form button:not([type=submit]):hover{background:var(--blue-50)}
.home-form button[type=submit]{justify-self:start;margin-top:.5rem}
.home-form button:disabled{cursor:not-allowed;opacity:.6}
.home-form button[type=submit]:disabled:hover{background:var(--blue)}
.home-form[aria-busy=true]{opacity:.85}
/* Validation states appear only after the visitor has interacted with the field (:user-*). */
.home-form :is(input:not([type=checkbox]),textarea,select){transition:border-color var(--motion-micro),box-shadow var(--motion-micro)}
.home-form :is(input,textarea,select)[aria-invalid=true],.home-form :is(input:not([type=checkbox]),textarea):user-invalid{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-50)}
.home-form :is(input[required],textarea[required]):not([type=checkbox]):user-valid{border-color:var(--success);box-shadow:0 0 0 3px var(--success-50)}
.home-form input[type=checkbox][aria-invalid=true]{outline:2px solid var(--danger);outline-offset:2px}
.field-error{display:flex;align-items:flex-start;gap:.5rem;margin:-.35rem 0 .5rem;color:var(--danger);font-size:var(--fs-label);font-weight:600;line-height:1.45}
.field-error::before{content:"";flex:none;width:8px;height:8px;margin-top:.35em;background:var(--danger);border-radius:1px}
.home-form .home-consent{display:flex;align-items:flex-start;gap:.65rem;min-height:44px;padding-block:.4rem;font-weight:400;line-height:1.55;cursor:pointer}
.form-provider,#build-note{margin:0;color:var(--muted);font-size:var(--fs-label)}
.home-form>a{display:inline-flex;align-items:center;justify-self:start;min-height:44px;font-size:var(--fs-small)}
.home-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--s-4)}
.home-fields>div{min-width:0}
.home-fields label{display:block;margin-bottom:.5rem}
.home-status{max-width:760px;margin:var(--s-4) 0 0;padding:var(--s-4);background:var(--blue-50);border-left:4px solid var(--text-link);border-radius:var(--radius-control);color:var(--text-primary);overflow-wrap:anywhere}
.home-status:focus{outline:2px solid currentColor;outline-offset:4px}
.home-panel{padding-top:var(--s-5);border-top:1px solid var(--line-strong);overflow-wrap:anywhere}
.home-panel h3{font-size:1.125rem}
.home-panel p{color:var(--muted);font-size:var(--fs-small)}
.home-panel p a{display:inline-flex;align-items:center;min-height:44px}
.home-contact-links{display:flex;flex-wrap:wrap;gap:0 var(--s-5);margin:0;padding:0;list-style:none}
.home-contact-links a{display:inline-flex;align-items:center;min-height:44px;font-size:var(--fs-small);font-weight:600}

/* Plan request and newsletter */
.plan{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:var(--s-8);align-items:start}
.plan-copy h2{max-width:13ch}
.plan-copy>a{display:inline-flex;align-items:center;min-height:44px;font-size:var(--fs-small);font-weight:600}
#builderForm{padding:clamp(1.25rem,3vw,2rem);background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:var(--radius-panel)}
.home-newsletter{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:var(--s-6) var(--s-8);align-items:start}
.home-newsletter h2{max-width:16ch;font-size:clamp(1.5rem,1.2rem + 1.2vw,2.125rem)}
.home-newsletter>div>a{display:inline-flex;align-items:center;min-height:44px;font-size:var(--fs-small);font-weight:600}
.home-newsletter>.home-status{grid-column:1 / -1}

/* Responsive composition */
@media(max-width:1100px){
  .expertise-rail{grid-template-columns:repeat(3,minmax(0,1fr))}
  .system-layers{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:var(--s-7)}
  .system-bus{display:none}
  .process-steps{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:var(--s-7)}
  .process-line{display:none}
  .home-services{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .home-hero,.problems,.split-heading,.control-grid-layout,.training-layout,.final-layout,.plan,.home-newsletter,.catalogue,.process-heading{grid-template-columns:1fr}
  .home-hero{gap:var(--s-7)}
  .home-hero h1{max-width:13ch}
  .problems{gap:var(--s-6)}
  .problems .split-heading{position:static}
  .split-heading,.process-heading{gap:var(--s-4)}
  .offer-frame{grid-template-columns:1fr}
  .offer+.offer{border-top:1px solid var(--line-strong);border-left:0}
  .offer+.offer::before{top:-5px;left:var(--s-6)}
  .catalogue{gap:var(--s-5)}
  .gate{position:relative;top:auto}
}
@media(max-width:760px){
  .system-layers{grid-template-columns:1fr;row-gap:var(--s-6)}
  .system-layer{display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:var(--s-4)}
  .layer-index{grid-row:1 / 4;margin:0}
  .system-layer ul{display:flex;flex-wrap:wrap}
  .layer-role{min-height:0}
  .system-bus{display:block;top:calc(var(--s-7) + 14px);bottom:calc(var(--s-5) + 3rem);left:calc(var(--s-5) + 13px);right:auto;width:2px;height:auto}
  .system-bus-fill{transform-origin:center top}
  .process-steps{grid-template-columns:1fr;gap:0}
  .process-line{display:block;top:0;bottom:0;left:19px;right:auto;width:2px;height:auto}
  .process-line-fill{transform-origin:center top}
  .process-steps li{display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:var(--s-4);padding-bottom:var(--s-6)}
  .process-steps li:last-child{padding-bottom:0}
  .process-number{grid-row:1 / 3;margin:0}
  .process-steps h3{padding-top:.5rem}
}
@media(max-width:540px){
  .home-tools{justify-content:flex-start}
  .home-actions{flex-direction:column;align-items:stretch}
  .home-button{width:100%}
  .expertise-rail{grid-template-columns:1fr;gap:0}
  .expertise-rail li{display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:var(--s-4);padding:var(--s-4) 0}
  .expertise-icon{grid-row:1 / 3;margin:0}
  .expertise-rail p{max-width:none}
  .problem-columns{display:none}
  .problem-row{grid-template-columns:1fr;gap:.35rem}
  .problem-wire{display:none}
  .problem-row dd{padding-left:1.1rem;position:relative}
  .problem-row dd::before{content:"";position:absolute;top:.5em;left:0;width:8px;height:8px;border:1.5px solid var(--text-link);border-radius:1px}
  .offer{padding:var(--s-5)}
  .home-services{grid-template-columns:1fr}
  .system-sheet{padding:var(--s-6) var(--s-4) var(--s-4)}
  .system-bus{top:calc(var(--s-6) + 14px);left:calc(var(--s-4) + 13px)}
  .control-list,.curriculum ul,.home-fields,.home-options{grid-template-columns:1fr}
  .gate{padding:var(--s-4)}
  .curriculum{box-shadow:5px 5px 0 var(--border-strong)}
  .home-form button{max-width:100%;white-space:normal}
  .home-form button[type=submit]{justify-self:stretch}
}
@media print{.home-tools,[data-gate-actions]{display:none!important}[data-reveal]{opacity:1!important;transform:none!important;visibility:visible!important}}
