/* Corporate catalogue: all product content and media come from Odoo records. */
.mc-site #wrap.mc-catalog { margin: 0 auto 48px; padding-top: 128px; }
.mc-site .mc-catalog-form { display: grid; grid-template-columns: 112px minmax(0, 420px) 1fr; gap: 12px 16px; margin-bottom: 20px; }
.mc-site .mc-catalog-search { grid-column: 2; grid-row: 1; align-self: start; position: relative; display: flex; align-items: center; height: 44px; min-width: 0; border: 1px solid #cdd1d3; border-radius: 24px; background: #fff; }
.mc-site .mc-catalog-search input { min-width: 0; width: 100%; flex: 1; border: 0; border-radius: 24px; padding: 10px 16px; background: transparent; font-size: 14px; }
.mc-site .mc-catalog-search button { flex: 0 0 44px; align-self: stretch; border: 0; border-radius: 50%; background: transparent; font-size: 14px; }
.mc-site .mc-catalog-filters { grid-column: 1 / -1; grid-row: 1; min-width: 0; }
.mc-site .mc-catalog-filters > summary { display: flex; align-items: center; justify-content: center; gap: 10px; width: 112px; height: 44px; border: 1px solid #222; border-radius: 24px; list-style: none; cursor: pointer; font-size: 13px; }
.mc-site .mc-catalog-filters > summary::-webkit-details-marker { display: none; }
.mc-site .mc-catalog-filters[open] > summary { background: #f2f2f2; }
.mc-site .mc-filter-fields { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; padding: 20px 0 16px; }
.mc-site .mc-filter-fields label { display: flex; flex-direction: column; gap: 12px; font-size: 12px; color: #58636b; }
.mc-site .mc-filter-fields select { width: 100%; min-width: 0; padding: 12px; border: 1px solid #cdd1d3; border-radius: 3px; background: white; color: #111; font-size: 14px; }
.mc-site .mc-filter-actions { grid-column: 1 / -1; display: flex; align-items: center; gap: 24px; font-size: 13px; }
.mc-site .mc-catalog-toolbar { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid #eee; padding-bottom: 8px; color: #58636b; font-size: 12px; }
.mc-site .mc-catalog-toolbar p { margin: 0; }
.mc-site .mc-sort { display: flex; align-items: center; gap: 12px; }
.mc-site .mc-sort select { border: 0; background: white; padding: 10px 0; max-width: 150px; color: #111; }
.mc-site .mc-sort button { border: 1px solid #cdd1d3; background: white; border-radius: 50%; width: 36px; height: 36px; }
.mc-site .mc-product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 24px; }
.mc-site .mc-product-card { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.mc-site .mc-card-photo { position: relative; aspect-ratio: 1; background: #f8f8f8; border-radius: 3px; outline: 1px solid transparent; outline-offset: 3px; transition: outline-color .2s; }
.mc-site .mc-card-photo img { display: block; position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; object-fit: contain; border-radius: 3px; }
.mc-site .mc-card-photo .mc-card-ambient { position: absolute; inset: 0; object-fit: cover; opacity: 0; transition: opacity .35s; }
.mc-site .mc-product-card:focus-visible .mc-card-photo { outline-color: #58636b; }
.mc-site .mc-product-card:focus-visible .mc-card-ambient { opacity: 1; }
@media (hover: hover) {
    .mc-site .mc-product-card:hover .mc-card-photo { outline-color: #58636b; }
    .mc-site .mc-product-card:hover .mc-card-ambient { opacity: 1; }
}
.mc-site .mc-card-caption .mc-eyebrow { margin: 0 0 10px; color: #8a949c; font-size: 11px; }
.mc-site .mc-card-caption h2 { margin: 0; font: 500 16px/1.5 Inter, sans-serif; color: #58636b; overflow-wrap: anywhere; }
.mc-site .mc-catalog-pager { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 32px; margin-top: 64px; font-size: 13px; }
.mc-site .mc-catalog-empty { padding: 64px 0; text-align: center; }
.mc-site .mc-product-description { white-space: pre-line; font: 400 18px/1.5 Barlow, Arial, sans-serif; color: var(--mc-ink); margin: 24px 0; }
.mc-site .mc-related { border-top: 1px solid #ddd; padding-top: 64px; }
.mc-site .mc-related-heading { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 24px; margin-bottom: 40px; }
.mc-site .mc-related-heading h2 { font-size: 28px; margin: 0; }
.mc-site .mc-related-heading a { font-size: 13px; }
@media (max-width: 991px) {
    .mc-site .mc-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 24px; }
    .mc-site .mc-filter-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
    .mc-site #wrap.mc-catalog { padding-top: 104px; }
    .mc-site .mc-catalog-form { grid-template-columns: 100px minmax(0, 1fr); gap: 8px 12px; margin-bottom: 16px; }
    .mc-site .mc-catalog-filters > summary { width: 100px; }
    .mc-site .mc-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; }
    .mc-site .mc-catalog-search input { padding: 10px 12px; }
    .mc-site .mc-catalog-search button { flex-basis: 36px; }
    .mc-site .mc-catalog-toolbar { gap: 12px; flex-wrap: wrap; }
    .mc-site .mc-sort { gap: 8px; }
    .mc-site .mc-sort label { font-size: 11px; }
    .mc-site .mc-product-card { gap: 16px; }
    .mc-site .mc-card-caption h2 { font-size: 13px; }
    .mc-site .mc-card-caption .mc-eyebrow { font-size: 10px; }
    .mc-site .mc-catalog-pager { gap: 16px; margin-top: 40px; }
    .mc-site .mc-filter-fields { gap: 16px; }
    .mc-site .mc-filter-actions { flex-wrap: wrap; gap: 16px; }
    .mc-site .mc-related { padding-top: 40px; }
    .mc-site .mc-related-heading h2 { font-size: 24px; }
    .mc-site .mc-product-description { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .mc-site .mc-card-photo, .mc-site .mc-card-photo .mc-card-ambient { transition: none; }
}

/* One stage for photos, video and the same model viewer as the shop. */
.mc-site .mc-product-stage { position: relative; width: 100%; aspect-ratio: 1; overflow: hidden; border-radius: 3px; background: #f8f8f8; }
.mc-site .mc-product-stage > img,
.mc-site .mc-product-stage > video,
.mc-site .mc-product-stage > iframe,
.mc-site .mc-product-stage > model-viewer { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-height: none; border: 0; object-fit: contain; }
.mc-site .mc-product-stage > video,
.mc-site .mc-product-stage > iframe { background: #111; }
.mc-site .mc-product-stage > .d-none { display: none !important; }
/* Compact media rows share the shop carousel controller. */
.mc-site .mc-product-visual { --mc-icon-base: 58px; --mc-icon-size: 58px; --mc-icon-gap: 12px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.mc-site .mc-product-visual.mc-has-icons { grid-template-columns: max-content minmax(0, 1fr); }
.mc-site .mc-product-icons { min-height: 0; margin: 0; align-self: start; }
.mc-site .mc-product-icon-list { display: grid; grid-auto-flow: column; grid-template-columns: repeat(var(--mc-icon-columns, 1), var(--mc-icon-size)); grid-template-rows: repeat(var(--mc-icon-rows, 8), var(--mc-icon-size)); gap: var(--mc-icon-gap); }
.mc-site .mc-product-icons img { width: var(--mc-icon-size); height: var(--mc-icon-size); object-fit: contain; }
.mc-site .mc-product-visual.mc-has-icons + .mc-gallery-media { margin-left: 74px; }
.mc-site .mc-gallery-media { min-width: 0; margin-top: 12px; }
.mc-site .mc-media-carousel { position: relative; min-width: 0; }
.mc-site .mc-media-track { display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; padding: 4px; scrollbar-width: none; scroll-snap-type: x proximity; }
.mc-site .mc-media-track::-webkit-scrollbar { display: none; }
.mc-site .mc-media-thumb { position: relative; flex: 0 0 72px; width: 72px; height: 72px; aspect-ratio: 1; padding: 3px; border: 1px solid #ddd; border-radius: 8px; background: #f8f8f8; color: #111; cursor: pointer; scroll-snap-align: start; }
.mc-site .mc-media-thumb img { display: block; width: 100%; height: 100%; object-fit: contain; border-radius: 4px; mix-blend-mode: normal; }
.mc-site .mc-video-thumb img { object-fit: cover; }
.mc-site .mc-media-thumb.is-active { border-color: #111; box-shadow: inset 0 0 0 1px #111; }
.mc-site .mc-media-thumb:hover { border-color: #111; }
.mc-site .mc-media-thumb:focus-visible, .mc-site .mc-media-arrow:focus-visible { outline: 2px solid #111; outline-offset: 2px; }
.mc-site .mc-video-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #111; color: white; font-size: 11px; }
.mc-site .mc-video-play i { margin-left: 2px; }
.mc-site .mc-model-thumb { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; font: 600 11px/1.2 Inter, Arial, sans-serif; }
.mc-site .mc-model-thumb .fa { font-size: 24px; }
.mc-site .mc-media-section { margin-top: 16px; padding-top: 16px; border-top: 1px solid #ddd; }
.mc-site .mc-media-label { margin: 0 0 8px; font: 600 10px/1.5 Manrope, Arial, sans-serif; letter-spacing: 1.2px; text-transform: uppercase; color: #58636b; }
.mc-site .mc-media-arrow { position: absolute; z-index: 1; top: 50%; transform: translateY(-50%); display: none; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; border: 1px solid #ddd; border-radius: 50%; background: #fff; color: #111; font-size: 12px; box-shadow: 0 2px 8px #0001; }
.mc-site .mc-media-arrow.is-visible:not(:disabled) { display: flex; }
.mc-site .mc-media-prev { left: 0; }
.mc-site .mc-media-next { right: 0; }
@media (max-width: 768px) {
    .mc-site .mc-product-visual { --mc-icon-gap: 10px; gap: 12px; }
    .mc-site .mc-product-visual.mc-has-icons { grid-template-columns: minmax(0, 1fr); }
    .mc-site .mc-product-icons { overflow-x: auto; padding: 4px 0; }
    .mc-site .mc-product-icon-list { display: flex; }
    .mc-site .mc-product-icons img { flex: 0 0 var(--mc-icon-base); }
    .mc-site .mc-product-visual.mc-has-icons + .mc-gallery-media { margin-left: 0; }
    .mc-site .mc-media-thumb { flex-basis: 64px; width: 64px; height: 64px; }
}

/* Self-contained catalogue drilldown: each level replaces the previous one. */
.mc-site .mc-products-panel { width: 380px; padding: 0; }
.mc-site .mc-catalog-menu { position: relative; max-height: min(520px, 70vh); overflow: hidden; text-align: left; }
.mc-site .mc-catalog-menu .mantra-catalog-menu__screen { display: none; max-height: inherit; overflow-y: auto; overscroll-behavior: contain; padding: 14px; scrollbar-width: thin; scrollbar-color: #58636b #000; }
.mc-site .mc-catalog-menu .mantra-catalog-menu__screen.is-active {
    display: block;
    animation: mc-catalog-screen-in 180ms ease-out;
}
@keyframes mc-catalog-screen-in {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
    .mc-site .mc-catalog-menu .mantra-catalog-menu__screen.is-active { animation: none; }
}
.mc-site .mc-catalog-menu nav { display: block; }
.mc-site .mc-catalog-menu strong { font-weight: 700; }
.mc-site .mc-catalog-menu .mantra-catalog-menu__empty { margin-top: 16px; color: var(--mc-muted); }
.mc-site .mc-catalog-menu i { flex-shrink: 0; }
/* Typography, hit areas and interaction colours come from the shared panels. */
.mc-site .mc-catalog-menu a,
.mc-site .mc-catalog-menu button { width: 100%; justify-content: space-between; margin: 0; border: 0; background: transparent; text-align: left; }
.mc-site .mc-catalog-menu .mantra-catalog-menu__header { display: flex; flex-direction: column; gap: 6px; margin: 18px 10px 12px; }
.mc-site .mc-catalog-menu .mantra-catalog-menu__header span { font: var(--mc-menu-font); color: var(--mc-muted); text-transform: uppercase; letter-spacing: 1px; }
.mc-site .mc-catalog-menu .mantra-catalog-menu__header strong { font: 700 13px/1.5 Manrope, Arial, sans-serif; letter-spacing: 1px; text-transform: uppercase; color: #fff; }
.mc-site .mc-catalog-menu .mantra-catalog-menu__signature { padding: 16px 10px; border-bottom: 1px solid var(--mc-menu-line); }
.mc-site .mc-catalog-menu .mantra-catalog-menu__all { border-bottom: 1px solid var(--mc-menu-line); margin-bottom: 24px; }
.mc-site .mc-catalog-menu .mantra-catalog-menu__back { justify-content: flex-start; border-bottom: 1px solid var(--mc-menu-line); margin-bottom: 16px; }
@media (max-width: 1350px) {
    .mc-site .mc-products-panel { width: 100%; }
    .mc-site .mc-catalog-menu { max-height: min(490px, 65vh); }
    .mc-site .mc-catalog-menu .mantra-catalog-menu__screen { padding: 12px; }
}

.mc-site .mc-specs summary::after {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--mc-accent);
    color: var(--mc-ink);
    font-weight: 600;
}
.mc-site .mc-specs summary:is(:hover, :focus-visible)::after { background: #c4cb20; }

/* Keep the viewer and its controls in view while the specification column scrolls. */
@media (min-width: 769px) {
    .mc-site .mc-product-gallery-inner { position: sticky; top: 112px; }
    .mc-site .mc-product-stage { max-height: var(--mc-stage-limit, none); }
}
.mc-site .mc-product-icon-list img { transition: transform .18s ease, filter .18s ease; }
@media (hover: hover) {
    .mc-site .mc-product-icon-list img:hover { transform: scale(1.12); filter: drop-shadow(0 2px 3px #0003); }
}
@media (prefers-reduced-motion: reduce) {
    .mc-site .mc-product-icon-list img { transition: none; }
}
.mc-site .mc-downloads { background: #f2f2f2; padding: 48px 0; }
.mc-site .mc-downloads > .mc-section { margin-top: 0; margin-bottom: 0; }
.mc-site .mc-download-card { padding: 40px; background: #fff; border: 1px solid #bfc5c8; border-radius: 12px; }
.mc-site .mc-download-card fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.mc-site .mc-download-card legend { float: none; width: auto; margin: 0 0 28px; font: 700 28px/1.3 Inter, Arial, sans-serif; }
.mc-site .mc-download-options { display: flex; flex-wrap: wrap; gap: 24px 32px; }
.mc-site .mc-download-option { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; cursor: pointer; font: 600 11px/1.5 Manrope, Arial, sans-serif; letter-spacing: 1px; text-transform: uppercase; }
.mc-site .mc-download-option input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.mc-site .mc-download-switch { display: block; width: 40px; height: 22px; padding: 3px; border-radius: 20px; background: #e7e9ea; transition: background .2s; }
.mc-site .mc-download-switch:after { content: ''; display: block; width: 16px; height: 16px; border-radius: 50%; background: #adb3b6; transition: transform .2s; }
.mc-site .mc-download-option input:checked + .mc-download-switch { background: #111; }
.mc-site .mc-download-option input:checked + .mc-download-switch:after { background: #fff; transform: translateX(18px); }
.mc-site .mc-download-option input:focus-visible + .mc-download-switch { outline: 2px solid #111; outline-offset: 4px; }
.mc-site .mc-download-option:has(input:disabled) { color: #92999c; cursor: default; }
.mc-site .mc-download-option input:disabled { cursor: default; }
.mc-site .mc-download-option small { font-size: 9px; letter-spacing: 0; text-transform: none; }
.mc-site .mc-download-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; margin-top: 32px; }
.mc-site .mc-download-status { margin: 0; font-size: 14px; color: #58636b; }
.mc-site .mc-download-actions button { gap: 12px; }
.mc-site .mc-download-actions .mc-button { background: #fff; color: #111; }
.mc-site .mc-download-actions .mc-button:is(:hover, :focus-visible) { background: #111; color: #fff; }
.mc-site .mc-download-actions button:disabled { opacity: .4; cursor: default; }
.mc-site .mc-document-groups > section { margin-top: 32px; }
.mc-site .mc-document-groups h3 { font-size: 18px; margin: 0 0 16px; }
.mc-site .mc-document-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 20px; }
.mc-site .mc-document { position: relative; min-width: 0; border: 1px solid #e1e4e6; border-radius: 8px; overflow: hidden; }
.mc-site .mc-document-preview { display: flex; align-items: center; justify-content: center; aspect-ratio: 4 / 3; background: #f7f7f7; color: #58636b; }
.mc-site .mc-document-preview img { width: 100%; height: 100%; object-fit: contain; }
.mc-site .mc-document-type { display: flex; flex-direction: column; align-items: center; gap: 12px; font-size: 13px; }
.mc-site .mc-document-type i { font-size: 40px; }
.mc-site .mc-document-name { margin: 14px; font-size: 13px; overflow-wrap: anywhere; }
.mc-site .mc-document-actions { display: none; justify-content: flex-end; gap: 8px; padding: 0 14px 8px; }
.mc-site .mc-document-actions a, .mc-site .mc-document-actions button { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 10px; border: 1px solid #e1e4e6; border-radius: 50%; background: #fff; color: #111; text-decoration: none; }
.mc-site .mc-document-actions button:disabled { opacity: .5; }
.mc-site .mc-document-status { font-size: 12px; margin: 0 14px 12px; color: #58636b; }
.mc-site .mc-document-status:empty { display: none; }
.mc-site .mc-document-link { display: none; width: calc(100% - 28px); margin: 0 14px 14px; font-size: 12px; }
.mc-site .mc-download-card [hidden] { display: none !important; }
/* Native modal keeps keyboard focus above the dark backdrop. */
.mc-site .mc-document-select { position: absolute; top: 8px; right: 8px; z-index: 1; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 6px; background: #fffe; cursor: pointer; }
.mc-site .mc-document-select input { width: 20px; height: 20px; margin: 0; accent-color: #111; cursor: pointer; }
.mc-site .mc-document:has(input[name="file"]:checked) { border-color: #111; box-shadow: 0 0 0 1px #111; }
.mc-site .mc-document-preview[data-image] { cursor: zoom-in; }
.mc-site .mc-document-preview:focus-visible { outline: 2px solid #111; outline-offset: -3px; }
.mc-site .mc-document-actions svg, .mc-site .mc-document-close svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.mc-site .mc-document-actions :is(a, button):hover { background: #f2f2f2; }
.mc-site.mc-document-viewing, .mc-site.mc-document-viewing #wrapwrap { overflow: hidden; }
.mc-site .mc-document-dialog { width: min(1200px, 96vw); max-width: 96vw; max-height: 96dvh; padding: 44px 0 0; border: 0; background: transparent; color: #fff; overflow: auto; }
.mc-site .mc-document-dialog::backdrop { background: rgb(0 0 0 / 82%); }
.mc-site .mc-document-dialog-content { text-align: center; }
.mc-site .mc-document-dialog img { display: block; width: 100%; height: auto; max-height: calc(92dvh - 100px); object-fit: contain; }
.mc-site .mc-document-dialog p { margin: 12px 44px; font-size: 14px; overflow-wrap: anywhere; }
.mc-site .mc-document-close { position: absolute; top: 0; right: 0; display: grid; place-items: center; width: 44px; height: 44px; padding: 10px; border: 0; border-radius: 50%; background: #fff; color: #111; }
@media (max-width: 768px) {
    .mc-site .mc-document-select { display: none; }
    .mc-site .mc-document-actions { display: flex; padding: 0 8px 8px; }
    .mc-site .mc-document-link { display: block; }
    .mc-site .mc-document-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
    .mc-site .mc-document-name { margin: 10px; font-size: 12px; }
    .mc-site .mc-downloads { padding: 32px 0; }
    .mc-site .mc-download-card { padding: 24px; }
    .mc-site .mc-download-card legend { font-size: 24px; }
    .mc-site .mc-download-options { gap: 24px; }
    .mc-site .mc-download-actions button { width: 100%; justify-content: center; }
}

.mc-site .mc-finish-selector { margin: 24px 0; }
.mc-site .mc-finish-heading { margin: 0 0 12px; font-size: 15px; }
.mc-site .mc-finish-options { display: grid; grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); gap: 12px; }
.mc-site .mc-finish-option { position: relative; display: flex; flex-direction: column; align-items: stretch; gap: 10px; min-width: 0; padding: 12px; border: 1px solid #ddd; border-radius: 8px; background: #fff; }
.mc-site .mc-finish-option img { width: 100%; height: 96px; object-fit: contain; border-radius: 4px; }
.mc-site .mc-finish-option strong { display: block; padding-right: 8px; font: 600 12px/1.4 Inter, Arial, sans-serif; overflow-wrap: anywhere; }
.mc-site .mc-finish-option small { display: block; margin-top: 4px; font-size: 11px; color: #58636b; }
.mc-site .mc-finish-option.is-active { border-color: #111; box-shadow: inset 0 -2px #111; }
.mc-site .mc-finish-option:hover { border-color: #111; }
.mc-site .mc-finish-option:focus-visible { outline: 2px solid #111; outline-offset: 3px; }
.mc-site .mc-finish-option > .fa { position: absolute; top: 5px; right: 5px; font-size: 9px; }
.mc-site .mc-product-sheet { margin-top: 28px; gap: 10px; }
@media (max-width: 768px) {
    .mc-site .mc-finish-options { gap: 8px; }
    .mc-site .mc-product-sheet { width: 100%; justify-content: center; text-align: center; }
}

/* Keep both product enquiry actions usable at narrow mobile widths. */
.mc-product-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1rem 0 1.5rem; }
.mc-product-actions .mc-button { text-align: center; white-space: normal; }
@media (max-width: 575.98px) { .mc-product-actions .mc-button { flex: 1 1 100%; } }
