/* Generated by build.py - colour values injected from company/brand/palette.json.
   Do not edit colour literals here; edit the palette source.
   --amber is a local illustrative accent (construction theme, Revision 1),
   not a corporate-palette extension (company/brand/README.md constraint). */
:root{
  --blue:#094687; --slate:#5C6671; --charcoal:#37393B;
  --blue-dark:#07386c;
  --amber:#c9861f;                           /* decorative only, never text */
  --tint:#f4f6f8; --rule:#d9dde2;           /* neutral ramp: tints of the palette, not new hues */
  --space:0.5rem;                            /* single spacing base unit */
  --measure:42rem;
}
*{box-sizing:border-box}
html{font-size:106.25%}
body{margin:0;color:var(--charcoal);background:#fff;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  line-height:1.7}
/* type scale: small, fixed; h1 fluid within its step */
h1{font-size:clamp(1.85rem,1.2rem + 2.2vw,2.5rem);line-height:1.2;color:var(--charcoal);
  margin:calc(var(--space)*4) 0 calc(var(--space)*2);letter-spacing:-0.01em}
h1 .accent{color:var(--blue)}
h2{font-size:1.375rem;line-height:1.3;color:var(--blue);margin:calc(var(--space)*6) 0 calc(var(--space)*2)}
h3{font-size:1.05rem;line-height:1.35;margin:0 0 var(--space)}
small,.hint,.cta-note,.form-note{font-size:0.875rem}
p,ul{margin:0 0 calc(var(--space)*2)}
main{max-width:64rem;margin:0 auto;padding:calc(var(--space)*4) calc(var(--space)*3) calc(var(--space)*8)}
main>*{max-width:var(--measure)}
main>.hero,main>.card-grid,main>.table-wrap,main>.method-diagram{max-width:none}
a{color:var(--blue)}
/* hero (Revision 1) */
.hero{display:grid;gap:calc(var(--space)*5);align-items:center;
  margin:calc(var(--space)*3) 0 calc(var(--space)*6)}
.hero>*{min-width:0}  /* keep the SVG's intrinsic width from forcing overflow */
@media(min-width:52rem){.hero{grid-template-columns:minmax(0,11fr) minmax(0,9fr)}}
img,svg{max-width:100%}
.hero-lede{font-size:1.125rem;line-height:1.65}
.hero-audience{color:var(--slate)}
.hero-cta{margin-top:calc(var(--space)*3)}
.illus{width:100%;height:auto;display:block}
.side-art{max-width:24rem;margin:calc(var(--space)*4) auto}
/* entry cards (Revision 1) */
.card-grid{display:grid;gap:calc(var(--space)*3);
  grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));
  margin:0 0 calc(var(--space)*4)}
.card{border:1px solid var(--rule);border-radius:8px;background:#fff;
  padding:calc(var(--space)*3)}
.card:hover{border-color:var(--blue)}
.card-icon{width:28px;height:28px;margin-bottom:calc(var(--space)*1.5)}
.card p{margin-bottom:var(--space)}
.card-link{margin:0}
.card-link a{text-decoration:none;font-weight:600}
.card-link a:hover{text-decoration:underline}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:2px solid var(--blue);outline-offset:2px}
.skip-link{position:absolute;left:-999px;top:0;background:#fff;padding:var(--space)}
.skip-link:focus{left:var(--space)}
.site-header{border-bottom:1px solid var(--rule)}
.header-inner,.footer-inner{max-width:64rem;margin:0 auto;padding:calc(var(--space)*2) calc(var(--space)*3);
  display:flex;align-items:center;gap:calc(var(--space)*2.5);flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:var(--space);text-decoration:none;
  color:var(--charcoal);font-weight:600;white-space:nowrap}
.site-header nav{margin-left:auto}
.site-header nav ul{display:flex;align-items:center;gap:calc(var(--space)*2);
  list-style:none;margin:0;padding:0;flex-wrap:wrap;font-size:0.95rem}
.site-header nav a{text-decoration:none;color:var(--charcoal);padding:var(--space) 0}
.site-header nav a[aria-current="page"]{color:var(--blue);font-weight:600;
  border-bottom:2px solid var(--blue)}   /* colour + weight + border: not colour-alone */
.site-header nav a.nav-cta{background:var(--blue);color:#fff;border-radius:999px;
  padding:calc(var(--space)*0.75) calc(var(--space)*2);border-bottom:0;font-weight:600}
.site-header nav a.nav-cta:hover{background:var(--blue-dark)}
.site-header nav a.nav-cta[aria-current="page"]{background:var(--blue-dark);
  outline:2px solid var(--blue);outline-offset:2px}
.lang-switch{color:var(--slate);white-space:nowrap;font-size:0.95rem}
.cta-block{margin:calc(var(--space)*5) 0}
.cta-button{display:inline-block;background:var(--blue);color:#fff;text-decoration:none;
  padding:calc(var(--space)*1.5) calc(var(--space)*3.5);border-radius:6px;border:0;
  font-size:1rem;font-weight:600;font-family:inherit;cursor:pointer}
.cta-button:hover{background:var(--blue-dark)}
.cta-note{color:var(--slate)}
.table-wrap{overflow-x:auto}
table{border-collapse:collapse;width:100%}
th,td{text-align:left;padding:calc(var(--space)*1.5) calc(var(--space)*2);
  border-bottom:1px solid var(--rule);vertical-align:top}
thead th{border-bottom:2px solid var(--slate);font-weight:600} /* rule + weight, no header fill */
.method-diagram{margin:calc(var(--space)*4) 0}
.method-diagram svg{width:100%;height:auto}
.ph-box{fill:#fff;stroke:var(--blue);stroke-width:2}
.ph-num{fill:var(--slate);font-size:20px;font-weight:600}
.ph-name{fill:var(--charcoal);font-size:17px}
.ph-arrow{stroke:var(--slate);stroke-width:2}
.contact-form{margin:calc(var(--space)*3) 0;max-width:32rem}
.field{margin-bottom:calc(var(--space)*3)}
label{display:block;font-weight:600;margin-bottom:calc(var(--space)*0.5)}
input[type=text],input[type=email],select,textarea{width:100%;padding:calc(var(--space)*1.25);
  border:1px solid var(--slate);border-radius:4px;font:inherit;color:var(--charcoal);background:#fff}
select{appearance:auto}
.opt-marker{color:var(--slate);font-weight:400;font-size:0.85em}
.cond-group{margin-bottom:calc(var(--space)*3)}
.cond-group .field:last-child{margin-bottom:0}
.form-expected{margin:calc(var(--space)*2) 0}
fieldset{border:1px solid var(--rule);border-radius:4px;margin:0 0 calc(var(--space)*3);
  padding:calc(var(--space)*2)}
legend{font-weight:600;padding:0 var(--space)}
.radio{display:block;font-weight:400;margin:var(--space) 0}
.hint{color:var(--slate);margin-top:calc(var(--space)*0.5)}
.lang-choice{text-align:center}
.lang-choice-logo{margin-top:calc(var(--space)*8)}
.site-footer{border-top:1px solid var(--rule);margin-top:calc(var(--space)*4)}
.footer-inner{color:var(--slate);justify-content:space-between}
@media (prefers-reduced-motion:no-preference){
  a,button{transition:background-color .15s ease,color .15s ease}}
