    :root { color-scheme: light; --ink:#162434; --muted:#566272; --line:#d8dee4; --paper:#fff; --light:#f3f5f6; --accent:#284d68; }
    * { box-sizing:border-box; }
    html { scroll-behavior:smooth; }
    body { margin:0; background:var(--paper); color:var(--ink); font:400 1rem/1.55 Arial, Helvetica, sans-serif; }
    a { color:inherit; }
    a:focus-visible, button:focus-visible { outline:3px solid #6385a0; outline-offset:4px; }
    .wrap { width:min(100% - 3rem, 1200px); margin-inline:auto; }
    .site-header { background:var(--paper); border-bottom:1px solid var(--line); }
    .header-inner { min-height:82px; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
    .brand { text-decoration:none; font-size:1.06rem; line-height:1.15; font-weight:800; letter-spacing:.055em; max-width:230px; }
    .brand span { display:block; font-size:.77rem; font-weight:400; letter-spacing:.02em; color:var(--muted); margin-top:.3rem; }
    nav { display:flex; align-items:center; gap:clamp(1rem,2.4vw,2.4rem); flex-wrap:wrap; }
    nav a { text-decoration:none; font-size:.91rem; font-weight:600; white-space:nowrap; }
    nav a:hover, .text-link:hover { color:var(--accent); text-decoration:underline; text-underline-offset:5px; }
    .hero { position:relative; overflow:hidden; background:var(--ink); color:white; }
    .hero-construction { position:absolute; inset:0 0 0 auto; width:max(0px, calc((100vw - 1200px)/2 + 80px)); background:url("/images/construction-side.webp") right center / cover no-repeat; opacity:.95; -webkit-mask-image:linear-gradient(90deg, transparent 0%, #000 28%); mask-image:linear-gradient(90deg, transparent 0%, #000 28%); pointer-events:none; }
    @media(max-width:1500px){ .hero-construction { display:none; } }
    .hero-inner { position:relative; z-index:1; padding:clamp(4rem,8vw,8.3rem) 0 clamp(4rem,8vw,7.6rem); display:grid; grid-template-columns:minmax(0,1.55fr) minmax(250px,.55fr); gap:clamp(2rem,7vw,7rem); align-items:end; }
    .eyebrow { margin:0 0 1.2rem; font-size:.78rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:#b7c8d5; }
    h1, h2, h3, p { margin-top:0; }
    h1 { font-size:clamp(2.8rem,5.5vw,5.65rem); line-height:1.06; letter-spacing:-.05em; font-weight:700; margin-bottom:1.55rem; max-width:860px; }
    .hero-lead { font-size:clamp(1.1rem,1.8vw,1.4rem); line-height:1.48; max-width:750px; color:#e1e8ed; margin-bottom:0; }
    .hero-cta { display:inline-block; margin-top:1.7rem; padding:.9rem 1.3rem; background:#fff; color:var(--ink); font-weight:700; text-decoration:none; }
    .hero-cta:hover { background:#dce6ed; }
    .hero-side { min-width:0; display:flex; flex-direction:column; justify-content:space-between; gap:1.4rem; }
    .hero-visual { display:block; width:100%; height:auto; aspect-ratio:600/656; object-fit:cover; }
    .hero-aside { border-top:1px solid #6c7f8e; padding-top:1.2rem; color:#dce4e9; font-size:.98rem; }
    .hero-aside strong { color:#fff; display:block; font-size:1.1rem; margin-bottom:.5rem; }
    .quick-nav { border-bottom:1px solid var(--line); }
    .quick-nav .wrap { display:flex; gap:2rem; overflow-x:auto; padding-block:1.25rem; scrollbar-width:thin; }
    .quick-nav a { color:var(--muted); text-decoration:none; white-space:nowrap; font-size:.89rem; font-weight:700; }
    .quick-nav a:hover { color:var(--ink); }
    section { scroll-margin-top:2rem; }
    .section { padding:clamp(4rem,7vw,7rem) 0; }
    .section + .section { border-top:1px solid var(--line); }
    .section-head { display:grid; grid-template-columns:minmax(160px,.38fr) minmax(0,1fr); gap:2rem; margin-bottom:2.4rem; }
    .section-index { color:var(--accent); font-size:.82rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; padding-top:.58rem; }
    h2 { font-size:clamp(2rem,3.5vw,3.65rem); line-height:1.13; letter-spacing:-.04em; font-weight:700; margin-bottom:1rem; max-width:870px; }
    .section-intro { font-size:1.12rem; color:var(--muted); max-width:770px; margin-bottom:0; }
    .about-head { grid-template-columns:minmax(260px,.5fr) minmax(0,1fr); }
    .about-side img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; margin-top:2rem; }
    .about-followup { margin-top:1.3rem; }
    .feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); background:#fff url("/images/blueprint-services.webp") center / cover no-repeat; }
    .feature { padding:2rem 1.7rem 2.3rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:rgba(255,255,255,.68); }
    .feature .num { display:block; color:var(--accent); font-size:.8rem; font-weight:700; margin-bottom:2.6rem; }
    h3 { font-size:1.2rem; line-height:1.3; letter-spacing:-.02em; margin-bottom:.75rem; }
    .feature p { color:var(--muted); margin-bottom:0; font-size:.98rem; }
    .detail { background:var(--light); }
    .detail-layout { display:grid; grid-template-columns:minmax(210px,.42fr) minmax(0,1fr); gap:clamp(2rem,6vw,6rem); }
    .detail-title h2 { margin-bottom:1rem; }
    .detail-title p { color:var(--muted); }
    .construction-visual { display:block; width:100%; max-width:380px; aspect-ratio:3/4; object-fit:cover; object-position:center 28%; margin-top:2.2rem; -webkit-mask-image:linear-gradient(to bottom,#000 82%,transparent); mask-image:linear-gradient(to bottom,#000 82%,transparent); }
    .service-block { border-top:1px solid #c5ced6; padding:1.7rem 0 1.9rem; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:2rem; }
    .service-block h3 { font-size:1.35rem; margin:0; }
    .service-block p { color:var(--muted); margin:.35rem 0 0; }
    ul { margin:0; padding-left:1.2rem; }
    li { padding-left:.25rem; margin-bottom:.48rem; }
    li:last-child { margin-bottom:0; }
    .notes { margin-top:1.3rem; border-left:3px solid var(--accent); padding:1rem 1.4rem; background:#fff; color:#3e4d5c; }
    .other-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.1rem; }
    .other-card { border:1px solid var(--line); padding:2rem; min-height:280px; }
    .other-card h3 { font-size:1.4rem; }
    .other-card p { color:var(--muted); }
    .other-card ul { margin-top:1.1rem; }
    .tender-layout { width:min(100% - 3rem,1480px); margin-inline:auto; display:grid; grid-template-columns:minmax(0,1200px) minmax(210px,1fr); gap:2rem; align-items:stretch; }
    .tender-content { min-width:0; }
    .tender-visual { overflow:hidden; min-height:560px; }
    .tender-visual img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
    .documents-layout { width:min(100% - 3rem,1480px); margin-inline:auto; display:grid; grid-template-columns:minmax(210px,1fr) minmax(0,1200px); gap:2rem; align-items:stretch; }
    .documents-visual { overflow:hidden; min-height:430px; }
    .documents-visual img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
    .process { background:var(--ink); color:white; }
    .process .section-index, .process .section-intro { color:#b7c8d5; }
    .steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:#506274; border:1px solid #506274; }
    .step { background:var(--ink); padding:2rem; }
    .step .num { display:block; color:#adc5d7; font-size:.83rem; margin-bottom:2.4rem; }
    .step h3 { color:white; }
    .step p { color:#c9d4dc; margin:0; }
    .closing { padding:clamp(4rem,7vw,7rem) 0; }
    .closing-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(270px,.6fr); gap:4rem; align-items:start; }
    .closing h2 { max-width:720px; }
    .closing p { color:var(--muted); max-width:650px; }
    .checklist { border-top:2px solid var(--ink); padding-top:1.5rem; }
    .checklist h3 { margin-bottom:1rem; }
    .checklist ul { color:var(--muted); }
    footer { border-top:1px solid var(--line); color:var(--muted); padding:2rem 0; font-size:.88rem; }
    .footer-inner { display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
    @media (max-width:1200px) {
      .tender-layout { display:block; width:min(100% - 3rem,1200px); }
      .tender-visual { display:none; }
      .documents-layout { display:block; width:min(100% - 3rem,1200px); }
      .documents-visual { display:none; }
    }
    @media (max-width:900px) {
      .hero-inner { grid-template-columns:1fr; gap:2.5rem; }
      .hero-aside { max-width:650px; }
      .feature-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
      .detail-layout { grid-template-columns:1fr; gap:1rem; }
      .detail-title { max-width:750px; }
      .construction-visual { max-height:320px; }
    }
    @media (max-width:680px) {
      .wrap { width:min(100% - 2rem, 1200px); }
      .header-inner { align-items:flex-start; flex-direction:column; padding:1.1rem 0; gap:1.2rem; }
      nav { gap:.9rem 1.3rem; }
      nav a { font-size:.84rem; }
      .hero-inner { padding:4rem 0; }
      .section-head, .service-block, .closing-layout { grid-template-columns:1fr; gap:1rem; }
      .about-head { grid-template-columns:1fr; }
      .about-side img { display:none; }
      .section-index { padding:0; }
      .feature-grid, .other-grid, .steps { grid-template-columns:1fr; }
      .feature .num, .step .num { margin-bottom:1.5rem; }
      .feature, .other-card, .step { padding:1.5rem; min-height:0; }
      .service-block { gap:.8rem; }
    }
    @media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
    .feature .text-link { display:inline-block; color:var(--accent); font-size:.92rem; font-weight:700; text-decoration:none; margin-top:1.3rem; }
    .feature .text-link:hover { text-decoration:underline; text-underline-offset:5px; }
    .inner-hero { background:var(--ink); color:#fff; padding:clamp(3rem,6vw,6rem) 0; }
    .inner-hero h1 { max-width:900px; font-size:clamp(2.5rem,5vw,5rem); }
    .inner-hero p:last-child { max-width:760px; font-size:1.2rem; color:#dce5ec; margin-bottom:0; }
    .back-link { display:inline-block; color:#bfced9; text-decoration:none; font-size:.92rem; margin-bottom:2rem; }
    .back-link:hover { color:#fff; text-decoration:underline; }
    .page-grid { display:grid; grid-template-columns:minmax(180px,.35fr) minmax(0,1fr); gap:clamp(2rem,6vw,6rem); }
    .article-section { padding:clamp(3.5rem,6vw,6rem) 0; border-bottom:1px solid var(--line); }
    .article-section h2 { font-size:clamp(1.9rem,3vw,3.1rem); }
    .article-section p { color:var(--muted); font-size:1.05rem; max-width:800px; }
    .article-section ul { max-width:790px; }
    .article-section li { margin-bottom:.8rem; }
    .article-section .notes { margin-top:2rem; max-width:850px; }
    .article-cta { background:var(--light); padding:clamp(3.5rem,6vw,6rem) 0; }
    .article-cta p { color:var(--muted); max-width:720px; }
    .button-link { display:inline-block; background:var(--ink); color:white; text-decoration:none; padding:.9rem 1.3rem; font-weight:700; margin-top:.5rem; }
    .button-link:hover { background:var(--accent); }
    @media(max-width:680px){ .page-grid { grid-template-columns:1fr; gap:1rem; } }
    .hero-aside ol { padding-left:1.25rem; margin:.7rem 0 0; }
    .hero-aside li { margin-bottom:.6rem; }
    .quiz-shell { border:1px solid var(--line); padding:clamp(1.3rem,3vw,2.8rem); max-width:900px; }
    .quiz-progress { color:var(--accent); font-size:.86rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; margin-bottom:1.7rem; }
    .quiz-step { border:0; padding:0; margin:0; min-width:0; }
    .quiz-step[hidden], #quiz-result[hidden], #quiz-back[hidden], #quiz-next[hidden], #quiz-finish[hidden], #quiz-error[hidden] { display:none; }
    .quiz-step legend { font-size:1.7rem; font-weight:700; letter-spacing:-.03em; line-height:1.25; padding:0; margin-bottom:1.6rem; }
    .choice-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
    .choice-grid label { display:flex; align-items:center; gap:.85rem; border:1px solid var(--line); padding:1rem 1.1rem; cursor:pointer; min-height:64px; }
    .choice-grid label:has(input:checked) { border-color:var(--ink); background:var(--light); }
    .choice-grid input { accent-color:var(--accent); width:1.15rem; height:1.15rem; flex:none; }
    .choice-grid span { font-size:1rem; font-weight:600; line-height:1.3; }
    .quiz-actions { display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; margin-top:2rem; }
    .quiz-next, .quiz-back { font:700 1rem/1.2 Arial,Helvetica,sans-serif; padding:.85rem 1.25rem; cursor:pointer; min-height:48px; }
    .quiz-next { background:var(--ink); border:1px solid var(--ink); color:#fff; }
    .quiz-next:hover { background:var(--accent); border-color:var(--accent); }
    .quiz-back { background:#fff; border:1px solid var(--line); color:var(--ink); }
    .quiz-back:hover { border-color:var(--ink); }
    .quiz-error { color:#a02929; font-weight:600; margin:1rem 0 0; }
    .form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem; }
    .form-grid label { display:flex; flex-direction:column; gap:.5rem; font-weight:700; }
    .form-grid .full { grid-column:1/-1; }
    .form-grid input, .form-grid textarea { width:100%; border:1px solid #aeb9c2; padding:.85rem; font:400 1rem/1.4 Arial,Helvetica,sans-serif; color:var(--ink); border-radius:0; }
    .form-grid textarea { resize:vertical; }
    #quiz-summary { max-width:100%; white-space:pre-wrap; overflow-wrap:anywhere; font:400 1rem/1.6 Arial,Helvetica,sans-serif; background:var(--light); border:1px solid var(--line); padding:1.2rem; }
    .quiz-status { min-height:1.4rem; color:var(--accent); font-weight:700; margin:.8rem 0; }
    @media(max-width:680px){ .choice-grid, .form-grid { grid-template-columns:1fr; } }
    .form-note { color:var(--muted); font-size:.9rem; margin:1.2rem 0 0; }
    .honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
    .quiz-next:disabled { opacity:.58; cursor:wait; }
    .short-form { display:grid; gap:1rem; }
    .short-form label { display:grid; gap:.45rem; font-weight:700; }
    .short-form input, .short-form textarea { width:100%; border:1px solid #aeb9c2; padding:.85rem; font:400 1rem/1.4 Arial,Helvetica,sans-serif; color:var(--ink); border-radius:0; }
    .short-form textarea { resize:vertical; }
    .short-form button { justify-self:start; }
    #short-status { min-height:1.5rem; margin:0; font-weight:600; }
/* Legal pages and explicit form consent. */
.footer-legal { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; font-size:.82rem; }
.footer-legal a { color:inherit; }
.consent-control, .short-form .consent-control { display:flex; align-items:flex-start; gap:.65rem; font-size:.88rem; line-height:1.5; font-weight:400; margin-top:1.2rem; }
.consent-control input, .short-form .consent-control input { width:1.15rem; height:1.15rem; flex:none; margin:.14rem 0 0; accent-color:#255176; }
.consent-control a { color:inherit; text-decoration:underline; }
.legal-page { max-width:850px; padding-top:4rem; padding-bottom:5rem; }
.legal-page h1 { font-size:clamp(2rem,5vw,3rem); line-height:1.1; }
.legal-page h2 { margin-top:2.3rem; font-size:1.35rem; }
.legal-page p { line-height:1.7; }
/* Contact links sit with the commercial content and use the existing palette. */
.contact-section { background:var(--light); }
.contact-channels { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid var(--line); background:var(--line); gap:1px; }
.channel-card { min-height:98px; padding:1.15rem 1.3rem; display:flex; align-items:center; gap:.9rem; background:var(--paper); font-weight:700; line-height:1.25; text-decoration:none; }
.channel-card small { display:block; margin-top:.4rem; font-size:.87rem; line-height:1.3; font-weight:400; color:var(--muted); overflow-wrap:anywhere; }
.channel-mark { width:2.5rem; height:2.5rem; flex:none; display:grid; place-items:center; border:1px solid var(--line); font-size:.83rem; font-weight:800; letter-spacing:.02em; color:var(--accent); }
.channel-active:hover, .channel-active:focus-visible { background:#e7edf1; }
.channel-arrow { margin-left:auto; align-self:center; font-size:1.25rem; color:var(--accent); }
.channel-pending { color:#626d77; }
.channel-pending .channel-mark { color:#747f89; }
@media(max-width:800px){ .contact-channels { grid-template-columns:1fr; } }

/* Email-only launch: keep unconnected intake forms out of the public flow. */
[hidden] { display:none!important; }
