.engineering-service-page {
  --mb-navy: #17201d;
  --mb-green: #235744;
  --mb-orange: #e36f2d;
  --mb-mint: #e4ebe6;
  --mb-cream: #f3f4f1;
  --mb-line: #d3d9d5;
}

.mb-engineering-main { overflow: hidden; background: #f3f4f1; }
.mb-engineering-main h1,.mb-engineering-main h2,.mb-engineering-main h3,.mb-engineering-main p { overflow-wrap:normal; word-break:normal; }
.mb-breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 22px; padding-bottom: 16px; color: #66706c; font-size: 13px; }
.mb-breadcrumbs a { color: #235744; font-weight: 750; text-decoration: none; }
.mb-engineering-hero { padding: 34px 0 72px; background: linear-gradient(135deg, #f3f4f1 0%, #e4ebe6 100%); }
.mb-engineering-hero-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(360px, .9fr); gap: 72px; align-items: center; }
.mb-kicker { margin: 0 0 12px; color: #c8571b; font-size: 12px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.mb-engineering-hero h1 { max-width: 850px; margin: 0; font-size: clamp(42px, 4.5vw, 60px); line-height: 1; letter-spacing: -.04em; }
.mb-hero-lead { max-width: 780px; margin: 28px 0 0; color: #47514d; font-size: 20px; line-height: 1.55; }
.mb-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin-top: 30px; }
.mb-text-link { color: #235744; font-weight: 850; text-decoration-thickness: 2px; text-underline-offset: 5px; }
.mb-hero-note { margin: 22px 0 0; color: #65706c; font-size: 13px; font-weight: 700; }
.mb-system-map { position: relative; min-height: 410px; border: 1px solid rgba(35,87,68,.22); background: rgba(255,255,255,.58); }
.mb-system-map::before,.mb-system-map::after { content:""; position:absolute; background:#aab8b1; }
.mb-system-map::before { left:50%; top:50%; width:1px; height:73%; transform:translate(-50%,-50%); }
.mb-system-map::after { left:15%; top:50%; width:70%; height:1px; }
.mb-system-map-core { position:absolute; z-index:2; left:50%; top:50%; display:grid; place-items:center; width:190px; min-height:150px; padding:20px; transform:translate(-50%,-50%); color:#fff; background:#235744; text-align:center; }
.mb-system-map-core span,.mb-system-map-core small { color:rgba(255,255,255,.72); font-size:12px; }
.mb-system-map-core strong { margin:7px 0; font-size:20px; line-height:1.15; }
.mb-system-map-branch { position:absolute; z-index:3; min-width:130px; padding:14px 16px; border-left:4px solid #e36f2d; background:#fff; box-shadow:0 12px 28px rgba(23,32,29,.1); font-weight:850; text-align:center; }
.mb-branch-a { left:7%; top:12%; }.mb-branch-b { right:7%; top:12%; }.mb-branch-c { left:50%; bottom:10%; transform:translateX(-50%); }

.mb-section-nav { position:sticky; top:94px; z-index:20; background:#17201d; color:#fff; }
.admin-bar .mb-section-nav { top:126px; }
.mb-section-nav .shell { display:flex; gap:26px; overflow-x:auto; scrollbar-width:none; }
.mb-section-nav a { padding:15px 0; color:rgba(255,255,255,.82); font-size:13px; font-weight:800; text-decoration:none; white-space:nowrap; }
.mb-section-nav a:hover,.mb-section-nav a:focus-visible { color:#fff; }

.mb-intro,.mb-inputs,.mb-estimate,.mb-sequence,.mb-risks,.mb-objects,.mb-boundary,.mb-cluster-nav,.mb-faq { padding:76px 0; }
.mb-copy-grid { display:grid; grid-template-columns:.82fr 1.18fr; gap:80px; align-items:start; }
.mb-copy-grid h2,.mb-section-heading h2,.mb-sequence h2,.mb-risks h2,.mb-boundary h2,.mb-cluster-nav h2,.mb-faq h2 { margin:0; font-size:clamp(34px,4vw,52px); line-height:1.05; letter-spacing:-.035em; }
.mb-prose { max-width:740px; }
.mb-prose p { margin:0 0 18px; color:#4f5a55; font-size:16px; line-height:1.55; }
.mb-service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; margin-top:44px; background:#d3d9d5; border:1px solid #d3d9d5; }
.mb-service-card { display:flex; flex-direction:column; min-height:270px; padding:30px; background:#fff; }
.mb-service-card h3 { margin:0; font-size:25px; line-height:1.15; }
.mb-service-card p { margin:18px 0; color:#58635e; }
.mb-service-card a { margin-top:auto; color:#235744; font-weight:850; }
.mb-engineering-visual { margin-top:40px; }
.mb-engineering-visual picture { display:block; }
.mb-engineering-visual img { display:block; width:100%; height:auto; border:1px solid #d3d9d5; }
.mb-engineering-visual figcaption { margin-top:12px; color:#58635e; font-size:14px; line-height:1.55; }

.mb-inputs { background:#fff; }
.mb-section-heading { display:grid; grid-template-columns:.9fr 1.1fr; gap:60px; align-items:end; }
.mb-section-heading .mb-kicker { grid-column:1/-1; margin-bottom:-40px; }
.mb-section-heading > p:last-child { margin:0 0 6px; color:#59645f; font-size:16px; line-height:1.55; }
.mb-input-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin-top:44px; }
.mb-input-item { min-height:255px; padding:26px; border-top:4px solid #235744; background:#f3f4f1; }
.mb-input-item > span { color:#e36f2d; font-size:13px; font-weight:900; }
.mb-input-grid h3 { margin:34px 0 12px; font-size:21px; line-height:1.18; }
.mb-input-grid p { margin:0; color:#5d6863; }

.mb-estimate { background:#f3f4f1; }
.mb-table-wrap { margin-top:38px; }
.mb-estimate table { width:100%; border-collapse:collapse; background:#fff; table-layout:fixed; }
.mb-estimate th,.mb-estimate td { padding:20px; border:1px solid #d3d9d5; text-align:left; vertical-align:top; }
.mb-estimate th { color:#fff; background:#235744; font-size:16px; line-height:1.55; }
.mb-estimate td { color:#4f5a55; font-size:16px; line-height:1.55; }
.mb-estimate td:first-child { color:#17201d; font-weight:850; }

.mb-sequence { background:#e4ebe6; }
.mb-sequence-grid { display:grid; grid-template-columns:.82fr 1.18fr; gap:80px; }
.mb-sequence-sticky { align-self:start; position:sticky; top:170px; }
.mb-sequence-sticky > p:last-child { color:#56615c; font-size:16px; line-height:1.55; }
.mb-sequence-list { margin:0; padding:0; list-style:none; border-top:1px solid #bfcac3; }
.mb-sequence-list li { display:grid; grid-template-columns:58px 1fr; gap:18px; padding:28px 0; border-bottom:1px solid #bfcac3; }
.mb-sequence-list li > span { color:#e36f2d; font-size:13px; font-weight:900; }
.mb-sequence-list h3 { margin:0 0 8px; font-size:23px; }
.mb-sequence-list p { margin:0; color:#56615c; }

.mb-risks { color:#fff; background:#17201d; }
.mb-risks-grid { display:grid; grid-template-columns:.84fr 1.16fr; gap:80px; }
.mb-risks-grid > div > p:last-child { color:rgba(255,255,255,.72); font-size:16px; line-height:1.55; }
.mb-risks ul { margin:0; padding:0; list-style:none; counter-reset:risks; border-top:1px solid rgba(255,255,255,.18); }
.mb-risks li { position:relative; padding:18px 18px 18px 54px; border-bottom:1px solid rgba(255,255,255,.18); color:rgba(255,255,255,.82); }
.mb-risks li::before { counter-increment:risks; content:counter(risks); position:absolute; left:0; top:18px; display:grid; place-items:center; width:28px; height:28px; background:#e36f2d; color:#fff; font-size:12px; font-weight:900; }

.mb-objects { background:#f3f4f1; }
.mb-object-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:42px; }
.mb-object-grid a { display:grid; grid-template-columns:.6fr 1fr; gap:12px 28px; min-height:165px; padding:26px; border:1px solid #d3d9d5; background:#fff; text-decoration:none; }
.mb-object-grid strong { font-size:22px; line-height:1.2; }
.mb-object-grid span { color:#58635e; }
.mb-object-grid em { grid-column:1/-1; align-self:end; color:#235744; font-style:normal; font-weight:850; }
.mb-object-grid a:hover,.mb-object-grid a:focus-visible { border-color:#235744; box-shadow:0 12px 32px rgba(23,32,29,.08); }

.mb-boundary { padding-top:0; background:#f3f4f1; }
.mb-boundary-card { display:grid; grid-template-columns:.8fr 1.2fr; gap:64px; padding:42px; color:#fff; background:#235744; }
.mb-boundary-card p { margin:0 0 18px; color:rgba(255,255,255,.78); font-size:16px; line-height:1.55; }
.mb-boundary-card .mb-norm-note { margin:26px 0 0; padding-top:24px; border-top:1px solid rgba(255,255,255,.22); font-size:16px; }

.mb-cluster-nav { background:#fff; }
.mb-cluster-links { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; margin-top:34px; background:#d3d9d5; border:1px solid #d3d9d5; }
.mb-cluster-links a { min-height:100px; padding:24px; background:#fff; color:#235744; font-weight:850; text-decoration:none; }
.mb-cluster-links a[aria-current="page"] { color:#fff; background:#235744; }

.mb-faq { background:#e4ebe6; }
.mb-faq-grid { display:grid; grid-template-columns:.72fr 1.28fr; gap:80px; }
.mb-faq-grid > div:first-child > p:last-child { color:#56615c; }
.mb-faq-list { border-top:1px solid #bfcac3; }
.mb-faq-list details { border-bottom:1px solid #bfcac3; }
.mb-faq-list summary { position:relative; padding:20px 48px 20px 0; cursor:pointer; font-size:18px; font-weight:850; list-style:none; }
.mb-faq-list summary::after { content:"+"; position:absolute; right:5px; top:13px; color:#235744; font-size:30px; font-weight:400; }
.mb-faq-list details[open] summary::after { content:"−"; }
.mb-faq-list p { margin:0 0 22px; color:#56615c; }
.mb-engineering-request { padding:76px 0; }
.mb-engineering-request .mb-kicker { color:#ff9d63; }
.mb-engineering-request .request-copy > p:not(.eyebrow):not(.contact-heading) { font-size:16px; line-height:1.55; }
.mb-engineering-request .contact-links a { min-width:0; }
.mb-engineering-request .contact-links span { overflow-wrap:anywhere; }

.mb-engineering-context { padding:0; color:#fff; background:#235744; }
.mb-engineering-context .shell { display:flex; align-items:center; justify-content:space-between; gap:30px; padding-top:24px; padding-bottom:24px; }
.mb-engineering-context p { display:grid; gap:4px; margin:0; }
.mb-engineering-context span { color:rgba(255,255,255,.7); }
.mb-engineering-context a { flex:0 0 auto; padding:12px 16px; border:1px solid rgba(255,255,255,.5); color:#fff; font-weight:850; text-decoration:none; }

@media (max-width: 920px) {
  .mb-engineering-hero-grid,.mb-copy-grid,.mb-sequence-grid,.mb-risks-grid,.mb-boundary-card,.mb-faq-grid { grid-template-columns:1fr; gap:42px; }
  .mb-engineering-hero-grid { gap:36px; }
  .mb-system-map { min-height:350px; }
  .mb-input-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mb-section-heading { grid-template-columns:1fr; gap:18px; }
  .mb-section-heading .mb-kicker { grid-column:auto; margin-bottom:-4px; }
  .mb-sequence-sticky { position:static; }
  .mb-cluster-links { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mb-section-nav { top:94px; }
}

@media (max-width: 640px) {
  .mb-breadcrumbs { padding-top:16px; }
  .mb-engineering-hero { padding:22px 0 48px; }
  .mb-engineering-hero h1 { font-size:36px; line-height:1.02; }
  .mb-hero-lead { margin-top:20px; font-size:17px; }
  .mb-hero-actions { display:grid; gap:14px; }
  .mb-hero-actions .button { width:100%; text-align:center; }
  .mb-system-map { min-height:320px; }
  .mb-system-map-core { width:158px; min-height:132px; padding:16px; }
  .mb-system-map-branch { min-width:105px; padding:10px; font-size:13px; }
  .mb-branch-a { left:3%; top:9%; }.mb-branch-b { right:3%; top:9%; }.mb-branch-c { bottom:7%; }
  .mb-section-nav { position:static; }
  .admin-bar .mb-section-nav { top:auto; }
  .mb-section-nav .shell { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; padding-top:1px; padding-bottom:1px; overflow:visible; }
  .mb-section-nav a { padding:12px 10px; background:rgba(255,255,255,.06); text-align:center; white-space:normal; }
  .mb-intro,.mb-inputs,.mb-estimate,.mb-sequence,.mb-risks,.mb-objects,.mb-boundary,.mb-cluster-nav,.mb-faq { padding:50px 0; }
  .mb-service-grid,.mb-input-grid,.mb-object-grid,.mb-cluster-links { grid-template-columns:1fr; }
  .mb-service-card { min-height:220px; padding:22px; }
  .mb-input-item { min-height:0; padding:22px; }
  .mb-input-grid h3 { margin-top:24px; }
  .mb-estimate table,.mb-estimate tbody,.mb-estimate tr,.mb-estimate td { display:block; width:100%; }
  .mb-estimate thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
  .mb-estimate tr { margin-bottom:14px; border:1px solid #d3d9d5; background:#fff; }
  .mb-estimate td { display:grid; grid-template-columns:minmax(104px,.42fr) minmax(0,1fr); gap:12px; border:0; border-bottom:1px solid #d3d9d5; overflow-wrap:anywhere; }
  .mb-estimate td:last-child { border-bottom:0; }
  .mb-estimate td::before { content:attr(data-label); color:#235744; font-size:12px; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }
  .mb-object-grid a { grid-template-columns:1fr; min-height:0; padding:22px; }
  .mb-object-grid em { grid-column:auto; margin-top:14px; }
  .mb-boundary-card { padding:26px 22px; }
  .mb-cluster-links a { min-height:0; padding:20px; }
  .mb-engineering-request { padding:50px 0; }
  .mb-engineering-context .shell { align-items:flex-start; flex-direction:column; gap:16px; }
  .mb-engineering-context a { width:100%; text-align:center; }
}

@media (max-width: 360px) {
  .mb-engineering-hero h1 { font-size:32px; }
  .mb-system-map { min-height:300px; }
  .mb-system-map-core { width:145px; }
  .mb-system-map-branch { min-width:96px; font-size:12px; }
  .mb-engineering-request .contact-links { grid-template-columns:1fr; }
  .mb-engineering-request h2 { font-size:30px; }
  .mb-water-page .mb-estimate td { grid-template-columns:1fr; gap:4px; overflow-wrap:normal; word-break:normal; }
}

@media (prefers-reduced-motion: reduce) {
  .mb-engineering-main * { scroll-behavior:auto !important; }
}
