@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--navy:#10263d;--ink:#173348;--teal:#087f83;--mint:#e7f2f1;--gold:#efb14e;--paper:#f5f7f6;--line:#dce6e4;--slate:#667d8c;--white:#fff;--shadow:0 16px 45px rgba(16,38,61,.08)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}a{color:inherit}.topline{height:33px;padding:0 max(24px,calc((100vw - 1240px)/2));display:flex;align-items:center;justify-content:space-between;background:#0b1e31;color:#bfd0d5;font-size:11px;letter-spacing:.04em}.topline a{color:#d4e5e5;text-decoration:none}.site-header{height:82px;padding:0 max(24px,calc((100vw - 1240px)/2));display:flex;align-items:center;gap:35px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;min-width:240px}.brand-mark{height:49px;width:49px;border-radius:13px;background:#fff;display:grid;place-items:center;box-shadow:0 5px 18px rgba(20,45,60,.08)}.brand-mark img{width:40px;height:40px;object-fit:contain}.brand strong,.brand small{display:block}.brand strong{font:800 19px/1 'Manrope',sans-serif;letter-spacing:.08em;color:var(--navy)}.brand small{font:700 9px/1.7 'Manrope',sans-serif;letter-spacing:.19em;color:var(--teal)}.nav-links{display:flex;gap:28px;align-items:center;margin-left:auto}.nav-links a{font-size:13px;font-weight:700;text-decoration:none;color:#506a7a;transition:color .2s}.nav-links a:hover,.nav-links a.active{color:var(--teal)}.nav-contact{padding:11px 18px;border-radius:9px;background:var(--navy);color:#fff;text-decoration:none;font-size:12px;font-weight:700}.nav-contact span{color:#67d3cc;margin-left:8px}.hero{position:relative;overflow:hidden;background:var(--navy);color:white;min-height:420px;padding:62px max(24px,calc((100vw - 1240px)/2)) 50px;display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:center}.hero:before,.hero:after{content:'';position:absolute;border-radius:50%;pointer-events:none}.hero:before{width:430px;height:430px;right:-80px;top:-210px;border:1px solid rgba(92,202,194,.18);box-shadow:0 0 0 48px rgba(88,202,194,.035),0 0 0 96px rgba(88,202,194,.025)}.hero:after{width:400px;height:400px;right:4%;bottom:-320px;background:radial-gradient(circle,rgba(8,127,131,.48),transparent 70%)}.hero-copy,.hero-art{position:relative;z-index:1}.eyebrow{color:#79d7cf;font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;display:flex;align-items:center;gap:9px}.eyebrow:before{content:'';height:2px;width:24px;background:var(--gold)}.hero h1{max-width:650px;margin:18px 0 14px;font:800 clamp(36px,5vw,62px)/1.05 'Manrope',sans-serif;letter-spacing:-.045em}.hero h1 em{font-style:normal;color:#69d1c9}.hero-copy p{max-width:560px;color:#c4d4d8;line-height:1.7;font-size:15px;margin:0}.hero-actions{display:flex;align-items:center;gap:12px;margin-top:27px}.button-primary,.button-ghost{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 18px;border-radius:9px;text-decoration:none;font-size:12px;font-weight:800;cursor:pointer;border:0}.button-primary{background:#62d0c8;color:#10263d}.button-primary:hover{background:#7de0d7}.button-ghost{border:1px solid rgba(255,255,255,.28);color:#fff;background:transparent}.hero-art{height:290px;display:flex;align-items:center;justify-content:center}.hero-product{position:absolute;width:48%;height:230px;border:7px solid rgba(255,255,255,.92);background:#fff;border-radius:20px;box-shadow:0 18px 45px rgba(0,0,0,.25);display:grid;place-items:center;padding:18px;overflow:hidden}.hero-product img{width:100%;height:100%;object-fit:contain}.hero-product:first-child{left:4%;top:32px;transform:rotate(-7deg)}.hero-product:nth-child(2){right:1%;top:6px;transform:rotate(8deg);z-index:2}.hero-product:nth-child(3){left:22%;bottom:0;transform:rotate(2deg);z-index:3}.hero-stamp{position:absolute;right:0;bottom:5px;z-index:5;background:var(--gold);color:var(--navy);padding:10px 14px;border-radius:8px;font:800 10px 'Manrope',sans-serif;letter-spacing:.08em;box-shadow:0 8px 20px rgba(0,0,0,.2)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:-25px auto 0;max-width:1240px;padding:0 24px;position:relative;z-index:4}.stat{background:#fff;border:1px solid var(--line);border-radius:13px;padding:17px 19px;box-shadow:var(--shadow)}.stat b{display:block;font:800 24px 'Manrope',sans-serif;color:var(--navy)}.stat span{display:block;margin-top:3px;font-size:10px;font-weight:800;letter-spacing:.12em;color:var(--slate);text-transform:uppercase}.catalogue-wrap{max-width:1240px;padding:57px 24px 72px;margin:auto}.section-kicker{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--teal);font-weight:800}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:20px}.section-heading h2{font:800 clamp(25px,3vw,34px)/1.1 'Manrope',sans-serif;letter-spacing:-.035em;color:var(--navy);margin:8px 0 0}.section-heading p{margin:0;color:var(--slate);font-size:13px}.filter-panel{background:#fff;padding:16px;border:1px solid var(--line);border-radius:14px;display:grid;grid-template-columns:minmax(230px,1.7fr) 1fr auto;gap:10px;box-shadow:0 9px 26px rgba(20,45,60,.04);margin-bottom:16px}.search-wrap{position:relative}.search-wrap:before{content:'⌕';position:absolute;left:13px;top:8px;color:var(--teal);font-size:23px}.filter-panel input,.filter-panel select{width:100%;height:43px;border:1px solid #dbe5e3;border-radius:8px;background:#fbfdfc;padding:0 12px;color:var(--ink);font:500 12px 'DM Sans',sans-serif;outline:none}.filter-panel input{padding-left:42px}.filter-panel input:focus,.filter-panel select:focus{border-color:#49aaa7;box-shadow:0 0 0 3px rgba(8,127,131,.1)}.clear-btn{border:0;background:var(--mint);color:var(--teal);font-weight:800;border-radius:8px;padding:0 14px;cursor:pointer}.results-line{display:flex;justify-content:space-between;align-items:center;margin:0 0 13px;color:var(--slate);font-size:11px}.results-line strong{color:var(--navy)}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.product-card{position:relative;min-width:0;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:0 4px 17px rgba(23,51,72,.035);transition:transform .24s,box-shadow .24s,border-color .24s;animation:rise .35s both}.product-card:hover{transform:translateY(-4px);box-shadow:0 16px 35px rgba(23,51,72,.12);border-color:#add4d1}.product-image{height:210px;position:relative;background:linear-gradient(145deg,#eff5f4,#f8faf9);display:grid;place-items:center;padding:17px}.product-image img{width:100%;height:100%;object-fit:contain;mix-blend-mode:normal;transition:transform .35s}.product-card:hover .product-image img{transform:scale(1.04)}.photo-tag{position:absolute;left:11px;top:11px;padding:5px 8px;border-radius:99px;background:rgba(255,255,255,.9);color:#4a746e;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.photo-tag.illustrative{color:#9b6a27}.card-body{padding:15px 16px 16px}.card-topline{display:flex;justify-content:space-between;align-items:center;gap:8px}.family-tag{color:var(--teal);font-size:8px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.model-code{color:#4e7080;font:800 10px 'Manrope',sans-serif;white-space:nowrap}.product-card h3{margin:9px 0 6px;font:800 16px/1.27 'Manrope',sans-serif;letter-spacing:-.02em;color:var(--navy);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:41px}.product-card .desc{margin:0;color:#627b89;font-size:11px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:49px}.card-specs{display:flex;gap:6px;margin:11px 0 13px;min-height:24px}.spec-mini{max-width:50%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#f2f7f6;padding:6px 8px;border-radius:6px;color:#55717e;font-size:8px}.spec-mini b{color:var(--teal)}.card-actions{border-top:1px solid #edf1f0;padding-top:11px;display:flex;align-items:center;justify-content:space-between;gap:8px}.card-actions a{color:var(--teal);font-size:10px;font-weight:800;text-decoration:none}.card-actions .view-link{color:var(--navy)}.qr-button{display:flex;align-items:center;gap:5px;border:0;background:transparent;color:var(--teal);font:800 9px 'DM Sans',sans-serif;cursor:pointer;padding:2px}.qr-button img{width:27px;height:27px}.empty-state{background:#fff;border:1px solid var(--line);border-radius:14px;padding:45px;text-align:center;color:var(--slate)}.pagination-note{margin-top:23px;text-align:center;color:#82939d;font-size:10px}.detail-wrap{max-width:1120px;margin:0 auto;padding:32px 24px 70px}.breadcrumb{font-size:11px;color:#80929b;margin-bottom:18px}.breadcrumb a{color:var(--teal);text-decoration:none;font-weight:700}.detail-shell{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:18px}.detail-main,.detail-side{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.detail-main{overflow:hidden}.detail-image{min-height:390px;background:linear-gradient(140deg,#eaf3f2,#f8faf9);display:grid;place-items:center;padding:30px}.detail-image img{width:100%;height:340px;object-fit:contain;mix-blend-mode:normal}.detail-copy{padding:26px 31px 32px}.detail-copy h1{font:800 clamp(27px,4vw,42px)/1.1 'Manrope',sans-serif;letter-spacing:-.04em;color:var(--navy);margin:10px 0}.detail-model{display:inline-block;background:var(--navy);color:#fff;padding:8px 12px;border-radius:7px;font:800 11px 'Manrope',sans-serif;letter-spacing:.06em}.detail-copy p{color:#627b89;font-size:14px;line-height:1.7}.detail-copy h2{margin:25px 0 10px;font:800 14px 'Manrope',sans-serif;color:var(--navy)}.spec-table{width:100%;border-collapse:collapse}.spec-table td{padding:10px 8px;border-bottom:1px solid #edf1f0;font-size:12px}.spec-table td:first-child{width:35%;font-weight:800;color:#66808b}.spec-table td:last-child{color:var(--ink)}.detail-side{padding:22px;align-self:start;position:sticky;top:105px}.qr-card{background:#f4f8f7;border:1px solid #e1ebea;border-radius:13px;padding:18px;text-align:center}.qr-card img{display:block;width:180px;height:180px;max-width:100%;margin:0 auto 10px}.qr-card strong{display:block;color:var(--navy);font:800 12px 'Manrope',sans-serif}.qr-card p{font-size:10px;color:var(--slate);line-height:1.5;margin:7px 0 12px}.download-link{display:inline-flex;text-decoration:none;background:var(--navy);color:#fff;padding:9px 12px;border-radius:7px;font-size:10px;font-weight:800}.detail-links{display:grid;gap:9px;margin-top:15px}.detail-links a{display:flex;align-items:center;justify-content:space-between;text-decoration:none;padding:12px;border:1px solid var(--line);border-radius:8px;font-size:11px;font-weight:800;color:var(--teal)}.detail-links a:hover{background:var(--mint)}.product-note{font-size:9px;color:#7f9098;line-height:1.5;margin-top:14px}.qr-page{max-width:1240px;margin:auto;padding:45px 24px 70px}.qr-hero{background:var(--navy);color:#fff;padding:29px 32px;border-radius:16px;display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.qr-hero h1{font:800 clamp(26px,4vw,38px)/1.1 'Manrope',sans-serif;letter-spacing:-.03em;margin:7px 0}.qr-hero p{margin:0;color:#c7d7d8;font-size:12px}.qr-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.qr-tile{background:#fff;border:1px solid var(--line);border-radius:11px;padding:14px;display:grid;grid-template-columns:80px 1fr;gap:11px;align-items:center;break-inside:avoid}.qr-tile img{width:80px;height:80px}.qr-tile .tile-model{font:800 10px 'Manrope',sans-serif;color:var(--teal)}.qr-tile .tile-name{font:700 10px/1.35 'Manrope',sans-serif;color:var(--navy);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:3px 0}.qr-tile .tile-family{font-size:8px;color:#7e929a}.qr-tile a{display:inline-block;color:var(--teal);font-size:8px;font-weight:800;text-decoration:none;margin-top:6px}.qr-controls{display:flex;gap:9px;align-items:center;margin-bottom:17px}.qr-controls input,.qr-controls select{height:40px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 12px;color:var(--ink);font-size:11px}.qr-controls input{flex:1}.qr-controls button{height:40px;border:0;border-radius:8px;background:var(--teal);color:#fff;padding:0 14px;font-size:10px;font-weight:800;cursor:pointer}.loading{padding:80px 20px;text-align:center;color:var(--slate)}.site-footer{background:#0b1e31;color:#c8d7da;padding:28px max(24px,calc((100vw - 1240px)/2));display:grid;grid-template-columns:1.1fr 1fr;gap:17px 50px}.footer-brand strong{display:block;color:white;font:800 13px 'Manrope',sans-serif;letter-spacing:.08em}.footer-brand span,.footer-contact span{display:block;color:#91a9b0;font-size:10px;margin-top:6px}.footer-contact{display:flex;flex-wrap:wrap;gap:14px;font-size:10px}.footer-contact a{color:#b9e8e4;text-decoration:none}.footer-note{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:13px;font-size:9px;color:#8fa7ae}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);padding:11px 16px;border-radius:8px;background:var(--navy);color:white;font-size:11px;box-shadow:var(--shadow);z-index:50}.fade-in{animation:fade .28s ease both}@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(max-width:940px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{grid-template-columns:1fr .82fr}.stats{grid-template-columns:repeat(2,1fr)}.qr-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-shell{grid-template-columns:minmax(0,1fr) 270px}}
@media(max-width:680px){.topline{padding:0 16px;font-size:9px}.site-header{height:69px;padding:0 16px;gap:12px}.brand{min-width:0;gap:8px}.brand-mark{width:41px;height:41px}.brand-mark img{width:34px;height:34px}.brand strong{font-size:15px}.brand small{font-size:7px}.nav-links{gap:12px}.nav-links a{font-size:10px}.nav-contact{font-size:10px;padding:9px 11px}.hero{display:block;min-height:0;padding:46px 20px 32px}.hero h1{font-size:42px}.hero-copy p{font-size:13px}.hero-art{height:215px;margin-top:15px}.hero-product{height:170px;width:43%}.hero-product:first-child{left:8%;top:22px}.hero-product:nth-child(2){right:7%;top:3px}.hero-product:nth-child(3){left:30%;bottom:0}.hero-stamp{right:2%;bottom:0;font-size:8px}.stats{padding:0 14px;gap:8px;margin-top:-13px}.stat{padding:13px}.stat b{font-size:20px}.stat span{font-size:8px}.catalogue-wrap{padding:42px 15px 52px}.section-heading{display:block}.section-heading p{margin-top:8px}.filter-panel{grid-template-columns:1fr 1fr;padding:11px}.search-wrap{grid-column:1/-1}.clear-btn{height:40px}.product-grid{gap:10px}.product-image{height:145px;padding:10px}.card-body{padding:11px}.product-card h3{font-size:13px;min-height:34px}.product-card .desc{font-size:10px;min-height:45px}.card-specs{display:block;margin:9px 0}.spec-mini{display:inline-block;max-width:100%;margin-bottom:4px}.card-actions a{font-size:9px}.qr-button img{width:24px;height:24px}.detail-wrap{padding:20px 14px 45px}.detail-shell{grid-template-columns:1fr}.detail-side{position:static;grid-row:1}.detail-image{min-height:250px;padding:20px}.detail-image img{height:220px}.detail-copy{padding:21px}.qr-card img{width:145px;height:145px}.qr-page{padding:25px 14px 45px}.qr-hero{display:block;padding:22px}.qr-hero .button-primary{margin-top:14px}.qr-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.qr-tile{grid-template-columns:58px 1fr;gap:7px;padding:8px}.qr-tile img{width:58px;height:58px}.qr-tile .tile-name{font-size:9px}.qr-controls{flex-wrap:wrap}.qr-controls input{flex-basis:100%}.site-footer{padding:24px 17px;grid-template-columns:1fr;gap:16px}.footer-note{grid-column:auto}}
@media(max-width:390px){.nav-links{gap:8px}.nav-links a{font-size:9px}.nav-contact{padding:8px}.product-grid{grid-template-columns:1fr}.product-image{height:205px}.product-card .desc{min-height:unset}.qr-grid{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
@media print{body{background:white}.topline,.site-header,.site-footer,.qr-controls,.qr-hero .button-primary,.breadcrumb,.detail-links,.card-actions,.filter-panel,.family-pills,.hero,.stats,.section-heading,.results-line{display:none!important}.qr-page{max-width:none;padding:0}.qr-hero{background:#fff;color:#10263d;padding:8px 0;margin:0 0 10px}.qr-hero p{color:#526b78}.qr-grid{grid-template-columns:repeat(4,1fr);gap:6px}.qr-tile{padding:8px;box-shadow:none;border-color:#cbd8d7}.qr-tile img{width:64px;height:64px}.qr-tile a{display:none}.product-grid{grid-template-columns:repeat(3,1fr)}.product-card{break-inside:avoid;box-shadow:none}}

:root {
  --navy: #081a2e;
  --navy-dark: #05101d;
  --ink: #11283b;
  --teal: #087f83;
  --teal-glow: #00f2fe;
  --mint: #e2f4f2;
  --gold: #f5a623;
  --gold-glow: #ffc837;
  --paper: #f4f7f6;
  --line: #d3e2df;
  --slate: #5e7a88;
  --shadow: 0 18px 48px rgba(8, 26, 46, 0.09);
  --shadow-lg: 0 28px 65px rgba(8, 26, 46, 0.16);
}

body {
  background:
    radial-gradient(ellipse at 85% 10%, rgba(0, 242, 254, 0.08), transparent 35%),
    radial-gradient(ellipse at 15% 45%, rgba(245, 166, 35, 0.05), transparent 30%),
    radial-gradient(ellipse at 75% 85%, rgba(8, 127, 131, 0.07), transparent 35%),
    var(--paper);
  position: relative;
  overflow-x: hidden;
}

/* ========================================================
   CINEMATIC 3D EXHIBITION VAULT DOORS (DOOR OPENING ANIMATION)
   ======================================================== */
.vault-portal {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  perspective: 1500px;
  background: #040c15;
  transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.8s;
}

.vault-portal.opened {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* Left & Right Doors */
.vault-door {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 50.5%;
  background:
    radial-gradient(circle at 50% 50%, rgba(0, 242, 254, 0.05), transparent 75%),
    linear-gradient(135deg, #091a2a 0%, #050e18 45%, #0b1f32 100%);
  border: 1px solid rgba(88, 202, 194, 0.2);
  box-shadow: inset 0 0 120px rgba(0, 0, 0, 0.85), 0 0 50px rgba(0, 0, 0, 0.9);
  transition: transform 1.5s cubic-bezier(0.25, 1, 0.3, 1);
  transform-style: preserve-3d;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 40px;
  overflow: hidden;
  z-index: 10;
}

.vault-door.left-door {
  left: 0;
  transform-origin: left center;
  border-right: 3px solid rgba(0, 242, 254, 0.6);
  box-shadow: inset -15px 0 35px rgba(0, 242, 254, 0.2), inset 0 0 100px rgba(0,0,0,0.85);
}

.vault-door.right-door {
  right: 0;
  transform-origin: right center;
  border-left: 3px solid rgba(0, 242, 254, 0.6);
  box-shadow: inset 15px 0 35px rgba(0, 242, 254, 0.2), inset 0 0 100px rgba(0,0,0,0.85);
}

/* 3D Door Swing State */
.vault-portal.opening .vault-door.left-door {
  transform: perspective(1400px) rotateY(-88deg) translateX(-102%);
}

.vault-portal.opening .vault-door.right-door {
  transform: perspective(1400px) rotateY(88deg) translateX(102%);
}

/* Door Metal Mesh & Circuit Overlay */
.vault-panel-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(0, 242, 254, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 242, 254, 0.04) 1px, transparent 1px);
  background-size: 40px 40px;
  pointer-events: none;
}

.vault-circuit-lines {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.circuit-h {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(0, 242, 254, 0.4), transparent);
  box-shadow: 0 0 10px rgba(0, 242, 254, 0.6);
}

.circuit-v {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 45%;
  width: 2px;
  background: linear-gradient(180deg, transparent, rgba(245, 166, 35, 0.35), transparent);
}

.vault-door-brand {
  position: relative;
  z-index: 5;
  color: #a3c9d6;
}

.vault-door-brand.right-align {
  text-align: right;
}

.vault-tech-label {
  display: block;
  font: 800 13px 'Manrope', sans-serif;
  letter-spacing: 0.22em;
  color: #00f2fe;
  text-shadow: 0 0 12px rgba(0, 242, 254, 0.5);
}

.vault-door-serial {
  display: block;
  font: 700 9px 'DM Sans', monospace;
  letter-spacing: 0.18em;
  color: #6d8e9e;
  margin-top: 5px;
}

.vault-hydraulic-rods {
  display: flex;
  gap: 12px;
  margin: 20px 0;
}

.piston-rod {
  width: 8px;
  height: 60px;
  border-radius: 4px;
  background: linear-gradient(180deg, #183b54 0%, #4facfe 50%, #0d2334 100%);
  box-shadow: 0 0 8px rgba(79, 172, 254, 0.4);
}

.vault-bolts-strip {
  position: absolute;
  top: 15px;
  bottom: 15px;
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  z-index: 4;
}

.left-door .vault-bolts-strip { right: 20px; }
.right-door .vault-bolts-strip { left: 20px; }

.vault-bolts-strip span {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #fff 0%, #688a99 60%, #152b3a 100%);
  border: 1px solid rgba(0,0,0,0.6);
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
}

/* Light Beam through door seam */
.vault-light-beam {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 2px;
  transform: translateX(-50%);
  background: #ffffff;
  box-shadow:
    0 0 50px 20px rgba(0, 242, 254, 0.9),
    0 0 140px 60px rgba(79, 172, 254, 0.7);
  opacity: 0;
  transition: opacity 0.5s ease, width 0.7s ease;
  z-index: 15;
  pointer-events: none;
}

.vault-portal.opening .vault-light-beam {
  opacity: 1;
  width: 220px;
}

/* Center Biometric Lock Hub */
.vault-lock-hub {
  position: absolute;
  z-index: 30;
  width: 440px;
  height: 440px;
  border-radius: 50%;
  background: radial-gradient(circle, #092033 0%, #040e18 80%);
  border: 5px solid rgba(0, 242, 254, 0.5);
  box-shadow:
    0 0 90px rgba(0, 242, 254, 0.35),
    inset 0 0 60px rgba(0, 0, 0, 0.95),
    0 25px 60px rgba(0,0,0,0.8);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 35px 25px;
  text-align: center;
  transition: all 0.75s cubic-bezier(0.2, 1, 0.3, 1);
  box-sizing: border-box;
}

.vault-portal.opening .vault-lock-hub {
  transform: scale(1.2) rotate(180deg);
  opacity: 0;
}

.hub-ring {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}

.hub-ring-outer {
  inset: -18px;
  border: 2px dashed rgba(0, 242, 254, 0.6);
  animation: rotateClockwise 25s linear infinite;
}

.hub-ring-inner {
  inset: -32px;
  border: 2px dotted rgba(245, 166, 35, 0.5);
  animation: rotateCounter 35s linear infinite;
}

@keyframes rotateClockwise {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes rotateCounter {
  from { transform: rotate(360deg); }
  to { transform: rotate(0deg); }
}

.hub-scanner-laser {
  position: absolute;
  left: 20px;
  right: 20px;
  height: 2px;
  background: linear-gradient(90deg, transparent, #00f2fe, #fff, #00f2fe, transparent);
  box-shadow: 0 0 15px #00f2fe;
  animation: scanVertical 2.4s ease-in-out infinite alternate;
  pointer-events: none;
}

@keyframes scanVertical {
  0% { top: 30px; opacity: 0.3; }
  50% { opacity: 1; }
  100% { top: 410px; opacity: 0.3; }
}

.hub-crest-icon {
  font-size: 38px;
  color: var(--gold);
  filter: drop-shadow(0 0 15px var(--gold));
  margin-bottom: 8px;
  animation: pulseGlow 2s ease-in-out infinite;
}

@keyframes pulseGlow {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 12px var(--gold)); }
  50% { transform: scale(1.08); filter: drop-shadow(0 0 25px var(--gold-glow)); }
}

.hub-title {
  font: 800 13px 'Manrope', sans-serif;
  letter-spacing: 0.25em;
  color: #72e5dc;
  text-transform: uppercase;
}

.hub-subtitle {
  font: 800 19px/1.2 'Manrope', sans-serif;
  letter-spacing: -0.02em;
  color: #ffffff;
  margin: 6px 0 10px;
  text-shadow: 0 2px 10px rgba(0,0,0,0.5);
}

.hub-badge {
  background: rgba(0, 242, 254, 0.12);
  border: 1px solid rgba(0, 242, 254, 0.35);
  border-radius: 999px;
  padding: 5px 14px;
  font: 700 9px 'DM Sans', sans-serif;
  letter-spacing: 0.12em;
  color: #92eef8;
  margin-bottom: 20px;
}

/* Master Open Doors Button */
.vault-unlock-btn {
  position: relative;
  background: linear-gradient(135deg, #00f2fe 0%, #4facfe 50%, #087f83 100%);
  color: #041220;
  border: none;
  border-radius: 999px;
  padding: 16px 32px;
  font: 800 13px/1 'Manrope', sans-serif;
  letter-spacing: 0.08em;
  cursor: pointer;
  box-shadow: 0 10px 30px rgba(0, 242, 254, 0.45);
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  overflow: hidden;
  z-index: 5;
}

.vault-unlock-btn:hover {
  transform: translateY(-2px) scale(1.04);
  box-shadow: 0 15px 40px rgba(0, 242, 254, 0.7);
}

.vault-unlock-btn:active {
  transform: scale(0.97);
}

.btn-glow-pulse {
  position: absolute;
  inset: -10px;
  background: radial-gradient(circle, rgba(255,255,255,0.8), transparent 70%);
  opacity: 0;
  transition: opacity 0.3s;
}

.vault-unlock-btn:hover .btn-glow-pulse {
  opacity: 0.4;
}

.hub-instruction {
  margin-top: 14px;
  font-size: 10px;
  color: #7b9ba8;
  letter-spacing: 0.04em;
}

/* Reopen gate in header */
.nav-gate-btn {
  background: rgba(0, 242, 254, 0.1);
  border: 1px solid rgba(0, 242, 254, 0.3);
  color: var(--navy);
  border-radius: 999px;
  padding: 9px 15px;
  font: 800 11px 'Manrope', sans-serif;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all 0.2s ease;
}

.nav-gate-btn:hover {
  background: #00f2fe;
  color: #081a2e;
  box-shadow: 0 6px 18px rgba(0, 242, 254, 0.35);
  transform: translateY(-1px);
}

/* ========================================================
   FLOATING ACTION DOCK (BOTTOM DOCK)
   ======================================================== */
.floating-dock {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 9999;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background: rgba(8, 26, 46, 0.88);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(0, 242, 254, 0.28);
  border-radius: 999px;
  box-shadow: 0 20px 50px rgba(4, 15, 26, 0.45);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.floating-dock:hover {
  border-color: rgba(0, 242, 254, 0.6);
  box-shadow: 0 25px 60px rgba(0, 242, 254, 0.2);
}

.dock-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  color: #d8e8ea;
  border: none;
  border-radius: 999px;
  padding: 8px 14px;
  font: 700 11px 'DM Sans', sans-serif;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.dock-btn:hover, .dock-btn.active {
  background: rgba(0, 242, 254, 0.18);
  color: #00f2fe;
  transform: translateY(-1px);
}

.dock-btn.primary {
  background: linear-gradient(135deg, #00f2fe 0%, #087f83 100%);
  color: #051321;
  font-weight: 800;
  box-shadow: 0 4px 14px rgba(0, 242, 254, 0.3);
}

.dock-btn.primary:hover {
  background: #00f2fe;
  box-shadow: 0 6px 20px rgba(0, 242, 254, 0.5);
}

.dock-badge {
  background: #e52d27;
  color: #fff;
  border-radius: 999px;
  padding: 2px 7px;
  font: 800 9px 'Manrope', sans-serif;
  margin-left: 2px;
}

/* ========================================================
   INTERACTIVE MODEL COMPARE DRAWER & MODAL
   ======================================================== */
.compare-floating-bar {
  position: fixed;
  bottom: 84px;
  left: 50%;
  transform: translateX(-50%) translateY(0);
  z-index: 9998;
  display: flex;
  align-items: center;
  gap: 16px;
  background: #0a2138;
  border: 1px solid rgba(245, 166, 35, 0.4);
  border-radius: 16px;
  padding: 12px 20px;
  color: #fff;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35);
  animation: slideUp 0.3s ease;
}

.compare-floating-bar.hidden { display: none; }

@keyframes slideUp {
  from { transform: translateX(-50%) translateY(30px); opacity: 0; }
  to { transform: translateX(-50%) translateY(0); opacity: 1; }
}

.compare-bar-thumbs {
  display: flex;
  gap: 8px;
}

.compare-thumb-chip {
  width: 38px;
  height: 38px;
  border-radius: 8px;
  background: #fff;
  padding: 2px;
  object-fit: contain;
  border: 1px solid #4facfe;
}

.compare-btn-view {
  background: var(--gold);
  color: #0a1f33;
  border: none;
  border-radius: 999px;
  padding: 9px 18px;
  font: 800 11px 'Manrope', sans-serif;
  cursor: pointer;
  transition: transform 0.2s, background 0.2s;
}

.compare-btn-view:hover {
  background: #ffc837;
  transform: scale(1.05);
}

.compare-btn-clear {
  background: transparent;
  color: #92b0be;
  border: 1px solid #2d4f68;
  border-radius: 999px;
  padding: 7px 12px;
  font-size: 10px;
  cursor: pointer;
}

.compare-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 100000;
  background: rgba(4, 15, 26, 0.85);
  backdrop-filter: blur(14px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  animation: fadeIn 0.25s ease;
}

.compare-modal-overlay.hidden { display: none; }

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.compare-modal-card {
  width: 100%;
  max-width: 1080px;
  max-height: 90vh;
  overflow-y: auto;
  background: #ffffff;
  border-radius: 24px;
  border: 1px solid #c8dcd8;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.4);
  padding: 32px;
  position: relative;
}

.compare-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #e1eeeb;
  padding-bottom: 18px;
  margin-bottom: 24px;
}

.compare-modal-head h2 {
  font: 800 24px 'Manrope', sans-serif;
  color: var(--navy);
  margin: 0;
}

.compare-close-btn {
  background: #edf5f3;
  border: none;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  font-size: 18px;
  cursor: pointer;
  color: var(--navy);
  transition: background 0.2s;
}

.compare-close-btn:hover { background: #d7ebe7; }

.compare-grid {
  display: grid;
  grid-template-columns: 200px repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
}

.compare-col {
  background: #f7faf9;
  border-radius: 16px;
  border: 1px solid #e2edea;
  padding: 16px;
  text-align: center;
}

.compare-col img {
  width: 100%;
  height: 140px;
  object-fit: contain;
  margin-bottom: 12px;
}

.compare-col h3 {
  font: 800 15px 'Manrope', sans-serif;
  color: var(--navy);
  margin: 0 0 6px;
}

.compare-col .c-model {
  display: inline-block;
  background: var(--navy);
  color: #fff;
  padding: 4px 10px;
  border-radius: 6px;
  font: 800 10px 'Manrope', sans-serif;
  margin-bottom: 12px;
}

.compare-spec-row {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid #edf1f0;
  font-size: 11px;
  text-align: left;
}

.compare-spec-row b { color: #51717f; }
.compare-spec-row span { color: #11283b; font-weight: 600; text-align: right; max-width: 60%; }

/* Card Compare Toggle Button */
.card-compare-btn {
  background: #f0f7f5;
  border: 1px solid #cce2dd;
  color: #087f83;
  border-radius: 999px;
  padding: 5px 10px;
  font: 800 9px 'Manrope', sans-serif;
  cursor: pointer;
  transition: all 0.2s;
}

.card-compare-btn:hover, .card-compare-btn.active {
  background: var(--navy);
  border-color: var(--navy);
  color: #fff;
}

/* ========================================================
   HIGH DESIGN PRODUCT CARDS WITH GLOW & 3D TILT
   ======================================================== */
.product-card {
  position: relative;
  border-radius: 20px;
  background: #ffffff;
  border: 1px solid #dae7e4;
  box-shadow: 0 10px 30px rgba(18, 41, 59, 0.05);
  transition: transform 0.28s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.28s, border-color 0.28s;
  overflow: hidden;
  transform-style: preserve-3d;
}

.product-card:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, #00f2fe, #4facfe, #f5a623);
  opacity: 0.85;
}

.product-card:hover {
  transform: translateY(-8px) scale(1.015);
  box-shadow: 0 25px 55px rgba(18, 41, 59, 0.14), 0 0 25px rgba(0, 242, 254, 0.12);
  border-color: #92d8d2;
}

.product-image {
  height: 225px;
  margin: 12px 12px 0;
  border-radius: 16px;
  background: radial-gradient(circle at 50% 35%, #ffffff 0%, #f4f8f7 70%, #eaf3f1 100%);
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 20px;
  position: relative;
  overflow: hidden;
  text-decoration: none;
}

.product-image img {
  max-width: 90% !important;
  max-height: 190px !important;
  object-fit: contain !important;
  mix-blend-mode: normal !important;
  filter: drop-shadow(0 10px 22px rgba(16, 38, 61, 0.14)) !important;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.product-card:hover .product-image img {
  transform: scale(1.08) !important;
}

.card-body {
  padding: 18px 20px 20px;
}

.family-tag {
  color: var(--teal);
  font: 800 8.5px 'Manrope', sans-serif;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.model-code {
  background: linear-gradient(135deg, #10263d, #1c415e);
  color: #79d7cf;
  font: 800 10px 'Manrope', sans-serif;
  padding: 5px 10px;
  border-radius: 8px;
  letter-spacing: 0.05em;
}

.product-card h3 {
  font: 800 17px/1.28 'Manrope', sans-serif;
  color: var(--navy);
  margin: 11px 0 7px;
  min-height: 44px;
}

.product-card .desc {
  font-size: 11.5px;
  line-height: 1.6;
  color: #637f8e;
  min-height: 55px;
}

.spec-mini {
  background: #f1f7f6;
  border: 1px solid #dbe8e5;
  border-radius: 8px;
  padding: 7px 10px;
  font-size: 8.5px;
  color: #55727f;
}

.spec-mini b {
  color: var(--teal);
  font-weight: 800;
}

.card-actions {
  border-top: 1px solid #ebf1f0;
  padding-top: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.card-actions .view-link {
  background: var(--navy);
  color: #ffffff;
  padding: 9px 14px;
  border-radius: 999px;
  font: 800 10px 'Manrope', sans-serif;
  text-decoration: none;
  transition: all 0.2s;
}

.card-actions .view-link:hover {
  background: var(--teal);
  transform: translateY(-1px);
}

/* Police Showcase Upgrades */
.police-showcase-wrap {
  max-width: 1240px;
  margin: 0 auto;
  padding: 55px 24px 0;
  scroll-margin-top: 90px;
}

.police-showcase {
  position: relative;
  padding: 34px;
  border: 1px solid rgba(8, 127, 131, 0.25);
  border-radius: 28px;
  background:
    radial-gradient(ellipse at 88% 15%, rgba(0, 242, 254, 0.09), transparent 45%),
    linear-gradient(135deg, #f2faf8 0%, #ffffff 50%, #edf7f5 100%);
  box-shadow: 0 25px 65px rgba(18, 41, 59, 0.08);
  overflow: hidden;
}

.police-heading h2 {
  font: 800 clamp(28px, 3.2vw, 40px)/1.08 'Manrope', sans-serif;
  color: var(--navy);
  letter-spacing: -0.04em;
}

/* Mobile & Tablet responsiveness */
@media (max-width: 900px) {
  .vault-lock-hub {
    width: 320px;
    height: 320px;
    padding: 20px;
  }
  .hub-crest-icon { font-size: 28px; }
  .hub-subtitle { font-size: 15px; }
  .vault-unlock-btn { padding: 12px 24px; font-size: 11px; }
  .floating-dock { bottom: 16px; padding: 6px 10px; }
  .dock-btn { font-size: 10px; padding: 6px 10px; }
}

@media (max-width: 600px) {
  .vault-door { width: 51%; padding: 20px; }
  .vault-tech-label { font-size: 10px; }
  .vault-lock-hub { width: 290px; height: 290px; }
  .hub-subtitle { font-size: 13px; }
  .compare-grid { grid-template-columns: 1fr; }
}


/* Enhancements for QR codes & YouTube buttons */
.large-qr-code{width:210px!important;height:210px!important;cursor:pointer;border:2px solid #087f83;border-radius:12px;padding:8px;background:#fff;transition:transform .2s ease,box-shadow .2s ease}
.large-qr-code:hover{transform:scale(1.04);box-shadow:0 8px 24px rgba(8,127,131,.25)}
.qr-btn-group{display:flex;flex-direction:column;gap:8px;width:100%;margin-top:12px}
.copy-url-btn{background:#10263d;color:#fff;border:none;border-radius:999px;padding:9px 16px;font-size:12px;font-weight:600;cursor:pointer;transition:background .2s}
.copy-url-btn:hover{background:#087f83}
.yt-cta{background:#e52d27!important;color:#fff!important;border:none!important}
.yt-cta:hover{background:#b31217!important;transform:translateY(-1px)}
.yt-link{background:#e52d27!important;color:#fff!important;border:none!important}
.yt-link:hover{background:#b31217!important}
.qr-card{padding:20px!important;text-align:center}
.qr-card strong{display:block;margin-top:10px;font-size:14px;color:#10263d}
.qr-card p{font-size:11px;color:#667d8c;margin:6px 0 12px}
