/* iSpace VI, web application v1.2. Colour roles are deliberate:
   orange = primary invitation; blue = selection/navigation; amber = warning.
   The supplied raster board is a reference, not a production logo master. */
:root{
  --vi-blue:#0b3d91;
  --vi-bright:#2a8cff;
  --vi-orange:#ff8a00;
  --vi-grey:#e8eef6;
  --vi-navy:#071b3a;
  --vi-blue-light:#7dbbff;
  --vi-ink:#0b1f42;
  --vi-muted:#52627a;
  --vi-border:#c6d3e4;
  --vi-surface:#f5f8fc;
  --brand:var(--vi-bright);
  --brand-ink:var(--vi-blue);
  --surface:var(--vi-surface);
  --surface-soft:var(--vi-grey);
  --text:var(--vi-ink);
  --text-muted:var(--vi-muted);
  --border:var(--vi-border);
  --ink:var(--vi-ink);
  --dark:var(--vi-navy);
  --paper:var(--vi-surface);
  --muted:var(--vi-muted);
  --line:var(--vi-border);
  /* Compatibility alias for existing component rules. */
  --cyan:var(--vi-blue-light);
  --cyan-soft:#e7f1ff;
}
body{background:var(--vi-surface);color:var(--vi-ink)}
::selection{background:#c3dcff;color:var(--vi-ink)}
.wordmark,.brand-line{font-style:normal;letter-spacing:-.035em}
.brand-initial{color:var(--vi-orange)}
.footer-brand .brand-initial{color:#b65300}
.site-header{background:#071b3af5}
.desktop-nav a::after,.reading-progress{background:var(--vi-bright)}
.hero::before{background:radial-gradient(ellipse at 75% 65%,#164b8830,transparent 60%)}
.hero-glow{opacity:.35}
.story-hero{background:radial-gradient(ellipse at 90% 25%,#12468155,transparent 60%),var(--vi-navy)}
.page-hero h1 em{color:var(--vi-blue-light)}
.eyebrow>span:first-child,.section-dark .eyebrow>span:first-child{background:var(--vi-orange)}
.hero-description,.hero-product-label{color:#e8eef6}
.hero-description span,.hero-disclaimer{color:#abbcd2}
.hero-product-label{background:#0c2444ed;border-color:#3f5e82}
.hero-product-label>span{color:#afc7e5}
.hero-product-label a{color:var(--vi-blue-light)}
.hero-callout{background:#0c2444e8;border-color:#5686bd;color:#f5f8fc}
.callout-dot{background:var(--vi-orange);box-shadow:0 0 0 5px #ff8a0020}
.hero-callout::after{background:var(--vi-orange)}
.button-primary,.button-dark{background:var(--vi-blue);color:#fff;border-color:var(--vi-blue)}
.button-primary:not(:disabled):hover,.button-dark:not(:disabled):hover{background:#082f72;border-color:#082f72;box-shadow:0 5px 18px #0b3d911a}
.hero-actions .button-primary,.summary-strip .button-primary,.composition .button-primary,.catalog-float{background:var(--vi-orange);color:var(--vi-navy);border-color:var(--vi-orange)}
.hero-actions .button-primary:not(:disabled):hover,.summary-strip .button-primary:not(:disabled):hover,.composition .button-primary:not(:disabled):hover,.catalog-float:not(:disabled):hover{background:#ffa52e;color:var(--vi-navy);border-color:#ffa52e;box-shadow:0 5px 18px #ff8a0020}
.header-cta{border-color:#7291b8;color:#fff}
.header-cta:hover{background:var(--vi-orange);color:var(--vi-navy);border-color:var(--vi-orange)}
.text-link:hover,.text-button:hover,.inline-button:hover{color:var(--vi-blue);border-color:var(--vi-blue)}
.section-dark .text-link:hover,.section-dark .text-button:hover,.composition .text-button:hover,.stage-industrial .text-link:hover,.text-link.light:hover{color:var(--vi-blue-light);border-color:var(--vi-blue-light)}
button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--vi-blue);outline-offset:4px}
.section-dark :focus-visible,.site-header :focus-visible,.page-hero :focus-visible,.model-viewer :focus-visible,.composition :focus-visible,.stage-industrial :focus-visible,.boundary-panel :focus-visible,.summary-strip :focus-visible{outline-color:var(--vi-orange)}
.segmented input:focus-visible+span{outline-color:var(--vi-blue)}
.stage-choice:has([aria-pressed=true]){border-color:var(--vi-blue)}
.stage-choice p,.delivery-note p,.family-details p{color:var(--vi-muted)}
.stage-panel,.recipe-panel,.public-history{background:var(--vi-grey);border-color:var(--vi-border)}
.stage-panel dt,.sample-sheet dt,.sample-stamp,.recipe-outcome dt,.recipe-steps b,.history-track b{color:var(--vi-blue)}
.sample-sheet{background:#fff;border-top-color:var(--vi-blue);box-shadow:0 12px 30px #0b3d9108}
.sample-flow span,.recipe-steps span{background:#f5f8fc}
.stage-panel .capability-note,.sample-sheet .sample-disclaimer{color:var(--vi-muted)}
.scenario-bridge{background:var(--vi-navy)}
.scenario-bridge .page-kicker{color:var(--vi-blue-light)}
.scenario-bridge .button{background:var(--vi-orange);color:var(--vi-navy);border-color:var(--vi-orange)}
.scenario-bridge .button:hover{background:#ffa52e}
.section-experience{background:#e8eef6;border-color:var(--vi-border)}
.parameter-panel,.impact-panel,.workbench-footer{background:#fff;border-color:var(--vi-border)}
.selected-scenario{background:#e7f1ff;color:var(--vi-blue);border-color:var(--vi-bright)}
.segmented input:checked+span,.segmented button.is-selected{background:var(--vi-blue);color:#fff}
.impact-item.is-active .impact-number{background:#dceaff;color:var(--vi-blue)}
.impact-item.is-active strong,.impact-panel h3>span{color:var(--vi-blue)}
.change-explanation{background:#e7f1ff;color:#173c70;border-left-color:var(--vi-blue)}
.model-viewer,.compare-pane{background:var(--vi-navy);border-color:#304c72}
.viewer-tools .icon-button,.viewer-actions button,.detail-views button{background:#132c4d;color:#e8eef6;border-color:#5c789d}
.viewer-tools .icon-button:hover,.viewer-actions button:hover,.detail-views button:hover{background:#21446f}
.detail-views button[aria-pressed=true],.viewer-actions button[aria-pressed=true]{background:var(--vi-blue);color:#fff;border-color:var(--vi-blue-light)}
.viewer-mode,.viewer-bottom,.viewer-load{color:#cad9ec}
.viewer-bottom>span{color:#dbe8f8!important;border-color:#5c789d}
.viewer-bottom .text-button:hover{color:var(--vi-blue-light)}
.model-hotspots button{background:#0b284be8;border-color:var(--vi-orange);color:#fff}
.model-hotspots button:focus-visible{outline-color:var(--vi-orange)}
.compare-caption,.after .compare-caption{background:#173457;color:#dceaff;border-color:#6788b2}
.compare-pane figcaption span{color:#afc7e5}
.viewer-fallback{background:var(--vi-navy);color:#fff}
.viewer-fallback>p{color:#cad9ec}
.scenario-offer{border-color:var(--vi-border)}
.scenario-offer:hover{background:#f0f6ff;border-color:var(--vi-blue)}
.scenario-offer[aria-pressed=true]{background:#e7f1ff;border-color:var(--vi-blue);box-shadow:inset 0 3px var(--vi-blue)}
.scenario-offer>span:first-child,.scenario-offer b,.catalog-card .type-label,.detail-type{color:var(--vi-blue)}
.scenario-offer>span,.recipe-panel p{color:var(--vi-muted)}
.filter-button[aria-pressed=true]{background:var(--vi-blue);border-color:var(--vi-blue);color:#fff}
.catalog-card.selected{border-color:var(--vi-blue);box-shadow:inset 0 3px var(--vi-blue)}
.catalog-card:hover{border-color:var(--vi-blue)}
.composition-group h3{color:var(--vi-blue-light)}
.composition>p,.composition-group small{color:#b8c9df}
.composition-group button{color:#fff}
.closing-banner{background:#e8eef6}
.closing-banner p{color:var(--vi-muted)}
.story-number{color:#8aa2c3}
.story-stage h3{color:var(--vi-muted)}
.stage-park,.story-brand{background:var(--vi-grey)}
.stage-industrial{background:var(--vi-navy)}
.stage-industrial h3,.stage-industrial .page-kicker{color:var(--vi-blue-light)}
.stage-industrial .story-stage-content>p{color:#c1d1e6}
.stage-industrial .story-number{color:#6b8fbf}
.stage-industrial .story-focus span{color:#a7bedc}
.evidence-card{background:#f7faff;border-left-color:var(--vi-blue);color:var(--vi-ink)}
.stage-industrial .evidence-card h3{color:var(--vi-ink)}
.stage-industrial .evidence-card .page-kicker{color:var(--vi-blue)}
.brand-destinations a{background:#fff;border-color:var(--vi-border)}
.brand-destinations a:hover{border-color:var(--vi-blue)}
.history-track p,.evidence-card small,.story-intro p:not(.eyebrow),.story-stage-content>p,.story-brand p:not(.eyebrow){color:var(--vi-muted)}
.story-route a>span{color:var(--vi-blue-light)}
.story-route small,.story-company{color:#b0c4de!important}
.contact-copy h2>span,.contact-summary-icon,.contact-summary.is-ready .contact-summary-icon{color:var(--vi-blue)}
.form-group input,.form-group textarea,.form-group select,#consultation-intent{background:#fff;color:var(--vi-ink);border-color:#8a9fbd}
.form-group input::placeholder,.form-group textarea::placeholder{color:#65748b}
.checkbox-row input{accent-color:var(--vi-blue)}
.email-route-note{background:var(--vi-grey);color:var(--vi-muted)}
.email-route-note a{color:var(--vi-blue)}
.site-footer{background:var(--vi-grey)}
.summary-dialog,.small-dialog{background:#f5f8fc;color:var(--vi-ink);border-color:var(--vi-border)}
.summary-dialog pre,.detail-body div{background:var(--vi-grey)}
/* Warning colours stay distinct from the brand orange action. */
.boundary-status{color:#ffcf80;background:#5a3b1433;border-color:#a97a35}
.stale-notice{background:#fff2d9;color:#76501c;border-color:#c7a365}
.site-footer{flex-wrap:wrap}
.subpage-footer{flex-wrap:wrap;background:var(--vi-grey)}
.subpage-footer nav{display:flex;gap:24px;flex-wrap:wrap}
.footer-legal{flex:0 0 100%;display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;border-top:1px solid var(--vi-border);padding-top:20px;color:var(--vi-muted);font-size:12px;line-height:1.8}
.footer-legal a{min-height:32px;display:inline-flex;align-items:center}
.footer-legal a:hover{color:var(--vi-blue);text-decoration:underline;text-underline-offset:4px}
@media(max-width:767px){.footer-legal{margin-top:20px;display:flex;flex-direction:column;align-items:flex-start;gap:4px}.subpage-footer nav{gap:10px 20px}.footer-meta>div{flex-wrap:wrap}}
/* VI horizontal lockup. Keep the symbol visible at every breakpoint. */
.brand{align-items:center;gap:9px}
.brand-mark{display:block;width:44px;height:46px;object-fit:contain;flex:0 0 auto;margin-right:3px}
.brand .wordmark{line-height:1.1}
.brand .brand-line{line-height:1.2}
.footer-brand .brand-mark{width:38px;height:40px}
@media(min-width:768px) and (max-width:1100px){.site-header .brand-mark{width:36px;height:38px}.site-header .wordmark{font-size:27px}.site-header .brand-line{font-size:16px}.site-header .brand{gap:7px}}
@media(max-width:767px){.site-header .brand-mark{width:36px;height:38px;margin-right:1px}.site-header .brand{gap:7px}.site-header .wordmark{font-size:27px}.site-header .brand-line{font-size:16px}.subpage-footer .brand{align-self:flex-start}}
