:root{
  --primary:#1f66d1;
  --primary-dark:#134aa5;
  --accent:#46d2ff;
  --ink:#0b1b33;
  --muted:#546179;
  --bg:#f5f8ff;
  --surface:#ffffff;
  --surface-soft:#eef4ff;
  --stroke:rgba(13,34,65,.12);
  --shadow-sm:0 12px 24px rgba(13,34,65,.08);
  --shadow-md:0 20px 50px rgba(13,34,65,.14);
}

*{ box-sizing:border-box; }
html{
  overflow-x:hidden;
}
body{
  margin:0;
  font-family: "Manrope", sans-serif;
  color:var(--ink);
  background:var(--bg);
  overflow-x:hidden;
}
html.menu-open,
body.menu-open{
  overflow:hidden;
  height:100%;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }

.floating-contacts{
  position:fixed;
  right:18px;
  bottom:18px;
  display:flex !important;
  flex-direction:column;
  gap:10px;
  z-index:20000;
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
  transform: translateZ(0);
  isolation:isolate;
}
.floating-btn{
  width:52px;
  height:52px;
  border-radius:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  box-shadow:0 14px 28px rgba(11,26,56,.18);
  border:1px solid rgba(255,255,255,.2);
  transition: transform .2s ease, box-shadow .2s ease;
}
.floating-btn svg{ width:26px; height:26px; }
.floating-btn:hover{
  transform: translateY(-2px);
  box-shadow:0 18px 36px rgba(11,26,56,.25);
}
.floating-btn.whatsapp{ background:#25D366; }
.floating-btn.phone{ background:linear-gradient(135deg, var(--primary), var(--primary-dark)); }

.container{
  width:min(1120px, 92vw);
  margin:0 auto;
}

.site-header{
  position:sticky;
  top:0;
  z-index:1000;
  background:rgba(255,255,255,.86);
  backdrop-filter: blur(12px);
  border-bottom:1px solid rgba(15,23,42,.08);
}
.nav{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  padding:18px 0;
  gap:20px;
}
.brand{
  font-family:"Sora", "Manrope", sans-serif;
  font-weight:700;
  font-size:1.35rem;
  letter-spacing:.2px;
  color:var(--primary-dark);
}
.brand span{ color:var(--primary); }
.nav-links{
  display:flex;
  align-items:center;
  gap:26px;
  margin-left:16px;
  color:#283754;
  font-weight:600;
  font-size:.95rem;
}
.nav-links > a,
.nav-links > .nav-item > a{
  display:flex;
  align-items:center;
  gap:6px;
}
.nav-links > a svg,
.nav-links > .nav-item > a svg{
  width:14px;
  height:14px;
}
.nav-links .panel-menu summary svg{
  width:14px;
  height:14px;
}
.nav-item{
  position:relative;
  display:flex;
  align-items:center;
}
.nav-dropdown{
  position:absolute;
  left:0;
  top:100%;
  background:#fff;
  border:1px solid var(--stroke);
  border-radius:12px;
  padding:10px;
  min-width:230px;
  box-shadow:0 16px 36px rgba(13,34,65,.14);
  display:grid;
  gap:6px;
  opacity:0;
  visibility:hidden;
  transform: translateY(8px);
  pointer-events:none;
  transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
  z-index:5;
}
.nav-dropdown::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-10px;
  height:10px;
}
.nav-dropdown a{
  padding:10px 12px;
  border-radius:8px;
  font-weight:600;
  color:#223150;
  white-space:nowrap;
}
.nav-dropdown a:hover{
  background:#f0f5ff;
  color:var(--primary-dark);
}
.nav-item:hover .nav-dropdown,
.nav-item:focus-within .nav-dropdown{
  opacity:1;
  visibility:visible;
  transform: translateY(0);
  pointer-events:auto;
}
.nav-actions{
  display:flex;
  align-items:center;
  gap:12px;
  margin-left:auto;
}
.nav-phone{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 14px;
  border-radius:999px;
  border:1px solid rgba(31,102,209,.22);
  background:rgba(31,102,209,.08);
  color:var(--primary-dark);
  font-weight:700;
  font-size:.9rem;
  letter-spacing:.2px;
  white-space:nowrap;
}
.nav-phone::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:999px;
  background:linear-gradient(135deg, var(--primary), var(--accent));
  box-shadow:0 0 0 4px rgba(31,102,209,.16);
}
.nav-phone-cta{
  display:inline-flex;
}
.nav-links > a.nav-phone{
  border-color:rgba(31,102,209,.28);
  background:rgba(31,102,209,.12);
}
.nav-actions .menu-toggle{
  display:none;
  white-space:nowrap;
}
.menu-header{
  display:none;
  align-items:center;
  justify-content:space-between;
  font-weight:700;
  color:#1b2a44;
  border-bottom:1px solid rgba(15,23,42,.08);
  padding-bottom:12px;
  margin-bottom:4px;
}
.menu-close{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  border-radius:10px;
  border:1px solid rgba(31,102,209,.18);
  background:#f3f7ff;
  color:var(--primary-dark);
  font-size:1.1rem;
  cursor:pointer;
}
.nav-scrim{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.4);
  opacity:0;
  pointer-events:none;
  transition: opacity .2s ease;
  z-index:900;
  display:none;
}
body.menu-open .nav-scrim{
  opacity:1;
  pointer-events:auto;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border-radius:12px;
  padding:12px 20px;
  font-weight:600;
  border:1px solid transparent;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  cursor:pointer;
  white-space:nowrap;
}
.btn-primary{
  background: linear-gradient(135deg, var(--primary), #2c7dff);
  color:#fff;
  box-shadow:0 12px 22px rgba(31,102,209,.28);
}
.btn-primary:hover{ transform: translateY(-1px); }
.btn-secondary{
  background:#fff;
  color:var(--primary-dark);
  border-color:rgba(31,102,209,.3);
  box-shadow:0 10px 18px rgba(13,34,65,.08);
}
.btn-ghost{
  background:#fff;
  color:var(--primary-dark);
  border-color:rgba(31,102,209,.25);
}
.btn-ghost:hover{
  border-color:rgba(31,102,209,.55);
  box-shadow:0 10px 20px rgba(31,102,209,.12);
}

.panel-menu{ position:relative; }
.panel-menu summary{ list-style:none; cursor:pointer; }
.panel-menu summary::-webkit-details-marker{ display:none; }
.panel-dropdown{
  position:absolute;
  right:0;
  top:calc(100% + 8px);
  background:#fff;
  border:1px solid var(--stroke);
  border-radius:12px;
  padding:10px;
  min-width:230px;
  box-shadow:0 16px 36px rgba(13,34,65,.14);
  display:grid;
  gap:6px;
  z-index:5;
}
.nav-actions .panel-menu.desktop-panel .panel-dropdown::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-10px;
  height:10px;
}
.nav-actions .panel-menu.desktop-panel .panel-dropdown{
  display:none;
}
.nav-actions .panel-menu.desktop-panel:hover .panel-dropdown,
.nav-actions .panel-menu.desktop-panel:focus-within .panel-dropdown,
.nav-actions .panel-menu.desktop-panel[open] .panel-dropdown{
  display:grid;
}
.panel-dropdown a{
  padding:10px 12px;
  border-radius:8px;
  font-weight:600;
  color:#223150;
}
.panel-dropdown a:hover{
  background:#f0f5ff;
  color:var(--primary-dark);
}
.panel-menu summary svg{
  transition: transform .2s ease;
}
.panel-menu[open] summary svg{
  transform: rotate(180deg);
}
.nav-links .panel-menu{
  display:none;
}
.nav-actions .panel-menu.desktop-panel{
  display:block;
}

.hero{
  position:relative;
  overflow:hidden;
  background:linear-gradient(120deg, #e2efff 0%, #f7fbff 45%, #d2e5ff 100%);
  color:#1b3d6d;
  padding:64px 0 56px;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(520px 240px at 12% 20%, rgba(31,102,209,.18), transparent 70%),
    radial-gradient(480px 260px at 85% 35%, rgba(70,210,255,.25), transparent 70%);
  pointer-events:none;
}
.hero-grid{
  position:relative;
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:36px;
  align-items:center;
}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:6px 14px;
  border-radius:999px;
  background:rgba(255,255,255,.7);
  border:1px solid rgba(31,102,209,.2);
  font-size:.75rem;
  letter-spacing:.6px;
  text-transform:uppercase;
  color:var(--primary-dark);
  margin:0 0 16px;
}
.hero h1{
  font-family:"Sora", "Manrope", sans-serif;
  font-size:clamp(2.1rem, 3vw, 3.2rem);
  margin:0 0 10px;
}
.hero .hero-tagline{
  font-size:1.15rem;
  font-weight:600;
  margin:0 0 12px;
  color:#1b3d6d;
}
.hero .hero-desc{
  margin:0 0 24px;
  color:#3c567a;
  max-width:54ch;
  line-height:1.6;
}
.hero-actions{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
}
.hero-media{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:320px;
}
.hero-screen{
  width:min(520px, 100%);
  min-height:260px;
  box-shadow:var(--shadow-md);
}
img.hero-screen{
  min-height:0;
  height:auto;
  background:transparent;
}
.hero-prop{
  position:absolute;
  right:-8px;
  bottom:-12px;
  width:150px;
  min-height:110px;
  box-shadow:var(--shadow-sm);
  z-index:2;
}
.hero-prop.hero-prop-small{
  width:110px;
}
img.hero-prop{
  min-height:0;
  height:auto;
  background:transparent;
  box-shadow:none;
  filter: drop-shadow(0 12px 24px rgba(13,34,65,.18));
}

.media-placeholder{
  border:2px dashed rgba(31,102,209,.28);
  border-radius:18px;
  background:rgba(31,102,209,.06);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  gap:6px;
  color:#4a5a76;
  font-weight:600;
  padding:16px;
}
.media-placeholder small{ font-weight:500; color:#6c7a91; }
.media-placeholder.small{ font-size:.85rem; }

.section{ padding:70px 0; }
.section-title{
  font-family:"Sora", "Manrope", sans-serif;
  text-align:center;
  color:#1b2a44;
  margin:0 0 10px;
}
.section-title::after{
  content:"";
  display:block;
  width:120px;
  height:2px;
  margin:14px auto 0;
  border-radius:999px;
  background:#dbe6f7;
}
.section-sub{
  text-align:center;
  color:var(--muted);
  margin:0 auto 32px;
  max-width:70ch;
}

.intro-text{
  text-align:center;
  color:#3c567a;
  font-size:1.05rem;
  max-width:80ch;
  margin:0 auto;
}

.device-gallery{
  display:grid;
  gap:28px;
  grid-template-columns:minmax(0, 1fr);
}
.device-group{
  --group-accent: var(--primary);
  --group-accent-soft: rgba(31,102,209,.16);
  position:relative;
  display:grid;
  gap:18px;
  padding:24px;
  min-width:0;
  border-radius:22px;
  border:1px solid var(--stroke);
  background:
    radial-gradient(220px 150px at 0% 0%, var(--group-accent-soft) 0%, transparent 65%),
    linear-gradient(180deg, #ffffff 0%, #f7faff 100%);
  box-shadow:var(--shadow-sm);
}
.device-group > *{
  min-width:0;
}
.device-group:nth-of-type(2){
  --group-accent:#2bb6ff;
  --group-accent-soft:rgba(43,182,255,.16);
}
.device-group-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
.device-group-head h3{
  margin:0;
  font-size:1.15rem;
  color:#1b2a44;
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.device-group-head h3::before{
  content:"";
  width:10px;
  height:10px;
  border-radius:999px;
  background:var(--group-accent);
  box-shadow:0 0 0 6px var(--group-accent-soft);
}
.device-group-sub{
  margin:0;
  color:var(--muted);
  font-size:.95rem;
  max-width:58ch;
}
.carousel-shell{
  display:grid;
  gap:12px;
  background:rgba(255,255,255,.75);
  border:1px solid rgba(13,34,65,.08);
  border-radius:18px;
  padding:12px;
  min-width:0;
  width:100%;
  max-width:100%;
}
.carousel{
  position:relative;
  min-width:0;
  width:100%;
  max-width:100%;
}
.carousel-viewport{
  width:100%;
  border-radius:16px;
  overflow:hidden;
  border:0;
  background:linear-gradient(120deg, #f8fbff 0%, #eef4ff 100%);
  box-shadow:none;
  padding:14px 0;
  position:relative;
  z-index:1;
  min-width:0;
}
.carousel-track{
  display:flex;
  align-items:stretch;
  gap:16px;
  transition: transform .4s ease;
}
.carousel-slide{
  flex:0 0 var(--carousel-slide, 60%);
  display:grid;
  grid-template-rows:auto 1fr auto;
  margin:0;
  border-radius:18px;
  overflow:hidden;
  background:#fff;
  border:1px solid rgba(13,34,65,.08);
  box-shadow:0 12px 24px rgba(13,34,65,.08);
  opacity:.55;
  transform: scale(.95);
  transition: opacity .3s ease, transform .3s ease;
}
.carousel-slide.is-active{
  opacity:1;
  transform: scale(1.01);
  border-color:rgba(31,102,209,.28);
  box-shadow:0 18px 38px rgba(13,34,65,.18);
}
.carousel-image{
  width:100%;
  aspect-ratio:var(--carousel-aspect, 16 / 9);
  background:linear-gradient(160deg, #eef4ff, #f9fbff);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:10px;
}
.carousel-slide img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  filter: blur(1.2px);
  transition: filter .3s ease;
  cursor: zoom-in;
}
.carousel-slide.is-active img{
  filter:none;
}
.carousel-caption{
  padding:10px 14px;
  font-size:.9rem;
  color:#2f3e58;
  background:#fff;
  text-align:center;
}
.carousel-caption.top{
  border-bottom:1px solid var(--stroke);
  font-weight:600;
}
.carousel-caption.bottom{
  border-top:1px solid var(--stroke);
  color:#5a6b84;
  font-size:.88rem;
}
.desktop-carousel{
  --carousel-aspect:16 / 9;
  --carousel-slide:50%;
}
.mobile-carousel{
  --carousel-aspect:9 / 16;
  --carousel-slide:66%;
  max-width:340px;
  margin:0 auto;
}
.carousel-btn{
  position:absolute;
  top:50%;
  transform: translateY(-50%);
  width:42px;
  height:42px;
  border-radius:999px;
  border:1px solid rgba(31,102,209,.2);
  background:#fff;
  color:var(--primary-dark);
  font-size:1.4rem;
  display:grid;
  place-items:center;
  box-shadow:0 12px 24px rgba(13,34,65,.14);
  cursor:pointer;
  z-index:2;
}
.carousel-btn.prev{ left:12px; }
.carousel-btn.next{ right:12px; }
.carousel-btn:focus-visible{
  outline:2px solid rgba(31,102,209,.45);
  outline-offset:2px;
}
.carousel-dots{
  display:flex;
  justify-content:center;
  gap:8px;
}
.carousel-dot{
  width:10px;
  height:10px;
  border-radius:999px;
  border:1px solid rgba(31,102,209,.35);
  background:#fff;
  box-shadow:0 4px 10px rgba(13,34,65,.12);
  cursor:pointer;
  padding:0;
}
.carousel-dot.active{
  background:var(--primary);
  border-color:var(--primary);
}
body.lightbox-open{
  overflow:hidden;
}
.lightbox{
  position:fixed;
  inset:0;
  background:rgba(11,26,56,.68);
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition: opacity .2s ease, visibility .2s ease;
  z-index:2000;
}
.lightbox.open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.lightbox-content{
  position:relative;
  width:min(980px, 92vw);
  max-height:86vh;
  display:flex;
  align-items:center;
  justify-content:center;
}
.lightbox-image{
  max-width:100%;
  max-height:86vh;
  border-radius:16px;
  background:#fff;
  box-shadow:var(--shadow-md);
}
.lightbox-close{
  position:absolute;
  top:12px;
  right:12px;
  width:36px;
  height:36px;
  border-radius:999px;
  border:1px solid rgba(31,102,209,.2);
  background:#fff;
  color:#1b2a44;
  font-size:1.2rem;
  cursor:pointer;
  display:grid;
  place-items:center;
  box-shadow:0 10px 18px rgba(13,34,65,.18);
}
.lightbox-nav{
  position:absolute;
  top:50%;
  transform: translateY(-50%);
  width:40px;
  height:40px;
  border-radius:999px;
  border:1px solid rgba(31,102,209,.2);
  background:#fff;
  color:#1b2a44;
  font-size:1.4rem;
  cursor:pointer;
  display:grid;
  place-items:center;
  box-shadow:0 10px 18px rgba(13,34,65,.18);
}
.lightbox-nav:disabled{
  opacity:.4;
  cursor:default;
}
.lightbox-prev{ left:-18px; }
.lightbox-next{ right:-18px; }
.features-panel{
  margin-top:28px;
  background:#fff;
  border:1px solid var(--stroke);
  border-radius:18px;
  padding:20px;
  box-shadow:var(--shadow-sm);
}
.features-panel h3{
  margin:0 0 12px;
  font-size:1.05rem;
  color:#1b2a44;
}
.feature-list{
  margin:0;
  padding-left:20px;
  color:var(--muted);
  display:grid;
  gap:10px;
}
.feature-list li{
  line-height:1.5;
}
.feature-list-current{
  color:var(--ink);
}
.feature-list-planned{
  margin-top:14px;
  color:var(--muted);
  opacity:.65;
}

.feature-strip{
  background:#fff;
  border:1px solid var(--stroke);
  border-radius:20px;
  box-shadow:var(--shadow-sm);
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  overflow:hidden;
}
.feature-item{
  display:flex;
  gap:14px;
  align-items:flex-start;
  padding:22px 20px;
}
.feature-item:not(:first-child){
  border-left:1px solid rgba(13,34,65,.08);
}
.feature-icon{
  width:54px;
  height:54px;
  border-radius:16px;
  background:#e8f2ff;
  display:grid;
  place-items:center;
  color:var(--primary);
  flex:0 0 auto;
}
.feature-icon svg{ width:26px; height:26px; }
.feature-item h3{ margin:0 0 8px; font-size:1.02rem; }
.feature-item p{ margin:0; color:var(--muted); font-size:.95rem; line-height:1.5; }

.stage-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:22px;
}
.stage-card{
  background:#fff;
  border:1px solid var(--stroke);
  border-radius:18px;
  padding:18px;
  box-shadow:var(--shadow-sm);
}
.stage-card .media-placeholder{
  min-height:170px;
  margin-bottom:14px;
}
.stage-card h3{ margin:0 0 8px; font-size:1.02rem; }
.stage-card p{ margin:0; color:var(--muted); font-size:.95rem; line-height:1.5; }

.video-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:24px;
  align-items:start;
}
.video-box,
.gallery-box{
  background:#fff;
  border:1px solid var(--stroke);
  border-radius:18px;
  padding:22px;
  box-shadow:var(--shadow-sm);
}
.video-box h3,
.gallery-box h3{ margin:0 0 12px; }
.video-box .media-placeholder{ min-height:220px; }
.video-box .btn{ margin-top:10px; }
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}
.gallery-grid .media-placeholder{ min-height:120px; }

.band{
  background:linear-gradient(135deg, #1c56b7, #2c7dff);
  color:#fff;
}
.band-title{
  text-align:center;
  font-family:"Sora", "Manrope", sans-serif;
  margin:0 0 28px;
  font-size:clamp(1.4rem, 2.2vw, 2rem);
}
.band-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:18px;
}
.band-card{
  background:#fff;
  color:#1b2a44;
  border-radius:16px;
  padding:18px;
  box-shadow:0 18px 36px rgba(10,40,90,.18);
  display:flex;
  gap:12px;
  align-items:flex-start;
}
.band-icon{
  width:48px;
  height:48px;
  border-radius:14px;
  background:#e8f2ff;
  display:grid;
  place-items:center;
  color:var(--primary);
  flex:0 0 auto;
}
.band-card h3{ margin:0 0 6px; font-size:1rem; }
.band-card p{ margin:0; color:#52607a; font-size:.92rem; line-height:1.45; }

.testimonial-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:24px;
}
.testimonial-card{
  background:#fff;
  border:1px solid var(--stroke);
  border-radius:18px;
  padding:22px;
  box-shadow:var(--shadow-sm);
}
.testimonial-top{
  display:flex;
  gap:12px;
  align-items:center;
  margin-bottom:12px;
}
.avatar{
  width:48px;
  height:48px;
  border-radius:50%;
  background:#e8f2ff;
  display:grid;
  place-items:center;
  font-weight:700;
  color:var(--primary-dark);
}
.stars{
  color:#f2b340;
  font-size:.9rem;
  letter-spacing:1px;
}
.testimonial-name{ font-weight:700; color:#1b2a44; }
.testimonial-company{ font-size:.9rem; color:#7a879b; }
.testimonial-card p{ margin:0; color:#4f5d73; line-height:1.6; font-size:.95rem; }

.footer{
  padding:36px 0 50px;
  text-align:center;
  color:#6b7385;
  font-size:.92rem;
}

@media (max-width: 980px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-media{ min-height:260px; }
  .feature-strip{ grid-template-columns:1fr; }
  .feature-item:not(:first-child){ border-left:0; border-top:1px solid rgba(13,34,65,.08); }
  .device-group{ padding:20px; }
  .device-group-head{
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
  }
  .device-group-sub{ max-width:none; }
  .carousel-shell{ padding:10px; }
  .stage-grid{ grid-template-columns:1fr; }
  .video-grid{ grid-template-columns:1fr; }
  .band-grid{ grid-template-columns:1fr; }
  .testimonial-grid{ grid-template-columns:1fr; }
  .nav{ flex-wrap:wrap; }
  .nav-actions .menu-toggle{
    display:inline-flex;
    padding:10px 14px;
    font-size:.92rem;
  }
  .nav-phone-cta{
    display:inline-flex;
  }
  .nav-actions .menu-toggle,
  .nav-actions .nav-phone-cta{
    width:14ch;
    justify-content:center;
  }
  .nav-links{
    position:fixed;
    top:0;
    right:0;
    height:100vh;
    width:min(280px, 78vw);
    background:#fff;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:12px;
    padding:24px 20px;
    order:3;
    box-shadow:0 20px 50px rgba(11,26,56,.25);
    transform: translateX(100%);
    opacity:0;
    pointer-events:none;
    transition: transform .25s ease, opacity .2s ease;
    z-index:30;
    overflow-y:auto;
  }
  .site-header.nav-open .nav-links{
    transform: translateX(0);
    opacity:1;
    pointer-events:auto;
  }
  .menu-header{
    display:flex;
    margin-bottom:8px;
    order:0;
  }
  .nav-links .panel-menu{
    width:100%;
    order:1;
  }
  .nav-links > a{
    order:2;
  }
  .nav-links .nav-item{
    order:3;
  }
  .nav-links > a,
  .nav-links .nav-item-toggle,
  .nav-links .panel-menu summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    width:100%;
    padding:12px 14px;
    border-radius:12px;
    background:#f6f9ff;
    border:1px solid rgba(31,102,209,.12);
    color:#223150;
  }
  .nav-links > a:hover,
  .nav-links .nav-item-toggle:hover,
  .nav-links .panel-menu summary:hover{
    background:#eef4ff;
    border-color:rgba(31,102,209,.3);
  }
  .nav-links .nav-item-toggle,
  .nav-links .panel-menu summary{
    background: linear-gradient(135deg, var(--primary), #2c7dff);
    color:#fff;
    border-color: transparent;
    box-shadow:0 12px 22px rgba(31,102,209,.28);
  }
  .nav-links .nav-item-toggle:hover,
  .nav-links .panel-menu summary:hover{
    background: linear-gradient(135deg, var(--primary-dark), #256eea);
    border-color: transparent;
  }
  .nav-item.open .nav-item-toggle{
    background: linear-gradient(135deg, var(--primary), #2c7dff);
    border-color: transparent;
    color:#fff;
  }
  .nav-item-toggle svg{
    transition: transform .2s ease;
  }
  .nav-item.open .nav-item-toggle svg{
    transform: rotate(180deg);
  }
  .nav-actions{
    order:2;
    margin-left:auto;
    gap:10px;
  }
  .nav-item{
    flex-direction:column;
    align-items:flex-start;
    width:100%;
  }
  .nav-dropdown{
    position:static;
    opacity:0;
    visibility:hidden;
    transform: translateY(-6px);
    pointer-events:none;
    box-shadow:none;
    margin-top:6px;
    max-height:0;
    overflow:hidden;
    transition: opacity .2s ease, transform .2s ease, max-height .2s ease;
  }
  .nav-item:hover .nav-dropdown,
  .nav-item:focus-within .nav-dropdown{
    opacity:0;
    visibility:hidden;
    transform: translateY(-6px);
    pointer-events:none;
  }
  .nav-item.open .nav-dropdown{
    opacity:1;
    visibility:visible;
    transform: translateY(0);
    pointer-events:auto;
    max-height:500px;
  }
  .nav-dropdown::before{ display:none; }
  .nav-links .panel-menu summary{
    width:100%;
    justify-content:space-between;
  }
  .nav-links .panel-dropdown{
    position:static;
    min-width:0;
    box-shadow:none;
    margin-top:8px;
  }
  .nav-scrim{
    display:block;
  }
  .nav-links .panel-menu{
    display:block;
  }
  .nav-actions .panel-menu.desktop-panel{
    display:none;
  }
}

@media (max-width: 600px){
  .nav{ flex-wrap:wrap; }
  .brand{ width:100%; text-align:center; }
  .nav-links{
    width:min(260px, 84vw);
    gap:10px;
  }
  .nav-links > a,
  .nav-links > .nav-item > a{
    justify-content:flex-start;
  }
  .nav-item{
    align-items:stretch;
  }
  .nav-dropdown{
    width:100%;
    align-items:stretch;
  }
  .nav-dropdown a{
    text-align:left;
  }
  .btn{ width:100%; }
  .nav-actions{
    width:100%;
    flex-direction:row;
    justify-content:center;
    gap:10px;
  }
  .nav-actions .menu-toggle,
  .nav-actions .nav-phone-cta{
    flex:1 1 0;
    width:14ch;
    justify-content:center;
  }
  .nav-actions .btn{
    width:auto;
  }
  .menu-toggle{
    padding:9px 12px;
    font-size:.88rem;
  }
  .nav-phone-cta{
    padding:9px 12px;
    font-size:.85rem;
  }
  .nav-phone{
    font-size:.85rem;
  }
  .panel-dropdown{ left:0; right:0; }
  .floating-contacts{
    right:14px;
    bottom:14px;
  }
  .floating-btn{
    width:48px;
    height:48px;
    border-radius:14px;
  }
  .floating-btn svg{
    width:24px;
    height:24px;
  }
  .hero{ padding:56px 0 48px; }
  .hero-prop{
    position:absolute;
    right:10px;
    bottom:10px;
    width:clamp(110px, 34vw, 150px);
    margin:0;
  }
  .hero-prop.hero-prop-small{
    width:clamp(80px, 26vw, 110px);
  }
  .hero-media{ gap:12px; flex-direction:column; }
  .carousel-shell{ justify-items:center; }
  .desktop-carousel,
  .mobile-carousel{
    --carousel-slide: min(100%, calc(100vw - 72px));
    width:min(100%, calc(100vw - 40px));
    max-width:100%;
    margin:0 auto;
    justify-self:center;
  }
  .device-group{
    padding:clamp(6px, 2vw, 10px);
    border-radius:14px;
  }
  .device-group-head{
    align-items:flex-start;
  }
  .device-group-head h3::before{
    box-shadow:0 0 0 4px var(--group-accent-soft);
  }
  .carousel-shell{
    padding:clamp(2px, 1.6vw, 4px);
    border-radius:12px;
    width:100%;
    max-width:100%;
  }
  .carousel{ width:100%; }
  .carousel-viewport{
    padding:6px 0;
    border-radius:12px;
  }
  .carousel-track{
    gap:10px;
  }
  .carousel-image{ padding:4px; }
  .carousel-caption{
    font-size:.82rem;
    padding:7px 10px;
  }
  .carousel-btn{
    width:32px;
    height:32px;
    font-size:1.1rem;
  }
  .carousel-btn.prev{ left:4px; }
  .carousel-btn.next{ right:4px; }
  .lightbox-content{ width:min(520px, 92vw); }
  .lightbox-prev{ left:8px; }
  .lightbox-next{ right:8px; }
  .lightbox-close{
    top:8px;
    right:8px;
  }
  .gallery-grid{ grid-template-columns:1fr; }
}

@media (hover: none) and (pointer: coarse){
  .carousel-btn{
    width:36px;
    height:36px;
    font-size:1.2rem;
  }
  .carousel-dot{
    width:12px;
    height:12px;
  }
}
