/* Shared application layout. Legacy product fragments only supply content. */
/* Slideshow controls/images must not start browser selection or native image dragging. */
.modal-body .swiper, .modal-body .swiper * { user-select:none; -webkit-user-select:none; }
.modal-body .swiper img { -webkit-user-drag:none; }
:root{--mauth-blue:#006fd6;--ink:#25313d;--line:#dce2e8;--paper:#fff;--bs-body-font-family:'Mada',Arial,sans-serif;--bs-body-color:var(--ink)}.laser-feature{display:grid;gap:20px}.laser-feature-video{aspect-ratio:16/9;background:#071b2e;border-radius:12px}.laser-feature p{margin:0;font-size:20px;line-height:1.5}
*{box-sizing:border-box}html,body{height:100%;margin:0;touch-action:pan-y}body{background:linear-gradient(145deg,#e3e7eb,#f7f8fa 60%,#e4e8ed);font-family:'Mada',Arial,sans-serif}a{text-decoration:none}button,a,[role=button]{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,a:focus-visible,[role=button]:focus-visible{outline:3px solid #ffba42;outline-offset:4px}
.app-shell{height:100dvh;min-height:620px;display:grid;grid-template-rows:clamp(120px,15vh,300px) minmax(0,1fr) clamp(75px,8vh,180px);gap:0;max-width:1600px;margin:auto;background-image:url('../img/single_bg.png');background-repeat:no-repeat;background-position:100% 0;background-size:48% auto}
.app-header{display:flex;align-items:center;justify-content:space-between;padding:24px 4%;position:relative}.brand-heading{font-size:clamp(30px,3.8vw,60px);line-height:.91;color:#252c33;letter-spacing:-1.5px;font-weight:400}.brand-heading strong{font-weight:800}.language-switch{display:flex;align-self:flex-start;gap:6px;background:#ffffffa6;padding:5px;border:1px solid #ffffff;border-radius:999px;margin-top:10px}.language-switch a{padding:8px 15px;color:#3b4b5a;border-radius:999px;font-weight:700}.language-switch a[aria-current]{background:var(--mauth-blue);color:white}
.app-main{display:grid;grid-template-columns:minmax(185px,24%) minmax(0,1fr);gap:20px;padding:0 4% 24px;min-height:0}.app-main.is-home{grid-template-columns:1fr}.app-sidebar,.page-content{background:var(--paper);border:1px solid var(--line);border-radius:16px;box-shadow:0 6px 25px #22304408;min-height:0}.app-sidebar{display:flex;flex-direction:column;overflow:auto;padding:24px 0}.nav-label{font-size:14px;text-transform:uppercase;letter-spacing:1.6px;padding:0 20px;color:#738190}.app-sidebar nav{display:flex;flex-direction:column}.app-sidebar nav a{color:var(--ink);padding:18px 20px;border-bottom:1px solid #edf0f3;line-height:1.2;font-size:clamp(16px,1.8vw,22px);font-weight:700}.app-sidebar nav a[aria-current]{color:#fff;background:var(--mauth-blue)}.sidebar-actions{margin-top:auto;padding:24px 16px 0;display:grid;gap:10px}
.page-content{overflow:auto;padding:28px;scrollbar-gutter:stable;overscroll-behavior:contain;animation:content-in 160ms ease-out}.is-home .page-content{padding:0;background:none;border:none;box-shadow:none;scrollbar-gutter:auto}.app-footer{display:flex;justify-content:center;align-items:center;background:var(--mauth-blue);border-top:7px solid transparent;border-image:linear-gradient(to right,#46a34a 0 25%,#ffd13b 25% 50%,#e53935 50% 75%,#005fad 75%) 1}.app-footer img{width:clamp(180px,37vw,440px);max-height:60%;object-fit:contain}
.tile-grid{display:grid;gap:20px}.home-grid{grid-template-columns:repeat(2,minmax(0,1fr));height:100%;grid-auto-rows:minmax(150px,1fr)}.category-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.showcase-tile{position:relative;display:flex;flex-direction:column;justify-content:center;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;color:var(--ink);padding:16px;transition:transform 120ms ease,box-shadow 120ms ease,border-color 120ms ease}.showcase-tile img{width:100%;height:calc(100% - 56px);min-height:0;object-fit:contain;mix-blend-mode:multiply}.showcase-tile>span:not(.tile-arrow){padding:14px 12px 6px;font-size:clamp(19px,2.2vw,30px);text-align:center;line-height:1.2}.category-grid .showcase-tile img{height:145px}.category-grid .showcase-tile>span:not(.tile-arrow){font-size:20px}.tile-arrow{position:absolute;right:12px;top:10px;color:#9cabb9;font-size:22px}.showcase-tile:hover{border-color:#7bb2e8;box-shadow:0 8px 20px #006fd60f}.showcase-tile:active,.btn:active,[role=button]:active{transform:scale(.985)}
.section-title{font-size:32px;margin:8px 0 24px;font-weight:700}.app-breadcrumb{display:flex;flex-wrap:wrap;gap:9px;color:#738190;font-size:15px;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:22px}.app-breadcrumb a{color:#425d78}.product-hero{display:block;width:100%;height:auto;max-height:32vh;object-fit:contain;aspect-ratio:16/7;margin-bottom:24px}.product-heading p{margin:0 0 2px;color:#708090;font-size:19px}.product-heading h1{font-size:38px;font-weight:700;margin-bottom:20px}.imported-content{font-size:20px;line-height:1.55}.imported-content img{max-width:100%;height:auto}.imported-content .row{--bs-gutter-x:1rem}.imported-content h2{font-size:28px}.imported-content h3{font-size:21px}.imported-content .btn_back{position:static}.product-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}.btn{border-radius:9px;padding:11px 18px;font-size:18px;min-height:46px;font-weight:600;transition:background-color 120ms,transform 120ms}.btn-primary{background:var(--mauth-blue);border-color:var(--mauth-blue)}
.modal{--bs-modal-width:960px}.modal .modal-dialog{position:relative;top:auto;left:auto;transform:none;margin:24px auto;display:flex;min-height:calc(100% - 48px);align-items:center;max-width:min(960px,calc(100vw - 40px))}.modal.fade .modal-dialog{transform:translateY(8px);transition:transform 160ms ease-out}.modal.show .modal-dialog{transform:none}.modal-content{border:0;border-radius:18px;max-height:calc(100dvh - 48px);overflow:hidden;box-shadow:0 24px 80px #13263c44;cursor:auto;touch-action:pan-y}.modal-header,.modal-footer{flex-shrink:0;padding:18px 24px}.modal-body{padding:24px;overflow:auto;overscroll-behavior:contain;touch-action:pan-y}.modal-body img{max-width:100%;height:auto}.modal-body video{display:block;width:100%;max-height:65vh;object-fit:contain}.modal-body iframe{border:0;width:100%;height:70vh;max-height:1400px}.modal .btn-close{width:24px;height:24px;padding:12px}.modal-body model-viewer{width:100%;height:58vh;min-height:300px;max-height:900px;touch-action:none;background:#f3f5f7;border-radius:12px}.viewer-status{padding:12px;color:#617487;font-size:17px;margin:0}.viewer-status.is-error{color:#9d3a21;background:#fff0e9}.viewer-variants{display:flex;align-items:center;gap:15px;margin:16px 0;font-size:20px}.viewer-variants select{width:auto;min-width:170px}.viewer-variants[hidden],[hidden]{display:none!important}.modal-body .swiper{height:60vh;max-height:1000px;min-height:280px}.modal-body .swiper-slide{display:flex;align-items:center;justify-content:center}.modal-body .swiper-slide img{max-height:100%;object-fit:contain}.modal-body .swiper-slide>div{max-width:100%;max-height:100%}.modal-body .swiper-button-next,.modal-body .swiper-button-prev{color:var(--mauth-blue)}
.screensaver{position:fixed;inset:0;z-index:3000;background:#06182e}.screensaver video{width:100%;height:100%;object-fit:cover}.screensaver-video{position:absolute;inset:0}.screensaver button{position:absolute;bottom:13%;left:50%;transform:translateX(-50%);border:1px solid #ffffff80;border-radius:999px;background:#ffffffeb;color:#164c7d;padding:19px 38px;font-size:27px;font-weight:800;white-space:nowrap;box-shadow:0 8px 30px #0003;animation:screensaver-button-pulse 2.4s ease-in-out infinite}.screensaver button:focus-visible{outline:0}
@keyframes content-in{from{opacity:.5}to{opacity:1}}
.viewer-status{min-height:49px}.viewer-status.is-ready,.viewer-variants.is-empty{visibility:hidden}.viewer-variants{min-height:48px}.viewer-variants.is-empty{pointer-events:none}
.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.contact-card{display:grid;grid-template-columns:100px minmax(0,1fr);gap:18px;align-items:start}.contact-card img{width:100%;height:125px;object-fit:cover;border-radius:8px}.contact-card h3{font-size:22px}.contact-card p{font-size:17px;margin-bottom:8px}.contact-email{overflow-wrap:anywhere;color:#005aab}
.app-main,.app-sidebar,.page-content,.app-header{min-width:0}.imported-content{overflow-wrap:break-word}
@media(max-width:700px){.contact-grid{grid-template-columns:1fr}}
.home-grid:has(.video-tile){grid-template-rows:repeat(3,minmax(150px,1fr)) minmax(110px,.6fr)}.video-tile{grid-column:1/-1;min-height:120px;isolation:isolate;background:#124e85}.video-tile video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.video-tile::after{content:'';position:absolute;inset:0;background:#00386b55;z-index:-1}.video-tile>span:not(.tile-arrow){color:white;text-shadow:0 1px 8px #0008;font-weight:700}.video-tile .tile-arrow{color:white}
@media(min-height:1400px) and (min-width:900px){.app-main{gap:24px;padding-bottom:36px}.page-content{padding:34px}.app-sidebar nav a{padding:26px 20px}.imported-content{font-size:23px}.category-grid .showcase-tile img{height:210px}.modal{--bs-modal-width:1000px}}
@media(max-width:800px){.app-shell{min-height:100dvh;height:auto;grid-template-rows:130px 1fr 90px}.app-main{grid-template-columns:1fr;padding:0 20px 24px;gap:18px}.app-sidebar{padding:0;overflow:visible}.nav-label{display:none}.app-sidebar nav{flex-direction:row;overflow:auto}.app-sidebar nav a{flex:0 0 auto;padding:14px 18px;font-size:16px;max-width:180px;border:0}.sidebar-actions{display:flex;justify-content:space-between;padding:10px}.sidebar-actions .btn{font-size:15px;padding:8px 14px}.page-content{padding:22px;overflow:visible}.home-grid{height:auto;grid-auto-rows:220px}.showcase-tile>span:not(.tile-arrow){font-size:20px}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.imported-content{font-size:18px}.product-heading h1{font-size:32px}.modal-body{padding:16px}.modal-body model-viewer{height:50vh}.modal .modal-dialog{max-width:calc(100vw - 24px);margin:12px auto;min-height:calc(100% - 24px)}.modal-content{max-height:calc(100dvh - 24px)}.modal-body .row-cols-2>*{width:100%}.product-hero{max-height:300px}.app-header{padding:22px}.brand-heading{font-size:36px}.language-switch{margin-top:0}.imported-content .row>.col-5{width:50%}.imported-content .row>.col-8{width:100%}}
@media(max-width:420px){.home-grid{gap:12px;grid-auto-rows:180px}.showcase-tile{padding:8px}.showcase-tile>span:not(.tile-arrow){font-size:17px;padding:8px 0}.category-grid .showcase-tile img{height:110px}.section-title{font-size:27px}.page-content{padding:16px}.product-actions .btn{width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Shared viewer action: identical CI colour in exhibition and web output. */
.btn-viewer {
  --bs-btn-color:var(--mauth-blue);
  --bs-btn-bg:transparent;
  --bs-btn-border-color:var(--mauth-blue);
  --bs-btn-hover-color:#fff;
  --bs-btn-hover-bg:var(--mauth-blue);
  --bs-btn-hover-border-color:var(--mauth-blue);
  --bs-btn-active-color:#fff;
  --bs-btn-active-bg:color-mix(in srgb,var(--mauth-blue),#000 20%);
  --bs-btn-active-border-color:var(--bs-btn-active-bg);
  --bs-btn-focus-shadow-rgb:0,111,214;
  --bs-btn-disabled-color:var(--mauth-blue);
  --bs-btn-disabled-bg:transparent;
  --bs-btn-disabled-border-color:var(--mauth-blue);
  border-width:2px;
}

/* Revision 0.2: restore the reference interactions without its layout thrashing. */
.page-content { animation:none; }
.entry-tile { animation: reference-fade-in-up 320ms ease-out backwards; }
.entry-tile:nth-child(2) { animation-delay: 35ms; }
.entry-tile:nth-child(3) { animation-delay: 70ms; }
.entry-tile:nth-child(4) { animation-delay: 105ms; }
.entry-tile:nth-child(n+5) { animation-delay: 140ms; }
@keyframes reference-fade-in-up {
  from { opacity: 0; transform: translate3d(0, 100%, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes page-enter {
  from { opacity: 0; transform: translate3d(0, 12px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
.card-hint-border { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.card-hint-border rect { fill: none; stroke: #006fd6; stroke-width: 3; stroke-dasharray: 100; stroke-dashoffset: 100; opacity: 0; }
.is-inviting .card-hint-border rect { opacity: .85; animation: reference-frame 1s linear both; }
@keyframes reference-frame { to { stroke-dashoffset: 0; } }
.video-tile .video-card-button { align-self: center; padding: 12px 28px !important; text-shadow: none !important; font-size: 22px !important; color: white; }
.category-grid.two-columns, .world-grid, .media-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.world-grid .showcase-tile { text-align: center; }
.world-grid .showcase-tile img, .media-grid .showcase-tile img { height: auto; aspect-ratio: 16/10; object-fit: contain; }
.media-play { position: absolute; left: 50%; top: 38%; transform: translate(-50%, -50%); display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: #006fd6e6; color: white; font-size: 22px; }
.product-hero { width: 100%; height: auto; max-height: none; aspect-ratio: auto; object-fit: fill; margin-bottom: 30px; }
.product-heading p { font-size: 28px; line-height: 1.25; margin-bottom: 6px; }
.imported-content { font-size: 16px; line-height: 1.5; color: #000; }
.product-content > .imported-content > .row { margin-top: 48px; }
.app-breadcrumb { font-size: 20px; line-height: 1.5; }
.app-breadcrumb strong { font-weight: 700; color: #354554; }
body[data-page="beschichten"] .accordion-body { font-size: 16px; line-height: 1.5; }
body[data-page="beschichten"] .accordion-button { font-size: 18px !important; }
body[data-page="beschichten"] .imported-content > h2:not(:first-child) { margin-top: 56px; }
body[data-page="beschichten"] .imported-content > hr:last-child { display: none; }
.contact-divider { margin: 36px 0; border-color: #8b98a3; }
.modal .modal-header { cursor: grab; touch-action: none; user-select: none; }
.modal .modal-header button { cursor: pointer; touch-action: manipulation; }
.modal-content.is-dragging { will-change: transform; }
.modal-content.is-dragging .modal-header { cursor: grabbing; }
.modal-body { user-select: auto; }
.modal-body .slider { margin: 0; }
.modal-body .slides { justify-content: safe center; }
.update-bar { width: 100% !important; transform: scaleX(0); transform-origin: left; transition: transform 100ms linear; }
.video-stage { position: relative; background: #0b1119; border-radius: 10px; overflow: hidden; }
.video-stage video { width: 100%; height: auto; aspect-ratio: 16/9; max-height: 65vh; touch-action: manipulation; }
.video-stage video::-webkit-media-controls-panel { width: auto; }
.media-resume { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }
.media-resume:active { transform: translate(-50%, -50%) scale(.98); }
.media-status { min-height: 28px; margin-top: 12px; font-size: 18px; color: #9d3a21; }
.screensaver { display: flex; flex-direction: column; align-items: center; justify-content: center; color: #fff; background: radial-gradient(ellipse at 50% 45%, #173c61, #101e2c 70%); }
.screensaver-placeholder { position: relative; width: 150px; height: 150px; display: grid; place-items: center; }
.touch-ring { position: absolute; inset: 0; border: 2px solid #a9d9ff; border-radius: 50%; animation: touch-invite 3s ease-out infinite; }
.touch-dot { width: 40px; height: 40px; border-radius: 50%; background: #d4edff; box-shadow: 0 0 40px #a4d5ff55; }
.screensaver-brand { position: relative; z-index: 1; margin-top: 30px; font-size: 32px; font-weight: 700; letter-spacing: 3px; }
#messe-exit-control{position:fixed;right:0;bottom:0;z-index:4000}#messe-exit-hotspot{display:block;width:110px;height:110px;touch-action:none;user-select:none;border:0;background:transparent;cursor:default}#messe-exit-hotspot:focus-visible{outline:0}#messe-exit-dialog{position:fixed;inset:0;display:grid;place-content:center;gap:22px;padding:32px;background:#071b2ee8;color:#fff;text-align:center}#messe-exit-dialog[hidden]{display:none}#messe-exit-dialog p{margin:0;font-size:28px;font-weight:700}#messe-exit-dialog>div{display:flex;justify-content:center;gap:16px}#messe-exit-dialog .btn{min-width:190px}#messe-exit-dialog .btn:focus-visible{outline-color:#fff}
@keyframes touch-invite { from { transform: scale(.5); opacity: 0; } 30% { opacity: .7; } to { transform: scale(1.2); opacity: 0; } }
@keyframes screensaver-button-pulse { 0%,100% { transform:translateX(-50%) scale(1); box-shadow:0 8px 30px #0003; } 50% { transform:translateX(-50%) scale(1.045); box-shadow:0 10px 36px #ffffff66; } }
@media (max-width: 800px) {
  .imported-content { font-size: 18px; }
  .product-heading p { font-size: 24px; }
  .app-breadcrumb { font-size: 17px; }
  .product-hero { max-height: none; }
  .product-content > .imported-content > .row { margin-top: 32px; }
  .world-grid, .media-grid { gap: 14px; }
  .home-grid:has(.video-tile) { grid-template-rows: repeat(3, minmax(180px, 1fr)) minmax(120px, .6fr); }
}
@media (max-width: 480px) {
  .category-grid.two-columns, .world-grid, .media-grid { grid-template-columns: 1fr; }
}
