/* Shared touch layout refinements. */
.mobile-map-toggle { display:none; }
@media(max-width:820px) {
 html { scroll-padding-top:80px; }
 input,select,textarea { scroll-margin-top:100px; }
 .ip-local-nav a { min-height:48px; display:inline-flex; align-items:center; flex-shrink:0; }
 .ip-local-nav > div { overflow-x:auto; scrollbar-width:none; }
 .ip-stage-nav, .forge-equipment-nav, .ix-index-grid { overscroll-behavior-x:contain; }
 .ip-stage-button, .forge-equipment-button, .ix-index { transition:background .2s ease,color .2s ease; }
 .ip-stage-controls button:active, .forge-stage-controls button:active, .ix-controls button:active { transform:scale(.94); }
 .location-map.map-touch-ready iframe { pointer-events:none; }
 .location-map.map-interacting iframe { pointer-events:auto; }
 .mobile-map-toggle { display:block; position:absolute; z-index:3; left:18px; top:18px; padding:0 18px; min-height:46px; border:1px solid #dce4e8; border-radius:4px; background:#0b1a25; color:#fff; box-shadow:0 6px 20px #07101824; font:inherit; font-size:14px; cursor:pointer; }
 .map-interacting .mobile-map-toggle { background:#fff; color:#102b3a; }
 .mobile-map-toggle:focus-visible { outline:3px solid #f25b29; outline-offset:3px; }
 .rq-main .rq-shell { padding-top:26px; gap:24px; }
 .rq-intro h1 { font-size:40px; }
 .rq-intro .rq-readout { margin-top:18px; }
 .rq-console .rq-console-head { min-height:60px; padding:12px 18px; }
 .rq-console .rq-panel { padding-top:20px; }
 .rq-panel label > span, .rq-panel legend small { color:#b8c9d2; }
 .rq-panel input:not([type=checkbox]):not([type=file]), .rq-panel select, .rq-panel textarea { font-size:16px; color:#f1f6f9; background:#ffffff04; padding-inline:12px; border-radius:3px 3px 0 0; transition:background .2s,border-color .2s; }
 .rq-panel input::placeholder, .rq-panel textarea::placeholder { color:#8da3b0; opacity:1; }
 .rq-panel input:focus, .rq-panel select:focus, .rq-panel textarea:focus { background:#16303d; border-bottom-color:#f56532; outline:2px solid #79c8e680; outline-offset:2px; }
 .rq-panel input[type=checkbox] { width:20px; height:20px; flex-shrink:0; }
 .rq-panel .rq-agree { line-height:1.7; }
 .rq-panel-actions button:active { transform:translateY(1px); }
}
@media(max-width:768px) {
 header .navbar { background:linear-gradient(155deg,#122632,#071018 65%); padding-bottom:calc(28px + env(safe-area-inset-bottom)); overscroll-behavior:contain; }
 header .navbar.active { animation:mobile-menu-in .24s ease-out both; }
 header .menu-toggle { border:1px solid #ffffff20; border-radius:5px; transition:background .2s; }
 header .menu-toggle[aria-expanded=true] { background:#f25b29; font-size:30px; }
 header .navbar > li > a { font-size:18px; padding-block:19px; }
 header .navbar .sub-menu { background:#ffffff04; border-left:2px solid #f25b29; }
 header .navbar .sub-menu li a { min-height:48px; }
 header .submenu-toggle { transition:transform .2s; }
 header .submenu-toggle[aria-expanded=true] { transform:rotate(90deg); }
 a,button { -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
 a:focus-visible,button:focus-visible { outline:2px solid #79c8e6; outline-offset:3px; }
 .ip-hero-content,.forge-hero-content { padding-bottom:max(32px,env(safe-area-inset-bottom)); }
}
@media(max-height:500px) and (orientation:landscape) {
 .homepage .hero-section,.craft-detail .ip-hero,.forge-hero { min-height:400px; height:auto; }
 header .navbar > li > a { padding-block:12px; }
}
@keyframes mobile-menu-in { from { opacity:0; transform:translateY(-10px); } to { opacity:1; transform:none; } }
@media(prefers-reduced-motion:reduce) { header .navbar.active { animation:none; } }
@media(max-width:820px) {
 .rq-main .ip-reveal { opacity:1; transform:none; transition:none; }
}

.rq-remove-file { min-height:44px; padding:0 14px; margin:8px 0; border:1px solid #8fa6b455; background:transparent; color:#d4e2e9; font:inherit; font-size:14px; cursor:pointer; }
.rq-remove-file[hidden] { display:none; }
.ip-lightbox-inner { position:relative; }
.ip-lightbox-head strong { flex:1; }
.ip-certificate-zoom { min-height:44px; padding:0 12px; border:1px solid #8fa6b466; background:transparent; color:#fff; white-space:nowrap; font:inherit; font-size:13px; cursor:pointer; }
.ip-certificate-zoom:disabled { opacity:.45; }
.ip-certificate-status { position:absolute; z-index:1; top:70px; left:24px; right:24px; padding:12px; background:#0a1219; color:#fff; font-size:14px; }
.ip-lightbox.certificate-zoomed figure { display:block; overscroll-behavior:contain; }
.ip-lightbox.certificate-zoomed img { display:block; width:180%; max-width:none; height:auto; max-height:none; }
@media(max-width:820px) {
 .ip-lightbox-head { gap:8px; padding:0 12px; }
 .ip-lightbox-head strong { font-size:13px; line-height:1.5; }
 .ip-lightbox figure { padding:12px; }
 .ip-lightbox.certificate-zoomed img { width:240%; }
}
