/* Content-copy deterrent (same rules as price-checker.html's html.mgp-protect
   block) - site-chrome-engine.js only flips this class on when the page's
   <body data-protect="1"> is set, and always leaves inputs/textareas
   selectable so the contact form and any typed fields keep working. */
html.mgp-protect,
html.mgp-protect body {
    -webkit-user-select: none;
    user-select: none;
}

html.mgp-protect input,
html.mgp-protect textarea,
html.mgp-protect select {
    -webkit-user-select: text;
    user-select: text;
}

/* Shared top bar + footer for ADU hub pages (matches legal / price-checker family). */
body.mgp-adu-chrome {
    padding-top: 64px;
    padding-bottom: 24px;
}

/* v2 header stays in document flow (sticky) so it occupies its own height
   and the page can grow a window-level horizontal scrollbar when zoom
   shrinks the viewport below the 1683px layout. */
html {
    overflow-x: auto;
    overflow-y: scroll;
    scrollbar-gutter: stable;
}

body.mgp-adu-chrome.mgp-adu-chrome-v2 {
    margin: 0;
    padding-top: 0;
    min-width: 1683px;
}

.mgp-adu-top-bar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding: 10px max(16px, env(safe-area-inset-right, 0px)) 10px max(16px, env(safe-area-inset-left, 0px));
    background: #121212;
    border-bottom: 2px solid #ff9900;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.45);
}

.mgp-adu-top-bar .brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #ffffff;
    text-decoration: none;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-weight: 700;
    font-size: 15px;
}

.mgp-adu-top-bar .brand img {
    height: 44px;
    width: auto;
    border-radius: 4px;
    display: block;
}

.mgp-adu-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 14px;
}

.mgp-adu-nav a {
    color: #ffcc80;
    text-decoration: none;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 13px;
    font-weight: 600;
    padding: 8px 4px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
}

.mgp-adu-nav a:hover,
.mgp-adu-nav a:focus-visible {
    color: #ffffff;
    text-decoration: underline;
}

.mgp-adu-nav a.is-active {
    color: #ff9900;
}

.mgp-adu-site-footer {
    clear: both;
    max-width: 1683px;
    margin: 28px auto 0;
    padding: 14px 16px 0;
    border-top: 1px solid #444444;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 13px;
    color: #888888;
    text-align: center;
}

.mgp-adu-site-footer .affiliate-line {
    color: #cccccc;
    font-size: 13px;
    line-height: 1.45;
    margin: 0 0 10px;
}

.mgp-adu-site-footer .copy {
    color: #aaaaaa;
    font-size: 12px;
    margin: 0 0 8px;
}

.mgp-adu-site-footer a {
    color: #ffcc80;
    margin: 0 8px;
    text-decoration: none;
}

.mgp-adu-site-footer a:hover {
    text-decoration: underline;
}

.mgp-adu-legal {
    max-width: 820px;
    margin: 28px auto 40px;
    padding: 0 20px;
    color: #d8d8d8;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 16px;
    line-height: 1.55;
}

.mgp-adu-legal h1 {
    color: #ffcc66;
    font-size: 28px;
    margin: 0 0 12px;
}

.mgp-adu-legal h2 {
    color: #ff9900;
    font-size: 18px;
    margin: 22px 0 8px;
}

.mgp-adu-legal p,
.mgp-adu-legal li {
    margin: 0 0 10px;
}

.mgp-adu-legal ul {
    padding-left: 22px;
    margin: 0 0 12px;
}

.mgp-adu-legal a {
    color: #ffcc66;
}

/* Top bar replaces the legacy header Material Pricing pill on hub pages. */
body.mgp-adu-chrome table:first-of-type th a.price-btn {
    display: none;
}

/* Most legacy hub pages build their whole layout as a stack of fixed-width
   (1683px) tables directly under <body> with no align="center" (index.html
   and INFO.html are the two exceptions that already had it) — on any
   screen wider than that they sit flush left instead of centered. Centering
   every top-level table here matches those two pages without touching
   dozens of legacy table tags one by one. */
body.mgp-adu-chrome > table {
    margin-left: auto;
    margin-right: auto;
}

/* --- New (v2) header layout --------------------------------------------
   Pages migrated to the consolidated header wrap their existing legacy
   header table (logo/banner/INFO/CONTACT) + a second, now-empty grey nav
   table in <div id="mgpAduHeader"> (see adu-chrome.js). Both tables stay
   1683px fixed-width like every other legacy table here, so they need the
   same auto-margin centering as body.mgp-adu-chrome > table above — but
   they're no longer direct children of body once wrapped, hence the
   separate selector. */
.mgp-adu-header {
    position: sticky;
    top: 0;
    z-index: 10000;
    background: #000000;
    box-shadow: 0 2px 14px rgba(0, 0, 0, 0.3);
    width: 1683px;
    min-width: 1683px;
    max-width: 1683px;
    margin-left: auto;
    margin-right: auto;
}

.mgp-adu-header > table {
    margin-left: auto;
    margin-right: auto;
    width: 1683px;
    min-width: 1683px;
    max-width: 1683px;
    height: 214px;
    table-layout: fixed;
    box-sizing: border-box;
}

/* width="1507" on the right-hand cells is a content-box hint. With
   #mgpAduNavCell's 260px right padding that would grow the table past
   1683 (Granny 176 + 1507 + 260). Keep the padding inside the column
   so this header matches INFO / CONTACT / the hub. */
.mgp-adu-header > table th {
    box-sizing: border-box;
}

.mgp-adu-header > table th[rowspan="3"] {
    width: 176px;
    max-width: 176px;
}

#mgpAduNavCell,
.mgp-adu-banner-cell,
.mgp-adu-header .mgp-adu-intro-band {
    width: auto !important;
}

body.mgp-adu-chrome:not(.mgp-adu-hub) .mgp-adu-header {
    width: 1683px;
    min-width: 1683px;
    max-width: 1683px;
    margin-left: auto;
    margin-right: auto;
}

/* Non-hub pages only: the 131px intro band is black with white type.
   The hub keeps its white showcase cell (no .mgp-adu-intro-band). */
.mgp-adu-header .mgp-adu-intro-band {
    background-color: #000000 !important;
    height: 131px;
}

.mgp-adu-header .mgp-adu-intro-band,
.mgp-adu-header .mgp-adu-intro-band p,
.mgp-adu-header .mgp-adu-intro-band .style-header-intro,
.mgp-adu-header .mgp-adu-intro-band .style10 {
    color: #ffffff !important;
}

body.mgp-adu-chrome:not(.mgp-adu-hub) .mgp-adu-intro-band {
    vertical-align: middle !important;
    text-align: center;
    height: 131px;
    padding: 0 20px !important;
    box-sizing: border-box;
}

body.mgp-adu-chrome:not(.mgp-adu-hub) .mgp-adu-intro-band .mgp-adu-hint-bar,
body.mgp-adu-chrome:not(.mgp-adu-hub) .mgp-adu-intro-band .mgp-adu-hint-billboard {
    justify-content: center;
    align-items: center;
    width: 100%;
    height: auto;
    min-height: 54px;
}

body.mgp-adu-chrome:not(.mgp-adu-hub) .mgp-adu-intro-band .mgp-adu-hint-billboard {
    position: relative;
}

body.mgp-adu-chrome:not(.mgp-adu-hub) .mgp-adu-intro-band .hint-billboard-default,
body.mgp-adu-chrome:not(.mgp-adu-hub) .mgp-adu-intro-band .hint-billboard-active {
    display: grid;
    place-items: center;
    text-align: center;
    position: absolute;
    inset: 0;
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    font-size: 18px;
    line-height: 1.35;
}

body.mgp-adu-chrome:not(.mgp-adu-hub) .mgp-adu-intro-band .hint-billboard-active {
    display: none;
}

body.mgp-adu-chrome:not(.mgp-adu-hub) .mgp-adu-intro-band .mgp-adu-hint-billboard.is-live .hint-billboard-active {
    display: grid;
    place-items: center;
}

/* Logo cell now rowspans the full header height (banner 52px + showcase
   131px + grey nav band 31px = 214px) instead of just the top banner row,
   so the mascot image reads as a tall corner anchor. object-fit keeps
   whatever image is dropped in here from stretching/squishing. */
.mgp-adu-logo-img {
    display: block;
    width: 176px;
    height: 214px;
    object-fit: contain;
    background: #000000;
}

/* Banner cell (row 1, next to the logo) — used to be three <th>s wide
   (banner image + two page-specific buttons like INFO/CONTACT or
   HOME/CONTACT); those buttons moved down into the grey nav band below, so
   this cell now colspans all three of that row's old columns. The banner
   graphic (Header-Button-1-Long.png) is left completely untouched at its
   own native 1243x52 size — no stretching, so its baked-in text stays
   crisp. Credits sits flush-right on this same band (250px), so the
   elongated art meets that button and the leftover pixels pick up the
   sampled teal + bevel colors instead of a hole. */
.mgp-adu-banner-cell {
    position: relative;
    padding: 0;
    margin: 0;
    background-color: #04745e;
    box-shadow:
        inset 0 5px 0 0 #85bbb1,
        inset 0 -5px 0 0 #01271f,
        inset -5px 0 0 0 #022e26;
}

.mgp-adu-banner-cell > a {
    display: block;
    float: left;
    width: 1243px;
    line-height: 0;
}

.mgp-adu-banner-cell img {
    display: block;
    width: 1243px;
    height: 52px;
}

.mgp-adu-banner-cell .mgp-adu-credits-btn-img {
    width: 250px;
    height: 52px;
}

/* White band showcase — same rotating 3D-barrel mechanic as the price-
   checker's header showcase (rotateX faces around a drum via perspective +
   translateZ), just restyled for this band: white background, black text,
   sized to the <th height="131"> cell it lives in instead of the price-
   checker's compact single-line bar. Content is admin-managed (Showcase
   tab, admin-adu.html) instead of hardcoded paragraphs. */
.mgp-adu-showcase-cell {
    padding: 0 !important;
}

.mgp-adu-showcase {
    width: 100%;
    max-width: 100%;
    height: 131px;
    overflow: hidden;
    position: relative;
    background: #ffffff;
    box-sizing: border-box;
    margin-left: auto;
    margin-right: auto;
}

.mgp-hub-explain-ribbon {
    position: absolute;
    inset: 0;
    z-index: 6;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    padding: 8px 16px;
    background: #000000;
    border: 3px solid #ffffff;
    color: #ffffff;
    font-family: "Tekton Pro", Arial, sans-serif;
    font-size: 17px;
    line-height: 1.35;
    cursor: pointer;
}

.mgp-hub-explain-ribbon p {
    margin: 0;
}

.mgp-hub-explain-ribbon.is-done {
    display: none;
}

.mgp-adu-showcase-viewport {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
    perspective: 900px;
    perspective-origin: 50% 50%;
}

.mgp-adu-showcase-track {
    position: relative;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
    transform: rotateX(0deg);
    transition: transform 0.7s cubic-bezier(0.45, 0.05, 0.25, 1);
    will-change: transform;
}

.mgp-adu-showcase-slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 8px 20px;
    box-sizing: border-box;
    background: #ffffff;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    transform-style: preserve-3d;
    overflow: hidden;
}

.mgp-adu-showcase-text {
    position: relative;
    z-index: 1;
    display: inline-block;
    width: max-content;
    max-width: 100%;
    text-align: left;
    color: #000000;
    font-size: 18px;
    line-height: calc(1em + 2px);
    white-space: pre-wrap;
    overflow: hidden;
    max-height: 100%;
}

.mgp-adu-showcase-text span {
    line-height: calc(1em + 2px);
}

.mgp-adu-showcase-slide.is-image {
    padding: 8px 20px;
}

.mgp-adu-showcase-image {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    max-width: 2400px;
    max-height: 2400px;
    width: auto;
    height: auto;
    object-fit: none;
    display: block;
    z-index: 0;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
}

.mgp-adu-showcase-slide.is-image .mgp-adu-showcase-text {
    font-size: 14px;
    max-width: 100%;
}

@media (prefers-reduced-motion: reduce) {
    .mgp-adu-showcase-track {
        transition: none;
    }
}

@media (max-width: 900px) {
    .mgp-adu-showcase {
        height: 161px;
    }

    .mgp-adu-showcase-slide {
        padding: 8px 16px;
    }

    .mgp-adu-showcase-text {
        font-size: 15px;
    }
}

/* The nav band reuses the legacy grey (#CCCCCC) purchasing-inquiry table —
   its bgcolor attribute is left in the HTML on purpose (that's the "keep
   the grey" ask). Table/th height="31" in the HTML matches the nav
   buttons' own height exactly (credits stays 52px on the teal banner
   above). Padding here is zero top/bottom so the buttons sit flush in
   the band. Left/right padding is also zero: the buttons sit flush
   against the band's left edge (align="left" HTML attribute on the <th>),
   not centered. */
/* Deliberately NOT display:flex here — overriding a <th>'s display away
   from table-cell drops it out of the table's column-width algorithm
   entirely, which visibly shrank this band to its content width instead of
   the full column width every other header row uses. position:relative on
   a table-cell is fine and is all the account widget below needs to anchor
   itself; left-alignment of the nav buttons comes from the cell's own
   align="left" HTML attribute. */
#mgpAduNavCell {
    padding: 0 260px 0 0 !important;
    position: relative;
}

/* Same glossy/beveled look as Button-INFO.png and Button-CONTACT.png in the
   header (gradient fill + black border + a hard offset "shadow" duplicate),
   recreated in CSS at the same 31px height as the grey-band nav buttons.
   Color sampled from the logo's wireframe artwork (a hot magenta/pink,
   ~#e11de6) — every other hue in the logo (cyan, teal, purple, green,
   orange, gold, blue) is already claimed by a price-checker zone, so this
   is the one logo color with no zone to clash with. Font-family matches the
   rest of the page's declared typeface (Tekton Pro, set globally on
   body/td/th) instead of a generic UI sans-serif, and the size is bumped up
   to read at a similar visual weight to the header's INFO/CONTACT buttons
   (those are baked into raster images, so there's no literal font/size to
   inherit from them — this matches their scale instead). */
#mgpAduNavCell a.mgp-adu-nav-btn {
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 31px;
    padding: 0 16px;
    margin: 0 10px 0 0;
    color: #2b002b;
    font-family: "Tekton Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-decoration: none;
    white-space: nowrap;
    background: linear-gradient(180deg, #ffcdf7 0%, #e63ce1 100%);
    border: 2px solid #000000;
    box-shadow: 3px 3px 0 #000000;
}

#mgpAduNavCell a.mgp-adu-nav-btn:hover,
#mgpAduNavCell a.mgp-adu-nav-btn:focus-visible {
    background: linear-gradient(180deg, #ffe0fa 0%, #f04eea 100%);
}

#mgpAduNavCell a.mgp-adu-nav-btn:active {
    transform: translate(2px, 2px);
    box-shadow: 1px 1px 0 #000000;
}

#mgpAduNavCell a.mgp-adu-nav-btn.is-active {
    background: linear-gradient(180deg, #fff0fc 0%, #e63ce1 100%);
}

/* Floor plans — old-school architectural blueprint: deep blueprint blue
   with the pale, almost-white blue "linen" ink lines were traditionally
   printed in. */
#mgpAduNavCell a.mgp-adu-nav-btn--blueprint {
    color: #dcefff;
    background: linear-gradient(180deg, #1f5f9e 0%, #0b3d6b 100%);
}

#mgpAduNavCell a.mgp-adu-nav-btn--blueprint:hover,
#mgpAduNavCell a.mgp-adu-nav-btn--blueprint:focus-visible {
    background: linear-gradient(180deg, #2c72b6 0%, #124a80 100%);
}

#mgpAduNavCell a.mgp-adu-nav-btn--blueprint.is-active {
    background: linear-gradient(180deg, #3a82c8 0%, #16548f 100%);
}

/* Material Price-Checker — the same action-orange used for every button
   over on the price checker itself (#ff9900), so it visibly points to
   "that other app" using its own house color. */
#mgpAduNavCell a.mgp-adu-nav-btn--pricecheck {
    color: #241400;
    background: linear-gradient(180deg, #ffb340 0%, #ff9900 100%);
}

#mgpAduNavCell a.mgp-adu-nav-btn--pricecheck:hover,
#mgpAduNavCell a.mgp-adu-nav-btn--pricecheck:focus-visible {
    background: linear-gradient(180deg, #ffc266 0%, #ffa722 100%);
}

#mgpAduNavCell a.mgp-adu-nav-btn--pricecheck.is-active {
    background: linear-gradient(180deg, #ffcf85 0%, #ffab33 100%);
}

/* How to — salmon pink. */
#mgpAduNavCell a.mgp-adu-nav-btn--howto {
    color: #330b04;
    background: linear-gradient(180deg, #ffb3a1 0%, #fa8072 100%);
}

#mgpAduNavCell a.mgp-adu-nav-btn--howto:hover,
#mgpAduNavCell a.mgp-adu-nav-btn--howto:focus-visible {
    background: linear-gradient(180deg, #ffc4b5 0%, #ff9585 100%);
}

#mgpAduNavCell a.mgp-adu-nav-btn--howto.is-active {
    background: linear-gradient(180deg, #ffd2c6 0%, #ffa696 100%);
}

/* Image-based nav buttons (Button-FloorPlans.png, Button-Material
   Prices-Checker.png, Button-How tor.png) replace the CSS-gradient look
   above — the graphics already carry their own color/label baked in, so
   this strips out the background/border/box-shadow/padding entirely and
   sets margin:0 so the three sit flush against each other with no gap.
   Placed after the color-variant rules above so it wins the cascade for
   the properties they share (same #id + tag + one-class specificity). */
#mgpAduNavCell a.mgp-adu-nav-btn--image {
    height: 31px;
    padding: 0;
    margin: 0;
    background: none;
    border: none;
    box-shadow: none;
    line-height: 0;
    vertical-align: top;
}

#mgpAduNavCell a.mgp-adu-nav-btn--image:hover,
#mgpAduNavCell a.mgp-adu-nav-btn--image:focus-visible {
    background: none;
    filter: brightness(1.1);
}

#mgpAduNavCell a.mgp-adu-nav-btn--image:active {
    background: none;
    transform: none;
    box-shadow: none;
    filter: brightness(0.95);
}

#mgpAduNavCell a.mgp-adu-nav-btn--image.is-active {
    background: none;
    box-shadow: inset 0 -4px 0 0 #000000;
}

.mgp-adu-nav-btn-img {
    display: block;
    height: 31px;
    width: auto;
}

/* Account + hover-tip ? sit flush right on the grey nav band. Credits
   sit on the teal banner band above, same right:0 so Account still
   lines up under Credits. */
.mgp-adu-nav-tools {
    position: absolute;
    right: 0;
    top: 0;
    z-index: 3;
    height: 31px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
}

.mgp-adu-nav-account {
    position: relative;
    display: flex;
    align-items: stretch;
    line-height: 0;
}

#mgpAduNavCell .mgp-adu-hint-toggle {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    padding: 0;
    border-radius: 999px;
    border: 1px solid #666666;
    background: #1a1a1a;
    color: #888888;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

#mgpAduNavCell .mgp-adu-hint-toggle:hover {
    border-color: #19edfe;
    color: #19edfe;
}

#mgpAduNavCell .mgp-adu-hint-toggle.is-on {
    border-color: #19edfe;
    background: #071a1e;
    color: #19edfe;
    box-shadow: 0 0 0 1px rgba(25, 237, 254, 0.25);
}

.mgp-adu-account-btn {
    display: block;
    padding: 0;
    margin: 0;
    border: none;
    background: none;
    cursor: pointer;
    line-height: 0;
}

.mgp-adu-account-btn-img {
    display: block;
    height: 31px;
    width: auto;
}

.mgp-adu-banner-credits {
    position: relative;
    float: left;
    left: auto;
    right: auto;
    top: auto;
    z-index: 2;
    line-height: 0;
}

.mgp-adu-credits-btn {
    position: relative;
    display: block;
    padding: 0;
    margin: 0;
    border: none;
    background: none;
    cursor: pointer;
    line-height: 0;
}

.mgp-adu-credits-btn-img {
    display: block;
    height: 52px;
    width: auto;
}

.mgp-adu-account-btn:hover img,
.mgp-adu-account-btn:focus-visible img,
.mgp-adu-credits-btn:hover img,
.mgp-adu-credits-btn:focus-visible img {
    filter: brightness(1.1);
}

.mgp-adu-credits-count {
    position: absolute;
    left: calc(50% - 12px);
    top: 50%;
    transform: translate(-100%, calc(-50% + 5px));
    max-width: 108px;
    overflow: hidden;
    color: #ff9900;
    font-family: "Tekton Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 25px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    text-align: right;
    pointer-events: none;
}

/* --- Floor-plan options row ---------------------------------------------
   Replaces the old single <table> that mixed 8 checkbox groups with a
   rowspan'd rendering image into 3 flex containers between the nav band
   and the footer: two 190px scrollable option columns (left/right) plus a
   flexible middle column for the rendering. Column height is capped to the
   rendering image's own height (482px) — content only scrolls once a
   column's option groups actually exceed that. */
.mgp-adu-options-row {
    display: flex;
    align-items: stretch;
    gap: 8px;
    width: 1683px;
    margin: 0 auto;
    background: #000000;
}

.mgp-adu-options-col {
    flex: 0 0 190px;
    width: 190px;
    max-height: 482px;
    overflow-y: auto;
    overflow-x: hidden;
    background: #000000;
    scrollbar-width: thin;
    scrollbar-color: #555555 #1a1a1a;
}

.mgp-adu-options-col::-webkit-scrollbar {
    width: 8px;
}

.mgp-adu-options-col::-webkit-scrollbar-track {
    background: #1a1a1a;
}

.mgp-adu-options-col::-webkit-scrollbar-thumb {
    background-color: #555555;
    border-radius: 4px;
}

.mgp-adu-option-group {
    padding: 8px 6px;
    border-bottom: 1px solid #333333;
}

.mgp-adu-option-group:last-child {
    border-bottom: none;
}

.mgp-adu-options-mid {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000000;
}

/* Turntable slideshow standing in for the future 3D viewer — same 925x482
   footprint the static rendering used to occupy, so this slots into the
   existing middle column without any layout change. All 8 slides are the
   same model/config at different angles (the model-viewer will eventually
   replace this whole block once the interactive 3D file is ready). */
.mgp-adu-slideshow {
    position: relative;
    width: 925px;
    height: 482px;
    max-width: 100%;
}

.mgp-adu-slideshow-track {
    position: relative;
    width: 100%;
    height: 100%;
}

/* Shows which foundation/roof variant is currently loaded — the yellow
   bar's own caption is baked into its image and can't update per variant,
   so this small overlay carries that context instead. */
.mgp-adu-slideshow-caption {
    position: absolute;
    top: 8px;
    left: 12px;
    z-index: 6;
    padding: 3px 10px;
    background: rgba(0, 0, 0, 0.55);
    color: #e63ce1;
    font-family: "Tekton Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.02em;
    border-radius: 4px;
    pointer-events: none;
}

.mgp-adu-slide {
    position: absolute;
    inset: 0;
    display: block;
    opacity: 0;
    transition: opacity 0.9s ease;
    pointer-events: none;
}

.mgp-adu-slide.is-active {
    opacity: 1;
    pointer-events: auto;
}

.mgp-adu-slide img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.mgp-adu-slideshow-dots {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 8px;
    display: flex;
    justify-content: center;
    gap: 6px;
    pointer-events: none;
}

.mgp-adu-slideshow-dots span {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.35);
}

.mgp-adu-slideshow-dots span.is-active {
    background: #e63ce1;
}

/* Tap/click zones covering the left and right half of the rendering —
   left rewinds, right advances, and the auto-advance timer restarts from
   that point so browsing continues at the regular pace instead of
   fighting the visitor's own navigation. No enlarged/new-tab view. */
.mgp-adu-slide-nav {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 50%;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    z-index: 5;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
    font: inherit;
}

.mgp-adu-slide-nav-prev {
    left: 0;
}

.mgp-adu-slide-nav-next {
    right: 0;
}

.mgp-adu-slide-nav::after {
    content: "";
    position: absolute;
    top: 50%;
    width: 0;
    height: 0;
    border-style: solid;
    opacity: 0;
    transition: opacity 0.2s ease;
    filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.6));
}

.mgp-adu-slide-nav-prev::after {
    left: 18px;
    transform: translateY(-50%);
    border-width: 11px 14px 11px 0;
    border-color: transparent #e63ce1 transparent transparent;
}

.mgp-adu-slide-nav-next::after {
    right: 18px;
    transform: translateY(-50%);
    border-width: 11px 0 11px 14px;
    border-color: transparent transparent transparent #e63ce1;
}

.mgp-adu-slide-nav:hover::after {
    opacity: 0.85;
}

/* site-chrome-engine.js's cookie banner is styled inline on price-checker.html
   (it owns that element there); ADU hub pages load that same script but not
   that inline <style>, so without this the banner rendered as unstyled,
   cramped text in the corner. Same look, ported here. */
#mgp-cookie-banner {
    position: fixed;
    left: 12px;
    right: 12px;
    bottom: 12px;
    z-index: 10001;
    background: #1a1a1a;
    border: 1px solid #ff9900;
    border-radius: 10px;
    padding: 12px;
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

#mgp-cookie-banner p {
    margin: 0;
    font-size: 13px;
    color: #cccccc;
    max-width: 560px;
}

#mgp-cookie-banner a {
    color: #ffcc80;
}

.mgp-cookie-actions {
    display: flex;
    gap: 8px;
}

.mgp-cookie-actions button {
    min-height: 48px;
    min-width: 48px;
    padding: 10px 14px;
    background: #ff9900;
    color: #111;
    border: 0;
    border-radius: 6px;
    font-weight: 700;
    cursor: pointer;
    font-family: inherit;
}

#mgpCookieOff {
    background: #333;
    color: #fff;
}

/* ADU hint strip — frameless text in the vacated yellow-bar slot (hub)
   and a matching row pinned inside the sticky header on other ADU pages.
   The on/off ? lives on the grey nav band next to Account. */
.mgp-adu-hint-row {
    width: 1683px;
    margin: 8px auto 10px;
    box-sizing: border-box;
}

.mgp-adu-header > .mgp-adu-hint-row {
    margin: 0 auto;
    padding: 6px 12px 8px;
    background: #000000;
}

.mgp-adu-hint-cell {
    padding: 4px 12px !important;
    vertical-align: middle;
    background: #000000;
}

.mgp-adu-hint-bar {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
    background: transparent;
    border: none;
    padding: 0;
}

.mgp-adu-hint-billboard {
    position: relative;
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    height: calc(1.45em * 3);
    overflow: hidden;
    min-width: 0;
}

.mgp-adu-hint-billboard .hint-billboard-default {
    margin: 0;
    width: 100%;
    color: #c8eef5;
    font-family: "Tekton Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 14.3px;
    line-height: 1.45;
    text-align: center;
}

.mgp-adu-hint-billboard .hint-billboard-active {
    display: none;
    margin: 0;
    max-width: none;
    width: 100%;
    color: #ffcc80;
    font-family: "Tekton Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 14.3px;
    line-height: 1.45;
    text-align: center;
    white-space: normal;
    overflow: hidden;
}

.mgp-adu-hint-billboard.is-live .hint-billboard-default {
    visibility: hidden;
}

.mgp-adu-hint-billboard.is-live .hint-billboard-active {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    inset: 0;
    overflow: hidden;
}

html.mgp-hints-on [data-hint] {
    cursor: help;
}

@media (max-width: 720px) {
    body.mgp-adu-chrome:not(.mgp-adu-chrome-v2) {
        padding-top: 108px;
    }

    .mgp-adu-top-bar {
        flex-direction: column;
        align-items: stretch;
    }

    .mgp-adu-nav {
        justify-content: center;
    }
}

/* Hub: Granny is back in the sticky header (176x214 rowspan) so she does
   not scroll. Header is the original 1683px table. Teal bar is the hover
   billboard. Left column is Foundations + tools under the header. */
body.mgp-adu-hub .mgp-adu-header {
    min-width: 1683px;
    width: 100%;
}

body.mgp-adu-hub .mgp-adu-header > table {
    height: 214px;
    width: 1683px;
}

body.mgp-adu-hub .mgp-adu-banner-credits {
    position: absolute;
    float: none;
    left: 1243px;
    top: 0;
}

body.mgp-adu-hub .mgp-adu-showcase {
    width: 100%;
}

body.mgp-adu-hub .mgp-hub-banner-billboard {
    position: relative;
    display: block;
    width: 100%;
    height: 52px;
    overflow: hidden;
}

body.mgp-adu-hub .mgp-hub-banner-billboard .hint-billboard-default {
    margin: 0;
    width: 100%;
    height: 52px;
}

body.mgp-adu-hub .mgp-hub-banner-billboard .hint-billboard-default img {
    display: block;
}

body.mgp-adu-hub .mgp-hub-banner-billboard.is-live .hint-billboard-default {
    visibility: hidden;
}

body.mgp-adu-hub .mgp-hub-banner-billboard.is-live .hint-billboard-active {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px !important;
    line-height: 1.25 !important;
    color: #ffcc80 !important;
    padding: 0 16px;
    box-sizing: border-box;
    text-align: center;
    z-index: 2;
}

body.mgp-adu-hub .mgp-adu-banner-cell:has(#hintBillboard.is-live) .mgp-adu-banner-credits {
    visibility: hidden;
}

.mgp-adu-hub-stage {
    box-sizing: border-box;
    width: 1683px;
    max-width: 100%;
    margin: 0 auto;
    padding: 6px 8px 8px;
    display: grid;
    grid-template-columns: 176px minmax(0, 1fr) 360px;
    grid-template-rows: minmax(360px, 1fr);
    gap: 8px 10px;
    align-items: stretch;
    min-height: calc(100vh - var(--mgp-3d-header-h, 214px));
}

.mgp-hub-left {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-height: 0;
    max-height: calc(100vh - var(--mgp-3d-header-h, 214px) - 20px);
    overflow-y: auto;
    overflow-x: hidden;
}

body.mgp-adu-hub .mgp-adu-logo-img {
    width: 176px;
    height: 214px;
    object-fit: contain;
    background: #000000;
}

.mgp-hub-foundation {
    flex: 0 0 auto;
    border: 1px solid #c45c26;
    background: #141414;
    padding: 8px 8px 6px;
}

.mgp-hub-foundation h2 {
    margin: 0 0 8px;
    color: #ffcc66;
    font-family: "Tekton Pro", Arial, sans-serif;
    font-size: 16px;
    font-weight: bold;
    letter-spacing: 0.06em;
    text-align: center;
}

.mgp-hub-foundation p {
    margin: 0 0 8px;
    color: #888888;
    font-size: 11px;
    line-height: 1.35;
    font-family: "Tekton Pro", Arial, sans-serif;
}

.mgp-hub-foundation label {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin: 4px 0;
    color: #f2f2f2;
    font-size: 14px;
    font-family: "Tekton Pro", Arial, sans-serif;
    cursor: pointer;
}

.mgp-hub-foundation input {
    accent-color: #c45c26;
}

.mgp-hub-viewer {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    min-height: 360px;
    display: flex;
    flex-direction: column;
}

.mgp-hub-viewport {
    position: relative;
    flex: 1 1 auto;
    min-height: 420px;
}

body.mgp-adu-hub #threeHost {
    width: 100%;
    height: 100%;
    min-height: 360px;
    background-color: #121212;
    border: 1px solid #333333;
    cursor: grab;
}

body.mgp-adu-hub #threeHost.measure {
    cursor: crosshair;
}

body.mgp-adu-hub #threeHost canvas {
    display: block;
    width: 100%;
    height: 100%;
}

body.mgp-adu-hub .mgp-3d-status {
    position: absolute;
    left: 10px;
    top: 10px;
    z-index: 3;
    max-width: 46%;
    margin: 0;
    padding: 4px 8px;
    font-size: 12px;
    line-height: 1.3;
    color: #cccccc;
    background: rgba(10, 10, 10, 0.72);
    border: 1px solid #333333;
    pointer-events: none;
}

.mgp-hub-tools {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    gap: 8px;
    border: 1px solid #333333;
    background: #141414;
    padding: 8px 8px 10px;
    min-width: 0;
}

.mgp-hub-tools input[type="range"] {
    width: 100%;
    max-width: 152px;
}

.mgp-hub-tools h3 {
    font-size: 13px;
    color: #ffcc66;
    margin: 0 0 6px;
    font-family: "Tekton Pro", Arial, sans-serif;
}

.mgp-hub-tools .row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 4px 0;
    flex-wrap: wrap;
}

.mgp-hub-tools label,
.mgp-hub-tools .val {
    font-size: 12px;
    color: #cccccc;
    font-family: "Tekton Pro", Arial, sans-serif;
}

.mgp-hub-tools button {
    background: #1a1a1a;
    color: #ffffff;
    border: 1px solid #444444;
    border-radius: 5px;
    padding: 4px 8px;
    font-size: 12px;
    cursor: pointer;
}

#btnMeasure.active {
    border: 2px solid #ffcc66;
    color: #ffcc66;
    background: #1c1810;
}

.mgp-hub-tools .mgp-3d-measure-out {
    color: #7cfc9a;
    font-size: 12px;
    margin-top: 4px;
}

.mgp-hub-wall {
    grid-column: 3;
    grid-row: 1;
    min-height: 0;
    max-height: calc(100vh - var(--mgp-3d-header-h, 214px) - 20px);
    overflow-y: auto;
    overflow-x: hidden;
    border: 1px solid #c45c26;
    background: #141414;
    padding: 12px 14px;
    color: #eeeeee;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 13px;
}

.mgp-hub-wall .side-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 6px;
}

.mgp-hub-wall h2 {
    margin: 0;
    color: #ffcc66;
    font-size: 15px;
    font-weight: 600;
    text-align: left;
    display: flex;
    align-items: baseline;
    gap: 0;
}

.mgp-hub-wall h2 .mgp-bom-mark {
    display: inline-block;
    margin-right: 18px;
    color: #ffffff;
    font-size: 28px;
    font-weight: 800;
    letter-spacing: 0.06em;
    line-height: 1;
}

.mgp-hub-wall .mgp-cut-mascot {
    display: inline-flex;
    align-items: center;
    line-height: 0;
}

.mgp-hub-wall .mgp-cut-mascot img {
    height: 28px;
    width: auto;
    border-radius: 4px;
    border: 1px solid #c45c26;
}

.mgp-hub-wall .lead {
    color: #bbbbbb;
    margin: 0 0 10px;
    line-height: 1.4;
    font-size: 13px;
}

.mgp-hub-wall .ghost-row {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 8px 0 10px;
    color: #cccccc;
    font-size: 13px;
}

.mgp-wall-ex-opt {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 4px 0;
    font-size: 13px;
    color: #f2f2f2;
    cursor: pointer;
}

.mgp-wall-ex-buy,
.mgp-wall-ex-cut {
    margin-top: 8px;
}

.mgp-hub-wall .mgp-wall-ex-line {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: nowrap;
    margin: 8px 0 4px;
}

.mgp-hub-wall .mgp-wall-ex-line p {
    color: #ffcc66;
    font-weight: 600;
    margin: 0;
    white-space: nowrap;
    font-size: 13px;
}

.mgp-hub-wall #btnPriceChecker {
    border: 2px solid #2adf4d;
    color: #7cfc9a;
    background: #102414;
    font-size: 12px;
    padding: 5px 8px;
    white-space: nowrap;
    border-radius: 6px;
    cursor: pointer;
}

.mgp-hub-wall #btnPriceChecker:hover {
    background: #16351c;
}

.mgp-hub-wall #btnSaveCutList {
    border: 2px solid #e07038;
    color: #fff8f0;
    background: #c45c26;
    font-size: 13px;
    font-weight: 700;
    padding: 6px 14px;
    white-space: nowrap;
    border-radius: 6px;
    cursor: pointer;
}

.mgp-hub-wall #btnSaveCutList:hover {
    background: #a84a1c;
    border-color: #f08a4a;
}

.mgp-wall-ex-buy p,
.mgp-wall-ex-cut p {
    margin: 0;
    color: #ffcc66;
    font-size: 13px;
}

.mgp-wall-ex-buy ul,
.mgp-wall-ex-cut ul {
    margin: 0;
    padding-left: 18px;
    font-size: 13px;
    line-height: 1.4;
    color: #dddddd;
    max-height: 220px;
    overflow-y: auto;
}

.mgp-wall-ex-no {
    color: #e26530;
    font-variant-numeric: tabular-nums;
    margin-right: 6px;
}

.mgp-wall-ex-mark {
    color: #ffcc66;
}

.mgp-wall-ex-empty {
    color: #888888;
    font-size: 13px;
}

.mgp-hub-3d-stubs {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
}
