/* =============================================================
   MODEL/ — общая ДНК бренд-системы ModelCompany
   Один и тот же типографический и композиционный каркас для трёх сайтов.
   Различается только «режиссура»: палитра, ритм, композиция, motion.
   ============================================================= */

/* Inter Tight — гротеск всей экосистемы */
/* Playfair Display — акцентная антиква (в ModelLocation используется минимально) */


/* ─── Общие для экосистемы примитивы ─── */
:root{
  --sans:'Inter Tight',ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --serif:'Playfair Display',Georgia,serif;
  --mono:ui-monospace,SFMono-Regular,'SF Mono',Menlo,Consolas,monospace;

  --fs-dsp-xl:clamp(2.75rem,8.6vw,7.4rem);
  --fs-dsp:clamp(2.3rem,5.6vw,5.2rem);
  --fs-lead:clamp(1.05rem,1.2vw,1.3rem);
  --fs-body:clamp(.95rem,.95vw,1.06rem);
  --fs-label:.715rem;

  --pad:clamp(20px,5vw,80px);
  --shell:min(1320px,100% - var(--pad) * 2);
  --sec:clamp(84px,9.5vw,164px);
  --ease:cubic-bezier(.16,.84,.28,1);
}

*,*::before,*::after{box-sizing:border-box}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:2px solid var(--clay-lit);outline-offset:5px}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);font-size:var(--fs-body);line-height:1.6;letter-spacing:-.005em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,picture,svg{display:block;max-width:100%}
picture img{width:100%;height:auto}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
.shell{width:var(--shell);margin-inline:auto}
.mono{font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.svg-defs{position:absolute;width:0;height:0}

/* Заголовки и маска-раскрытие строк — общий приём всех трёх сайтов */
.dsp{font-size:var(--fs-dsp);line-height:1.08;letter-spacing:-.045em;font-weight:700;text-wrap:balance}
.dsp em,h1 em,h2 em{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.015em}
.ln{display:block}
.ln>span{display:block}
/* Reveal is enabled only after the observer has been installed successfully. */
.motion-ready :is(.rv,.rv-head):not(.is-in){opacity:0;transform:translateY(18px)}
.motion-ready :is(.rv,.rv-head){transition:opacity .65s var(--ease),transform .65s var(--ease)}
.motion-ready :is(.rv,.rv-head).is-in{opacity:1;transform:none}

/* Маркировка MODEL/ — единый знак экосистемы */
.brand{display:inline-flex;align-items:center;gap:11px}
.brand__mark{width:26px;display:grid;gap:3px;flex:none}
.brand__mark i{display:block;height:4px;background:var(--accent);transition:width .5s var(--ease)}
.brand__mark i:nth-child(1){width:26px}
.brand__mark i:nth-child(2){width:20px;margin-left:auto}
.brand__mark i:nth-child(3){width:13px;margin-left:auto}
.brand:hover .brand__mark i:nth-child(2){width:26px}
.brand:hover .brand__mark i:nth-child(3){width:20px}
.brand__name{font-size:.86rem;font-weight:700;letter-spacing:.14em}
.brand__name span{color:var(--accent)}

/* Кнопки и ссылки — одинаковая механика, разный цвет */
.btn{display:inline-flex;align-items:center;gap:32px;min-height:56px;padding:15px 22px;border:0;cursor:pointer;font-size:.92rem;font-weight:600;color:var(--on-accent);background:var(--accent);transition:background .3s var(--ease),color .3s var(--ease)}
.btn svg{width:15px;height:15px;flex:none;transition:transform .35s var(--ease)}
.btn:hover{background:var(--ink)}
.btn:hover svg{transform:translate(3px,-3px)}
.btn--sm{min-height:44px;padding:11px 16px;gap:18px;font-size:.82rem}
.tlink{display:inline-flex;align-items:center;gap:10px;padding-bottom:6px;font-size:.92rem;font-weight:600;background-image:linear-gradient(currentColor,currentColor);background-size:100% 1px;background-position:0 100%;background-repeat:no-repeat;transition:background-size .45s var(--ease)}
.tlink svg{width:14px;height:14px;flex:none;transition:transform .35s var(--ease)}
.tlink:hover{background-size:0% 1px}
.tlink:hover svg{transform:translate(3px,-3px)}

/* Нумерация разделов и надзаголовки */
.eyebrow{display:flex;align-items:center;gap:12px;margin:0 0 22px;font-size:var(--fs-label);font-weight:600;letter-spacing:.17em;text-transform:uppercase;color:var(--accent)}
.eyebrow::before{content:'';width:26px;height:1px;background:currentColor;flex:none}
.idx{display:block;font-family:var(--mono);font-size:.76rem;letter-spacing:.2em;opacity:.6;margin-bottom:18px}
.sec-head{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);gap:clamp(32px,5vw,90px);align-items:end;padding-bottom:clamp(44px,5vw,78px)}
.sec-head>.idx{grid-column:1 / -1;margin-bottom:0}
.sec-head__note{font-size:.98rem;line-height:1.62;opacity:.7;max-width:38ch}

/* Общий блок перехода между направлениями */
.eco{padding:clamp(50px,6vw,96px) 0;border-top:1px solid var(--rule)}
.eco__links{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--rule)}
.eco__link{display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px 20px;padding:clamp(22px,2.4vw,32px) clamp(18px,2vw,28px) clamp(22px,2.4vw,32px) 0;border-bottom:1px solid var(--rule);transition:padding-left .35s var(--ease)}
.eco__link:first-child{border-right:1px solid var(--rule)}
.eco__link:hover{padding-left:16px}
.eco__mark{grid-column:1;grid-row:1;font-size:.92rem;font-weight:700;letter-spacing:.13em}
.eco__text{grid-column:1;grid-row:2;font-size:.92rem;opacity:.65;line-height:1.5}
.eco__link svg{grid-column:2;grid-row:1 / 3;justify-self:end;align-self:center;width:17px;height:17px;transition:transform .35s var(--ease)}
.eco__link:hover svg{transform:translate(3px,-3px)}

/* Подвал */
.ftr{padding:clamp(40px,4.5vw,64px) 0;border-top:1px solid var(--rule);font-size:.84rem}
.ftr__in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;opacity:.7}

/* Шапка */
.hdr{position:fixed;z-index:100;inset:0 0 auto;transition:background .4s var(--ease),border-color .4s var(--ease);border-bottom:1px solid transparent}
.hdr.is-solid{background:var(--header-bg);backdrop-filter:blur(14px);border-bottom-color:var(--rule)}
.hdr__in{height:var(--header-height,76px);display:flex;align-items:center;justify-content:space-between;gap:20px}
.nav{display:flex;align-items:center;gap:clamp(16px,2.4vw,36px)}
.nav a{font-size:.86rem;font-weight:500}
.nav a:hover{color:var(--accent)}

.preview-flag{position:fixed;z-index:200;left:0;bottom:0;padding:8px 14px;background:var(--accent);color:var(--on-accent);font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase}

@media (max-width:1000px){
  .eco__links{grid-template-columns:1fr}
  .eco__link:first-child{border-right:0}
  .sec-head{grid-template-columns:1fr;gap:22px;align-items:start}
  .nav{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
  html{scroll-behavior:auto!important}
  .rv,.rv-head{opacity:1 !important;transform:none !important}
  .ln>span{transform:none !important}
}
