/* Multi-brand components (Houston line). Neutral base built on the parent tokens; each child skin restyles them. */

/* ---------- finder ---------- */
.mbf{--mbf-bg:var(--white,#fff);--mbf-r:14px;background:var(--mbf-bg);border:1px solid var(--line);border-radius:var(--mbf-r);padding:clamp(18px,3vw,34px);box-shadow:0 30px 60px -40px rgba(0,0,0,.35)}
.mbf-title{font-size:clamp(24px,2.4vw,34px);margin:0 0 18px}
.mbf-search{position:relative;display:flex;align-items:center;gap:12px;border:1.5px solid var(--ink);border-radius:calc(var(--mbf-r,12px) - 4px);background:#fff;padding:0 14px;min-height:58px}
.mbf-search svg{width:22px;height:22px;flex:0 0 auto;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round}
.mbf-search input{flex:1;border:0;outline:0;background:transparent;font:500 17px/1.3 var(--body);color:var(--ink);padding:16px 0;min-width:0}
.mbf-search input::placeholder{color:var(--muted)}
.mbf-search:focus-within{box-shadow:0 0 0 4px color-mix(in srgb,var(--signal) 22%,transparent)}
.mbf-clear{border:0;background:transparent;font-size:26px;line-height:1;color:var(--muted);cursor:pointer;padding:4px}
.mbf-hits{position:absolute;left:-1.5px;right:-1.5px;top:calc(100% + 6px);z-index:30;background:#fff;border:1.5px solid var(--ink);border-radius:10px;box-shadow:0 30px 60px -20px rgba(0,0,0,.35);max-height:420px;overflow:auto;padding:6px}
.mbf-hit{display:grid;grid-template-columns:92px 1fr;gap:2px 12px;align-items:baseline;padding:10px 12px;border-radius:8px;text-decoration:none;color:var(--ink)}
.mbf-hit:hover,.mbf-hit.is-active{background:color-mix(in srgb,var(--signal) 9%,#fff)}
.mbf-hit b{font-weight:600}
.mbf-hit small{grid-column:2;color:var(--muted);font-size:13px}
.mbf-kind{grid-row:span 2;align-self:center;font:600 10.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;font-style:normal;padding:6px 8px;border-radius:999px;background:var(--paper-2,#eee);text-align:center}
.mbf-kind-brand{background:var(--ink);color:#fff}
.mbf-kind-code{background:var(--signal);color:var(--signal-ink,#fff)}
.mbf-nohit{margin:0;padding:12px;color:var(--muted)}
.mbf-steps{display:grid;gap:18px;margin-top:22px}
.mbf-step{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;align-items:center}
.mbf-step-n{display:grid;place-items:center;width:26px;height:26px;border-radius:999px;background:var(--ink);color:#fff;font:600 12px/1 var(--mono)}
.mbf-step-t{font:600 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.mbf-groups,.mbf-cats{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}
.mbf-g,.mbf-c{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:9px 14px;font:600 14.5px/1.1 var(--body);cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s,color .15s}
.mbf-g span,.mbf-c span{font:500 11.5px/1 var(--mono);color:var(--muted)}
.mbf-g i{width:20px;height:20px;background:currentColor;-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat}
.mbf-g:hover,.mbf-c:hover{border-color:var(--ink)}
.mbf-g.is-on,.mbf-c.is-on{background:var(--ink);border-color:var(--ink);color:#fff}
.mbf-g.is-on span,.mbf-c.is-on span{color:rgba(255,255,255,.7)}
.mbf-c[hidden]{display:none}
.mbf-catbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;align-items:center;margin-top:20px;padding:14px 18px;border-radius:10px;background:color-mix(in srgb,var(--signal) 8%,#fff);border:1px solid color-mix(in srgb,var(--signal) 25%,#fff);font-weight:600}
.mbf-catbar[hidden]{display:none}
.mbf-az{display:flex;flex-wrap:wrap;gap:4px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.mbf-az button{width:34px;height:34px;border:1px solid var(--line);background:#fff;border-radius:8px;font:600 13px/1 var(--mono);color:var(--ink);cursor:pointer}
.mbf-az button:disabled{opacity:.3;cursor:default}
.mbf-az button.is-on{background:var(--signal);border-color:var(--signal);color:var(--signal-ink,#fff)}
.mbf-brands{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.mbf-brands li[hidden]{display:none}
.mbf-empty{margin:18px 0 0;color:var(--muted)}
.mbf-empty[hidden]{display:none}

/* ---------- brand card ---------- */
.mb-card{position:relative;display:grid;grid-template-columns:56px 1fr 20px;gap:14px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;text-decoration:none;color:var(--ink);height:100%;transition:border-color .15s,transform .15s,box-shadow .15s}
.mb-card:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:0 18px 30px -22px rgba(0,0,0,.45)}
.mb-mark{display:grid;place-items:center;width:56px;height:56px;border-radius:12px;background:var(--ink);color:#fff;font:700 18px/1 var(--display);letter-spacing:.02em;overflow:hidden}
.mb-mark.has-logo{background:#fff;border:1px solid var(--line)}
.mb-mark img{width:100%;height:100%;object-fit:contain;padding:6px}
.mb-card-body{display:grid;gap:3px;min-width:0}
.mb-card-body b{font:700 16.5px/1.2 var(--body)}
.mb-card-body small{font-size:13px;color:var(--muted);line-height:1.35}
.mb-card-body em{font:500 11.5px/1.2 var(--mono);font-style:normal;color:var(--signal);letter-spacing:.02em}
.mb-go{font-style:normal;color:var(--muted);transition:transform .15s}
.mb-card:hover .mb-go,.mb-cat:hover .mb-go,.mb-series-row:hover .mb-go{transform:translateX(3px);color:var(--ink)}
.mb-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}

/* ---------- category card ---------- */
.mb-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
.mb-cat{position:relative;display:flex;flex-direction:column;border-radius:14px;overflow:hidden;background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink);transition:transform .2s,box-shadow .2s}
.mb-cat:hover{transform:translateY(-3px);box-shadow:0 24px 40px -26px rgba(0,0,0,.5)}
.mb-cat-ph{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:var(--paper-2,#eee)}
.mb-cat-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;transition:transform .5s}
.mb-cat:hover .mb-cat-ph img{transform:scale(1.04)}
.mb-cat-ico{position:absolute;left:16px;top:calc(min(100%,0px) + 16px);display:grid;place-items:center;width:44px;height:44px;border-radius:999px;background:var(--signal);z-index:1}
.mb-cat-ico i{width:24px;height:24px;background:var(--signal-ink,#fff);-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat}
.mb-cat-body{display:grid;gap:4px;padding:16px 18px 18px;padding-right:44px}
.mb-cat-body b{font:700 17px/1.25 var(--body)}
.mb-cat-body small{font:500 12px/1.3 var(--mono);color:var(--muted)}
.mb-cat .mb-go{position:absolute;right:18px;bottom:20px}
.mb-cats-sm{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.mb-cats-sm .mb-cat-ph{aspect-ratio:16/8}

/* ---------- groups (compact equipment map) ---------- */
.mb-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.mb-group{border:1px solid var(--line);border-radius:14px;background:#fff;padding:20px}
.mb-group-ico{display:grid;place-items:center;width:42px;height:42px;border-radius:999px;background:var(--signal);margin-bottom:12px}
.mb-group-ico i{width:22px;height:22px;background:var(--signal-ink,#fff);-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat}
.mb-group h3{font-size:18px;margin:0 0 10px}
.mb-group ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.mb-group a{text-decoration:none;color:var(--ink-2,var(--ink));font-size:15px}
.mb-group a:hover{color:var(--signal);text-decoration:underline}

/* ---------- series ---------- */
.mb-series{display:grid;border-top:1.5px solid var(--ink)}
.mb-series-row{display:grid;grid-template-columns:minmax(220px,1fr) 2fr 24px;gap:18px;align-items:center;padding:18px 6px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.mb-series-row:hover{background:color-mix(in srgb,var(--signal) 5%,transparent)}
.mb-series-name{display:grid;gap:3px}
.mb-series-name b{font:700 17px/1.3 var(--body)}
.mb-series-name small{font:500 12px/1.3 var(--mono);color:var(--muted)}
.mb-series-nums{display:flex;flex-wrap:wrap;gap:6px}
.mb-series-nums code,.mb-nums li{font:500 12.5px/1 var(--mono);padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink)}
.mb-series-nums em{font:500 12px/1 var(--mono);font-style:normal;color:var(--muted);align-self:center}
.mb-nums{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.mb-nums li{font-size:14px;padding:9px 12px}
.mb-nums li.is-hit{background:var(--signal);border-color:var(--signal);color:var(--signal-ink,#fff)}

/* ---------- tabs ---------- */
.mb-tablist{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:22px}
.mb-tablist [role="tab"]{border:1.5px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:9px 16px;font:600 14px/1.1 var(--body);cursor:pointer}
.mb-tablist [role="tab"][aria-selected="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.mb-tablist [role="tab"]:focus-visible{outline:3px solid var(--signal);outline-offset:2px}
.mb-more{margin-top:18px}

/* ---------- list filter, pagination, chips ---------- */
.mb-filter{display:grid;gap:16px;margin-bottom:28px}
.mb-filter-form{display:flex;flex-wrap:wrap;gap:12px;align-items:end}
.mb-filter-form label{display:grid;gap:6px;min-width:220px;flex:1 1 220px}
.mb-filter-form label span{font:600 11.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.mb-filter-form select{appearance:none;border:1.5px solid var(--line);border-radius:10px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23333' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 14px center;padding:13px 40px 13px 14px;font:500 15.5px/1.2 var(--body);color:var(--ink)}
.mb-filter-form select:focus{outline:0;border-color:var(--ink)}
.mb-reset{align-self:center;font-size:14px}
.mb-js-hide{display:none!important}
.mb-filter-note{margin:0}
.mb-subhead{font-size:clamp(20px,1.8vw,26px);margin:30px 0 16px}
.mb-chipgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.mb-chipgrid a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;text-decoration:none;color:var(--ink)}
.mb-chipgrid a:hover{border-color:var(--ink)}
.mb-chipgrid span{font:500 12px/1 var(--mono);color:var(--signal)}
.mb-pages{display:flex;flex-wrap:wrap;gap:6px;margin-top:30px}
.mb-pages .page-numbers{display:inline-grid;place-items:center;min-width:42px;height:42px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;text-decoration:none;color:var(--ink);font:600 14px/1 var(--mono)}
.mb-pages .page-numbers.current{background:var(--ink);border-color:var(--ink);color:#fff}
.mb-pages .page-numbers.dots{border:0;background:transparent}
.mb-none{padding:24px;border:1px dashed var(--line);border-radius:12px}

/* ---------- heroes and small parts ---------- */
.mb-chips a{border-radius:999px}
.mb-hero .kicker a{color:inherit}
.mb-brand-slot{position:relative}
.mb-logo-badge{position:absolute;left:18px;bottom:18px;z-index:2;display:grid;place-items:center;width:132px;height:72px;padding:10px;border-radius:12px;background:#fff;box-shadow:0 12px 30px -12px rgba(0,0,0,.5)}
.mb-logo-badge img{max-width:100%;max-height:100%;object-fit:contain}
.mb-doc{margin-top:28px;padding:14px 16px;border-left:3px solid var(--signal);background:color-mix(in srgb,var(--signal) 6%,transparent);font-size:15px}
.mb-cards-wall{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}

@media (max-width:760px){
  .mbf{padding:16px;border-radius:12px}
  .mbf-search{min-height:52px}
  .mbf-search input{font-size:16px}
  .mbf-groups,.mbf-cats{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
  .mbf-g,.mbf-c{flex:0 0 auto}
  .mbf-brands{grid-template-columns:1fr}
  .mb-series-row{grid-template-columns:1fr 20px;gap:10px}
  .mb-series-nums{grid-column:1}
  .mb-series-row .mb-go{grid-row:1;grid-column:2}
  .mb-hit{grid-template-columns:76px 1fr}
  .mb-filter-form label{min-width:100%}
  .mb-logo-badge{width:104px;height:58px}
}
.mb-hero .chips a{background:transparent;color:var(--on-dark,#fff);border-color:rgba(255,255,255,.35)}
.mb-hero .chips a:hover{background:var(--signal);border-color:var(--signal);color:var(--signal-ink,#fff)}
.hx-facts-grid{align-items:start}
/* Longer booking labels on these sites: keep the header on one line at phone width. */
@media (max-width:480px){
  .hx-head .wrap{gap:10px}
  .hx-head .btn-schedule>span{padding:9px 10px;font-size:12.5px}
  .hx-logo-word{font-size:15px}
  .hx-logo-word small{display:none}
  .hx-logo svg{width:30px;height:30px}
}
@media (max-width:370px){.hx-head .btn-schedule{display:none}}
@media (max-width:760px){.sec-num{max-width:100%;width:auto!important}.sec-num span:last-child{white-space:normal;min-width:0}.faq-wrap{grid-template-columns:minmax(0,1fr)}}
.mbf-more-row{display:flex;justify-content:center;margin-top:18px}.mbf-more[hidden]{display:none}
/* Severity badge on the dark code header: readable on both skins. */
.page-head .severity{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.4)}
.page-head .severity-high{background:rgba(220,60,60,.28);border-color:rgba(255,140,140,.7)}
.page-head .severity-low{background:rgba(60,170,110,.25);border-color:rgba(140,220,170,.7)}

/* Technical reference block on code pages (audit_5: document, edition, models, section, date checked) */
.mb-ref{display:grid;gap:0;margin:8px 0 14px;border:1px solid var(--line, rgba(0,0,0,.14));border-radius:8px;overflow:hidden}
.mb-ref>div{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:10px 14px;border-top:1px solid var(--line, rgba(0,0,0,.1))}
.mb-ref>div:first-child{border-top:0}
.mb-ref dt{font-family:var(--mono, monospace);font-size:12px;letter-spacing:.06em;text-transform:uppercase;opacity:.75}
.mb-ref dd{margin:0;overflow-wrap:anywhere}
@media (max-width:560px){.mb-ref>div{grid-template-columns:1fr;gap:2px}}
.prose ol li+li{margin-top:4px}

/* Five-metro service map (national sites) */
.usmap{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:32px;align-items:center}
.usmap-stage{position:relative;overflow:hidden;border-radius:12px}
.usmap-svg{width:100%;height:auto;display:block}
.usmap-cam{transform-origin:0 0;transition:transform .75s cubic-bezier(.2,.75,.2,1)}
.usmap-base{transition:opacity .45s ease}
.usmap.is-zoom .usmap-base{opacity:0}
.usmap-st{cursor:pointer;outline:none;transition:opacity .45s ease}
.usmap-shape{fill:var(--signal);fill-opacity:.16;stroke:var(--signal);stroke-width:1.2;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:fill-opacity .3s}
.usmap-st:hover .usmap-shape,.usmap-st:focus .usmap-shape{fill-opacity:.32}
.usmap.is-zoom .usmap-st:not(.is-on){opacity:0;pointer-events:none}
.usmap.is-zoom .usmap-st.is-on{cursor:default}
.usmap-shape{transition:fill-opacity .3s,opacity .35s}
.usmap.is-zoom .usmap-st.is-on .usmap-shape{opacity:0}
.usmap-areas{opacity:0;pointer-events:none;transition:opacity .35s ease}
.usmap-st.is-on .usmap-areas{opacity:1;pointer-events:auto;transition-delay:.35s}
.usmap-area{cursor:pointer;outline:none}
.usmap-cell{fill:var(--signal);fill-opacity:.2;stroke:#fff;stroke-width:1.6;stroke-linejoin:round;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;transition:fill-opacity .2s,transform .25s cubic-bezier(.2,.75,.2,1)}
.usmap-st.is-on .usmap-area .usmap-cell{animation:usmap-in .5s backwards}
.usmap-area:hover .usmap-cell,.usmap-area:focus .usmap-cell,.usmap-area.is-hl .usmap-cell{fill-opacity:.62;transform:scale(1.08)}
.usmap-dot{fill:var(--signal);stroke:#fff;stroke-width:1.2;vector-effect:non-scaling-stroke}
.usmap-lbl{font-family:var(--body);font-weight:600;fill:var(--ink);paint-order:stroke;stroke:#fff;stroke-linejoin:round;pointer-events:none;opacity:0;transition:opacity .2s}
.usmap-lbl.is-always{opacity:.9}
.usmap-area:hover .usmap-lbl,.usmap-area:focus .usmap-lbl,.usmap-area.is-hl .usmap-lbl{opacity:1}
.usmap-pts{transition:opacity .3s ease}
.usmap.is-zoom .usmap-pts{opacity:0;pointer-events:none}
.usmap-pt circle{fill:var(--signal);stroke:#fff;stroke-width:2}
.usmap-pt circle.usmap-halo{fill:none;stroke:var(--signal);stroke-opacity:.35;stroke-width:2}
.usmap-pt text{font-weight:600;font-size:15px;fill:var(--ink);paint-order:stroke;stroke:#fff;stroke-width:3px}
.usmap-back{position:absolute;left:12px;top:12px;font:inherit;font-size:14px;font-weight:600;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer}
.usmap-back:hover,.usmap-back:focus{border-color:var(--signal)}
.usmap-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.usmap-list a{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;text-decoration:none;color:inherit}
.usmap-list a:hover,.usmap-list a:focus{border-color:var(--signal)}
.usmap-list span{opacity:.75}
.usmap-list[hidden],.usmap-arealist[hidden],.usmap-back[hidden]{display:none}
.usmap-arealist ul{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:4px;max-height:420px;overflow:auto}
.usmap-arealist ul a{display:block;padding:6px 10px;border-radius:6px;text-decoration:none;color:inherit;font-size:15px}
.usmap-arealist ul a:hover,.usmap-arealist ul a:focus{background:var(--signal);color:#fff}
.usmap-al-h{margin:0 0 8px;font-weight:700}
.usmap-al-h a{color:inherit}
@keyframes usmap-in{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}
@media (max-width:860px){.usmap{grid-template-columns:1fr}.usmap-arealist ul{max-height:none;grid-template-columns:1fr 1fr}}
@media (prefers-reduced-motion:reduce){.usmap-cam,.usmap-cell,.usmap-st,.usmap-areas{transition:none;animation:none}}

/* Booking form in the rail (national sites, variant A) */
.rail-form{background:var(--white,#fff);border:1px solid var(--line);border-top:3px solid var(--signal)}
.rail-form .booking-card{margin:12px 0 0;padding:0;box-shadow:none;border:0;background:transparent}
.rail-form .rail-call{margin:12px 0 0}
.band-to-form{display:flex;align-items:center;justify-content:flex-start}

.prose .rail-others{margin-top:36px}

/* an odd number of brief cards: the last one spans the row, no empty cell */
.area-brief-2x2>div:last-child:nth-child(odd){grid-column:1/-1}
