﻿:root{
  --brand: rgb(139, 95, 165);
  --bg: rgb(74, 59, 112);
  --card: rgba(20, 10, 26, .72);
  --text:#e8eefc;
  --muted:#b8c4e6;
  --accent: rgba(255,255,255,.92);
  --accent2: rgba(34,211,238,.95);
  --line:rgba(255,255,255,.12);
  --shadow: 0 10px 30px rgba(0,0,0,.35);
  --radius: 18px;
  --maxw: 1120px;
  --font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Noto Sans", "Helvetica Neue", sans-serif;
}
*{box-sizing:border-box}
html,body{
  margin:0;
  padding:0;
  overflow-x:hidden;
}
@supports (overflow: clip){
  html,body{overflow-x:clip}
}
body{
  min-height:100vh;
  min-height:100svh;
  display:flex;
  flex-direction:column;
  font-family:var(--font);
  background:
    radial-gradient(1220px 760px at 50% -16%, rgba(242,234,253,.15), transparent 62%),
    radial-gradient(1320px 940px at 50% 52%, rgba(120,92,166,.32), transparent 70%),
    linear-gradient(180deg, rgba(46,36,74,.80) 0%, rgba(39,30,65,.82) 52%, rgba(33,25,56,.84) 100%),
    var(--bg);
  color:var(--text);
  line-height:1.55;
  isolation:isolate;
}
main{flex:1 0 auto}
footer{margin-top:auto}
a{color:inherit; text-decoration:none}
a:hover{opacity:.92}
img{max-width:100%; height:auto}
.container{
  width:100%;
  max-width:var(--maxw);
  min-width:0;
  margin:0 auto;
  padding:0 18px
}
header{
  position:sticky; top:0; z-index:50;
  overflow-anchor:none;
  backdrop-filter: blur(12px) saturate(145%);
  -webkit-backdrop-filter: blur(12px) saturate(145%);
  background:
    linear-gradient(120deg,
      rgba(246,238,255,.16) 0%,
      rgba(173,147,205,.14) 40%,
      rgba(112,90,146,.16) 70%,
      rgba(26,18,44,.34) 100%);
  border-bottom:1px solid rgba(231,219,248,.18);
  box-shadow: 0 10px 26px rgba(6,6,14,.26);
  transition:
    background .32s ease,
    border-color .32s ease,
    box-shadow .32s ease,
    backdrop-filter .32s ease,
    -webkit-backdrop-filter .32s ease;
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:8px 0;
  gap:14px;
  transition: padding .32s ease, min-height .32s ease, gap .32s ease;
}
.brand{
  display:flex; align-items:center; gap:10px;
  font-weight:800; letter-spacing:.3px;
}
.logo{
  width:34px; height:34px; border-radius:12px;
  display:block;
  object-fit:contain;
  background: rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.24);
  box-shadow: var(--shadow);
}
header .brand{
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:0;
  text-align:center;
  line-height:1.1;
}
header .brand .logo{
  width:120px;
  height:auto;
  border-radius:0;
  background: transparent;
  border:none;
  box-shadow:none;
  max-width:none;
  transform-origin:center;
  transition: width .32s ease, transform .32s ease;
}
header .brand .brand-name{
  display:none;
}
header .brand .brand-tagline{
  display:none;
}
footer .brand .logo{
  width:52px;
  height:52px;
}
nav ul{list-style:none; display:flex; gap:12px; margin:0; padding:0; flex-wrap:wrap}
nav a{
  display:inline-flex;
  align-items:center;
  color:rgba(232,238,252,.94);
  font-weight:750;
  font-size:15px;
  line-height:1.1;
  letter-spacing:.01em;
  padding:8px 11px;
  border:1px solid transparent;
  border-radius:12px;
  transition: color .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease, padding .32s ease, font-size .32s ease, border-radius .32s ease;
}
nav a:hover{
  opacity:1;
  color:var(--text);
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.22);
}
nav a:focus-visible{
  outline:2px solid rgba(255,255,255,.45);
  outline-offset:2px;
}
nav a.active{
  color:#071022;
  border-color: transparent;
  background: linear-gradient(135deg, rgba(110,231,255,.95), rgba(167,139,250,.9));
  box-shadow: 0 6px 16px rgba(15, 23, 42, .28);
}
nav{min-width:0; flex:1 1 auto}
nav ul{justify-content:center}
.cta{
  display:flex; gap:10px; align-items:center; flex-wrap:wrap;
  justify-content:flex-end;
  flex-shrink:0;
}
.menu-toggle{
  display:none;
  width:44px;
  height:44px;
  padding:0;
  border:1px solid var(--line);
  border-radius:12px;
  background: rgba(255,255,255,.05);
  color:var(--text);
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:4px;
  cursor:pointer;
  transition: background .2s ease, border-color .2s ease, transform .08s ease, width .32s ease, height .32s ease, border-radius .32s ease;
}
.menu-toggle:hover{background: rgba(255,255,255,.09)}
.menu-toggle:active{transform: translateY(1px)}
.menu-toggle:focus-visible{
  outline:2px solid rgba(255,255,255,.4);
  outline-offset:2px;
}
.menu-toggle__line{
  width:18px;
  height:2px;
  border-radius:999px;
  background:currentColor;
  transition: transform .22s ease, opacity .22s ease;
}
.btn{
  border:1px solid var(--line);
  background: rgba(255,255,255,.04);
  color:var(--text);
  padding:10px 14px;
  border-radius:14px;
  font-weight:700;
  font-size:14px;
  cursor:pointer;
  transition: transform .08s ease, background .15s ease, border-color .15s ease, padding .32s ease;
}
.btn:hover{background: rgba(255,255,255,.07)}
.btn:active{transform: translateY(1px)}
.btn:disabled{opacity:.65; cursor:not-allowed; transform:none}
.btn.primary{
  border-color: transparent;
  background: linear-gradient(135deg, rgba(110,231,255,.95), rgba(167,139,250,.9));
  color:#071022;
}
.call-picker{
  position:relative;
}
.call-picker > summary{
  list-style:none;
}
.call-picker > summary::-webkit-details-marker{
  display:none;
}
.call-picker > summary.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.call-picker[open] > summary.btn{
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.24);
}
.call-picker > summary.btn::after{
  content:"▾";
  font-size:12px;
  line-height:1;
  transition: transform .16s ease;
}
.call-picker[open] > summary.btn::after{
  transform: rotate(180deg);
}
.call-picker__menu{
  display:none;
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  z-index:70;
  min-width:290px;
  padding:8px;
  border:1px solid var(--line);
  border-radius:14px;
  background: rgba(20,10,26,.94);
  box-shadow: var(--shadow);
  gap:6px;
}
.call-picker[open] .call-picker__menu{
  display:grid;
}
.call-picker__item{
  display:grid;
  gap:2px;
  padding:9px 10px;
  border-radius:10px;
  border:1px solid transparent;
  background: rgba(255,255,255,.04);
}
.call-picker__item:hover{
  opacity:1;
  border-color: rgba(255,255,255,.18);
  background: rgba(255,255,255,.09);
}
.call-picker__item:focus-visible{
  outline:2px solid rgba(255,255,255,.45);
  outline-offset:2px;
}
.call-picker__phone{
  color:var(--text);
  font-size:13px;
  font-weight:800;
}
.call-picker__address{
  color:var(--muted);
  font-size:12px;
}
@keyframes call-picker-sheet-in{
  from{
    opacity:0;
    transform: translateY(12px);
  }
  to{
    opacity:1;
    transform: translateY(0);
  }
}
.hero-actions .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.btn-ico{
  width:16px;
  height:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 16px;
}
.btn-ico svg{
  width:16px;
  height:16px;
  display:block;
}
.btn.btn-price{
  border-color: rgba(110,231,255,.42);
  background: linear-gradient(135deg, rgba(110,231,255,.24), rgba(167,139,250,.18));
  color:#e8f5ff;
}
.btn.btn-price:hover{
  background: linear-gradient(135deg, rgba(110,231,255,.33), rgba(167,139,250,.24));
}
.btn.btn-price .btn-ico{
  color: rgba(145,238,255,.96);
}
.btn.btn-route{
  border-color: rgba(167,139,250,.46);
  background: linear-gradient(135deg, rgba(167,139,250,.26), rgba(110,231,255,.16));
  color:#efe8ff;
}
.btn.btn-route:hover{
  background: linear-gradient(135deg, rgba(167,139,250,.34), rgba(110,231,255,.24));
}
.btn.btn-route .btn-ico{
  color: rgba(196,170,255,.96);
}
.to-top{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:40;
  width:56px;
  height:56px;
  border:1px solid rgba(255,255,255,.20);
  border-radius:999px;
  background: linear-gradient(135deg, rgba(110,231,255,.48), rgba(167,139,250,.44));
  color:#071022;
  box-shadow: 0 14px 28px rgba(8,18,36,.35);
  backdrop-filter: blur(8px) saturate(130%);
  -webkit-backdrop-filter: blur(8px) saturate(130%);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform: translateY(10px) scale(.96);
  transition: opacity .22s ease, transform .22s ease, background .15s ease, box-shadow .15s ease;
}
.to-top:hover{
  background: linear-gradient(135deg, rgba(110,231,255,.58), rgba(167,139,250,.54));
  box-shadow: 0 16px 32px rgba(8,18,36,.42);
}
.to-top:active{
  transform: translateY(1px) scale(.98);
}
.to-top:focus-visible{
  outline:2px solid rgba(255,255,255,.65);
  outline-offset:2px;
}
.to-top.visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform: translateY(0) scale(1);
}
.to-top__icon{
  width:22px;
  height:22px;
  display:block;
}
.theme-toggle{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  font-weight:800;
  white-space:nowrap;
  border-color: rgba(255,255,255,.28);
  background: rgba(139,95,165,.22);
}
.theme-toggle__label{
  display:inline-block;
  line-height:1.1;
}
.theme-toggle:hover{
  background: rgba(139,95,165,.30);
}
.theme-lens-icon{
  width:22px;
  height:14px;
  display:block;
  flex:0 0 auto;
}
.theme-toggle-mobile{
  display:none;
  width:44px;
  height:44px;
  padding:0;
  border:1px solid var(--line);
  border-radius:12px;
  background: rgba(139,95,165,.22);
  color:var(--text);
  font-size:0;
  line-height:1;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition: background .2s ease, border-color .2s ease, transform .08s ease, width .32s ease, height .32s ease, border-radius .32s ease;
}
.theme-toggle-mobile .theme-lens-icon{
  width:24px;
  height:16px;
  transition: width .32s ease, height .32s ease;
}
.theme-toggle-mobile:hover{background: rgba(139,95,165,.30)}
.theme-toggle-mobile:active{transform: translateY(1px)}
.theme-toggle-mobile:focus-visible{
  outline:2px solid rgba(255,255,255,.4);
  outline-offset:2px;
}
header.is-compact{
  border-bottom-color: rgba(255,255,255,.22);
  box-shadow: 0 4px 12px rgba(8,18,36,.16);
}
header.is-compact .nav{
  padding:2px 0;
  gap:8px;
}
header.is-compact .brand .logo{
  width:76px;
}
header.is-compact nav a{
  padding:4px 8px;
  border-radius:9px;
  font-size:13px;
}
header.is-compact .cta .btn{
  padding:6px 10px;
  font-size:13px;
}
header.is-compact .menu-toggle,
header.is-compact .theme-toggle-mobile{
  width:38px;
  height:38px;
  border-radius:9px;
}
header.is-compact .theme-toggle-mobile .theme-lens-icon{
  width:19px;
  height:12px;
}
.hero{
  padding:44px 0 18px;
  position:relative;
  isolation:isolate;
  --hero-parallax-x:0px;
  --hero-parallax-y:0px;
  --hero-parallax-pointer-y:0px;
  --hero-parallax-tilt:0deg;
}
.hero.hero-parallax{
  overflow:visible;
}
.hero.hero-parallax::before,
.hero.hero-parallax::after{
  display:none;
}
.hero.hero-parallax .hero-grid{
  position:relative;
  z-index:1;
  transform: perspective(1120px) rotateX(var(--hero-parallax-tilt)) translate3d(calc(var(--hero-parallax-x) * -.05), calc(var(--hero-parallax-y) * -.09), 0);
  transform-origin: 50% 42%;
  transition: transform .36s cubic-bezier(.2,.76,.2,1);
  will-change: transform;
}
.hero-grid{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap:18px;
  align-items:stretch;
}
.card,
.item,
.notice{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  transform:translateZ(0);
  transition:
    transform .45s cubic-bezier(.22,.78,.2,1),
    box-shadow .45s cubic-bezier(.22,.78,.2,1),
    border-color .35s ease,
    background .45s ease,
    backdrop-filter .45s ease;
}
.card::before,
.item::before,
.notice::before{
  content:"";
  position:absolute;
  inset:-54% -42% auto;
  height:86%;
  border-radius:50%;
  pointer-events:none;
  opacity:.42;
  background:
    radial-gradient(circle at 50% 50%,
      rgba(255,255,255,.22) 0%,
      rgba(255,255,255,.08) 35%,
      rgba(255,255,255,0) 70%);
  filter: blur(12px);
  transform: translate3d(-10%,0,0) rotate(-10deg) scale(1);
  transition: transform .95s cubic-bezier(.2,.62,.2,1), opacity .6s ease;
}
.card::after,
.item::after,
.notice::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  border:1px solid rgba(255,255,255,.16);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
  background:
    linear-gradient(120deg,
      rgba(255,255,255,0) 30%,
      rgba(255,255,255,.11) 47%,
      rgba(255,255,255,0) 62%) no-repeat;
  background-size: 220% 220%;
  background-position: 130% 0;
  transition: background-position 1.15s cubic-bezier(.22,.78,.2,1);
}
.card{
  border:1px solid rgba(255,255,255,.26);
  border-radius: var(--radius);
  background:
    linear-gradient(155deg, rgba(255,255,255,.22) 0%, rgba(255,255,255,.07) 36%, rgba(255,255,255,.03) 100%),
    rgba(22,14,34,.36);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.50),
    inset 0 -16px 26px rgba(255,255,255,.04),
    0 22px 40px rgba(5,4,12,.34);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
}
.item,
.notice{
  border:1px solid rgba(255,255,255,.18);
  background:
    linear-gradient(155deg, rgba(255,255,255,.14), rgba(255,255,255,.04)),
    rgba(22,14,34,.30);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.18);
  backdrop-filter: blur(12px) saturate(132%);
  -webkit-backdrop-filter: blur(12px) saturate(132%);
}
.card:hover,
.card:focus-within,
.notice:hover,
.notice:focus-within{
  transform: translateY(-2px) scale(1.01);
  border-color: rgba(255,255,255,.36);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.66),
    inset 0 -18px 28px rgba(255,255,255,.06),
    0 30px 54px rgba(5,4,12,.40);
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
}
.item:hover,
.item:focus-within{
  border-color: rgba(255,255,255,.28);
  background:
    linear-gradient(155deg, rgba(255,255,255,.18), rgba(255,255,255,.06)),
    rgba(22,14,34,.34);
}
.card:hover::before,
.card:focus-within::before,
.item:hover::before,
.item:focus-within::before,
.notice:hover::before,
.notice:focus-within::before{
  opacity:.62;
  transform: translate3d(10%,3%,0) rotate(5deg) scale(1.03);
}
.card:hover::after,
.card:focus-within::after,
.item:hover::after,
.item:focus-within::after,
.notice:hover::after,
.notice:focus-within::after{
  background-position: 22% 0;
}
.hero-card{padding:28px}
.kicker{
  display:inline-flex; gap:8px; align-items:center;
  color:var(--muted); font-weight:700; font-size:13px;
  padding:6px 10px; border-radius:999px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.03);
}
.kicker .dot{width:8px;height:8px;border-radius:99px;background:var(--accent)}
h1{margin:12px 0 10px; font-size:44px; line-height:1.05}
.page-title{margin:0 0 12px; font-size:34px; line-height:1.15}
.lead{color:var(--muted); font-size:16px; margin:0 0 18px}
.hero-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:12px}
.pills{display:flex; gap:10px; flex-wrap:wrap; margin-top:14px}
.pill{
  border:1px solid var(--line);
  background: rgba(255,255,255,.03);
  padding:8px 10px;
  border-radius: 999px;
  color: var(--muted);
  font-weight:700;
  font-size:12px;
}
.side-card{
  padding:20px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.side-card h2{margin:0; font-size:18px}
.side-card p{margin:0; color:var(--muted); font-size:14px}
.side-card .item{
  background: rgba(255,255,255,.11);
  border-color: rgba(255,255,255,.30);
}
.list{
  display:grid; gap:10px; margin-top:4px;
}
.item{
  padding:12px 12px;
  border-radius: 16px;
}
.item b{display:block; margin-bottom:4px}
.contact-address-link{
  text-decoration: underline;
  text-underline-offset: 2px;
}
.contact-address-link:hover{
  opacity:1;
}
.contact-address-link:focus-visible{
  outline:2px solid rgba(255,255,255,.45);
  outline-offset:2px;
  border-radius:6px;
}
.contact-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:8px 0 0;
}
.contact-actions .btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.section{padding:18px 0 40px}
.section h2{font-size:26px; margin:0 0 12px}
.reveal-block{
  --reveal-x: 0px;
  --reveal-y: 28px;
  --reveal-scale: .985;
  --reveal-rotate: 0deg;
  --reveal-blur: 7px;
  --reveal-duration: 760ms;
  --reveal-ease: cubic-bezier(.2,.78,.2,1);
  opacity:0;
  transform: translate3d(var(--reveal-x), var(--reveal-y), 0) scale(var(--reveal-scale)) rotate(var(--reveal-rotate));
  filter: blur(var(--reveal-blur));
  transition:
    opacity var(--reveal-duration) var(--reveal-ease),
    transform var(--reveal-duration) var(--reveal-ease),
    filter var(--reveal-duration) var(--reveal-ease);
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform, filter;
}
.reveal-block[data-reveal="hero-left"]{
  --reveal-x:-34px;
  --reveal-y:18px;
  --reveal-scale:.968;
  --reveal-rotate:-.45deg;
  --reveal-blur:8px;
  --reveal-duration:880ms;
}
.reveal-block[data-reveal="hero-right"]{
  --reveal-x:34px;
  --reveal-y:18px;
  --reveal-scale:.968;
  --reveal-rotate:.45deg;
  --reveal-blur:8px;
  --reveal-duration:880ms;
}
.reveal-block[data-reveal="heading"]{
  --reveal-y:20px;
  --reveal-scale:1;
  --reveal-blur:5px;
  --reveal-duration:680ms;
}
.reveal-block[data-reveal="card"]{
  --reveal-y:30px;
  --reveal-scale:.978;
  --reveal-blur:6px;
  --reveal-duration:760ms;
}
.reveal-block[data-reveal="card-left"]{
  --reveal-x:-40px;
  --reveal-y:26px;
  --reveal-scale:.972;
  --reveal-rotate:-.8deg;
  --reveal-blur:7px;
  --reveal-duration:860ms;
  --reveal-ease:cubic-bezier(.16,.92,.2,1.06);
}
.reveal-block[data-reveal="card-right"]{
  --reveal-x:40px;
  --reveal-y:26px;
  --reveal-scale:.972;
  --reveal-rotate:.8deg;
  --reveal-blur:7px;
  --reveal-duration:860ms;
  --reveal-ease:cubic-bezier(.16,.92,.2,1.06);
}
.reveal-block[data-reveal="card-pop"]{
  --reveal-y:34px;
  --reveal-scale:.955;
  --reveal-rotate:0deg;
  --reveal-blur:8px;
  --reveal-duration:920ms;
  --reveal-ease:cubic-bezier(.14,.92,.22,1.08);
}
.reveal-block[data-reveal="soft"]{
  --reveal-y:14px;
  --reveal-scale:.992;
  --reveal-blur:4px;
  --reveal-duration:620ms;
}
html[data-reveal-mode="soft"] .reveal-block{
  --reveal-x:0px;
  --reveal-y:14px;
  --reveal-scale:.994;
  --reveal-rotate:0deg;
  --reveal-blur:3px;
  --reveal-duration:560ms;
  --reveal-ease:cubic-bezier(.25,.7,.2,1);
}
html[data-reveal-mode="soft"] .reveal-block[data-reveal="hero-left"],
html[data-reveal-mode="soft"] .reveal-block[data-reveal="hero-right"],
html[data-reveal-mode="soft"] .reveal-block[data-reveal="heading"],
html[data-reveal-mode="soft"] .reveal-block[data-reveal="card"],
html[data-reveal-mode="soft"] .reveal-block[data-reveal="card-left"],
html[data-reveal-mode="soft"] .reveal-block[data-reveal="card-right"],
html[data-reveal-mode="soft"] .reveal-block[data-reveal="card-pop"],
html[data-reveal-mode="soft"] .reveal-block[data-reveal="soft"]{
  --reveal-x:0px;
  --reveal-y:14px;
  --reveal-scale:.994;
  --reveal-rotate:0deg;
  --reveal-blur:3px;
  --reveal-duration:560ms;
}
.reveal-block.is-visible{
  opacity:1;
  transform: translate3d(0,0,0) scale(1) rotate(0deg);
  filter: blur(0);
}
html[data-reveal-mode="cinematic"] .hero-seq-item{
  opacity:0;
  transform: translate3d(0, 16px, 0) scale(.988);
  filter: blur(4px);
  transition:
    opacity 620ms cubic-bezier(.22,.78,.2,1),
    transform 620ms cubic-bezier(.22,.78,.2,1),
    filter 620ms cubic-bezier(.22,.78,.2,1);
  transition-delay: calc(var(--hero-seq-delay, 0ms) + 140ms);
}
html[data-reveal-mode="cinematic"] .hero-seq-root.is-visible .hero-seq-item{
  opacity:1;
  transform: translate3d(0,0,0) scale(1);
  filter: blur(0);
}
#assortment{scroll-margin-top:88px}
#price{scroll-margin-top:88px}
.grid3{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:14px;
}
.grid2{
  display:grid;
  grid-template-columns: repeat(2, 1fr);
  gap:14px;
}
.tile{padding:16px}
.tile h3{margin:0 0 6px}
.tile p{margin:0; color:var(--muted); font-size:14px}
.card-link{cursor:pointer}
.card-link:focus-visible{
  outline:2px solid rgba(255,255,255,.48);
  outline-offset:2px;
}
.brand-gallery{
  --brand-gap: 10px;
  --brand-visible: 4;
  display:flex;
  flex-wrap:nowrap;
  gap:var(--brand-gap);
  margin-top:10px;
  overflow:hidden;
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
}
.brand-gallery--auto{
  mask-image: linear-gradient(90deg, transparent 0%, #000 4%, #000 96%, transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 4%, #000 96%, transparent 100%);
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.brand-gallery--auto::-webkit-scrollbar{display:none}
.brand-gallery .brand-logo-card{
  flex: 0 0 calc((100% - (var(--brand-gap) * (var(--brand-visible) - 1))) / var(--brand-visible));
  min-width: 0;
}
.brand-gallery[data-no-autoscroll="true"]{
  overflow: visible;
  flex-wrap: wrap;
}
.brand-gallery[data-no-autoscroll="true"] .brand-logo-card{
  flex: 0 0 calc((100% - var(--brand-gap)) / 2);
}
.brand-grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap:10px;
  margin-top:10px;
}
.brand-logo-card{
  margin:0;
  min-height:118px;
  padding:12px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  text-align:center;
}
.brand-logo-card[data-href]{
  cursor:pointer;
}
.brand-logo-card[data-href]:focus-visible{
  outline:2px solid rgba(255,255,255,.45);
  outline-offset:2px;
}
.brand-logo-card img{
  width:100%;
  max-width:132px;
  height:54px;
  object-fit:contain;
  display:block;
  margin:0 auto;
  filter: drop-shadow(0 1px 8px rgba(0,0,0,.18));
}
.brand-logo-card img.brand-logo-alcon{
  max-width:122px;
  height:50px;
  filter: brightness(1.2) contrast(1.12) drop-shadow(0 1px 8px rgba(0,0,0,.2));
}
.brand-logo-card figcaption{
  color:var(--muted);
  font-size:12px;
  font-weight:700;
  text-align:center;
}
.lens-brand-grid{
  margin-top:10px;
}
.lens-brand-card{
  min-height:100%;
  text-align:center;
}
.lens-brand-card h3{
  font-size:30px;
}
.lens-brand-card .small{
  font-size:15px;
  line-height:1.55;
}
.lens-brand-logo{
  display:block;
  width:100%;
  max-width:180px;
  height:56px;
  object-fit:contain;
  margin:0 auto 10px;
}
.lens-types{
  margin:0 auto;
  max-width:680px;
  text-align:left;
  padding-left:18px;
}
.lens-brand-extra{
  margin:10px auto 0;
  max-width:680px;
  text-align:left;
}
.lens-brand-extra p{
  margin:0;
}
.lens-brand-extra p + p{
  margin-top:6px;
}
.lens-source{
  margin-top:10px;
  font-size:14px;
  font-weight:700;
}
.lens-source a{
  text-decoration:underline;
  text-underline-offset:2px;
}
.lens-types li + li{
  margin-top:6px;
}
.lens-brand-media{
  margin:12px 0 0;
}
.lens-brand-media img{
  width:100%;
  max-width:100%;
  height:auto;
  border-radius:12px;
  border:1px solid var(--line);
  display:block;
}
.lens-brand-media figcaption{
  margin-top:6px;
  text-align:center;
}
.lens-types a{
  text-decoration:underline;
  text-underline-offset:2px;
}
.tag{
  display:inline-block;
  margin-top:10px;
  font-size:12px;
  color:var(--muted);
  border:1px dashed var(--line);
  padding:6px 10px;
  border-radius:999px;
}
.table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius: var(--radius);
}
.table-wrap{
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  border-radius:var(--radius);
}
.table-wrap.price-collapse-animating{
  overflow:hidden;
  transition: height .32s cubic-bezier(.22,.78,.2,1);
}
.table-wrap .table{min-width:680px}
.table th,.table td{
  padding:12px 14px;
  border-bottom:1px solid var(--line);
  text-align:left;
}
.table th{color:var(--muted); font-size:13px; font-weight:800; background: rgba(255,255,255,.03)}
.table tr:last-child td{border-bottom:none}
.price-table--enhanced{
  table-layout:fixed;
}
.price-table--enhanced th:nth-child(1),
.price-table--enhanced td:nth-child(1){
  width:52px;
  text-align:center;
  color:var(--muted);
  font-weight:700;
}
.price-table--enhanced th:nth-child(3),
.price-table--enhanced td:nth-child(3){
  width:240px;
}
.price-table--enhanced td[data-label="Стоимость"]{
  font-variant-numeric: tabular-nums;
}
.price-table--collapsed tr.price-row-extra{
  display:none;
}
.price-table--enhanced tbody tr:nth-child(odd) td{
  background: rgba(255,255,255,.01);
}
.price-table--enhanced tbody tr:hover td{
  background: rgba(255,255,255,.035);
}
.price-table--enhanced td[data-label="Услуга"] b{
  font-weight:700;
}
.price-options{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.price-pill{
  display:inline-flex;
  align-items:center;
  padding:5px 9px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background: rgba(255,255,255,.045);
  color: var(--text);
  font-size:12px;
  font-weight:600;
  line-height:1.2;
}
.price-pill--good{
  border-color: rgba(255,255,255,.28);
  background: rgba(255,255,255,.09);
  font-weight:700;
}
html:not([data-theme="light"]) .price-pill--good{
  border-color: rgba(145,219,255,.48);
  background: rgba(117,162,255,.20);
  color:#eaf5ff;
  box-shadow:none;
}
.price-single{
  display:inline-flex;
  align-items:center;
  padding:5px 9px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background: rgba(255,255,255,.07);
  color: var(--text);
  font-size:13px;
  font-weight:700;
  line-height:1.2;
}
.service-title{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  width:100%;
  text-align:left;
  line-height:1.35;
}
.service-icon{
  width:34px;
  height:34px;
  min-width:34px;
  border-radius:6px;
  border:1px solid rgba(255,255,255,.22);
  background: rgba(255,255,255,.06);
  color:var(--text);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:0;
}
.service-icon svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.service-icon--glasses,
.service-icon--vision,
.service-icon--progressive,
.service-icon--lens,
.service-icon--diagnostics,
.service-icon--dry-eye,
.service-icon--doctor{
  background: rgba(255,255,255,.06);
}
.price-toggle-wrap{
  margin-top:14px;
  display:flex;
}
.price-toggle-btn{
  min-height:46px;
  padding:12px 18px;
  border-radius:16px;
  border:1px solid rgba(135,197,255,.52);
  background: rgba(69,95,151,.34);
  color:#eef5ff;
  font-size:15px;
  font-weight:800;
  letter-spacing:.01em;
  box-shadow:none;
}
.price-toggle-btn:hover{
  border-color: rgba(166,224,255,.72);
  background: rgba(85,115,182,.42);
}
.price-toggle-btn:focus-visible{
  outline:2px solid rgba(166,224,255,.74);
  outline-offset:2px;
}
.small{color:var(--muted); font-size:13px}
footer{
  border-top:1px solid rgba(255,255,255,.22);
  padding:22px 0;
  background:
    linear-gradient(160deg,
      rgba(255,255,255,.18) 0%,
      rgba(186,230,253,.14) 38%,
      rgba(125,211,252,.12) 65%,
      rgba(15,23,42,.28) 100%);
  backdrop-filter: blur(9px) saturate(130%);
  -webkit-backdrop-filter: blur(9px) saturate(130%);
}
.footer-grid{
  display:grid;
  grid-template-columns: 1.3fr 1fr 1fr;
  gap:14px;
  align-items:start;
}
.footer-grid a{color:#d9e8ff}
.footer-social{
  margin-top:8px;
}
.social-link{
  width:36px;
  height:36px;
  border-radius:10px;
  border:1px solid rgba(110,231,255,.40);
  background: linear-gradient(135deg, rgba(110,231,255,.26), rgba(167,139,250,.30));
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition: transform .08s ease, background .15s ease, border-color .15s ease;
}
.social-link:hover{
  background: linear-gradient(135deg, rgba(110,231,255,.36), rgba(167,139,250,.40));
  border-color: rgba(110,231,255,.58);
}
.social-link:active{
  transform: translateY(1px);
}
.social-link img{
  width:19px;
  height:19px;
  display:block;
}
.notice{
  padding:10px 12px;
  border-radius:16px;
  color:var(--muted);
  font-size:13px;
}
.form{
  display:grid;
  gap:10px;
}
.form-status{min-height:20px}
input, textarea, select{
  width:100%;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.03);
  color:var(--text);
  outline:none;
}
textarea{min-height:96px; resize:vertical}
hr.sep{border:0; border-top:1px solid var(--line); margin:14px 0}
.map-embed{
  width:100%;
  aspect-ratio: 16/9;
  border:1px solid var(--line);
  border-radius: var(--radius);
  overflow:hidden;
  background: rgba(255,255,255,.02);
}
.map-embed-large{
  aspect-ratio: 4/3;
}
.badge{
  display:inline-flex; align-items:center; gap:8px;
  padding:6px 10px; border-radius:999px;
  border:1px solid var(--line);
  background: rgba(255,255,255,.03);
  color:var(--muted);
  font-weight:800;
  font-size:12px;
}
.article-back{
  display:block;
  width:max-content;
  margin:0 0 14px;
  position:relative;
  z-index:2;
}
.article-page .card:hover,
.article-page .card:focus-within{
  transform: translateY(-1px);
}
@media (min-width: 1181px){
  header .container{
    padding-left:8px;
    padding-right:8px;
  }
  .nav{
    position:relative;
    min-height:108px;
    gap:18px;
  }
  header .brand{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%, -50%);
    z-index:2;
    order:0;
    flex:none;
  }
  header .brand .logo{
    width:168px;
    height:auto;
    border-radius:0;
  }
  nav{
    order:1;
    flex:1 1 auto;
    min-width:0;
    margin-right:auto;
    max-width:calc(50% - 110px);
  }
  nav ul{
    justify-content:flex-start;
    gap:12px;
    row-gap:8px;
  }
  .cta{
    order:2;
    margin-right:0;
    margin-left:auto;
    max-width:calc(50% - 110px);
  }
  .cta .theme-toggle{
    padding:9px 10px;
  }
  header.is-compact .nav{
    min-height:60px;
  }
  header.is-compact .brand .logo{
    width:96px;
  }
  header.is-compact nav{
    max-width:calc(50% - 76px);
  }
  header.is-compact .cta{
    max-width:calc(50% - 76px);
  }
}
@media (max-width: 1180px){
  .container{padding:0 16px}
  .nav{flex-wrap:wrap}
  nav{order:3; flex-basis:100%}
  nav ul{justify-content:flex-start; gap:10px 12px}
  .hero-grid{grid-template-columns: 1fr}
  .grid3{grid-template-columns: repeat(2, 1fr)}
  .footer-grid{grid-template-columns: 1fr 1fr}
}
@media (max-width: 920px){
  h1{font-size:36px; line-height:1.12}
  .page-title{font-size:30px}
  .section{padding:16px 0 32px}
  .hero{padding:28px 0 12px}
  .hero-card{padding:22px}
  .grid3{grid-template-columns: 1fr}
  .grid2{grid-template-columns: 1fr}
  .footer-grid{grid-template-columns: 1fr}
  .table th,.table td{padding:10px 12px}
  .card,
  .item,
  .notice{
    backdrop-filter: blur(12px) saturate(128%);
    -webkit-backdrop-filter: blur(12px) saturate(128%);
  }
}
@media (max-width: 700px){
  .container{padding:0 14px}
  .lens-brand-card h3{font-size:24px}
  .lens-brand-card .small{font-size:14px}
  .nav{gap:10px}
  .brand{font-size:15px}
  footer .brand .logo{
    width:46px;
    height:46px;
  }
  header .brand .logo{
    width:88px;
    height:auto;
    border-radius:0;
  }
  header .brand .brand-tagline{
    display:block;
    margin-top:4px;
    max-width:220px;
    font-size:11px;
    font-weight:700;
    line-height:1.2;
    color:var(--muted);
    text-align:center;
  }
  header.is-compact .brand .logo{
    width:62px;
  }
  header.is-compact .brand .brand-tagline{
    display:none;
  }
  header.is-compact .nav{
    padding:4px 0;
  }
  header.is-compact nav a{
    padding:9px 10px;
  }
  header.is-compact .cta .btn{
    padding:9px 8px;
  }
  html.js .theme-toggle-mobile{display:inline-flex; margin-left:auto}
  html.js .menu-toggle{display:inline-flex; margin-left:8px}
  .nav > nav,
  .nav > .cta{width:100%}
  html.js .nav > nav,
  html.js .nav > .cta{display:none}
  html.js .nav.menu-open > nav{display:block}
  html.js .nav.menu-open > .cta{display:grid}
  html.js .nav.menu-open .menu-toggle__line:nth-child(1){transform: translateY(6px) rotate(45deg)}
  html.js .nav.menu-open .menu-toggle__line:nth-child(2){opacity:0}
  html.js .nav.menu-open .menu-toggle__line:nth-child(3){transform: translateY(-6px) rotate(-45deg)}
  nav ul{
    width:100%;
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }
  nav a{
    display:block;
    text-align:left;
    padding:11px 12px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:12px;
    background: rgba(255,255,255,.06);
    font-size:14px;
    font-weight:750;
  }
  nav a.active{
    color:#071022;
    border-color: transparent;
    background: linear-gradient(135deg, rgba(110,231,255,.95), rgba(167,139,250,.9));
  }
  .cta{
    width:100%;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  .cta .btn{
    width:100%;
    text-align:center;
    padding:11px 10px;
  }
  .cta .call-picker{
    width:100%;
  }
  .call-picker[open] .call-picker__menu{
    position:fixed;
    left:10px;
    right:10px;
    bottom: calc(10px + env(safe-area-inset-bottom));
    top:auto;
    min-width:0;
    margin:0;
    padding:12px;
    border-radius:18px;
    background:
      linear-gradient(160deg, rgba(255,255,255,.16), rgba(255,255,255,.04)),
      rgba(16,10,26,.96);
    box-shadow:
      0 0 0 100vmax rgba(8,12,24,.56),
      0 22px 46px rgba(2,4,10,.52);
    backdrop-filter: blur(16px) saturate(150%);
    -webkit-backdrop-filter: blur(16px) saturate(150%);
    gap:8px;
    animation: call-picker-sheet-in .22s cubic-bezier(.22,.78,.2,1);
  }
  html[data-theme="light"] .call-picker[open] .call-picker__menu{
    box-shadow:
      0 0 0 100vmax rgba(73,56,95,.26),
      0 22px 40px rgba(73,56,95,.28);
  }
  .call-picker__item{
    padding:12px 12px;
    border-radius:12px;
    border-color: rgba(255,255,255,.12);
  }
  .call-picker__phone{
    font-size:14px;
    letter-spacing:.01em;
  }
  .call-picker__address{
    font-size:12px;
    line-height:1.35;
  }
  .cta .theme-toggle{display:none}
  .to-top{
    right:14px;
    bottom:14px;
    width:48px;
    height:48px;
  }
  .hero-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .hero-actions .btn{
    width:100%;
    text-align:center;
  }
  .contact-actions{
    display:grid;
    grid-template-columns:1fr;
  }
  .contact-actions .btn{
    width:100%;
    text-align:center;
  }
  .price-toggle-btn{
    width:100%;
    text-align:center;
  }
  .side-card{padding:16px}
  .tile{padding:14px}
  .map-embed{aspect-ratio: 4/3}

  .price-table{
    min-width:0;
    border:0;
    background:transparent;
  }
  .price-table thead{display:none}
  .price-table,
  .price-table tbody,
  .price-table tr,
  .price-table td{
    display:block;
    width:100%;
  }
  .price-table tr{
    margin:0 0 10px;
    border:1px solid var(--line);
    border-radius:14px;
    overflow:hidden;
    background: rgba(255,255,255,.03);
  }
  .price-table td{
    padding:8px 10px;
    border-bottom:1px solid var(--line);
  }
  .price-table td:last-child{border-bottom:none}
  .price-table td::before{
    content:attr(data-label);
    display:block;
    margin-bottom:3px;
    color:var(--muted);
    font-size:11px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.02em;
  }
  .price-table td:nth-child(3){
    font-weight:800;
    color:var(--text);
  }
  .price-options{
    gap:7px;
  }
  .price-pill,
  .price-single{
    font-size:12px;
    padding:6px 9px;
  }
  .table-wrap{
    overflow-x:visible;
  }
  .table-wrap .price-table{
    min-width:0;
  }
}
@media (max-width: 430px){
  h1{font-size:30px}
  .page-title{font-size:26px}
  .kicker{font-size:12px}
  .lead{font-size:15px}
  .small{font-size:12px}
  .btn{font-size:13px}
  nav ul{grid-template-columns:1fr}
  body::before{opacity:.1}
  body::after{opacity:.30; filter: blur(28px) saturate(112%)}
}
@media (max-width: 1100px){
  .brand-gallery{--brand-visible:3}
  .brand-grid{grid-template-columns: repeat(3, minmax(0, 1fr))}
}
@media (max-width: 700px){
  .brand-grid{grid-template-columns: repeat(2, minmax(0, 1fr))}
}
@media (max-width: 700px){
  .container{padding:0 12px}
  header{
    top:8px;
    margin:0 8px;
    border-radius:20px;
    border:1px solid rgba(255,255,255,.18);
    background:
      linear-gradient(145deg, rgba(255,255,255,.18), rgba(255,255,255,.04)),
      rgba(21,15,35,.92);
    box-shadow:
      0 14px 34px rgba(4,8,18,.36),
      inset 0 1px 0 rgba(255,255,255,.14);
  }
  .nav{
    --mobile-controls-width:96px;
    display:grid;
    grid-template-columns: var(--mobile-controls-width) minmax(0, 1fr) auto auto;
    grid-template-areas:
      "pad brand theme menu"
      "nav nav nav nav"
      "cta cta cta cta";
    align-items:center;
    column-gap:8px;
    row-gap:12px;
    padding:10px 0 12px;
  }
  .nav::before{
    content:"";
    grid-area:pad;
    width:var(--mobile-controls-width);
    height:1px;
  }
  html.js .nav{
    grid-template-areas:"pad brand theme menu";
    row-gap:0;
    padding:10px 0;
  }
  html.js .nav.menu-open{
    grid-template-areas:
      "pad brand theme menu"
      "nav nav nav nav"
      "cta cta cta cta";
    row-gap:12px;
    padding:10px 0 12px;
  }
  .nav > .brand{
    grid-area:brand;
    justify-self:center;
    z-index:1;
    min-width:0;
  }
  .nav > nav{grid-area:nav}
  .nav > .cta{grid-area:cta}
  .theme-toggle-mobile{
    grid-area:theme;
    margin-left:0;
    z-index:2;
    justify-self:end;
  }
  .menu-toggle{
    grid-area:menu;
    margin-left:0;
    z-index:2;
    justify-self:end;
  }
  html.js .theme-toggle-mobile,
  html.js .menu-toggle{
    margin-left:0;
    align-self:center;
    display:inline-flex;
  }
  header.is-compact .theme-toggle-mobile,
  header.is-compact .menu-toggle{
    align-self:center;
  }
  header .brand{
    align-items:center;
    text-align:center;
    gap:2px;
  }
  header .brand .logo{
    width:72px;
  }
  header .brand .brand-tagline{
    display:block;
    margin-top:2px;
    max-width:168px;
    font-size:10px;
    line-height:1.15;
    text-align:center;
  }
  html.js .nav.menu-open .brand .brand-tagline{
    display:none;
  }
  html.js .nav.menu-open .brand .logo{
    width:64px;
  }
  html.js .nav > nav,
  html.js .nav > .cta{display:none}
  html.js .nav.menu-open > nav,
  html.js .nav.menu-open > .cta{
    width:100%;
    border:1px solid rgba(255,255,255,.18);
    border-radius:16px;
    background:
      linear-gradient(150deg, rgba(255,255,255,.12), rgba(255,255,255,.03)),
      rgba(24,16,39,.84);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.10);
    backdrop-filter: blur(12px) saturate(132%);
    -webkit-backdrop-filter: blur(12px) saturate(132%);
    padding:10px;
  }
  html.js .nav.menu-open > nav{display:block}
  html.js .nav.menu-open > .cta{display:grid}
  nav ul{
    width:100%;
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
    margin-top:4px;
  }
  nav a{
    padding:12px 14px;
    border-radius:14px;
    font-size:14px;
    font-weight:750;
    border:1px solid rgba(255,255,255,.20);
    background: rgba(255,255,255,.055);
  }
  nav a.active{
    color:#071022;
    border-color: transparent;
    background: linear-gradient(135deg, rgba(110,231,255,.95), rgba(167,139,250,.9));
  }
  .cta{
    width:100%;
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }
  .cta .btn{
    width:100%;
    min-height:44px;
    padding:11px 12px;
    border-radius:14px;
    font-size:14px;
    text-align:center;
  }
  .cta .call-picker{width:100%}
  .call-picker > summary.btn{width:100%}
  .call-picker[open] .call-picker__menu{
    left:8px;
    right:8px;
    bottom: calc(8px + env(safe-area-inset-bottom));
    padding:12px;
    border-radius:18px;
  }
  .hero{
    padding:18px 0 8px;
  }
  .hero-grid{
    grid-template-columns:1fr;
    gap:12px;
  }
  h1{
    font-size:31px;
    line-height:1.14;
    letter-spacing:-.01em;
  }
  .page-title{font-size:28px}
  .lead{
    font-size:15px;
    line-height:1.5;
  }
  .hero-card,
  .side-card{
    padding:18px;
    border-radius:20px;
  }
  .section{
    padding:14px 0 26px;
  }
  .section h2{
    font-size:24px;
    margin-bottom:10px;
  }
  .hero-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }
  .hero-actions .btn{min-height:44px}
  .grid2,
  .grid3{
    grid-template-columns:1fr;
    gap:10px;
  }
  .tile{
    padding:16px;
    border-radius:18px;
  }
  .item{
    padding:12px;
    border-radius:14px;
  }
  .notice{
    padding:12px 12px;
    border-radius:14px;
  }
  .small{
    font-size:12px;
    line-height:1.45;
  }
  .pills{gap:8px}
  .pill{
    padding:7px 10px;
    font-size:11px;
  }
  .brand-gallery{--brand-visible:2}
  .brand-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap:8px;
  }
  .price-wrap{
    overflow:visible;
    border:0;
    border-radius:0;
    background:transparent;
  }
  .price-wrap .price-table{
    min-width:0;
    width:100%;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  .price-table{
    border:0;
    border-radius:0;
    background:transparent;
  }
  .price-table thead{
    display:none;
  }
  .price-table,
  .price-table tbody{
    display:block;
    width:100%;
  }
  .price-table tr{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:
      "service price"
      "comment price";
    column-gap:10px;
    row-gap:8px;
    margin:0 0 10px;
    padding:12px;
    border:1px solid var(--line);
    border-radius:14px;
    background: rgba(255,255,255,.04);
    overflow:hidden;
  }
  .price-table tr:last-child{
    margin-bottom:0;
  }
  .price-table th,
  .price-table td{
    display:block;
    width:auto;
    padding:0;
    border:0;
    vertical-align:top;
  }
  .price-table td::before{
    content:none;
    display:none;
  }
  .price-wrap .price-table--enhanced tbody tr td,
  .price-wrap .price-table--enhanced tbody tr:hover td{
    background:transparent;
  }
  .price-table th:nth-child(1),
  .price-table td:nth-child(1){
    display:none;
  }
  .price-table td:nth-child(2){
    grid-area:service;
  }
  .price-table td:nth-child(3){
    grid-area:price;
    width:auto;
    justify-self:end;
    align-self:start;
  }
  .price-table td:nth-child(4){
    grid-area:comment;
    display:block;
    width:auto;
    color:var(--muted);
    font-size:12px;
    line-height:1.35;
  }
  .price-table th:nth-child(3),
  .price-table td:nth-child(3){
    width:auto;
  }
  .price-options{
    gap:5px;
    justify-content:flex-end;
    align-items:flex-end;
    flex-direction:column;
  }
  .price-pill,
  .price-single{
    font-size:12px;
    padding:5px 8px;
  }
  .service-title{
    gap:8px;
  }
  .service-title > span:last-child{
    font-size:13px;
    line-height:1.3;
  }
  .service-icon{
    width:24px;
    height:24px;
    min-width:24px;
  }
  .service-icon svg{
    width:15px;
    height:15px;
  }
  .price-toggle-wrap{
    margin-top:10px;
  }
  .price-toggle-btn{
    width:100%;
    min-height:48px;
    border-radius:14px;
    font-size:14px;
  }
  .map-embed,
  .map-embed-large{
    aspect-ratio:1/1;
    border-radius:16px;
  }
  .footer-grid{
    grid-template-columns:1fr;
    gap:12px;
  }
  .to-top{
    right:12px;
    bottom:12px;
    width:46px;
    height:46px;
  }
}
@media (max-width: 430px){
  .container{padding:0 10px}
  header{
    top:6px;
    margin:0 6px;
    border-radius:16px;
  }
  h1{font-size:28px}
  .page-title{font-size:24px}
  header .brand .logo{width:64px}
  header .brand .brand-tagline{max-width:150px}
  .hero-card,
  .side-card,
  .tile{padding:14px}
  .service-icon{
    width:28px;
    height:28px;
    min-width:28px;
  }
  .service-icon svg{
    width:17px;
    height:17px;
  }
}
@media (prefers-reduced-motion: reduce){
  header,
  .nav,
  header .brand .logo,
  nav a,
  .menu-toggle,
  .theme-toggle-mobile,
  .theme-toggle-mobile .theme-lens-icon,
  .btn{
    transition:none;
  }
  .card,
  .item,
  .notice,
  .card::before,
  .item::before,
  .notice::before,
  .card::after,
  .item::after,
  .notice::after{
    transition:none;
  }
  .brand-gallery{
    overflow-x:auto;
    scroll-behavior:auto;
  }
  .brand-gallery--auto{
    mask-image:none;
    -webkit-mask-image:none;
  }
  body::after{animation:none}
  .to-top{
    transition:none;
  }
  .call-picker[open] .call-picker__menu{
    animation:none;
  }
  .reveal-block{
    opacity:1;
    transform:none;
    filter:none;
    transition:none;
    will-change:auto;
  }
  .hero-seq-item{
    opacity:1;
    transform:none;
    filter:none;
    transition:none;
  }
  .hero.hero-parallax::before,
  .hero.hero-parallax::after{
    display:none;
  }
  .hero.hero-parallax .hero-grid{
    transform:none;
    transition:none;
    will-change:auto;
  }
}

/* noise */
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.09;
  mix-blend-mode:overlay;
  background:
    repeating-linear-gradient(0deg,
      rgba(255,255,255,.035) 0px,
      rgba(255,255,255,.035) 1px,
      transparent 2px,
      transparent 4px
    ),
    repeating-linear-gradient(90deg,
      rgba(0,0,0,.03) 0px,
      rgba(0,0,0,.03) 1px,
      transparent 2px,
      transparent 5px
    );
}

/* subtle animated aurora */
body::after{
  content:"";
  position:fixed;
  inset:-22vmax;
  pointer-events:none;
  z-index:-1;
  opacity:.26;
  filter: blur(42px) saturate(108%);
  background:
    radial-gradient(closest-side at 20% 22%, rgba(138,112,187,.16), transparent 62%),
    radial-gradient(closest-side at 80% 26%, rgba(126,102,169,.13), transparent 58%),
    radial-gradient(closest-side at 52% 84%, rgba(255,255,255,.04), transparent 65%);
  transform: translate3d(0,0,0);
  animation: auraDrift 52s ease-in-out infinite alternate;
}
@keyframes auraDrift{
  0%{transform: translate3d(-1.5%,-1%,0) scale(1) rotate(0deg); opacity:.34}
  50%{transform: translate3d(1.8%,.9%,0) scale(1.02) rotate(.8deg); opacity:.40}
  100%{transform: translate3d(-1%,1.7%,0) scale(1.01) rotate(-.7deg); opacity:.33}
}

html[data-theme="light"]{
  --bg: rgb(246, 240, 251);
  --card: rgba(255,255,255,.58);
  --text:#2f2240;
  --muted:#5f4a79;
  --accent: rgb(139, 95, 165);
  --accent2: rgba(139, 95, 165, .86);
  --line:rgba(102,72,132,.24);
  --shadow: 0 14px 34px rgba(82, 49, 108, .14);
}
html[data-theme="light"] body{
  background:
    radial-gradient(980px 720px at 8% -10%, rgba(139,95,165,.30), transparent 62%),
    radial-gradient(820px 580px at 92% 0%, rgba(188,151,212,.36), transparent 60%),
    radial-gradient(900px 680px at 50% 120%, rgba(255,255,255,.96), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.90), rgba(238,225,247,.82)),
    var(--bg);
  color:var(--text);
}
html[data-theme="light"] header{
  background:
    linear-gradient(120deg,
      rgba(255,255,255,.58) 0%,
      rgba(239,224,250,.44) 42%,
      rgba(210,186,230,.34) 100%);
  border-bottom:1px solid rgba(139,95,165,.28);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.78),
    0 12px 30px rgba(82,49,108,.12);
  backdrop-filter: blur(16px) saturate(148%);
  -webkit-backdrop-filter: blur(16px) saturate(148%);
}
html[data-theme="light"] header.is-compact{
  border-bottom-color: rgba(139,95,165,.24);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.78),
    0 8px 20px rgba(82,49,108,.10);
}
html[data-theme="light"] nav a{
  color:#3f2b54;
}
html[data-theme="light"] nav a:hover{
  color:#2e1f3f;
  background: rgba(255,255,255,.34);
  border-color: rgba(139,95,165,.30);
}
html[data-theme="light"] nav a:focus-visible{
  outline:2px solid rgba(139,95,165,.45);
}
html[data-theme="light"] nav a.active{
  color:#ffffff;
  background: linear-gradient(135deg, rgba(139,95,165,.94), rgba(176,133,201,.88));
  box-shadow: 0 8px 18px rgba(94,66,122,.22);
}
html[data-theme="light"] .btn{
  background: rgba(255,255,255,.36);
  color:var(--text);
  border-color: rgba(139,95,165,.30);
  backdrop-filter: blur(10px) saturate(130%);
  -webkit-backdrop-filter: blur(10px) saturate(130%);
}
html[data-theme="light"] .btn:hover{
  background: rgba(255,255,255,.52);
}
html[data-theme="light"] .btn.primary{
  color:#ffffff;
  background: linear-gradient(135deg, rgba(139,95,165,.92), rgba(176,133,201,.86));
}
html[data-theme="light"] .price-toggle-btn{
  color:#3f3056;
  border:1px solid rgba(139,95,165,.36);
  background: rgba(241,229,250,.92);
  box-shadow:none;
}
html[data-theme="light"] .price-toggle-btn:hover{
  border-color: rgba(139,95,165,.44);
  background: rgba(235,217,248,.96);
}
html[data-theme="light"] .price-toggle-btn:focus-visible{
  outline:2px solid rgba(139,95,165,.45);
}
html[data-theme="light"] .btn.btn-price{
  color:#2a325a;
  border-color: rgba(109,177,206,.42);
  background: linear-gradient(135deg, rgba(203,236,255,.82), rgba(229,220,255,.80));
}
html[data-theme="light"] .btn.btn-price:hover{
  background: linear-gradient(135deg, rgba(190,231,255,.90), rgba(220,208,252,.88));
}
html[data-theme="light"] .btn.btn-price .btn-ico{
  color:#2d7dac;
}
html[data-theme="light"] .btn.btn-route{
  color:#3a2a57;
  border-color: rgba(147,114,187,.42);
  background: linear-gradient(135deg, rgba(233,221,255,.84), rgba(208,238,255,.80));
}
html[data-theme="light"] .btn.btn-route:hover{
  background: linear-gradient(135deg, rgba(226,211,255,.92), rgba(192,230,255,.90));
}
html[data-theme="light"] .btn.btn-route .btn-ico{
  color:#7a54b7;
}
html[data-theme="light"] .to-top{
  color:#ffffff;
  border-color: rgba(139,95,165,.32);
  background: linear-gradient(135deg, rgba(139,95,165,.68), rgba(176,133,201,.62));
  box-shadow: 0 12px 26px rgba(82,49,108,.24);
}
html[data-theme="light"] .to-top:hover{
  background: linear-gradient(135deg, rgba(139,95,165,.78), rgba(176,133,201,.72));
  box-shadow: 0 14px 30px rgba(82,49,108,.30);
}
html[data-theme="light"] .to-top:focus-visible{
  outline:2px solid rgba(139,95,165,.45);
}
html[data-theme="light"] .theme-toggle{
  color:#2f2240;
  border-color: rgba(139,95,165,.32);
  background: rgba(255,255,255,.34);
}
html[data-theme="light"] .theme-toggle:hover{
  background: rgba(255,255,255,.50);
}
html[data-theme="light"] .theme-toggle-mobile{
  color:#2f2240;
  border-color: rgba(139,95,165,.34);
  background: rgba(255,255,255,.38);
}
html[data-theme="light"] .theme-toggle-mobile:hover{
  background: rgba(255,255,255,.56);
}
html[data-theme="light"] .theme-toggle-mobile:focus-visible{
  outline:2px solid rgba(139,95,165,.45);
}
html[data-theme="light"] .menu-toggle{
  background: rgba(255,255,255,.34);
  border-color: rgba(139,95,165,.34);
}
html[data-theme="light"] .card{
  border-color: rgba(139,95,165,.22);
  background:
    linear-gradient(160deg, rgba(255,255,255,.62), rgba(250,241,255,.36)),
    rgba(255,255,255,.28);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.88),
    inset 0 -18px 22px rgba(255,255,255,.14),
    0 18px 34px rgba(82,49,108,.12);
  backdrop-filter: blur(16px) saturate(148%);
  -webkit-backdrop-filter: blur(16px) saturate(148%);
}
html[data-theme="light"] .item,
html[data-theme="light"] .notice{
  border-color: rgba(139,95,165,.20);
  background:
    linear-gradient(160deg, rgba(255,255,255,.54), rgba(246,235,255,.30)),
    rgba(255,255,255,.24);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.84),
    0 8px 20px rgba(82,49,108,.08);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
}
html[data-theme="light"] .card::before,
html[data-theme="light"] .item::before,
html[data-theme="light"] .notice::before{
  background:
    radial-gradient(circle at 50% 50%,
      rgba(139,95,165,.26) 0%,
      rgba(139,95,165,.12) 35%,
      rgba(139,95,165,0) 70%);
}
html[data-theme="light"] .card::after,
html[data-theme="light"] .item::after,
html[data-theme="light"] .notice::after{
  border:1px solid rgba(139,95,165,.20);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.42);
}
html[data-theme="light"] .card:hover,
html[data-theme="light"] .card:focus-within,
html[data-theme="light"] .notice:hover,
html[data-theme="light"] .notice:focus-within{
  border-color: rgba(139,95,165,.32);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.95),
    inset 0 -18px 24px rgba(255,255,255,.16),
    0 24px 42px rgba(82,49,108,.15);
  backdrop-filter: blur(18px) saturate(160%);
  -webkit-backdrop-filter: blur(18px) saturate(160%);
}
html[data-theme="light"] .side-card .item{
  background: rgba(255,255,255,.42);
  border-color: rgba(139,95,165,.25);
}
html[data-theme="light"] .kicker{
  background: rgba(255,255,255,.46);
  border-color: rgba(139,95,165,.24);
}
html[data-theme="light"] .kicker .dot{
  background: rgb(139, 95, 165);
}
html[data-theme="light"] .pill{
  background: rgba(255,255,255,.42);
  border-color: rgba(139,95,165,.20);
}
html[data-theme="light"] .tag{
  border-color: rgba(139,95,165,.32);
}
html[data-theme="light"] .table{
  border-color: rgba(139,95,165,.24);
  background: rgba(255,255,255,.34);
  backdrop-filter: blur(10px) saturate(132%);
  -webkit-backdrop-filter: blur(10px) saturate(132%);
}
html[data-theme="light"] .table th{
  background: rgba(255,255,255,.40);
  color:#4b3563;
}
html[data-theme="light"] .table th,
html[data-theme="light"] .table td{
  border-bottom:1px solid rgba(139,95,165,.20);
}
html[data-theme="light"] .price-table--enhanced tbody tr:nth-child(odd) td{
  background: rgba(139,95,165,.03);
}
html[data-theme="light"] .price-table--enhanced tbody tr:hover td{
  background: rgba(139,95,165,.08);
}
html[data-theme="light"] .price-pill{
  border-color: rgba(139,95,165,.28);
  background: rgba(255,255,255,.65);
  color:#4b3563;
}
html[data-theme="light"] .price-pill--good{
  border-color: rgba(22,163,74,.34);
  background: rgba(22,163,74,.12);
  color:#1f6a37;
}
html[data-theme="light"] .price-single{
  border-color: rgba(139,95,165,.30);
  background: rgba(255,255,255,.72);
  color:#3f3056;
}
html[data-theme="light"] input,
html[data-theme="light"] textarea,
html[data-theme="light"] select,
html[data-theme="light"] .map-embed{
  background: rgba(255,255,255,.34);
  border-color: rgba(139,95,165,.24);
  backdrop-filter: blur(10px) saturate(130%);
  -webkit-backdrop-filter: blur(10px) saturate(130%);
}
html[data-theme="light"] .call-picker__menu{
  background: rgba(255,255,255,.95);
  border-color: rgba(139,95,165,.24);
}
html[data-theme="light"] .call-picker[open] .call-picker__menu{
  background:
    linear-gradient(160deg, rgba(255,255,255,.98), rgba(248,239,255,.92));
}
html[data-theme="light"] .call-picker__item{
  background: rgba(139,95,165,.08);
}
html[data-theme="light"] .call-picker__item:hover{
  border-color: rgba(139,95,165,.24);
  background: rgba(139,95,165,.16);
}
html[data-theme="light"] .call-picker__phone{
  color:#4f3769;
}
html[data-theme="light"] .call-picker__address{
  color:#6c5887;
}
html[data-theme="light"] footer{
  border-top:1px solid rgba(139,95,165,.26);
  background:
    linear-gradient(160deg,
      rgba(255,255,255,.56) 0%,
      rgba(237,219,248,.40) 40%,
      rgba(214,190,231,.34) 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.70);
  backdrop-filter: blur(14px) saturate(145%);
  -webkit-backdrop-filter: blur(14px) saturate(145%);
}
html[data-theme="light"] .footer-grid a{
  color:#553a70;
}
html[data-theme="light"] .social-link{
  border-color: rgba(139,95,165,.34);
  background: linear-gradient(135deg, rgba(139,95,165,.92), rgba(176,133,201,.86));
}
html[data-theme="light"] .social-link:hover{
  border-color: rgba(139,95,165,.48);
  background: linear-gradient(135deg, rgba(139,95,165,.98), rgba(176,133,201,.92));
}
html[data-theme="light"] body::before{
  opacity:.06;
}
html[data-theme="light"] body::after{
  opacity:.28;
  filter: blur(36px) saturate(118%);
  background:
    radial-gradient(closest-side at 18% 24%, rgba(139,95,165,.24), transparent 62%),
    radial-gradient(closest-side at 82% 30%, rgba(188,154,211,.24), transparent 58%),
    radial-gradient(closest-side at 52% 86%, rgba(255,255,255,.34), transparent 65%);
}
html[data-theme="light"] .hero.hero-parallax::before{
  opacity:.46;
  background:
    radial-gradient(closest-side at 18% 26%, rgba(139,95,165,.24), transparent 70%),
    radial-gradient(closest-side at 78% 20%, rgba(188,154,211,.24), transparent 68%),
    radial-gradient(closest-side at 52% 84%, rgba(255,255,255,.30), transparent 72%);
}
@media (max-width: 700px){
  html[data-theme="light"] .nav.menu-open > nav,
  html[data-theme="light"] .nav.menu-open > .cta{
    border-color: rgba(139,95,165,.24);
    background:
      linear-gradient(160deg, rgba(255,255,255,.78), rgba(246,235,255,.52)),
      rgba(255,255,255,.72);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.92),
      0 10px 24px rgba(82,49,108,.14);
  }
  html[data-theme="light"] .price-wrap{
    border:0;
    background:transparent;
  }
  html[data-theme="light"] .price-wrap .price-table{
    border:0;
    background:transparent;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  html[data-theme="light"] .price-table--enhanced tbody tr:nth-child(odd) td,
  html[data-theme="light"] .price-table--enhanced tbody tr:hover td{
    background:transparent;
  }
  html[data-theme="light"] .price-wrap .price-table tr{
    border:1px solid rgba(139,95,165,.24);
    background: rgba(255,255,255,.46);
    box-shadow:none;
  }
  html[data-theme="light"] .price-pill,
  html[data-theme="light"] .price-pill--good,
  html[data-theme="light"] .price-single{
    border-color: rgba(139,95,165,.22);
    background: transparent;
    color:#4b3563;
    box-shadow:none;
    font-weight:600;
  }
  html[data-theme="light"] .service-icon{
    border-color: rgba(139,95,165,.24);
    background: rgba(255,255,255,.32);
  }
}

@media (max-width: 700px){
  .price-wrap .price-table th,
  .price-wrap .price-table td{
    border:0 !important;
    border-bottom:0 !important;
    border-top:0 !important;
    box-shadow:none !important;
    background-image:none !important;
  }
  html[data-theme="light"] .price-wrap .price-table th,
  html[data-theme="light"] .price-wrap .price-table td{
    border:0 !important;
    border-bottom:0 !important;
    border-top:0 !important;
  }
}

@media (max-width: 700px){
  html[data-theme="light"] .price-wrap .price-pill{
    border-color: rgba(139,95,165,.28);
    background: rgba(255,255,255,.66);
    color:#4b3563;
    font-weight:650;
  }
  html[data-theme="light"] .price-wrap .price-pill--good{
    border-color: rgba(22,163,74,.36);
    background: rgba(22,163,74,.14);
    color:#1f6a37;
    font-weight:700;
  }
  html[data-theme="light"] .price-wrap .price-single{
    border-color: rgba(139,95,165,.30);
    background: rgba(255,255,255,.74);
    color:#3f3056;
    font-weight:700;
  }
}

@media (max-width: 700px){
  footer{
    padding:14px 0 12px;
    border-top-color: rgba(255,255,255,.2);
    background: linear-gradient(180deg, rgba(16,22,40,.34), rgba(16,22,40,.24));
  }
  .footer-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap:8px 10px;
    align-items:start;
  }
  .footer-grid > div{
    min-width:0;
    padding:10px 11px;
    border-radius:12px;
    border:1px solid rgba(255,255,255,.16);
    background: rgba(18,26,45,.3);
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  .footer-grid > div:nth-child(1){
    order:3;
    grid-column:1 / -1;
    padding:8px 2px 0;
    border:0;
    border-top:1px solid rgba(255,255,255,.14);
    border-radius:0;
    background:transparent;
  }
  .footer-grid > div:nth-child(2){
    order:1;
  }
  .footer-grid > div:nth-child(3){
    order:2;
  }
  .footer-grid .small{
    font-size:12px;
    line-height:1.35;
  }
  .footer-grid > div:nth-child(3) .small{
    margin-bottom:3px;
  }
  footer .brand{
    gap:8px;
    margin-bottom:6px !important;
  }
  footer .brand .logo{
    width:34px;
    height:34px;
    border-radius:10px;
  }
  footer .notice{
    margin-top:6px !important;
    padding:6px 8px;
    border-radius:10px;
    font-size:11px;
    background: rgba(255,255,255,.04);
    border-color: rgba(255,255,255,.12);
    box-shadow:none;
    transform:none;
  }
  footer .notice:hover,
  footer .notice:focus-within{
    transform:none;
    box-shadow:none;
  }
  footer a[href^="tel:"],
  footer a[href^="mailto:"]{
    display:inline;
    min-height:0;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    text-decoration:underline;
    text-underline-offset:2px;
    word-break:break-word;
  }
  .footer-social{
    margin-top:6px;
    margin-bottom:4px;
  }
  .social-link{
    width:34px;
    height:34px;
    border-radius:10px;
  }
  footer .sep{
    margin:10px 0 8px;
  }
  footer .container > .small:last-child{
    text-align:center;
    font-size:11px;
    line-height:1.35;
  }
}

@media (max-width: 700px){
  html[data-theme="light"] footer{
    border-top-color: rgba(139,95,165,.24);
    background: linear-gradient(180deg, rgba(255,255,255,.78), rgba(242,232,250,.62));
  }
  html[data-theme="light"] .footer-grid > div{
    border-color: rgba(139,95,165,.2);
    background: rgba(255,255,255,.52);
  }
  html[data-theme="light"] .footer-grid > div:nth-child(1){
    border-top-color: rgba(139,95,165,.24);
    background:transparent;
  }
  html[data-theme="light"] footer .notice{
    border-color: rgba(139,95,165,.16);
    background: rgba(255,255,255,.62);
  }
  html[data-theme="light"] footer a[href^="tel:"],
  html[data-theme="light"] footer a[href^="mailto:"]{
    color:#4b3563;
  }
}

