/* Capability pages — same light treatment as the home page: logo blue #004a99, navy #002856. */
:root { --blue:#004a99; --navy:#002856; --ink:#18212d; --text:#3f4f66; --muted:#5b6573; --line:rgba(0,40,86,.12); --bg:#f6f7f9; }
* { box-sizing:border-box; margin:0; }
html { scroll-behavior:smooth; }
body { font-family:Inter,system-ui,sans-serif; color:var(--ink); background:#fff; -webkit-font-smoothing:antialiased; }
img { max-width:100%; display:block; }
a { color:inherit; }
svg { width:14px; height:14px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.wrap { max-width:1440px; margin:0 auto; padding:0 20px; }
@media (min-width:640px){ .wrap { padding:0 32px; } }
@media (min-width:1024px){ .wrap { padding:0 56px; } }
.eyebrow { display:flex; align-items:center; gap:12px; font-size:10px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--blue); }
.eyebrow::before { content:""; width:32px; height:1px; background:currentColor; }
h1 { margin-top:20px; font-size:clamp(2.4rem,5vw,4.2rem); line-height:1; letter-spacing:-.045em; font-weight:600; color:var(--navy); }
h2 { font-size:clamp(1.8rem,3.2vw,2.8rem); line-height:1.05; letter-spacing:-.04em; font-weight:600; color:var(--navy); }
.lead { margin-top:24px; max-width:40rem; font-size:1.1rem; line-height:1.7; color:var(--text); }
.btn { display:inline-flex; align-items:center; gap:10px; padding:16px 24px; background:var(--blue); color:#fff; font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; text-decoration:none; transition:background .2s; }
.btn:hover { background:var(--navy); }
.btn-line { display:inline-flex; align-items:center; gap:8px; padding:12px 18px; border:1px solid var(--blue); color:var(--blue); font-size:11px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; text-decoration:none; }
.btn-line:hover { background:var(--blue); color:#fff; }
.btn-text { font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--navy); text-decoration:none; border-bottom:1px solid var(--line); padding-bottom:4px; }
.btn-text:hover { color:var(--blue); border-color:var(--blue); }
.actions { margin-top:36px; display:flex; flex-wrap:wrap; align-items:center; gap:20px 28px; }
a:focus-visible, summary:focus-visible { outline:2px solid var(--blue); outline-offset:4px; }

/* header */
.hd { position:sticky; top:0; z-index:20; background:rgba(255,255,255,.96); border-bottom:1px solid var(--line); backdrop-filter:blur(6px); }
.hd-in { display:flex; align-items:center; justify-content:space-between; padding-top:14px; padding-bottom:14px; }
.hd-logo img { width:200px; height:auto; margin:-14px 0; }
.hd-nav { display:none; align-items:center; gap:32px; }
.hd-nav > a:not(.btn-line) { font-size:11px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:#1d3557; text-decoration:none; }
.hd-nav > a:not(.btn-line):hover { color:var(--blue); }
.hd-menu summary { list-style:none; cursor:pointer; display:grid; gap:4px; padding:11px 10px; border:1px solid rgba(0,40,86,.3); }
.hd-menu summary::-webkit-details-marker { display:none; }
.hd-menu summary span { display:block; width:18px; height:2px; background:var(--navy); }
.hd-menu nav { position:absolute; left:0; right:0; top:100%; background:#fff; border-bottom:1px solid var(--line); padding:12px 20px 20px; display:grid; }
.hd-menu nav a { padding:12px 0; font-size:1.4rem; font-weight:600; color:var(--navy); text-decoration:none; border-bottom:1px solid var(--line); }
@media (min-width:1024px){ .hd-nav { display:flex; } .hd-menu { display:none; } }

/* sections */
.intro, .cap-hero { padding:64px 0 72px; background:linear-gradient(180deg,#fff 0%,#eef3f9 100%); }
.crumbs { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:28px; font-size:12px; color:var(--muted); }
.crumbs a { text-decoration:none; } .crumbs a:hover { color:var(--blue); }
.cap-grid { display:grid; gap:48px; align-items:center; }
@media (min-width:1024px){ .cap-grid { grid-template-columns:1fr 1fr; gap:72px; } }
.cap-img { position:relative; margin:0 14px 14px 0; }
.cap-img::before { content:""; position:absolute; inset:28px -14px -14px 28px; background:var(--blue); border-radius:20px; z-index:0; }
.cap-img img { position:relative; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:20px; box-shadow:0 30px 60px -24px rgba(0,40,86,.45); }
.detail { padding:80px 0; }
.detail-grid { display:grid; gap:48px; }
@media (min-width:1024px){ .detail-grid { grid-template-columns:1.3fr .7fr; gap:80px; } }
.prose p { font-size:1.05rem; line-height:1.8; color:var(--text); }
.prose p + p { margin-top:1.1em; }
.features { padding:28px; background:var(--bg); border-left:3px solid var(--blue); align-self:start; }
.features ul { margin-top:18px; padding:0; list-style:none; display:grid; gap:12px; }
.features li { position:relative; padding-left:22px; line-height:1.55; color:var(--ink); }
.features li::before { content:""; position:absolute; left:0; top:.55em; width:8px; height:8px; background:var(--blue); }
.list { padding:72px 0 88px; background:var(--bg); }
.list-head { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:16px; margin-bottom:32px; }
.grid { display:grid; gap:20px; }
@media (min-width:640px){ .grid { grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .grid { grid-template-columns:repeat(3,1fr); } }
.card { display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); text-decoration:none; transition:transform .2s, box-shadow .2s; }
.card:hover { transform:translateY(-4px); box-shadow:0 18px 40px -20px rgba(0,40,86,.35); }
.card-img { display:block; aspect-ratio:16/10; overflow:hidden; background:#dfe6ef; }
.card-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.card:hover .card-img img { transform:scale(1.04); }
.card-body { display:flex; flex-direction:column; gap:10px; padding:24px; flex:1; }
.card-title { font-size:1.35rem; font-weight:600; letter-spacing:-.03em; color:var(--navy); }
.card-text { font-size:.92rem; line-height:1.6; color:var(--text); flex:1; }
.more { display:inline-flex; align-items:center; gap:8px; margin-top:6px; font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--blue); }
.band { padding:72px 0; background:var(--navy); color:#fff; }
.band-in { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:28px; }
.band .eyebrow { color:#9db4d6; }
.band h2 { margin-top:16px; color:#fff; }
.band .btn { background:#fff; color:var(--navy); }
.band .btn:hover { background:#dfe6ef; }

/* footer */
.ft { border-top:1px solid var(--line); background:#fff; color:var(--muted); }
.ft-grid { display:grid; gap:40px; padding-top:56px; padding-bottom:48px; }
@media (min-width:768px){ .ft-grid { grid-template-columns:repeat(3,1fr); } }
.ft-grid img { width:220px; height:auto; margin:-16px 0 0 -6px; }
.ft-grid p { margin-top:14px; font-size:.9rem; line-height:1.7; }
.ft-grid a { color:var(--navy); text-decoration:none; } .ft-grid a:hover { color:var(--blue); }
.addr span { display:block; }
.ft-bar { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; padding-top:20px; padding-bottom:28px; border-top:1px solid var(--line); font-size:10px; letter-spacing:.13em; text-transform:uppercase; }
.ft-bar a { color:var(--blue); font-weight:700; text-decoration:none; }
@media (prefers-reduced-motion:reduce){ *{ transition:none !important; scroll-behavior:auto !important; } }

/* ── multi-page additions ── */
.hd-nav > a[aria-current="page"] { color:var(--blue); box-shadow:inset 0 -2px 0 var(--blue); padding-bottom:4px; }
.hd-menu nav a[aria-current="page"] { color:var(--blue); }
.sec-title { margin-top:16px; max-width:44rem; }
.note { margin-top:20px; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.eyebrow-plain { display:block; font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--blue); }
.stats { display:grid; gap:24px; align-content:start; }
.stats div { padding:20px 24px; background:var(--bg); border-left:3px solid var(--blue); }
.stats strong { display:block; font-size:2rem; font-weight:600; letter-spacing:-.03em; color:var(--navy); }
.stats span { font-size:11px; letter-spacing:.13em; text-transform:uppercase; color:var(--muted); }
.steps { margin-top:36px; }
.step { padding:28px; background:#fff; border:1px solid var(--line); }
.step .num { font-size:12px; color:var(--blue); }
.step h3 { margin-top:28px; font-size:1.4rem; font-weight:600; letter-spacing:-.03em; color:var(--navy); }
.step p { margin-top:12px; font-size:.95rem; line-height:1.65; color:var(--text); }
.quote { padding:88px 0; background:#fff; text-align:center; }
.quote blockquote { max-width:52rem; margin:0 auto; font-size:clamp(1.5rem,3vw,2.4rem); line-height:1.25; letter-spacing:-.03em; font-weight:500; color:var(--navy); }
.quote p { margin-top:20px; font-size:10px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.sectors { grid-template-columns:repeat(2,1fr); }
@media (min-width:768px){ .sectors { grid-template-columns:repeat(3,1fr); } }
.sector { position:relative; display:flex; flex-direction:column; justify-content:flex-end; min-height:240px; padding:24px; background:#dfe6ef center/cover; overflow:hidden; }
.sector::before { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,40,86,.85),rgba(0,40,86,.15)); }
.sector > * { position:relative; }
.sector .eyebrow-plain { color:#c9d6ea; }
.sector h3 { margin-top:8px; font-size:1.5rem; font-weight:600; letter-spacing:-.03em; color:#fff; }
.timeline { list-style:none; padding:0; max-width:56rem; display:grid; }
.timeline li { display:grid; grid-template-columns:72px 1fr; gap:24px; padding:32px 0; border-top:1px solid var(--line); }
.timeline li:last-child { border-bottom:1px solid var(--line); }
.timeline .num { font-size:2.2rem; font-weight:600; letter-spacing:-.04em; color:var(--blue); line-height:1; }
.timeline h3 { font-size:1.6rem; font-weight:600; letter-spacing:-.03em; color:var(--navy); }
.timeline p { margin-top:10px; line-height:1.7; color:var(--text); }
.filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:28px; }
.filters a { padding:8px 12px; border:1px solid rgba(0,40,86,.25); font-size:10px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--text); text-decoration:none; }
.filters a:hover { border-color:var(--blue); color:var(--blue); }
.filters a[aria-current] { background:var(--blue); border-color:var(--blue); color:#fff; }
.gallery { grid-template-columns:1fr; }
@media (min-width:640px){ .gallery { grid-template-columns:repeat(2,1fr); } }
.shot { position:relative; display:block; height:340px; overflow:hidden; background:var(--navy); text-decoration:none; }
.shot img { width:100%; height:100%; object-fit:cover; opacity:.9; transition:transform .5s; }
.shot:hover img { transform:scale(1.04); }
.shot::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,40,86,.85),transparent 60%); }
.shot > span { position:absolute; left:24px; right:24px; bottom:22px; z-index:1; color:#fff; }
.shot .eyebrow-plain { color:#c9d6ea; }
.shot strong { display:block; margin-top:6px; font-size:1.4rem; font-weight:600; letter-spacing:-.03em; }
.viewer { display:none; position:fixed; inset:0; z-index:50; align-items:center; justify-content:center; padding:20px; background:rgba(0,20,45,.94); }
.viewer:target { display:flex; }
.viewer figure { max-width:64rem; width:100%; }
.viewer img { max-height:78vh; width:100%; object-fit:contain; }
.viewer figcaption { margin-top:14px; color:#fff; font-size:1.1rem; }
.viewer-close { position:absolute; top:18px; right:18px; width:44px; height:44px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.35); color:#fff; font-size:26px; text-decoration:none; }
.contact-grid { display:grid; gap:48px; }
@media (min-width:1024px){ .contact-grid { grid-template-columns:.8fr 1.2fr; gap:72px; } }
.contact-info { display:grid; gap:24px; align-content:start; }
.contact-info p { line-height:1.7; color:var(--text); }
.contact-info .eyebrow-plain { margin-bottom:6px; }
.contact-info a { color:var(--navy); text-decoration:none; font-weight:600; } .contact-info a:hover { color:var(--blue); }
.form-card { padding:32px; background:var(--bg); border:1px solid var(--line); }
.form-card h2 { margin-top:12px; font-size:1.8rem; }
.form-card form { display:grid; gap:20px; margin-top:24px; }
.form-card .row { display:grid; gap:20px; }
@media (min-width:640px){ .form-card .row { grid-template-columns:1fr 1fr; } }
.form-card label { display:grid; gap:8px; font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.form-card input, .form-card select, .form-card textarea { font:inherit; font-size:15px; letter-spacing:normal; text-transform:none; color:var(--ink); padding:12px 0; border:0; border-bottom:1px solid #c5ccd6; background:transparent; border-radius:0; }
.form-card input:focus, .form-card select:focus, .form-card textarea:focus { outline:none; border-color:var(--blue); box-shadow:0 1px 0 var(--blue); }
.form-card .btn { justify-self:start; border:0; cursor:pointer; font-family:inherit; }
.form-card .hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.notice { padding:16px 18px; margin-top:20px; line-height:1.6; }
.notice.err { background:#fbeae6; color:#8a2f1c; border-left:3px solid #c5573d; }
.notice.ok { margin:0; padding:8px 0; }
.notice.ok h2 { margin:0 0 10px; }
.notice.ok p { color:var(--text); margin-bottom:20px; }
.ft-links { display:flex; flex-wrap:wrap; gap:8px 24px; padding-bottom:20px; }
.ft-links a { font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--navy); text-decoration:none; }
.ft-links a:hover { color:var(--blue); }

/* ── ISO 9001:2015 certificate (About page + footer badge) ── */
.iso-grid { display:grid; gap:48px; align-items:center; }
@media (min-width:1024px){ .iso-grid { grid-template-columns:.75fr 1.25fr; gap:72px; } }
.iso-cert { display:block; max-width:420px; margin:0 auto; background:#fff; padding:10px; border:1px solid var(--line); box-shadow:0 30px 60px -28px rgba(0,40,86,.45); transition:transform .2s; }
.iso-cert:hover { transform:translateY(-4px); }
.iso-cert img { width:100%; height:auto; }
.iso-facts { margin:28px 0 0; display:grid; gap:0; border-top:1px solid var(--line); }
@media (min-width:640px){ .iso-facts { grid-template-columns:1fr 1fr; } .iso-facts .wide { grid-column:1 / -1; } }
.iso-facts div { padding:14px 0; border-bottom:1px solid var(--line); }
.iso-facts dt { font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.iso-facts dd { margin:6px 0 0; color:var(--ink); line-height:1.55; }
.iso-facts dd span { font-size:.85rem; color:var(--muted); }
.ft-iso { color:var(--navy) !important; font-weight:600 !important; }

/* header on medium screens (1024–1279px): six links + button must fit on one line */
.hd-nav a { white-space:nowrap; }
@media (min-width:1024px) and (max-width:1279px){
  .hd-logo img { width:168px; }
  .hd-nav { gap:20px; }
  .hd-nav > a:not(.btn-line) { font-size:10px; letter-spacing:.12em; }
  .btn-line { padding:10px 14px; font-size:10px; letter-spacing:.12em; }
}
