:root {
  --hdbim-ink: #192f3b;
  --hdbim-ink-2: #294351;
  --hdbim-muted: #64757a;
  --hdbim-accent: #ba8b4a;
  --hdbim-line: #dce3df;
  --hdbim-paper: #f5f6f2;
  --hdbim-white: #fff;
  --bs-primary: #294351;
  --bs-primary-rgb: 41,67,81;
  --bs-link-color: #294351;
  --bs-link-hover-color: #ba8b4a;
}

@font-face { font-family: Inter; font-style: normal; font-weight: 400; font-display: swap; src: url("./assets/fonts/a0529e1f-UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfAZBhiI2B.woff2") format("woff2"); unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB; }
@font-face { font-family: Inter; font-style: normal; font-weight: 400; font-display: swap; src: url("./assets/fonts/77bd7081-UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfAZ9hiA.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: Inter; font-style: normal; font-weight: 600; font-display: swap; src: url("./assets/fonts/8b83b137-UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYAZBhiI2B.woff2") format("woff2"); unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB; }
@font-face { font-family: Inter; font-style: normal; font-weight: 600; font-display: swap; src: url("./assets/fonts/1248afbe-UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYAZ9hiA.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: Inter; font-style: normal; font-weight: 700; font-display: swap; src: url("./assets/fonts/2159dfd7-UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuFuYAZBhiI2B.woff2") format("woff2"); unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB; }
@font-face { font-family: Inter; font-style: normal; font-weight: 700; font-display: swap; src: url("./assets/fonts/6bbb0ae5-UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuFuYAZ9hiA.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--hdbim-ink); background: var(--hdbim-white); font-family: Inter, "Segoe UI", Arial, sans-serif; line-height: 1.65; overflow-wrap: anywhere; }
img { max-width: 100%; }
a { color: inherit; text-decoration: none; }
.container { --bs-gutter-x: 2rem; }
.py-lg-6 { padding-block: 6.25rem !important; }
.section-space { padding-block: clamp(3.75rem, 7vw, 6.75rem); }
.section-tint { background: var(--hdbim-paper); }
.section-dark { color: #f7f6f0; background: #1d3541; }
.eyebrow, .card-eyebrow { display: inline-block; color: var(--hdbim-accent); font-size: .7rem; font-weight: 750; letter-spacing: .15em; line-height: 1.5; text-transform: uppercase; }
.card-eyebrow { color: #9c743f; font-size: .64rem; }
.site-nav { min-height: 82px; background: rgba(255,255,255,.96); border-bottom: 1px solid rgba(25,47,59,.08); }
.site-nav .navbar-brand { display: inline-flex; gap: .75rem; align-items: center; color: var(--hdbim-ink); font-size: 1.08rem; font-weight: 800; letter-spacing: .08em; line-height: 1.05; }
.navbar-brand small { display: block; margin-top: .28rem; color: var(--hdbim-muted); font-size: .5rem; font-weight: 600; letter-spacing: .13em; }
.brand-mark { display: grid; width: 40px; height: 40px; place-items: center; color: #fff; background: var(--hdbim-ink); border-radius: 3px; font-family: Georgia, serif; font-size: 1.4rem; font-weight: 500; }
.site-nav .nav-link { padding: .8rem .55rem !important; color: #51636b; font-size: .79rem; font-weight: 650; white-space: nowrap; }
.site-nav .nav-link:hover, .site-nav .nav-link.active { color: var(--hdbim-accent); }
.site-nav .navbar-toggler { border-color: var(--hdbim-line); }
.btn { --bs-btn-border-radius: 2px; padding: .8rem 1.15rem; font-size: .82rem; font-weight: 700; letter-spacing: .01em; }
.btn-brand { --bs-btn-color: #fff; --bs-btn-bg: var(--hdbim-ink); --bs-btn-border-color: var(--hdbim-ink); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #315363; --bs-btn-hover-border-color: #315363; }
.btn-outline-brand { --bs-btn-color: var(--hdbim-ink); --bs-btn-border-color: #aab7b4; --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--hdbim-ink); --bs-btn-hover-border-color: var(--hdbim-ink); }
.hero-section { position: relative; overflow: hidden; background: linear-gradient(115deg,#f4f5f0 0%,#f8f8f4 55%,#e8ece8 100%); }
.hero-section .container { position: relative; z-index: 1; padding-block: clamp(4.25rem,8vw,7.5rem) !important; }
.hero-section h1 { max-width: 760px; margin: 1rem 0 1.25rem; font-size: clamp(2.7rem,5.25vw,5rem); font-weight: 660; letter-spacing: -.055em; line-height: 1.04; }
.hero-lead { max-width: 590px; margin: 0; color: #5b6c72; font-size: clamp(1rem,1.45vw,1.13rem); line-height: 1.8; }
.hero-tags { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 2rem; }
.hero-tags span { padding: .4rem .7rem; color: #4f6269; border: 1px solid #d7dfdb; border-radius: 99px; font-size: .68rem; font-weight: 650; }
.hero-visual { position: relative; min-height: 340px; overflow: hidden; background: #cad2ce; border-radius: 3px; box-shadow: 0 24px 70px rgba(27,49,58,.16); }
.hero-image { display: block; width: 100%; height: clamp(340px,40vw,525px); object-fit: cover; }
.hero-caption { position: absolute; right: 1rem; bottom: 1rem; left: 1rem; display: flex; align-items: center; gap: .55rem; padding: .85rem 1rem; color: #fff; background: rgba(20,40,49,.78); backdrop-filter: blur(8px); font-size: .72rem; font-weight: 650; letter-spacing: .04em; }
.status-dot { width: 7px; height: 7px; background: #c9a269; border-radius: 50%; }
.hero-bottomline { position: absolute; right: max(1rem,calc((100% - 1320px)/2)); bottom: 1rem; left: max(1rem,calc((100% - 1320px)/2)); display: flex; justify-content: space-between; gap: 1rem; color: #718087; font-size: .59rem; font-weight: 700; letter-spacing: .15em; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; }
.section-heading h2, .display-title { max-width: 760px; margin: .65rem 0 0; font-size: clamp(2rem,3.6vw,3.25rem); font-weight: 620; letter-spacing: -.045em; line-height: 1.14; }
.section-heading > p, .section-copy { max-width: 490px; margin: 0; color: var(--hdbim-muted); }
.content-card, .stack-card, .tool-card { height: 100%; padding: 1.55rem; background: var(--hdbim-white); border: 1px solid var(--hdbim-line); border-radius: 3px; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.content-card:hover, .stack-card:hover, .tool-card:hover { border-color: #b6c2be; box-shadow: 0 12px 28px rgba(25,47,59,.07); transform: translateY(-3px); }
.content-card h3, .stack-card h3, .tool-card h3 { margin: .9rem 0 .6rem; font-size: 1.06rem; font-weight: 700; letter-spacing: -.02em; }
.content-card p, .stack-card p, .tool-card p { margin: 0; color: var(--hdbim-muted); font-size: .88rem; line-height: 1.75; }
.dark-card { color: #f7f6f0; background: #243f4c; border-color: #3c5660; }
.dark-card p { color: #b8c3c3; }
.dark-card .card-eyebrow { color: #d4ad73; }
.stack-card { padding: 1.35rem; }
.stack-icon { display: grid; width: 44px; height: 44px; margin-bottom: 1.3rem; place-items: center; color: #fff; background: #294653; border-radius: 3px; font-size: .82rem; font-weight: 750; }
.project-card { position: relative; display: flex; flex-direction: column; overflow: hidden; color: var(--hdbim-ink); background: #fff; border: 1px solid var(--hdbim-line); border-radius: 3px; transition: transform .22s ease, box-shadow .22s ease; }
.project-card:hover, .project-card:focus-visible { color: var(--hdbim-ink); box-shadow: 0 18px 34px rgba(20,43,54,.14); transform: translateY(-4px); }
.project-image { position: relative; height: 215px; overflow: hidden; background: #d8ded9; }
.project-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.project-card:hover .project-image img, .project-card:focus-visible .project-image img { transform: scale(1.045); }
.project-index { position: absolute; top: .85rem; left: .85rem; padding: .35rem .55rem; color: #fff; background: rgba(25,47,59,.78); font-size: .62rem; font-weight: 700; letter-spacing: .1em; }
.project-body { position: relative; flex: 1; padding: 1.25rem 1.35rem 1.6rem; }
.project-body h3 { margin: .4rem 2rem .45rem 0; font-size: 1.08rem; font-weight: 720; }
.project-body p { margin: 0; color: var(--hdbim-muted); font-size: .82rem; line-height: 1.7; }
.project-arrow { position: absolute; right: 1.2rem; bottom: 1.3rem; color: var(--hdbim-accent); font-size: 1.2rem; }
.text-link { display: inline-flex; align-items: center; gap: .65rem; color: var(--hdbim-ink); font-size: .84rem; font-weight: 750; }
.text-link:hover { color: var(--hdbim-accent); }
.text-link span { color: var(--hdbim-accent); }
.about-photo, .academy-photo, .detail-photo { display: block; width: 100%; max-height: 530px; object-fit: cover; border-radius: 3px; }
.mission-list { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1.7rem; }
.mission-list > div { padding: 1rem 0; border-top: 1px solid var(--hdbim-line); }
.mission-list strong { display: block; margin-bottom: .35rem; font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; }
.mission-list p { margin: 0; color: var(--hdbim-muted); font-size: .83rem; }
.cta-panel { display: flex; justify-content: space-between; align-items: center; gap: 2rem; padding: clamp(1.6rem,4vw,3.2rem); color: #fff; background: #1d3541; border-radius: 3px; }
.cta-panel h2 { margin: .6rem 0; font-size: clamp(1.75rem,3vw,2.7rem); font-weight: 620; letter-spacing: -.04em; }
.cta-panel p { margin: 0; color: #bec9c8; }
.site-footer { color: #f5f4ee; background: #142a35; }
.footer-copy { max-width: 360px; color: #b7c0bf; font-size: .86rem; }
.footer-label { display: block; margin-bottom: .85rem; color: #c5a36e; font-size: .64rem; font-weight: 750; letter-spacing: .14em; }
.footer-links { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem 1rem; color: #d8dfdc; font-size: .82rem; }
.footer-links a:hover, .footer-contact:hover { color: #d5ae75; }
.footer-contact { color: #fff; font-size: .84rem; font-weight: 700; }
.footer-bottom { display: flex; justify-content: space-between; gap: 1rem; margin-top: 2.6rem; padding-top: 1rem; color: #9eacab; border-top: 1px solid rgba(255,255,255,.15); font-size: .67rem; }
.model-preview { overflow: hidden; padding: 1rem; color: #dce7e2; background: #1c3038; border: 1px solid #53686b; border-radius: 3px; box-shadow: 0 25px 60px rgba(15,40,48,.2); }
.model-topline, .model-bottom { display: flex; justify-content: space-between; gap: 1rem; color: #b2c3be; font-size: .6rem; font-weight: 700; letter-spacing: .12em; }
.model-grid { display: grid; min-height: 270px; grid-template-columns: 1.5fr .8fr; gap: 1rem; padding: 1rem 0; }
.model-building { display: grid; grid-template-columns: repeat(4,1fr); align-content: center; gap: .4rem; padding: 1rem; background: linear-gradient(145deg,#294c55,#6d847a); border: 1px solid #839790; }
.model-building i { display: block; height: 2rem; background: rgba(217,227,213,.42); border: 1px solid rgba(238,242,228,.45); }
.model-side { display: flex; flex-direction: column; padding: .8rem; background: #263d43; }
.model-side span, .model-side small { color: #9cb0ac; font-size: .55rem; letter-spacing: .1em; }
.model-side strong { margin-top: .2rem; color: #e4ca9a; font-size: 1.5rem; }
.model-side hr { width: 100%; border-color: #53676a; }
.scope-list { margin-top: 1rem; border-top: 1px solid var(--hdbim-line); }
.scope-list > div { display: flex; gap: 1rem; align-items: center; padding: 1rem 0; border-bottom: 1px solid var(--hdbim-line); }
.scope-list span { color: var(--hdbim-accent); font-size: .75rem; font-weight: 800; }
.scope-list strong { font-size: .88rem; }
.job-list { border-top: 1px solid var(--hdbim-line); }
.job-item { display: grid; grid-template-columns: 42px 1fr auto; gap: 1.1rem; align-items: center; padding: 1.45rem 0; border-bottom: 1px solid var(--hdbim-line); }
.job-number { color: var(--hdbim-accent); font-size: .8rem; font-weight: 750; }
.job-copy h3 { margin: .25rem 0; font-size: 1.1rem; font-weight: 700; }
.job-copy p { margin: 0; color: var(--hdbim-muted); font-size: .84rem; }
.feature-article { display: grid; grid-template-columns: 1fr 1fr; overflow: hidden; background: var(--hdbim-paper); border: 1px solid var(--hdbim-line); }
.feature-image { width: 100%; height: 100%; min-height: 270px; object-fit: cover; }
.feature-copy { align-self: center; padding: clamp(1.25rem,3vw,2.3rem); }
.feature-copy h3 { margin: .7rem 0; font-size: clamp(1.3rem,2.2vw,1.85rem); font-weight: 700; line-height: 1.2; }
.feature-copy p, .article-row p { color: var(--hdbim-muted); font-size: .85rem; }
.article-list { border-top: 1px solid var(--hdbim-line); }
.article-row { display: grid; grid-template-columns: 45px 1fr 30px; gap: .7rem; align-items: center; padding: 1.1rem 0; border-bottom: 1px solid var(--hdbim-line); }
.article-number { color: var(--hdbim-accent); font-size: .76rem; font-weight: 750; }
.article-row h3 { margin: .25rem 0; font-size: 1rem; font-weight: 700; }
.article-row p { margin: 0; }
.topic-panel { position: sticky; top: 1.5rem; padding: 1.5rem; background: var(--hdbim-paper); border: 1px solid var(--hdbim-line); }
.topic-panel h2 { margin: .6rem 0; font-size: 1.5rem; font-weight: 700; }
.topic-panel p { color: var(--hdbim-muted); font-size: .85rem; }
.topic-panel a { display: flex; justify-content: space-between; gap: .75rem; padding: .85rem 0; border-top: 1px solid var(--hdbim-line); font-size: .82rem; font-weight: 650; }
.contact-form-card { padding: clamp(1.3rem,3vw,2.3rem); border: 1px solid var(--hdbim-line); box-shadow: 0 20px 48px rgba(25,47,59,.06); }
.contact-form-card h2 { margin: .6rem 0; font-size: 1.75rem; font-weight: 700; }
.contact-form-card > p { margin-bottom: 1.6rem; color: var(--hdbim-muted); }
.form-label { font-size: .78rem; font-weight: 650; }
.form-control, .form-select { min-height: 46px; border-color: #d4ddda; border-radius: 2px; font-size: .86rem; }
.form-control:focus, .form-select:focus { border-color: #849995; box-shadow: 0 0 0 .2rem rgba(41,67,81,.12); }
.tool-card { position: relative; padding: 1.6rem; }
.tool-card-number { position: absolute; top: 1.25rem; right: 1.25rem; color: #d4ded9; font-family: Georgia, serif; font-size: 2.3rem; }
.tool-card .text-link { margin-top: 1rem; }
.price-card { display: flex; flex-direction: column; padding: 1.5rem; border: 1px solid var(--hdbim-line); background: #fff; }
.price-card h3 { margin: .8rem 0; font-size: 1.3rem; font-weight: 700; }
.price-card > strong { font-size: 1.7rem; letter-spacing: -.04em; }
.price-period { margin-left: .3rem; color: var(--hdbim-muted); font-size: .75rem; }
.price-card ul { min-height: 95px; margin: 1.3rem 0; padding-left: 1rem; color: var(--hdbim-muted); font-size: .83rem; }
.price-card li + li { margin-top: .5rem; }
.price-card .package-features { margin: 1.3rem 0; color: var(--hdbim-muted); font-size: .83rem; }
.price-card .package-features ul { min-height: 95px; margin: 0; padding-left: 1rem; }
.price-card .package-features li + li { margin-top: .5rem; }
.price-card > .btn { margin-top: auto; }
.price-featured { border: 2px solid #9e7c4d; box-shadow: 0 12px 34px rgba(25,47,59,.08); }
.accordion-item { background: transparent; border-color: var(--hdbim-line); }
.accordion-button { color: var(--hdbim-ink); background: transparent; box-shadow: none !important; font-weight: 700; }
.accordion-button:not(.collapsed) { color: var(--hdbim-ink); background: transparent; }
.accordion-body { max-width: 800px; color: var(--hdbim-muted); font-size: .88rem; }
.capability-card { position: relative; overflow: hidden; min-height: 300px; padding: 1.5rem; background: #25434f; border: 1px solid #526971; }
.capability-card > span { color: #d4ad73; font-size: .8rem; font-weight: 800; }
.capability-card small { display: block; margin-top: 2rem; color: #aab9b8; font-size: .62rem; letter-spacing: .12em; }
.capability-card h3 { margin: .6rem 0; font-size: 1.3rem; font-weight: 700; }
.capability-card p { max-width: 330px; color: #c1ccca; font-size: .83rem; }
.capability-art { position: absolute; right: -1.5rem; bottom: -2.7rem; width: 9rem; height: 9rem; border: 1px solid rgba(212,173,115,.4); transform: rotate(35deg); }
.capability-art::before, .capability-art::after { position: absolute; inset: 1rem; border: 1px solid rgba(212,173,115,.35); content: ''; }
.capability-art::after { inset: 2rem; }
.capability-art-2 { border-radius: 50%; transform: none; }
.capability-art-2::before, .capability-art-2::after { border-radius: 50%; }
.capability-art-3 { transform: skewY(-25deg) rotate(25deg); }
.pagination { --bs-pagination-border-radius: 2px; --bs-pagination-color: var(--hdbim-ink); --bs-pagination-active-bg: var(--hdbim-ink); --bs-pagination-active-border-color: var(--hdbim-ink); }

@media (max-width: 991.98px) {
  .site-nav .navbar-collapse { padding: .75rem 0 1rem; }
  .site-nav .nav-link { padding: .55rem 0 !important; }
  .site-nav .nav-item .btn { margin-top: .5rem; }
  .section-heading { display: block; }
  .section-heading > p { margin-top: 1rem; }
  .hero-bottomline { display: none; }
  .topic-panel { position: static; }
}
@media (max-width: 767.98px) {
  .container { --bs-gutter-x: 1.25rem; }
  .hero-section h1 { font-size: clamp(2.45rem,11vw,3.6rem); }
  .hero-visual { min-height: 270px; }
  .hero-image { height: 300px; }
  .cta-panel { align-items: flex-start; flex-direction: column; }
  .feature-article { grid-template-columns: 1fr; }
  .feature-image { height: 240px; min-height: 0; }
  .job-item { grid-template-columns: 30px 1fr; }
  .job-item .btn { grid-column: 2; justify-self: start; }
  .footer-bottom { flex-direction: column; }
}
@media (max-width: 575.98px) {
  .model-grid { grid-template-columns: 1fr; }
  .model-side { display: grid; grid-template-columns: 1fr 1fr; gap: .3rem .7rem; }
  .model-side hr { display: none; }
  .mission-list { grid-template-columns: 1fr; }
  .article-row { grid-template-columns: 30px 1fr 22px; }
  .footer-links { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* HDBIM visual tokens and page compositions transcribed from the Penpot MCP artboards. */
:root {
  --hdbim-ink: #10232a;
  --hdbim-ink-2: #18353b;
  --hdbim-muted: #77868a;
  --hdbim-accent: #b7202e;
  --hdbim-line: #d9e1e0;
  --hdbim-paper: #f6f7f6;
  --hdbim-white: #fff;
  --bs-primary: #b7202e;
  --bs-primary-rgb: 183,32,46;
  --bs-link-color: #10232a;
  --bs-link-hover-color: #b7202e;
}
body { color: var(--hdbim-ink); background: #fff; font-family: Inter, Arial, sans-serif; line-height: 1.55; }
.container { --bs-gutter-x: 1.5rem; }
.eyebrow, .card-eyebrow { color: var(--hdbim-accent); font-size: .64rem; font-weight: 750; letter-spacing: .12em; }
.card-eyebrow { font-size: .58rem; }
.section-space { padding-block: clamp(2.75rem,5vw,4.5rem); }
.section-heading { margin-bottom: 1.5rem !important; }
.section-heading h2, .display-title, .section-title-compact { max-width: 720px; margin: .45rem 0 0; font-size: clamp(1.55rem,2.35vw,2.15rem); font-weight: 720; letter-spacing: -.025em; line-height: 1.16; }
.section-heading > p, .section-copy { color: var(--hdbim-muted); font-size: .82rem; line-height: 1.55; }
.section-tint { background: #f6f7f6; }
.section-dark { color: #f6f7f6; background: #10232a; }
.section-dark .section-heading h2, .section-dark .section-title-compact { color: #fff; }
.section-dark .section-heading > p, .section-dark .section-copy { color: #9eafb1; }
.site-nav { min-height: 92px; background: #fff; border-bottom: 1px solid #edf0ef; }
.site-nav > .container { max-width: 1320px; }
.site-nav .navbar-brand { padding: 0; }
.brand-lockup { display: inline-flex; align-items: center; gap: .55rem; }
.brand-symbol-crop { display: block; width: 38px; height: 36px; overflow: hidden; }
.brand-logo { display: block; width: 38px; height: 38px; object-fit: cover; object-position: center top; }
.brand-word { display: block; color: #10232a; font-size: .98rem; font-weight: 800; letter-spacing: .04em; line-height: 1; }
.brand-word small { display: block; margin-top: .3rem; color: #77868a; font-size: .42rem; font-weight: 600; letter-spacing: .12em; white-space: nowrap; }
.site-nav .nav-link { padding: .6rem .42rem !important; color: #26373b; font-size: .57rem; font-weight: 800; text-transform: uppercase; }
.site-nav .nav-link:hover, .site-nav .nav-link.active, .nav-contact { color: var(--hdbim-accent); }
.site-nav .navbar-toggler { border-color: #d8e0df; }
.site-nav .navbar-toggler:focus { box-shadow: 0 0 0 .15rem rgba(183,32,46,.2); }
.nav-contact { padding-left: 1rem; font-size: .6rem; font-weight: 800; text-decoration: none; white-space: nowrap; }
.btn { --bs-btn-border-radius: .35rem; padding: .72rem 1rem; font-size: .66rem; font-weight: 750; }
.btn-brand, .btn-accent { --bs-btn-color: #fff; --bs-btn-bg: #b7202e; --bs-btn-border-color: #b7202e; --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #9d1c28; --bs-btn-hover-border-color: #9d1c28; }
.btn-outline-brand { --bs-btn-color: #10232a; --bs-btn-border-color: #b9c7c9; --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #10232a; --bs-btn-hover-border-color: #10232a; }
.hero-section { color: #fff; background: #10232a; }
.hero-section .container { max-width: 1320px; padding-block: 3.2rem !important; }
.hero-section h1 { max-width: 570px; margin: .85rem 0 1.15rem; color: #fff; font-size: clamp(1.8rem,2.6vw,2.45rem); font-weight: 720; letter-spacing: -.025em; line-height: 1.13; }
.hero-section .eyebrow { color: #e7a3a7; }
.hero-lead { max-width: 490px; color: #c2cecd; font-size: .88rem; line-height: 1.55; }
.hero-text-link { display: inline-block; margin-top: 1.6rem; color: #fff; font-size: .62rem; font-weight: 800; text-decoration: none; }
.hero-text-link:hover { color: #e7a3a7; }
.hero-visual { position: relative; min-height: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.18); border-radius: 9px; box-shadow: none; }
.hero-image { display: block; width: 100%; height: 320px; object-fit: cover; }
.carousel-controls { position: absolute; z-index: 2; inset: 50% 0 auto; display: flex; justify-content: space-between; padding: 0 .5rem; transform: translateY(-50%); pointer-events: none; }
.carousel-controls button { display: grid; width: 36px; height: 36px; padding: 0; place-items: center; color: #10232a; background: #fff; border: 0; border-radius: 50%; font-size: 1.5rem; line-height: 1; cursor: pointer; pointer-events: auto; transition: background-color .2s ease, color .2s ease; }
.carousel-controls button:hover, .carousel-controls button:focus-visible { color: #fff; background: #b7202e; }
.carousel-controls button:focus-visible, .carousel-dots button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.carousel-dots { position: absolute; z-index: 2; bottom: .55rem; left: 50%; display: flex; gap: .35rem; padding: .35rem .45rem; background: #fff; border-radius: 2rem; transform: translateX(-50%); }
.carousel-dots.carousel-indicators { right: auto; width: max-content; margin: 0; }
.carousel-dots.carousel-indicators button { flex: 0 1 auto; width: 9px; height: 6px; margin: 0; padding: 0; background: #b8c2c3; border: 0; border-radius: 2rem; opacity: 1; cursor: pointer; transition: width .2s ease, background-color .2s ease; }
.carousel-dots.carousel-indicators button.active { width: 17px; background: #b7202e; opacity: 1; }
.hero-home .container, .hero-services .container, .hero-news .container, .hero-contact .container { padding-block: 2.9rem !important; }
.hero-home .hero-image { height: 320px; }
.hero-text-only .container { padding-block: 3.2rem !important; }
.hero-text-only h1 { max-width: none; margin-top: .7rem; }
.hero-academy .hero-lead, .hero-careers .hero-lead { margin-bottom: .3rem; }
.hero-academy .hero-text-link { margin-top: 1.1rem; }
.hero-careers .btn-accent { margin-top: 1.15rem !important; }
.hero-about { color: var(--hdbim-ink); background: #fff; }
.hero-about .container { padding-block: 1.35rem !important; }
.hero-about h1 { color: var(--hdbim-ink); }
.hero-about .hero-lead { color: #7e8a8d; }
.about-subnav { background: #fff; }
.about-subnav nav { display: flex; justify-content: space-between; gap: 1.5rem; overflow-x: auto; border-bottom: 1px solid #e6ebea; }
.about-subnav a { padding: 1.1rem 0 .8rem; color: #778487; font-size: .57rem; font-weight: 750; text-decoration: none; white-space: nowrap; }
.about-subnav a.active { color: var(--hdbim-accent); border-bottom: 2px solid var(--hdbim-accent); }
.about-specialties { margin-top: 1.2rem; font-size: .63rem; font-weight: 800; }
.about-specialties i { display: inline-block; width: 28px; height: 2px; margin: 0 .5rem .2rem 0; background: var(--hdbim-accent); }
.about-diagram, .about-mini-diagram { position: relative; overflow: hidden; color: #b9c7c9; background-color: #132a32; background-image: linear-gradient(rgba(128,174,173,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(128,174,173,.08) 1px,transparent 1px); background-size: 48px 48px; border: 1px solid #203a42; border-radius: 8px; }
.about-diagram { min-height: 245px; padding: 1.4rem 1.5rem 1rem; }
.diagram-heading, .diagram-caption, .model-topline, .model-bottom { display: flex; justify-content: space-between; gap: .75rem; color: #aabbbd; font-size: .55rem; font-weight: 750; letter-spacing: .08em; }
.diagram-columns { display: flex; height: 143px; justify-content: center; align-items: end; gap: 12px; margin: .7rem auto .5rem; padding: 0 1rem 0; background: linear-gradient(90deg,transparent 49.6%,rgba(128,174,173,.1) 50%,transparent 50.4%); }
.diagram-columns i { display: block; width: 15%; height: 46%; background: #c2cecd; border-radius: 2px 2px 0 0; }
.diagram-columns i:nth-child(2) { width: 19%; height: 75%; background: #fff; }
.diagram-columns i:nth-child(3) { height: 53%; background: #9aabad; }
.diagram-columns i:nth-child(4) { height: 66%; background: #b7202e; }
.diagram-caption { padding-top: .75rem; border-top: 1px solid #294449; }
.about-mini-diagram { min-height: 150px; margin-top: 2rem; padding: .6rem; }
.about-mini-diagram .diagram-columns { height: 112px; margin: 0 auto; }
.about-mini-diagram .diagram-columns i:nth-child(4) { display: none; }
.about-mini-diagram small { display: block; color: #aabbbd; font-size: .45rem; text-align: center; }
.page-intro { padding: 2.3rem 0 3.6rem; }
.page-intro .container { max-width: 1320px; }
.page-intro h1 { margin: .9rem 0 .55rem; font-size: clamp(2rem,3.2vw,3rem); font-weight: 720; letter-spacing: -.03em; }
.page-intro .hero-lead { max-width: 720px; margin: 0; color: var(--hdbim-muted); font-size: .95rem; }
.hero-projects { color: var(--hdbim-ink); background: #f5f6f4; }
.detail-hero { position: relative; min-height: 490px; color: #fff; background-image: linear-gradient(90deg,rgba(9,26,33,.66),rgba(9,26,33,.26)),var(--detail-image); background-position: center; background-size: cover; }
.detail-hero .container { position: relative; display: flex; min-height: 490px; justify-content: space-between; align-items: flex-start; gap: 2rem; padding-block: 2.5rem; }
.detail-hero-copy { max-width: 640px; padding-top: 1rem; }
.detail-hero-copy .eyebrow { color: #e7a3a7; }
.detail-hero h1 { margin: 1.2rem 0 .65rem; font-size: clamp(2.7rem,4vw,3.9rem); font-weight: 750; }
.detail-hero-copy p { color: #e3e7e8; font-size: .85rem; }
.detail-hero-copy a { display: inline-block; margin-top: 2rem; color: #fff; font-size: .6rem; font-weight: 800; text-decoration: none; }
.detail-hero-scope { align-self: flex-end; width: min(390px,40%); margin-bottom: .5rem; padding: 1rem 1.2rem; color: #e3e7e8; background: rgba(16,35,42,.9); border: 1px solid rgba(255,255,255,.1); border-radius: 6px; }
.detail-hero-scope > span { color: #e7a3a7; font-size: .55rem; font-weight: 800; }
.detail-hero-scope > div { display: flex; gap: .65rem; padding: .72rem 0; border-top: 1px solid #345054; font-size: .62rem; }
.detail-hero-scope b { color: #c2cecd; }
.detail-overview .section-title-compact { max-width: 440px; font-size: clamp(1.8rem,2.8vw,2.55rem); }
.detail-facts { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--hdbim-line); }
.detail-facts span, .detail-facts b { display: block; font-size: .58rem; }
.detail-facts span { color: var(--hdbim-accent); font-weight: 800; }
.detail-facts b { margin-top: .4rem; }
.project-rich-content { margin-top: 1.5rem; color: var(--hdbim-muted); font-size: .95rem; line-height: 1.85; }
.project-rich-content > * + * { margin-top: 1rem; }
.project-rich-content h2, .project-rich-content h3, .project-rich-content h4 { margin-top: 2rem; color: var(--hdbim-ink); font-weight: 700; }
.project-rich-content ul, .project-rich-content ol { padding-left: 1.4rem; }
.project-rich-content img { max-width: 100%; height: auto; }
.project-rich-content a { color: var(--hdbim-accent); text-decoration: underline; }
.detail-photo { max-height: 290px; border-radius: 6px; }
.image-note { display: block; margin-top: .5rem; color: #849194; font-size: .48rem; font-weight: 700; }
.home-ecosystem { background: #fff; }
.home-feature-card, .academy-card, .contact-card { display: block; height: 100%; overflow: hidden; color: var(--hdbim-ink); background: #fff; border: 1px solid #e1e7e6; border-radius: 8px; text-decoration: none; }
.home-feature-card:hover, .academy-card:hover, .contact-card:hover { color: var(--hdbim-ink); box-shadow: 0 8px 24px rgba(16,35,42,.08); }
.home-feature-image { display: block; width: 100%; height: 205px; object-fit: cover; }
.home-feature-card > div, .academy-card > div, .contact-card > div { padding: 1.05rem 1.15rem 1.2rem; }
.home-feature-card h3, .academy-card h3, .contact-card h3 { margin: .35rem 0; font-size: 1rem; font-weight: 730; }
.home-feature-card p, .academy-card p, .contact-card p { margin: 0; color: var(--hdbim-muted); font-size: .72rem; line-height: 1.45; }
.home-card-link { display: inline-flex; align-items: center; gap: .45rem; margin-top: .85rem; color: var(--hdbim-accent); font-size: .62rem; font-weight: 800; }
.home-about { position: relative; overflow: hidden; background: linear-gradient(120deg,#f5f7f4 0%,#eef3f0 100%); }
.home-about::before { position: absolute; top: -13rem; right: -10rem; width: 32rem; height: 32rem; border: 1px solid rgba(16,39,46,.055); border-radius: 50%; box-shadow: 0 0 0 3rem rgba(16,39,46,.018),0 0 0 7rem rgba(16,39,46,.014); content: ''; pointer-events: none; }
.home-about-layout { position: relative; display: grid; grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr); align-items: center; gap: clamp(2rem,5vw,5rem); }
.home-about-copy { max-width: 590px; padding-block: 1rem; }
.home-about-overline { display: block; margin-top: 2.2rem; color: var(--hdbim-accent); font-size: .62rem; font-weight: 820; letter-spacing: .14em; }
.home-about-copy h2 { max-width: 570px; margin: .7rem 0 1.1rem; color: var(--hdbim-ink); font-size: clamp(2.45rem,4.2vw,4.1rem); font-weight: 740; letter-spacing: -.055em; line-height: 1.02; }
.home-about-copy > p { max-width: 520px; margin: 0; color: #5b6c72; font-size: clamp(.95rem,1.2vw,1.08rem); line-height: 1.85; }
.home-about-principles { display: grid; margin-top: 1.35rem; border-top: 1px solid #d6dfdc; }
.home-about-principles article { display: grid; grid-template-columns: 34px minmax(0,1fr); gap: .7rem; padding: .8rem 0; border-bottom: 1px solid #d6dfdc; }
.home-about-principles article > span { padding-top: .08rem; color: var(--hdbim-accent); font-size: .57rem; font-weight: 820; letter-spacing: .08em; }
.home-about-principles h3 { margin: 0 0 .2rem; color: var(--hdbim-ink); font-size: .75rem; font-weight: 780; letter-spacing: -.01em; }
.home-about-principles p { max-width: 440px; margin: 0; color: #718084; font-size: .68rem; line-height: 1.55; }
.home-about-cta { display: inline-flex; align-items: center; gap: .8rem; margin-top: 1.4rem; padding: .8rem 1rem; color: #fff; background: var(--hdbim-ink); border-radius: 4px; font-size: .68rem; font-weight: 780; text-decoration: none; transition: background-color .2s ease, gap .2s ease; }
.home-about-cta:hover { gap: 1.1rem; color: #fff; background: var(--hdbim-accent); }
.home-about-signature { display: flex; align-items: center; gap: .7rem; margin-top: 2.2rem; padding-top: 1rem; color: #758387; border-top: 1px solid #d9e1de; font-size: .65rem; font-weight: 700; letter-spacing: .04em; }
.home-about-signature-mark { display: grid; width: 29px; height: 29px; place-items: center; color: #fff; background: var(--hdbim-accent); border-radius: 50%; font-size: .75rem; font-weight: 800; }
.home-about-visual { overflow: hidden; color: #e2ecea; background: linear-gradient(145deg,#10272e,#183940); border: 1px solid #27434a; border-radius: 10px; box-shadow: 0 24px 60px rgba(16,35,42,.14); }
.home-about-visual-top { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; color: #a9c4c3; border-bottom: 1px solid #294449; font-size: .52rem; font-weight: 800; letter-spacing: .12em; }
.home-about-blueprint { position: relative; overflow: hidden; padding: .45rem 1.1rem .3rem; background: radial-gradient(ellipse at 50% 65%,rgba(74,119,123,.22),transparent 62%); }
.home-about-blueprint svg { display: block; width: 100%; height: auto; min-height: 220px; }
.home-about-coordinate { position: absolute; color: rgba(196,216,213,.68); font-size: .45rem; font-weight: 700; letter-spacing: .12em; }
.home-about-coordinate-a { top: 1rem; left: 1.2rem; }
.home-about-coordinate-b { right: 1.2rem; bottom: .8rem; }
.home-about-visual-caption { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 1.2rem; border-top: 1px solid #294449; }
.home-about-visual-caption span { color: #e7a3a7; font-size: .48rem; font-weight: 800; letter-spacing: .12em; }
.home-about-visual-caption strong { color: #fff; font-size: .7rem; }
.home-about-links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid #294449; }
.home-about-links a { display: grid; grid-template-columns: 1fr auto; align-content: center; gap: .35rem .5rem; min-height: 68px; padding: .75rem .85rem; color: #dce7e5; border-right: 1px solid #294449; text-decoration: none; transition: background-color .2s ease, color .2s ease; }
.home-about-links a:last-child { border-right: 0; }
.home-about-links a:hover { color: #fff; background: #183940; }
.home-about-links small { grid-column: 1 / -1; color: #e7a3a7; font-size: .48rem; font-weight: 800; }
.home-about-links span { overflow: hidden; font-size: .57rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.home-about-links b { color: #a9c4c3; font-size: .8rem; }
.home-tools-link, .home-section-link { display: inline-flex; align-items: center; gap: .5rem; margin-top: .8rem; color: #e7a3a7; font-size: .65rem; font-weight: 800; text-decoration: none; }
.home-tools-link:hover, .home-section-link:hover { color: #fff; }
.home-news { background: #f5f3ed; }
.home-news .section-heading > div:last-child { max-width: 460px; }
.home-news .section-heading > div:last-child p { margin: 0; color: var(--hdbim-muted); font-size: .78rem; line-height: 1.55; }
.home-news .home-section-link { color: var(--hdbim-accent); }
.home-news .home-section-link:hover { color: var(--hdbim-ink); }
.home-news-carousel { overflow: hidden; background: #fff; border: 1px solid #e1e7e6; border-radius: 9px; }
.home-news-carousel .carousel-inner { padding: .75rem; }
.home-news-grid { align-items: stretch; }
.home-news-grid > .col { display: flex; }
.home-article-card { display: flex; width: 100%; flex-direction: column; overflow: hidden; color: var(--hdbim-ink); background: #fff; border: 1px solid #e1e7e6; border-radius: 7px; transition: box-shadow .2s ease, transform .2s ease; }
.home-article-card:hover { box-shadow: 0 9px 24px rgba(16,35,42,.1); transform: translateY(-2px); }
.home-article-image { display: block; height: 190px; flex: 0 0 190px; overflow: hidden; background: #e8edeb; }
.home-article-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.home-article-image:hover img { transform: scale(1.035); }
.home-article-copy { display: flex; min-height: 235px; flex: 1; flex-direction: column; align-items: flex-start; padding: 1.05rem 1.1rem 1rem; }
.home-article-copy h3 { display: -webkit-box; overflow: hidden; min-height: 2.7em; margin: .45rem 0 .55rem; color: var(--hdbim-ink); font-size: .98rem; font-weight: 730; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.home-article-copy h3 a { color: inherit; text-decoration: none; }
.home-article-copy p { display: -webkit-box; overflow: hidden; min-height: 4.4em; margin: 0; color: var(--hdbim-muted); font-size: .7rem; line-height: 1.55; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.home-article-copy .home-card-link { margin-top: auto; padding-top: .8rem; }
.home-news-controls { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1.15rem; border-top: 1px solid #e1e7e6; }
.home-news-count { color: #7b898c; font-size: .55rem; font-weight: 800; letter-spacing: .1em; }
.home-news-indicators.carousel-indicators { position: static; display: flex; gap: .35rem; margin: 0 auto 0 0; }
.home-news-indicators button { width: 20px; height: 4px; margin: 0 !important; background: #bdc7c6 !important; border: 0 !important; border-radius: 5px; opacity: 1 !important; }
.home-news-indicators button.active { background: var(--hdbim-accent) !important; }
.home-news-arrows { display: flex; gap: .4rem; }
.home-news-arrows button { display: grid; width: 36px; height: 36px; place-items: center; color: var(--hdbim-ink); background: #f3f5f4; border: 1px solid #e1e7e6; border-radius: 50%; }
.home-news-arrows button:hover, .home-news-arrows button:focus-visible { color: #fff; background: var(--hdbim-accent); }
.home-empty-state { padding: 1.5rem; color: var(--hdbim-muted); background: #f5f6f4; border-radius: 8px; }
.home-empty-state a { display: inline-block; margin-left: .5rem; color: var(--hdbim-accent); font-weight: 750; }
.home-careers h2 { max-width: 500px; margin: .6rem 0 .75rem; color: #fff; font-size: clamp(1.8rem,3vw,2.5rem); font-weight: 730; letter-spacing: -.03em; }
.home-careers .col-lg-5 > p { max-width: 470px; margin-bottom: 1.2rem; color: #c2cecd; font-size: .82rem; line-height: 1.65; }
.home-career-list { display: grid; gap: .6rem; }
.home-career-item { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: .2rem 1rem; padding: 1rem 1.15rem; color: #fff; background: #18353b; border: 1px solid #294449; border-radius: 7px; text-decoration: none; }
.home-career-item:hover { color: #fff; background: #20434a; }
.home-career-item .card-eyebrow { grid-column: 1; color: #e7a3a7; }
.home-career-item strong { grid-column: 1; font-size: .86rem; }
.home-career-item small { grid-column: 1; color: #c2cecd; font-size: .67rem; line-height: 1.45; }
.home-career-item > span:last-child { grid-column: 2; grid-row: 1 / span 3; color: #e7a3a7; font-size: 1.2rem; }
.home-career-empty { cursor: default; }
.home-map-section { background: #f5f6f4; }
.home-map-section .section-heading > div:last-child { max-width: 460px; }
.home-map-section .section-heading > div:last-child p { margin: 0; color: var(--hdbim-muted); font-size: .8rem; }
.home-map-section .home-section-link { color: var(--hdbim-accent); }
.home-google-map { overflow: hidden; min-height: 360px; background: #e8edeb; border: 1px solid #dce3e1; border-radius: 8px; }
.home-google-map iframe { display: block; width: 100%; height: 360px; border: 0; }
.home-capabilities { padding-block: 3rem; }
.capability-grid { overflow: hidden; background: #fff; border-radius: 7px; }
.discipline-card { min-height: 150px; height: 100%; padding: 1.2rem; color: var(--hdbim-ink); background: #fff; border: 1px solid #e2e8e7; }
.discipline-card .card-eyebrow { color: var(--hdbim-accent); }
.discipline-card h3 { margin: .45rem 0; font-size: .88rem; font-weight: 730; }
.discipline-card p { margin: 0; color: var(--hdbim-muted); font-size: .67rem; line-height: 1.5; }
.home-tools { padding: 2rem 0 3rem; border-top: 1px solid #345054; }
.tools-section-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 2rem; margin-bottom: 1.8rem; }
.tools-section-heading h2 { margin: .45rem 0 .25rem; font-size: 1.65rem; color: #fff; }
.tools-section-heading p { max-width: 760px; margin: 0; color: #c2cecd; font-size: .73rem; }
.tools-pill { padding: .45rem .9rem; color: #aabbbd; background: #18353b; border-radius: 2rem; font-size: .53rem; white-space: nowrap; }
.home-tool-card { height: 100%; padding: 1rem; color: #e3e7e8; background: #18353b; border: 1px solid #294449; border-left: 3px solid #b7202e; border-radius: 8px; }
.home-tool-top { display: flex; align-items: center; gap: .7rem; }
.home-tool-top > b { display: grid; width: 40px; height: 40px; place-items: center; background: #10232a; border: 1px solid #345054; border-radius: 7px; }
.home-tool-top small, .home-tool-card > small { color: #e7a3a7; font-size: .5rem; font-weight: 750; }
.home-tool-top h3 { margin: .15rem 0 0; color: #fff; font-size: .82rem; }
.home-tool-card p { min-height: 38px; margin: .8rem 0; padding-top: .7rem; color: #c2cecd; border-top: 1px solid #294449; font-size: .64rem; }
.home-projects { background: #f5f6f4; }
.home-project-mosaic { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.home-project-mosaic a { position: relative; display: block; overflow: hidden; min-height: 130px; color: #fff; background: #18353b; border-radius: 6px; }
.home-project-mosaic img { display: block; width: 100%; height: 100%; min-height: 130px; object-fit: cover; }
.home-project-mosaic .mosaic-main { grid-row: span 2; min-height: 325px; }
.home-project-mosaic .mosaic-main img { min-height: 325px; }
.home-project-mosaic a::after { position: absolute; inset: 0; background: linear-gradient(135deg,rgba(11,39,49,.18),rgba(31,91,103,.68)); opacity: 0; content: ''; transition: opacity .42s ease; }
.home-project-mosaic a:hover::after, .home-project-mosaic a:focus-visible::after { opacity: 1; }
.home-project-mosaic img { transition: transform .5s ease; }
.home-project-mosaic a:hover img, .home-project-mosaic a:focus-visible img { transform: scale(1.035); }
.home-project-mosaic a:hover, .home-project-mosaic a:focus-visible { box-shadow: inset 0 0 0 2px rgba(255,255,255,.8),0 12px 28px rgba(16,35,42,.17); }
.home-project-mosaic .mosaic-main > span, .home-project-mosaic .mosaic-side span { position: absolute; right: 1rem; bottom: .8rem; left: 1rem; z-index: 1; display: grid; gap: .15rem; color: #fff; font-size: .55rem; }
.home-project-mosaic .mosaic-main b { font-size: 1.1rem; }
.home-project-mosaic .mosaic-main em { font-size: .65rem; font-style: normal; }
.mosaic-side { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.mosaic-side span { opacity: 0; transition: opacity .18s ease; }
.mosaic-side a:hover span, .mosaic-side a:focus-visible span { opacity: 1; }
.mosaic-side b { display: block; font-size: .68rem; }
.cta-band { padding: 1.7rem 0; color: #fff; background: #b7202e; }
.cta-band > .container { display: flex; justify-content: space-between; align-items: center; gap: 2rem; }
.cta-band h2 { margin: 0; font-size: 1.25rem; font-weight: 750; }
.cta-band h2 span { display: inline; padding: .1rem .25rem; background: #10232a; }
.cta-band p { margin: .3rem 0 0; color: #f5dfe1; font-size: .7rem; }
.cta-band a { color: #10232a; font-size: .57rem; font-weight: 850; text-decoration: none; white-space: nowrap; }
.site-footer { color: #fff; background: #10232a; }
.footer-grid { display: grid; grid-template-columns: 1.2fr .8fr .8fr 1.5fr; gap: 2rem; padding-block: 2rem; }
.footer-brand { display: block; margin-bottom: .35rem; font-size: 1rem; letter-spacing: .1em; }
.footer-grid p, .footer-grid a { margin: 0; color: #aabbbd; font-size: .64rem; line-height: 1.5; text-decoration: none; }
.footer-grid a:hover { color: #fff; }
.footer-label { display: block; margin-bottom: .35rem; color: #e7a3a7; font-size: .58rem; font-weight: 800; letter-spacing: .08em; }
.footer-grid > div:last-child p + p { margin-top: 1rem; }
.footer-copyright { padding: .4rem 1rem; color: #9aabad; background: #f6f7f6; font-size: .55rem; text-align: center; }
.about-activities .section-title-compact, .about-vision .section-title-compact { margin-bottom: .7rem; font-size: 1.55rem; }
.activity-card { display: flex; gap: .8rem; min-height: 85px; height: 100%; padding: .8rem; background: #fff; border-left: 3px solid var(--hdbim-accent); border-radius: 5px; }
.activity-card > span { color: var(--hdbim-accent); font-size: .6rem; font-weight: 800; }
.activity-card h3 { margin: 0 0 .25rem; font-size: .76rem; font-weight: 730; }
.activity-card p { margin: 0; color: var(--hdbim-muted); font-size: .63rem; line-height: 1.4; }
.about-vision { background: #fff; }
.vision-card { min-height: 210px; padding: 1.4rem; color: #fff; background: #18353b; border-radius: 7px; }
.vision-card-red { background: #b7202e; }
.vision-card span, .vision-card small { display: block; font-size: .58rem; font-weight: 800; }
.vision-card small { margin-top: 1.3rem; }
.vision-card p { max-width: 300px; margin: 1rem 0 0; font-size: .9rem; line-height: 1.35; }
.timeline-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1.2rem; margin-top: 2rem; }
.timeline-grid article { position: relative; padding-top: 1.4rem; border-top: 1px solid #294449; }
.timeline-grid article i { position: absolute; top: -6px; left: 0; width: 11px; height: 11px; background: #b7202e; border-radius: 50%; }
.timeline-grid article small, .timeline-grid article b { display: block; }
.timeline-grid article small { margin: .5rem 0; color: #e7a3a7; font-size: .53rem; }
.timeline-grid article b { color: #fff; font-size: .7rem; }
.timeline-grid article p { max-width: 220px; margin: .55rem 0 0; color: #aabbbd; font-size: .62rem; }
.value-card { height: 100%; min-height: 150px; padding: 1rem; background: #fff; border: 1px solid #e1e7e6; border-radius: 6px; }
.value-card i { display: block; width: 22px; height: 2px; margin-bottom: .65rem; background: #b7202e; }
.value-card span { color: var(--hdbim-accent); font-size: .55rem; font-weight: 800; }
.value-card h3 { margin: .8rem 0 .4rem; font-size: .78rem; }
.value-card p { margin: 0; color: var(--hdbim-muted); font-size: .63rem; }
.ecosystem-chips { display: grid; grid-template-columns: repeat(6,1fr); gap: .8rem; }
.ecosystem-chips > div { display: grid; justify-items: center; gap: .45rem; padding: .8rem; background: #f6f7f6; border-radius: 6px; }
.ecosystem-chips b { display: grid; width: 32px; height: 32px; place-items: center; color: #fff; background: #10232a; border-radius: 50%; font-size: .52rem; }
.ecosystem-chips span { font-size: .5rem; font-weight: 800; }
.services-list-section { background: #e9edec; }
.services-list-section .section-title-compact { margin: .4rem 0 2rem; }
.services-list-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: .8rem 2rem; padding-top: 1rem; border-top: 1px solid #cbd5d5; }
.service-row { display: flex; min-height: 116px; gap: 1rem; align-items: center; padding: .65rem; background: #fff; border: 1px solid #d8e1e1; border-radius: 8px; }
.service-row-image { flex: 0 0 116px; width: 116px; height: 116px; object-fit: cover; border-radius: 5px; }
.service-row h3 { margin: .35rem 0; font-size: .92rem; font-weight: 730; }
.service-row p { margin: 0; color: var(--hdbim-muted); font-size: .7rem; }
.project-directory { padding-block: 3rem 4rem; }
.project-list-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; padding-bottom: .8rem; border-bottom: 1px solid var(--hdbim-line); }
.project-list-heading > span { color: var(--hdbim-muted); font-size: .66rem; }
.project-list { border-top: 0; }
.project-row { display: grid; grid-template-columns: 220px 1fr 38px; gap: 1.5rem; align-items: center; min-height: 145px; padding: .8rem 0; border-bottom: 1px solid var(--hdbim-line); }
.project-row-photo img { display: block; width: 220px; height: 120px; object-fit: cover; border-radius: 6px; }
.project-row h3 { margin: .35rem 0; font-size: 1.05rem; font-weight: 730; }
.project-row p { margin: 0; color: var(--hdbim-muted); font-size: .77rem; }
.project-row-arrow { color: var(--hdbim-accent); font-size: 1.3rem; text-decoration: none; }
.project-pagination { display: flex; justify-content: center; align-items: center; gap: .45rem; margin-top: 1.8rem; color: #55666a; font-size: .65rem; }
.project-pagination > span, .project-pagination > b { display: grid; min-width: 38px; height: 38px; place-items: center; background: #f1f3f3; border-radius: 5px; }
.project-pagination > b { color: #fff; background: #b7202e; }
.project-pagination small { margin-left: 2rem; font-size: .55rem; font-weight: 800; }
.academy-courses { background: #fff; }
.academy-card-image, .contact-card-image { display: block; width: 100%; height: 200px; object-fit: cover; }
.academy-roadmap { border-top: 1px solid #345054; }
.academy-roadmap .section-title-compact { margin: .5rem 0 1.5rem; color: #fff; }
.roadmap-card { min-height: 145px; padding: 1rem; color: var(--hdbim-ink); background: #fff; border-radius: 7px; }
.roadmap-card h3 { margin: .55rem 0; font-size: .9rem; font-weight: 730; }
.roadmap-card p { margin: 0; color: var(--hdbim-muted); font-size: .7rem; }
.job-list-cards { display: grid; gap: .55rem; border: 0; }
.job-list-cards .job-item { grid-template-columns: 40px 1fr auto; min-height: 98px; gap: 1rem; padding: 1rem; background: #fff; border: 0; border-radius: 8px; }
.job-list-cards .job-number { padding-left: .2rem; color: var(--hdbim-accent); border-left: 3px solid var(--hdbim-accent); text-align: center; }
.job-list-cards .job-copy h3 { font-size: .93rem; }
.job-list-cards .job-copy p { font-size: .7rem; }
.job-list-cards .btn-light { color: #34464a; background: #f5f6f4; font-size: .55rem; }
.job-list-cards .job-copy.has-image { display: grid; grid-template-columns: minmax(80px,120px) minmax(0,1fr); align-items: center; gap: 1rem; }
.job-card-image { display: block; overflow: hidden; aspect-ratio: 4/3; border-radius: 5px; }
.job-card-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.job-list-cards .job-copy h3 a { color: inherit; text-decoration: none; }
.job-list-cards .job-copy h3 a:hover { color: var(--hdbim-accent); }
.job-image-placeholder-note { display: inline-block; margin-top: .25rem; padding: .35rem .55rem; color: #f5d5d7; background: rgba(20,38,43,.72); border: 1px solid rgba(255,255,255,.25); border-radius: 4px; font-size: .65rem; }
.feature-article { grid-template-columns: 34% 1fr; border: 0; border-radius: 8px; background: #fff; }
.feature-image { min-height: 240px; object-fit: cover; }
.feature-copy { padding: 1.25rem; }
.feature-copy h3 { font-size: 1.15rem; }
.feature-copy p, .article-row p { font-size: .7rem; }
.article-row { grid-template-columns: 42px 1fr 62px; padding: .85rem .8rem; background: #fff; border: 0; border-bottom: 1px solid #e6ebea; border-radius: 6px; }
.article-row h3 { font-size: .82rem; }
.article-row > a { color: #52666a; font-size: .52rem; font-weight: 800; text-decoration: none; }
.news-feature-side { overflow: hidden; background: #fff; border-radius: 8px; }
.news-side-image { display: block; width: 100%; height: 190px; object-fit: cover; }
.news-feature-side > div { padding: 1rem; }
.news-feature-side h3 { margin: .45rem 0; font-size: .92rem; }
.news-feature-side p { color: var(--hdbim-muted); font-size: .68rem; }
.news-feature-side a { color: var(--hdbim-accent); font-size: .55rem; font-weight: 800; text-decoration: none; }
.topic-panel { margin-top: .8rem; padding: 1.1rem; border: 0; border-radius: 8px; }
.topic-panel-dark { color: #fff; background: #10232a; }
.topic-panel-dark h2 { color: #fff; font-size: 1rem; }
.topic-panel-dark p { color: #aabbbd; font-size: .68rem; }
.topic-panel-dark a { border-color: #294449; font-size: .63rem; }
.topic-panel-dark a span { color: #e7a3a7; }
.tech-illustration, .tools-illustration { padding: 1.2rem; color: #c2cecd; background: #132a32; border: 1px solid #203a42; border-radius: 18px; box-shadow: none; }
.tech-illustration { min-height: 385px; background-image: linear-gradient(rgba(128,174,173,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(128,174,173,.1) 1px,transparent 1px); background-size: 42px 42px; }
.tech-model { display: grid; grid-template-columns: 1.5fr .8fr; gap: .7rem; margin-top: 1rem; }
.wire-building { position: relative; display: grid; min-height: 240px; grid-template-columns: repeat(6,1fr); align-content: center; gap: .6rem; padding: 1rem; background: rgba(16,35,42,.75); border: 1px solid #294449; }
.wire-building i { height: 110px; border: 1px solid #80aead; border-top: 0; border-bottom: 0; }
.wire-building i:nth-child(2n) { transform: skewY(-28deg); }
.wire-building::before, .wire-building::after { position: absolute; inset: 26% 15%; border: 2px solid #80aead; content: ''; }
.wire-building::after { inset: 53% 15% 25%; border-top-color: #b7202e; border-bottom-color: #b7202e; }
.tech-model aside { display: flex; flex-direction: column; gap: .35rem; padding: .7rem; background: #10232a; border-radius: 8px; }
.tech-model aside b, .tech-model aside span, .tech-model aside small { color: #9eb5b7; font-size: .49rem; }
.tech-model aside strong { color: #fff; font-size: .7rem; }
.tech-model aside i { width: 90%; height: 3px; background: linear-gradient(90deg,#80aead 72%,#294449 72%); }
.tech-model aside i:nth-of-type(2) { background: linear-gradient(90deg,#b7202e 58%,#294449 58%); }
.tools-illustration { padding: 1rem; background: #fff; border-radius: 8px; }
.tools-topline { display: flex; justify-content: space-between; color: #4c6266; font-size: .53rem; font-weight: 800; }
.tools-topline i { color: #b7202e; font-size: .55rem; font-style: normal; }
.tools-board { display: grid; grid-template-columns: 1.6fr .7fr; gap: .7rem; min-height: 185px; margin-top: .8rem; padding: .65rem; background: #f6f7f6; border-radius: 6px; }
.tools-wire { display: grid; grid-template-columns: repeat(3,1fr); align-content: center; gap: .6rem; padding: 1rem; background: #eef2f1; }
.tools-wire i { position: relative; height: 40px; border: 3px solid #203a42; border-bottom: 0; }
.tools-wire i:nth-child(2n) { border-color: #b7202e; }
.tools-board aside { display: flex; flex-direction: column; gap: .45rem; padding: .5rem; color: #10232a; background: #fff; font-size: .5rem; }
.tools-board aside i { height: 5px; background: linear-gradient(90deg,#b7202e 55%,#d9e1e0 55%); }
.tools-board aside small { color: #77868a; font-size: .42rem; }
.hero-tech .container, .hero-tools .container { padding-block: 2rem !important; }
.hero-tech .hero-lead, .hero-tools .hero-lead { max-width: 440px; }
.page-technology .section-dark .capability-card { background: #132a32; border-color: #203a42; }
.page-technology .capability-card h3 { color: #fff; }
.page-technology .capability-card p { color: #c2cecd; }
.price-card { border-color: #d9e1e0; border-top: 3px solid #b7202e; border-radius: 6px; }
.price-featured { border: 1px solid #d9e1e0; border-top: 3px solid #b7202e; }
.pagination { --bs-pagination-border-radius: 4px; --bs-pagination-color: #10232a; --bs-pagination-active-bg: #b7202e; --bs-pagination-active-border-color: #b7202e; }
@media (max-width: 991.98px) {
  .site-nav { min-height: 76px; }
  .brand-symbol-crop { width: 34px; height: 33px; }
  .brand-logo { width: 34px; height: 35px; }
  .brand-word { font-size: .9rem; }
  .brand-word small { font-size: .38rem; }
  .site-nav .nav-link { padding: .55rem 0 !important; font-size: .68rem; }
  .nav-contact { display: inline-block; padding: .55rem 0; }
  .hero-section .container { padding-block: 2.2rem !important; }
  .home-about-layout { grid-template-columns: 1fr; gap: 2rem; }
  .home-about-copy { max-width: 760px; }
  .home-news .section-heading > div:last-child { margin-top: 1rem; }
  .detail-hero .container { min-height: 490px; flex-direction: column; justify-content: flex-start; }
  .detail-hero-scope { align-self: flex-end; width: min(440px,100%); margin-top: auto; }
  .project-row { grid-template-columns: 180px 1fr 30px; gap: 1rem; }
  .project-row-photo img { width: 180px; height: 110px; }
  .footer-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 767.98px) {
  html, body { max-width: 100%; overflow-x: hidden; }
  main, .container, .page-intro .container { min-width: 0; }
  .hero-section h1 { font-size: clamp(1.85rem,8vw,2.45rem); }
  .page-intro h1, .page-intro .hero-lead { max-width: 100%; overflow-wrap: anywhere; }
  .page-intro h1 { font-size: 2rem; }
  .hero-image { height: 240px; }
  .home-project-mosaic { grid-template-columns: 1fr; }
  .home-news-carousel .carousel-inner { padding: .55rem; }
  .home-article-image { height: 180px; flex-basis: 180px; }
  .home-article-copy { min-height: 215px; padding: .95rem; }
  .home-news-controls { gap: .55rem; padding: .65rem .8rem; }
  .home-news-indicators.carousel-indicators { gap: .2rem; }
  .home-news-arrows button { width: 32px; height: 32px; }
  .home-google-map, .home-google-map iframe { min-height: 280px; height: 280px; }
  .home-about-overline { margin-top: 1.25rem; }
  .home-about-copy h2 { font-size: clamp(2.2rem,9vw,3.3rem); }
  .home-about-principles { margin-top: 1.1rem; }
  .home-about-principles article { grid-template-columns: 29px minmax(0,1fr); gap: .5rem; padding: .7rem 0; }
  .home-about-principles h3 { font-size: .72rem; }
  .home-about-principles p { font-size: .66rem; }
  .home-about-blueprint { padding-inline: .4rem; }
  .home-about-blueprint svg { min-height: 175px; }
  .home-about-visual-caption { align-items: flex-start; flex-direction: column; gap: .3rem; }
  .home-about-links a { min-height: 72px; padding-inline: .55rem; }
  .home-about-links span { font-size: .62rem; white-space: normal; }
  .home-project-mosaic .mosaic-main { min-height: 250px; }
  .home-project-mosaic .mosaic-main img { min-height: 250px; }
  .mosaic-side { grid-template-columns: repeat(2,1fr); }
  .home-project-mosaic .mosaic-side span { opacity: 1; }
  .services-list-grid { grid-template-columns: 1fr; gap: .65rem; }
  .service-row { min-height: 95px; }
  .service-row-image { flex-basis: 88px; width: 88px; height: 88px; }
  .project-row { grid-template-columns: 110px minmax(0,1fr) 20px; min-width: 0; min-height: 108px; gap: .75rem; }
  .project-row > * { min-width: 0; }
  .project-row-photo img { width: 110px; height: 78px; }
  .project-row h3 { font-size: .82rem; }
  .project-row p { font-size: .63rem; }
  .job-list-cards .job-item { grid-template-columns: 32px 1fr; }
  .job-list-cards .job-item .btn { grid-column: 2; justify-self: start; }
  .feature-article { grid-template-columns: 1fr; }
  .feature-image { height: 220px; min-height: 220px; }
  .detail-hero, .detail-hero .container { min-height: 560px; }
  .detail-hero h1 { font-size: 2.4rem; }
  .detail-facts { grid-template-columns: 1fr; gap: .6rem; }
  .tech-model { grid-template-columns: 1fr; }
  .wire-building { min-height: 170px; }
  .tools-board { grid-template-columns: 1fr; }
  .tools-wire { min-height: 120px; }
  .cta-band > .container { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .timeline-grid { grid-template-columns: repeat(2,1fr); }
  .ecosystem-chips { grid-template-columns: repeat(3,1fr); }
  .tools-section-heading { flex-direction: column; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 1.5rem 1rem; }
}
@media (max-width: 575.98px) {
  .about-subnav nav { justify-content: flex-start; gap: 1.2rem; }
  .detail-hero-scope { width: 100%; }
  .project-list-heading { align-items: flex-start; flex-direction: column; gap: .45rem; }
  .project-pagination { gap: .25rem; }
  .project-pagination > span, .project-pagination > b { min-width: 32px; height: 32px; }
  .project-pagination small { margin-left: .6rem; }
  .timeline-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
}


/* Keyboard access for the responsive public site. */
.skip-link {
    position: fixed;
    top: 1rem;
    left: 1rem;
    z-index: 2000;
    padding: .75rem 1rem;
    color: #fff;
    background: #10232a;
    transform: translateY(-180%);
}
.skip-link:focus {
    transform: translateY(0);
}

.managed-gallery {
    background: #f6f7f6;
}
.managed-gallery-card {
    height: 100%;
    overflow: hidden;
    border: 1px solid rgba(16, 35, 42, .1);
    border-radius: 12px;
    background: #fff;
}
.managed-gallery-card img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}
.managed-gallery-card figcaption {
    display: grid;
    gap: .35rem;
    padding: 1rem 1.1rem 1.15rem;
}
.managed-gallery-card figcaption span {
    color: #68777b;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.managed-gallery-card figcaption strong {
    color: #10232a;
    font-size: 1rem;
}

/* Contact page */
.page-contact .contact-hero-actions { margin-top: 1.65rem; }
.contact-overview-heading { margin-bottom: 2rem; }
.contact-option-card {
    position: relative;
    min-height: 255px;
    padding: 1.5rem;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--hdbim-line);
    border-radius: 5px;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.contact-option-card:hover { border-color: #b8c5c0; box-shadow: 0 14px 34px rgba(25,47,59,.08); transform: translateY(-3px); }
.contact-option-number { position: absolute; top: 1rem; right: 1.2rem; color: #e2e8e4; font-size: 2rem; font-weight: 700; }
.contact-option-icon { display: grid; width: 45px; height: 45px; margin-bottom: 1.45rem; place-items: center; color: #fff; background: var(--hdbim-ink); border-radius: 50%; font-size: .66rem; font-weight: 750; }
.contact-option-card h3 { margin: .45rem 0 .55rem; font-size: 1.05rem; font-weight: 730; }
.contact-option-card p { min-height: 3.3rem; margin: 0 0 1.1rem; color: var(--hdbim-muted); font-size: .8rem; line-height: 1.7; }
.contact-option-link { display: inline-flex; align-items: center; gap: .5rem; color: var(--hdbim-ink); font-size: .73rem; font-weight: 750; }
.contact-option-link span { color: var(--hdbim-accent); }
.contact-option-link:hover { color: var(--hdbim-accent); }
.contact-map-heading { margin-bottom: 2rem; }
.contact-map-card { display: grid; grid-template-columns: 1fr; overflow: hidden; background: #fff; border: 1px solid #dce3df; border-radius: 6px; box-shadow: 0 18px 48px rgba(25,47,59,.08); }
.contact-map-info { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; gap: 1rem 1.2rem; align-items: center; padding: clamp(1.35rem,3vw,2rem); }
.contact-map-symbol { display: grid; width: 48px; height: 48px; grid-row: 1; place-items: center; color: #fff; background: var(--hdbim-ink); border-radius: 3px; font-family: Georgia,serif; font-size: 1.45rem; }
.contact-map-copy h3 { margin: .35rem 0 .25rem; font-size: 1.2rem; font-weight: 720; letter-spacing: -.025em; }
.contact-map-copy address { margin: 0 0 .7rem; color: var(--hdbim-muted); font-size: .82rem; font-style: normal; line-height: 1.7; }
.contact-map-meta { display: flex; flex-wrap: wrap; gap: .3rem .65rem; align-items: baseline; padding-top: .65rem; border-top: 1px solid var(--hdbim-line); }
.contact-map-meta span { color: var(--hdbim-accent); font-size: .6rem; font-weight: 800; letter-spacing: .13em; }
.contact-map-meta strong { font-size: .78rem; }
.contact-map-info .btn { display: inline-flex; align-items: center; gap: .65rem; }
.contact-map-frame { min-height: 420px; background: #e6ebe7; border-top: 1px solid var(--hdbim-line); }
.contact-map-frame iframe { display: block; width: 100%; height: 420px; border: 0; }
.contact-form-section { scroll-margin-top: 2rem; }
.contact-form-intro h2 { max-width: 480px; margin: .7rem 0 1rem; color: #fff; font-size: clamp(2rem,3.5vw,3.05rem); font-weight: 650; letter-spacing: -.045em; line-height: 1.12; }
.contact-form-intro > p { max-width: 470px; color: #c2cecd; font-size: .87rem; line-height: 1.8; }
.contact-response-steps { margin-top: 2.2rem; border-top: 1px solid rgba(255,255,255,.16); }
.contact-response-steps > div { display: grid; grid-template-columns: 38px 1fr; gap: .65rem; padding: 1rem 0; border-bottom: 1px solid rgba(255,255,255,.16); }
.contact-response-steps > div > span { color: #d4ad73; font-size: .7rem; font-weight: 800; }
.contact-response-steps p { display: grid; gap: .18rem; margin: 0; }
.contact-response-steps strong { color: #fff; font-size: .78rem; }
.contact-response-steps small { color: #aebcbb; font-size: .7rem; }
.contact-form-card { color: var(--hdbim-ink); background: #fff; border: 0; border-radius: 5px; box-shadow: 0 20px 55px rgba(7,20,25,.2); }
.contact-form-card-heading { margin-bottom: 1.4rem; }
.contact-form-card-heading h3 { margin: .5rem 0 .25rem; font-size: 1.35rem; font-weight: 730; }
.contact-form-card-heading p { margin: 0; color: var(--hdbim-muted); font-size: .76rem; }
.contact-page-form .form-control { min-height: 45px; border-radius: 3px; }
.contact-page-form textarea.form-control { min-height: 140px; resize: vertical; }
.contact-page-form .form-label { margin-bottom: .4rem; color: var(--hdbim-ink); }
.contact-form-submit { gap: .75rem; margin-top: .2rem; }
.contact-form-submit > small { max-width: 290px; color: var(--hdbim-muted); font-size: .67rem; }
.contact-form-submit .btn { white-space: nowrap; }
.contact-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; }
.field-error { display: block; margin-top: .3rem; color: #a4262c; font-size: .7rem; }
.home-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.2rem; margin-top: 1.4rem; }
.home-hero-actions .hero-text-link { margin-top: 0; }
.home-hero-actions .btn { min-height: 42px; }

@media (max-width: 767.98px) {
    .contact-option-card { min-height: auto; }
    .contact-option-card p { min-height: 0; }
    .contact-map-info { grid-template-columns: 42px minmax(0,1fr); gap: .85rem; }
    .contact-map-symbol { width: 42px; height: 42px; }
    .contact-map-info .btn { grid-column: 2; justify-self: start; }
    .contact-map-frame, .contact-map-frame iframe { min-height: 330px; height: 330px; }
    .contact-response-steps { margin-top: 1.4rem; }
}
@media (max-width: 575.98px) {
    .contact-map-info { padding: 1.4rem; }
    .contact-map-frame, .contact-map-frame iframe { min-height: 280px; height: 280px; }
    .contact-form-submit { align-items: flex-start !important; flex-direction: column; }
}

/* About page section rhythm */
.page-about .hero-about { background: #fbfaf6; }
.page-about .about-activities { background: #eef4f3; border-block: 1px solid #e3ebe8; }
.page-about .about-vision { background: #f7f2e9; }
.page-about .about-timeline { background: #10232a; }
.page-about .about-values { background: #edf2f5; }
.page-about .about-ecosystem { background: #f1f5ef; }
.page-about .about-ecosystem .ecosystem-chips > div { background: rgba(255,255,255,.82); border: 1px solid #e1e8df; }

/* Softer page reveals: reduce AOS movement amplitude by about 30%. */
html:not(.no-js) [data-aos="fade-up"] { transform: translate3d(0, 45px, 0); }
html:not(.no-js) [data-aos="fade-down"] { transform: translate3d(0, -45px, 0); }
html:not(.no-js) [data-aos="fade-left"] { transform: translate3d(55px, 0, 0); }
html:not(.no-js) [data-aos="fade-right"] { transform: translate3d(-55px, 0, 0); }
html:not(.no-js) [data-aos="zoom-in"] { transform: scale(.89); }
html:not(.no-js) [data-aos="zoom-in-up"] { transform: translate3d(0, 38px, 0) scale(.90); }
html:not(.no-js) [data-aos="zoom-in-right"] { transform: translate3d(-41px, 0, 0) scale(.92); }
html:not(.no-js) [data-aos="zoom-in-left"] { transform: translate3d(41px, 0, 0) scale(.92); }

/* Play the first viewport as a deliberate intro instead of waiting for scroll. */
.hdbim-intro-ready .brand-symbol-crop {
    transform-style: preserve-3d;
    animation: hdbim-brand-spin 1.55s cubic-bezier(.18,.72,.18,1) .04s both;
}
.hdbim-intro-ready .brand-word {
    animation: hdbim-intro-from-right .82s cubic-bezier(.2,.72,.2,1) .28s both;
}
.hdbim-intro-item {
    animation-duration: 1.05s;
    animation-delay: var(--hdbim-intro-delay, 0ms);
    animation-fill-mode: both;
    will-change: transform, opacity;
}
.hdbim-intro-left { animation-name: hdbim-intro-from-left; }
.hdbim-intro-right { animation-name: hdbim-intro-from-right; }
.hdbim-intro-up { animation-name: hdbim-intro-from-up; }
@keyframes hdbim-brand-spin {
    0% { opacity: 0; transform: perspective(700px) rotateY(0deg) scale(.82); }
    15% { opacity: 1; transform: perspective(700px) rotateY(54deg) scale(1.08); }
    100% { opacity: 1; transform: perspective(700px) rotateY(360deg) scale(1); }
}
@keyframes hdbim-intro-from-left {
    0% { opacity: 0; filter: blur(3px); transform: translate3d(-50px, 0, 0); }
    100% { opacity: 1; filter: blur(0); transform: translate3d(0, 0, 0); }
}
@keyframes hdbim-intro-from-right {
    0% { opacity: 0; filter: blur(3px); transform: translate3d(50px, 0, 0) scale(.98); }
    100% { opacity: 1; filter: blur(0); transform: translate3d(0, 0, 0) scale(1); }
}
@keyframes hdbim-intro-from-up {
    0% { opacity: 0; filter: blur(2px); transform: translate3d(0, 29px, 0); }
    100% { opacity: 1; filter: blur(0); transform: translate3d(0, 0, 0); }
}
@media (prefers-reduced-motion: reduce) {
    [data-aos], .hdbim-intro-item, .hdbim-intro-ready .brand-symbol-crop, .hdbim-intro-ready .brand-word {
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
        animation: none !important;
        transition: none !important;
    }
}

/* Keep the technology hero concise while preserving its original illustration. */
.page-technology .hero-technology .container {
    padding-block: clamp(3rem, 6vw, 5rem) !important;
}

.page-technology .hero-technology h1 {
    max-width: 540px;
    margin: .75rem 0 1rem;
    font-size: clamp(2.25rem, 3.8vw, 3.35rem);
    letter-spacing: -.04em;
    line-height: 1.08;
}

.page-technology .hero-technology .hero-lead {
    max-width: 460px;
    font-size: clamp(.98rem, 1.2vw, 1.08rem);
    line-height: 1.65;
}

.page-technology .technology-hero-cta {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    margin-top: 1.5rem;
}

@media (max-width: 767.98px) {
    .page-technology .hero-technology .container {
        padding-block: 2.6rem !important;
    }
}


.home-capabilities .section-heading h2 { max-width: none; }
.home-capabilities .section-heading h2 .capability-heading-intro,
.home-capabilities .section-heading h2 .nowrap-title-phrase { display: inline; }
.home-capabilities .section-heading h2 .nowrap-title-phrase { white-space: nowrap; }

@media (min-width: 1200px) {
    .home-capabilities .section-heading h2 {
        max-width: none;
        font-size: clamp(1.65rem, 2.3vw, 2.15rem);
        white-space: nowrap;
    }
}
@media (max-width: 1199.98px) {
    .home-capabilities .section-heading h2 {
        max-width: 100%;
        font-size: clamp(1.3rem, 3.8vw, 1.8rem);
        line-height: 1.2;
    }
    .home-capabilities .section-heading h2 .capability-heading-intro,
    .home-capabilities .section-heading h2 .nowrap-title-phrase { display: block; }
}


/* Partner and customer logo marquee */
.home-partners {
    overflow: hidden;
    padding-block: clamp(2.2rem, 4vw, 3.5rem);
    background: #edf4f1;
}
.home-partners .section-heading {
    align-items: center;
    justify-content: center;
    margin-bottom: clamp(1.1rem, 2vw, 1.8rem) !important;
    text-align: center;
}
.home-partners .section-heading > div { width: 100%; }
.home-partners .section-heading h2 { margin-inline: auto; }
.home-partners .section-heading h2 {
    margin-top: .35rem;
    font-size: clamp(1.45rem, 2vw, 1.9rem);
}
.home-partner-empty {
    display: flex;
    min-height: clamp(4.5rem, 7vw, 6rem);
    align-items: center;
    justify-content: center;
    gap: clamp(.75rem, 2vw, 1.5rem);
    padding: 1rem;
    color: #77868a;
    background: #fbfcfb;
    border-block: .0625rem solid #e8edeb;
    font-size: clamp(.78rem, 1vw, .92rem);
    text-align: center;
}
.home-partner-empty > span {
    width: clamp(1.5rem, 4vw, 3.5rem);
    height: .12rem;
    background: linear-gradient(90deg, transparent, #b7202e);
}
.home-partner-empty > span:last-child { transform: rotate(180deg); }

.home-partner-marquee {
    overflow: hidden;
    max-width: 100%;
    margin-inline: auto;
    padding-block: .35rem;
}
.home-partner-marquee-track {
    display: flex;
    width: max-content;
    animation: home-partner-marquee var(--partner-marquee-duration, 36s) linear infinite;
    will-change: transform;
}
.home-partner-marquee-group {
    display: flex;
    flex: 0 0 auto;
    width: max-content;
    min-width: 100vw;
    align-items: center;
    justify-content: space-around;
    gap: clamp(2rem, 4.5vw, 5rem);
    padding-inline: clamp(1rem, 2.2vw, 2rem);
}
.home-partner-logo-item {
    display: grid;
    width: clamp(3.5rem, 5vw, 5rem);
    height: clamp(3.5rem, 5vw, 5rem);
    flex: 0 0 clamp(3.5rem, 5vw, 5rem);
    place-items: center;
}
.home-partner-logo-item > a,
.home-partner-logo-item > span {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
}
.home-partner-logo-item img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    object-fit: contain;
    filter: grayscale(.15);
    opacity: .9;
    transition: filter .25s ease, opacity .25s ease, transform .25s ease;
}
.home-partner-logo-item:hover img,
.home-partner-logo-item:focus-within img {
    filter: grayscale(0);
    opacity: 1;
    transform: scale(1.04);
}
@keyframes home-partner-marquee {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(-50%, 0, 0); }
}
@media (max-width: 767.98px) {
    .home-partners .section-heading { display: block; }
    .home-partners .section-heading > p { margin-top: .65rem; text-align: left; }
}
@media (prefers-reduced-motion: reduce) {
    .home-partner-marquee { overflow-x: auto; }
    .home-partner-marquee-track { width: 100%; animation: none; transform: none; will-change: auto; }
    .home-partner-marquee-group[aria-hidden="true"] { display: none; }
    .home-partner-marquee-group { flex-basis: auto; }
}

/* Proportion-led public header: brand on the left, navigation on the right */
.site-nav {
    min-height: clamp(5.65rem, 7vw, 6.65rem);
    padding-block: clamp(.45rem, .8vw, .8rem);
    background: linear-gradient(180deg, #fff 0%, #fbfcfb 100%);
    border-bottom: .0625rem solid #e2e9e6;
    box-shadow: 0 .38rem 1.2rem rgba(16, 35, 42, .05);
}
.site-nav > .container {
    display: flex;
    max-width: 1600px;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    padding-inline: clamp(1rem, 2.7vw, 2.8rem);
}
.site-nav .navbar-brand {
    display: flex;
    min-height: 0;
    flex: 0 0 auto;
    justify-content: flex-start;
    margin: 0;
    padding: .1em 0;
}
.brand-lockup { gap: clamp(.55rem, .9vw, .85rem); }
.brand-symbol-crop {
    display: block;
    width: clamp(3.25rem, 4.45vw, 4.05rem);
    height: clamp(3.25rem, 4.45vw, 4.05rem);
    overflow: hidden;
    flex: 0 0 auto;
}
.brand-logo {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}
.brand-word {
    display: block;
    color: #10232a;
    font-size: clamp(1.3rem, 1.65vw, 1.62rem);
    font-weight: 800;
    letter-spacing: .055em;
    line-height: 1;
}
.brand-word small {
    display: block;
    margin-top: .42em;
    color: #77868a;
    font-size: clamp(.47rem, .58vw, .57rem);
    font-weight: 650;
    letter-spacing: .14em;
    white-space: nowrap;
}
.site-nav .navbar-collapse {
    display: flex;
    min-width: 0;
    flex: 1 1 0;
    justify-content: flex-end;
    margin: 0 0 0 clamp(1rem, 2vw, 2rem);
    padding: 0;
    border: 0;
}
.site-nav .navbar-nav {
    display: flex;
    width: 100%;
    flex: 1 1 auto;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: clamp(.05rem, .22vw, .24rem);
    margin-inline: 0 !important;
}
.site-nav .nav-link {
    position: relative;
    display: flex;
    min-height: 2.9em;
    align-items: center;
    padding: .62em .38em !important;
    color: #26373b;
    border-radius: .35em;
    font-size: clamp(.76rem, .82vw, .9rem);
    font-weight: 750;
    letter-spacing: .018em;
    white-space: nowrap;
    transition: color .2s ease, background-color .2s ease;
}
.site-nav .nav-link::after {
    position: absolute;
    right: .42em;
    bottom: .3em;
    left: .42em;
    height: .12em;
    min-height: .1rem;
    background: var(--hdbim-accent);
    border-radius: 999px;
    content: "";
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .2s ease;
}
.site-nav .nav-link:hover,
.site-nav .nav-link.active { color: #b7202e; }
.site-nav .nav-link:hover::after,
.site-nav .nav-link.active::after { transform: scaleX(1); }
.site-nav .nav-item.ms-lg-3 { margin-left: clamp(.12rem, .35vw, .4rem) !important; }
.nav-contact {
    display: inline-flex;
    min-height: 2.9em;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: .65em 1em;
    color: #fff !important;
    background: #b7202e;
    border: .0625rem solid #b7202e;
    border-radius: 999px;
    box-shadow: 0 .28em .8em rgba(183, 32, 46, .18);
    font-size: clamp(.74rem, .78vw, .86rem);
    font-weight: 800;
    letter-spacing: .045em;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}
.nav-contact:hover { background: #941923; border-color: #941923; transform: translateY(-.07em); }
.site-nav .nav-link:focus-visible,
.nav-contact:focus-visible,
.site-nav .navbar-toggler:focus-visible {
    outline: .18em solid rgba(183, 32, 46, .35);
    outline-offset: .18em;
}
.site-nav .navbar-toggler {
    width: 3.1em;
    height: 2.9em;
    border-color: #cbd6d4;
}
.site-nav .navbar-toggler:focus { box-shadow: 0 0 0 .18em rgba(183, 32, 46, .17); }

@media (max-width: 1199.98px) {
    .site-nav { min-height: 0; padding-block: clamp(.55rem, 1vw, .9rem); }
    .site-nav > .container {
        flex-wrap: wrap;
        justify-content: space-between;
        padding-inline: clamp(1rem, 2.6vw, 2.2rem);
    }
    .brand-symbol-crop {
        width: clamp(3.05rem, 4.7vw, 3.85rem);
        height: clamp(3.05rem, 4.7vw, 3.85rem);
    }
    .brand-word { font-size: clamp(1.22rem, 1.85vw, 1.5rem); }
    .brand-word small { font-size: clamp(.44rem, .66vw, .54rem); letter-spacing: .11em; }
    .site-nav .navbar-collapse {
        flex-basis: 100%;
        margin: .55rem 0 0;
        padding: .6rem 0 .2rem;
        border-top: .0625rem solid #e8edeb;
    }
    .site-nav .navbar-nav { align-items: stretch !important; }
    .site-nav .nav-link {
        min-height: 2.75em;
        justify-content: flex-start;
        padding: .62em .55em !important;
        border-bottom: .0625rem solid #edf0ef;
        border-radius: .35em;
        font-size: .9rem;
    }
    .site-nav .nav-link::after { display: none; }
    .site-nav .nav-link.active { color: #b7202e; background: #f8eeee; }
    .site-nav .nav-item.ms-lg-3 { margin-left: 0 !important; }
    .nav-contact { min-height: 2.8em; margin: .7em 0 0; padding: .65em 1.1em; font-size: .86rem; }
    .site-nav .navbar-toggler { flex: 0 0 auto; }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
    .site-nav .navbar-nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0 clamp(1rem, 2.8vw, 2.5rem);
    }
    .site-nav .navbar-nav > .nav-item:last-child { grid-column: 1 / -1; }
    .site-nav .nav-item:last-child .nav-contact { width: max-content; }
}
@media (max-width: 767.98px) {
    .site-nav > .container { padding-inline: 1rem; }
    .brand-lockup { gap: .48rem; }
    .brand-symbol-crop {
        width: clamp(2.7rem, 10.8vw, 3.15rem);
        height: clamp(2.7rem, 10.8vw, 3.15rem);
    }
    .brand-word { font-size: clamp(1.1rem, 4.7vw, 1.32rem); }
    .brand-word small { margin-top: .3em; font-size: clamp(.35rem, 1.5vw, .43rem); letter-spacing: .065em; }
    .site-nav .navbar-collapse { margin-top: .45rem; padding-top: .45rem; }
    .site-nav .navbar-nav { display: grid; grid-template-columns: 1fr; gap: 0; }
    .site-nav .navbar-nav > .nav-item:last-child { grid-column: auto; }
    .site-nav .nav-link { min-height: 2.75em; font-size: .88rem; }
    .site-nav .nav-item:last-child .nav-contact { width: max-content; }
}
@media (max-width: 380px) {
    .brand-lockup { gap: .38rem; }
    .brand-word small { letter-spacing: .035em; }
    .site-nav > .container { padding-inline: .8rem; }
}
