/* =====================================================================
   ШОУРУМ: карусель и настройка — одна сцена
   Карусель = общий план. «Настроить» = наезд камеры на корпус, интерфейс
   карусели расходится, слева сверху — модель, внизу — док с настройками.
   ===================================================================== */

/* --- слои сцены ------------------------------------------------------ */
.scene-cam{position:absolute;inset:0;z-index:0;transform-origin:0 0;}
.cfg-scene{position:absolute;inset:0;z-index:2;transform-origin:0 0;opacity:0;visibility:hidden;pointer-events:none;}
#fit.cfg-live .cfg-scene{visibility:visible;}
.cfg-shot{position:absolute;left:0;top:0;width:0;height:0;
  /* края ближнего кадра растворяются в размытом общем плане */
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 24%,#000 77%,transparent 100%),linear-gradient(180deg,transparent 0,#000 13%,#000 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent 0,#000 24%,#000 77%,transparent 100%),linear-gradient(180deg,transparent 0,#000 13%,#000 100%);
  mask-composite:intersect;}
.cfg-img{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity .55s ease;}
.cfg-img.is-on{opacity:1;}

/* стрелки карусели: кадры переезда камеры к соседнему подиуму — поверх картинки карусели, «cover» как она */
.switch-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;opacity:0;pointer-events:none;}
.switch-canvas.is-on{opacity:1;}

/* настоящий пролёт камеры: кадры на canvas, затем чёткий финальный кадр в полный экран */
.flight-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:2;opacity:0;visibility:hidden;pointer-events:none;}
.flight-still{position:absolute;left:0;top:0;z-index:2;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease;}
#fit.flight-live .flight-canvas,#fit.flight-live .flight-still{visibility:visible;}
.flight-still.is-on{opacity:1;}
#fit.flight-live .cfg-vignette{background:radial-gradient(ellipse 70% 80% at var(--body-x,50%) var(--body-y,58%),transparent 45%,rgba(2,7,14,.5) 100%);}
html.cfg-full #fit{background:#04060c;}
.cfg-note{position:absolute;left:50%;bottom:84px;translate:-50% 0;max-width:calc(100% - 32px);padding:9px 14px;font:600 12px/1.4 var(--font);color:#dfe5ee;
  background:rgba(4,11,20,.82);border:1px solid rgba(255,223,1,.35);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);text-align:center;animation:cfgPaneIn .3s ease;}
.cfg-note[hidden]{display:none;}

/* свет: виньетка, оттенок фона под цвет корпуса, отблеск на полу */
.cfg-fx{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;transition:opacity .9s ease;}
#fit[data-mode="config"] .cfg-fx{opacity:1;transition-delay:.25s;}
.cfg-vignette{background:linear-gradient(to bottom,transparent 68%,rgba(3,7,13,.92) 100%),radial-gradient(ellipse 58% 74% at var(--body-x,50%) var(--body-y,58%),transparent 34%,rgba(2,7,14,.74) 100%);}
.cfg-hue{background-color:var(--cfg-tint,#2b3a57);mix-blend-mode:color;transition:opacity .9s ease,background-color .8s ease;
  -webkit-mask-image:radial-gradient(ellipse 26% 50% at var(--body-x,50%) var(--body-y,58%),rgba(0,0,0,.45) 0%,#000 100%);
  mask-image:radial-gradient(ellipse 26% 50% at var(--body-x,50%) var(--body-y,58%),rgba(0,0,0,.45) 0%,#000 100%);}
#fit[data-mode="config"] .cfg-hue{opacity:.72;}
.cfg-glow{background-color:var(--cfg-tint,#2b3a57);mix-blend-mode:screen;transition:opacity .9s ease,background-color .8s ease;
  -webkit-mask-image:radial-gradient(ellipse 34% 20% at var(--body-x,50%) calc(var(--body-y,58%) + 27%),#000 0%,transparent 70%);
  mask-image:radial-gradient(ellipse 34% 20% at var(--body-x,50%) calc(var(--body-y,58%) + 27%),#000 0%,transparent 70%);}
#fit[data-mode="config"] .cfg-glow{opacity:.34;}

/* --- полноэкранная настройка (десктоп с мышью) ------------------------- */
/* сцена занимает и место шапки; общий план остаётся в прежней рамке (#sceneCam), поэтому ничего не прыгает */
html.cfg-full #fit{height:100vh;height:100svh;margin-top:0;}
html.cfg-full #stage{margin-top:var(--cfg-offset,92px);}
/* кадр общего плана не обрезается рамкой: при наезде он закрывает весь экран даже на очень широких мониторах */
html.cfg-full .scene-fill{overflow:visible;}
html.cfg-full .scene-fill img{position:absolute;left:50%;top:50%;width:var(--plan-w);height:var(--plan-h);max-width:none;translate:-50% -50%;}
/* шапка сайта уезжает и выезжает, когда курсор у верхнего края */
/* уезжает той же кривой и за то же время, что и камера: сцена закрывает место шапки ровно с её скоростью */
html.cfg-header-away .global-header{transform:translateY(-100%);transition:transform 1.15s cubic-bezier(.65,0,.25,1),box-shadow .3s;}
html.cfg-header-away.cfg-settled .global-header{transition:transform .35s cubic-bezier(.6,0,.2,1),box-shadow .3s;}
html.cfg-header-away .global-header::after{content:"";position:absolute;left:0;right:0;top:100%;height:18px;}
html.cfg-header-away .global-header:hover,html.cfg-header-away .global-header:focus-within{transform:none;box-shadow:0 14px 40px rgba(0,0,0,.45);transition-duration:.28s;}

/* --- интерфейс карусели расходится в стороны --------------------------- */
#stage>.header,#stage>.cta-row,#stage>.col-left,#stage>.col-right,#stage>.current,#stage>.model-glow{
  transition:opacity .4s ease,transform .7s cubic-bezier(.6,0,.2,1);}
#stage>.pick{transition:translate .22s cubic-bezier(.2,.7,.3,1),border-color .22s,background .22s,color .22s,opacity .4s ease,transform .7s cubic-bezier(.6,0,.2,1);}
#fit[data-mode="config"] #stage>*{opacity:0;pointer-events:none;}
#fit[data-mode="config"] #stage>.header{transform:translateY(-40px);}
#fit[data-mode="config"] #stage>.pick-left,#fit[data-mode="config"] #stage>.col-left{transform:translateX(-70px);}
#fit[data-mode="config"] #stage>.pick-right,#fit[data-mode="config"] #stage>.col-right{transform:translateX(70px);}
#fit[data-mode="config"] #stage>.cta-row,#fit[data-mode="config"] #stage>.current{transform:translateY(46px);}
#fit[data-mode="config"] #toast{opacity:0;}
.unfold.is-loading{pointer-events:none;}
.unfold.is-loading::after{content:"";position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:#07101a;transform-origin:left;animation:cfgLoad 1.1s ease-in-out infinite;}
@keyframes cfgLoad{0%{transform:scaleX(0);opacity:1}80%{transform:scaleX(1);opacity:1}100%{transform:scaleX(1);opacity:0}}

/* --- интерфейс настройки: «нижний док» -------------------------------- */
/* модель крупно слева сверху, кнопки в правом верхнем углу, все настройки — в одной панели внизу */
.cfg-ui{position:absolute;inset:0;z-index:8;pointer-events:none;color:var(--text);font-family:var(--font);}
.cfg-ui[hidden]{display:none;}
.cfg-title,.cfg-corner>*,.cfg-dock,.cfg-sheet{pointer-events:auto;}

.cfg-title,.cfg-corner,.cfg-dock{opacity:0;transition:opacity .3s ease,transform .55s cubic-bezier(.2,.7,.2,1);}
.cfg-title{transform:translateY(-16px);}
.cfg-corner{transform:translateY(-10px);}
.cfg-dock{transform:translateY(24px);}
.cfg-ui.is-in .cfg-title,.cfg-ui.is-in .cfg-corner,.cfg-ui.is-in .cfg-dock{opacity:1;transform:none;}
.cfg-ui.is-in .cfg-title{transition-delay:.6s;}
.cfg-ui.is-in .cfg-corner{transition-delay:.7s;}
.cfg-ui.is-in .cfg-dock{transition-delay:.76s;}
.cfg-ui.is-settled .cfg-title,.cfg-ui.is-settled .cfg-corner,.cfg-ui.is-settled .cfg-dock{transition-delay:0s;}
/* «глаз»: спрятать панели и посмотреть на шлагбаум целиком */
.cfg-ui.ui-hidden .cfg-title{opacity:0;transform:translateY(-12px);pointer-events:none;}
.cfg-ui.ui-hidden .cfg-dock{opacity:0;transform:translateY(24px);pointer-events:none;}
.cfg-ui.ui-hidden .cfg-back{opacity:0;pointer-events:none;}
.cfg-back{transition:opacity .3s ease,border-color .2s,color .2s;}

.cfg-title{position:absolute;left:clamp(20px,2.6vw,40px);top:26px;max-width:min(560px,46vw);}
.cfg-kicker{color:#93a0b2;font:700 10px/1.2 var(--font);letter-spacing:.18em;text-transform:uppercase;text-shadow:0 1px 8px rgba(0,0,0,.7);}
.cfg-kicker span{color:var(--gold);}
.cfg-model{margin-top:10px;font:800 clamp(40px,4.6vw,72px)/.92 var(--font);letter-spacing:-.04em;text-shadow:0 4px 30px rgba(0,0,0,.6);}
.cfg-tag{margin-top:10px;color:#cfd6e2;font-size:14px;text-shadow:0 1px 8px rgba(0,0,0,.7);}
.cfg-specs{display:flex;flex-wrap:wrap;gap:18px;margin-top:18px;}
.cfg-specs div{border-left:2px solid var(--gold);padding-left:10px;}
.cfg-specs b{display:block;font-size:20px;font-weight:800;line-height:1.1;text-shadow:0 2px 10px rgba(0,0,0,.6);}
.cfg-specs small{color:#9aa6b8;font-size:11px;}

.cfg-corner{position:absolute;right:clamp(20px,2.6vw,40px);top:26px;display:flex;gap:8px;}
.cfg-icon-btn{min-width:44px;min-height:44px;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 13px;
  font:700 11px/1 var(--font);letter-spacing:.12em;text-transform:uppercase;color:#dbe2ec;background:rgba(3,10,19,.5);border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);cursor:pointer;}
.cfg-icon-btn svg{width:20px;height:20px;flex:none;}
.cfg-icon-btn:hover{color:var(--gold);border-color:var(--gold);}
.cfg-icon-btn[aria-pressed="true"]{color:var(--gold);border-color:rgba(255,223,1,.6);}
.cfg-icon-btn[hidden]{display:none;}

.cfg-dock{position:absolute;left:0;right:0;bottom:24px;width:min(980px,calc(100% - 40px));margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) auto;
  background:rgba(4,11,20,.66);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(14px) saturate(1.15);-webkit-backdrop-filter:blur(14px) saturate(1.15);box-shadow:0 18px 44px rgba(0,0,0,.34);}
.cfg-dock::before{content:"";position:absolute;left:-1px;top:-1px;width:64px;height:3px;background:var(--gold);}
.cfg-dock-main{min-width:0;padding:14px 20px 16px;}
.cfg-tabs{display:flex;gap:22px;margin-bottom:14px;border-bottom:1px solid rgba(255,255,255,.14);}
.cfg-tab{position:relative;padding:4px 0 11px;font:700 11px/1 var(--font);letter-spacing:.14em;text-transform:uppercase;color:#9aa6b8;background:none;border:0;cursor:pointer;transition:color .2s;}
.cfg-tab:hover{color:#fff;}
.cfg-tab.is-active{color:var(--gold);}
.cfg-tab.is-active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--gold);}
.cfg-tab[hidden]{display:none;}
.cfg-tab:focus-visible,.cfg-chips button:focus-visible,.cfg-swatch:focus-visible,.cfg-icon-btn:focus-visible,.cfg-done:focus-visible,.cfg-ghost:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}

.cfg-pane{display:flex;align-items:center;gap:26px;min-height:62px;}
.cfg-pane[hidden]{display:none;}
.cfg-pane.is-entering{animation:cfgPaneIn .32s cubic-bezier(.2,.7,.2,1);}
@keyframes cfgPaneIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.cfg-group{display:flex;flex-direction:column;gap:7px;}
.cfg-pane-title{font:700 10px/1.2 var(--font);letter-spacing:.16em;text-transform:uppercase;color:#a9b4c4;}
.cfg-pane-note{max-width:260px;color:#9aa6b8;font-size:12px;line-height:1.5;}
.cfg-pane-note[hidden]{display:none;}

.cfg-swatches{display:flex;gap:18px;}
.cfg-swatch-item{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:11px;color:#9aa6b8;}
.cfg-swatch-item:has([aria-checked="true"]){color:#fff;}
.cfg-swatch{position:relative;width:44px;height:44px;padding:0;border:0;background:var(--sw);cursor:pointer;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.28),inset 0 -10px 14px rgba(0,0,0,.22);transition:transform .2s;}
.cfg-swatch::after{content:"";position:absolute;inset:-6px;border:1.5px solid transparent;transition:border-color .2s;}
.cfg-swatch:hover{transform:translateY(-2px);}
.cfg-swatch[aria-checked="true"]::after{border-color:var(--gold);}

.cfg-chips{display:flex;flex-wrap:wrap;gap:6px;}
.cfg-chips button{min-height:36px;padding:0 14px;font:600 12px/1 var(--font);color:#d6dde7;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.17);cursor:pointer;white-space:nowrap;transition:color .18s,background .18s,border-color .18s;}
.cfg-chips button:hover{border-color:rgba(255,223,1,.6);}
.cfg-chips button[aria-checked="true"]{color:#07101a;background:var(--gold);border-color:var(--gold);}
.cfg-chips button[hidden]{display:none;}

.cfg-dock-cta{display:flex;flex-direction:column;justify-content:center;gap:10px;width:300px;padding:16px 20px;border-left:1px solid rgba(255,255,255,.14);background:rgba(3,8,15,.55);}
.cfg-summary{font:500 11px/1.5 var(--font);color:#b9c3d0;}
.cfg-done{min-height:46px;padding:0 30px;font:800 13px/1 var(--font);letter-spacing:.07em;text-transform:uppercase;color:#07101a;background:var(--gold);border:1px solid var(--gold);cursor:pointer;
  clip-path:polygon(0 0,calc(100% - 11px) 0,100% 11px,100% 100%,11px 100%,0 calc(100% - 11px));transition:filter .18s,transform .18s;}
.cfg-done:hover{filter:brightness(1.08);transform:translateY(-1px);}

.cfg-note{top:30px;bottom:auto;}
.cfg-sheet{position:absolute;right:max(20px,calc((100% - 980px)/2));bottom:calc(var(--dock-h,150px) + 36px);width:min(380px,calc(100% - 32px));padding:24px 24px 22px;
  background:rgba(4,11,20,.88);border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 24px 60px rgba(0,0,0,.45);
  animation:cfgSheetIn .38s cubic-bezier(.2,.7,.2,1);}
.cfg-sheet[hidden]{display:none;}
.cfg-sheet::before{content:"";position:absolute;left:-1px;top:-1px;width:64px;height:3px;background:var(--gold);}
@keyframes cfgSheetIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.cfg-sheet h2{margin-top:10px;font-size:30px;line-height:1;letter-spacing:-.03em;}
.cfg-spec{margin-top:18px;border-top:1px solid rgba(255,255,255,.1);}
.cfg-spec div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.08);font-size:13px;}
.cfg-spec dt{color:#8b97a8;}
.cfg-spec dd{color:#eef2f7;font-weight:700;text-align:right;}
.cfg-sheet-actions{display:flex;gap:10px;margin-top:20px;}
.cfg-sheet-actions .cfg-done{flex:1;padding:0 18px;}
.cfg-ghost{min-height:46px;padding:0 18px;font:600 12px/1 var(--font);color:#dbe2ec;background:transparent;border:1px solid rgba(255,255,255,.22);cursor:pointer;}
.cfg-ghost:hover{border-color:var(--gold);color:var(--gold);}

/* конфигурация, переданная в форму заявки */
.form-config{margin-top:24px;padding:12px 14px;border:1px solid rgba(255,223,1,.32);background:rgba(255,223,1,.05);color:#e7ecf2;font-size:13px;line-height:1.55;}
.form-config b{display:block;margin-bottom:4px;color:var(--gold);font-family:var(--font);font-weight:800;font-size:10px;letter-spacing:.14em;text-transform:uppercase;}

@media(max-width:1100px){
  .cfg-dock{grid-template-columns:1fr;}
  .cfg-dock-cta{width:auto;flex-direction:row;align-items:center;border-left:0;border-top:1px solid rgba(255,255,255,.14);}
  .cfg-summary{flex:1;}
}
/* --- телефон: название компактно, док на всю ширину внизу -------------- */
@media(max-width:800px){
  .cfg-title{left:14px;top:12px;max-width:calc(100% - 80px);}
  .cfg-model{margin-top:6px;font-size:30px;}
  .cfg-tag{margin-top:4px;font-size:12px;}
  .cfg-specs{display:none;}
  .cfg-corner{right:10px;top:10px;}
  .cfg-back span{display:none;}
  .cfg-dock{bottom:10px;width:calc(100% - 20px);}
  .cfg-dock-main{padding:10px 12px 12px;}
  .cfg-tabs{gap:14px;overflow-x:auto;scrollbar-width:none;margin-bottom:10px;}
  .cfg-tabs::-webkit-scrollbar{display:none;}
  .cfg-tab{flex:0 0 auto;font-size:10px;letter-spacing:.1em;padding:6px 0 10px;}
  .cfg-pane{flex-wrap:wrap;gap:12px;min-height:0;}
  .cfg-swatches{gap:14px;}
  .cfg-swatch{width:40px;height:40px;}
  .cfg-chips button{min-height:40px;padding:0 12px;}
  .cfg-group{flex-direction:row;align-items:center;justify-content:space-between;width:100%;gap:10px;}
  .cfg-dock-cta{padding:10px 12px;}
  .cfg-summary{display:none;}
  .cfg-done{flex:1;}
  .cfg-note{top:auto;bottom:calc(var(--dock-h,200px) + 20px);}
  .cfg-sheet{left:10px;right:10px;width:auto;bottom:calc(var(--dock-h,200px) + 20px);padding:20px 18px 18px;}
  .cfg-sheet h2{font-size:26px;}
  #fit[data-mode="config"] #stage>.header{transform:translateY(-24px);}
}

@media(prefers-reduced-motion:reduce){
  .cfg-title,.cfg-corner,.cfg-dock,.cfg-fx,.cfg-img,#stage>*{transition-duration:.01s!important;transition-delay:0s!important;}
  .cfg-pane.is-entering,.cfg-sheet{animation:none;}
}
