/* Footer System V1 — shared Commercial and Portfolio families.
   Build-time component ownership. No runtime injection and no legacy footer selectors. */
.site-footer {
  --footer-accent: #5de2ff;
  --footer-border: rgba(255,255,255,.09);
  --footer-muted: rgba(255,255,255,.58);
  position: relative !important;
  z-index: 1;
  overflow: hidden !important;
  padding: 0 !important;
  border-top: 1px solid var(--footer-border) !important;
  background:
    radial-gradient(circle at 50% 0%,rgba(93,226,255,.055),transparent 30%),
    linear-gradient(180deg,rgba(255,255,255,.012),rgba(255,255,255,.004));
}
.site-footer::before,
.site-footer::after { content: none !important; }
.site-footer__shell {
  width: min(100%,1600px);
  margin: 0 auto;
  padding: clamp(72px,8vw,118px) 40px 38px;
}
.site-footer__main {
  display: grid;
  grid-template-columns: minmax(0,1.16fr) minmax(360px,.84fr);
  gap: clamp(62px,7vw,112px);
  align-items: start;
}
.site-footer__eyebrow,
.site-footer__detail-group h3 {
  margin: 0 0 16px;
  color: rgba(173,238,255,.9);
  font-family: monospace;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.site-footer__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.site-footer__eyebrow::before {
  content: "";
  width: 38px;
  height: 1px;
  background: linear-gradient(90deg,rgba(93,226,255,.96),rgba(93,226,255,.12));
  box-shadow: 0 0 14px rgba(93,226,255,.24);
}
.site-footer__cta { min-width: 0; }
.site-footer__cta h2 {
  max-width: 12ch;
  margin: 0;
  color: #fff;
  font-size: clamp(42px,5vw,78px);
  font-weight: 900;
  line-height: .98;
  letter-spacing: -.055em;
  text-wrap: balance;
}
.site-footer__summary {
  max-width: 660px;
  margin: 24px 0 30px;
  color: var(--footer-muted);
  font-size: 16px;
  line-height: 1.72;
}
.site-footer__primary-action {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 24px;
  border: 1px solid rgba(93,226,255,.46);
  border-radius: 6px;
  color: #fff;
  background: rgba(93,226,255,.06);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
  text-decoration: none;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  transition: background .28s ease,border-color .28s ease,box-shadow .28s ease,transform .28s ease;
}
.site-footer__primary-action:hover,
.site-footer__primary-action:focus-visible {
  border-color: rgba(93,226,255,.76);
  background: rgba(93,226,255,.12);
  box-shadow: 0 0 30px rgba(93,226,255,.12),inset 0 1px 0 rgba(255,255,255,.08);
  transform: translateY(-1px);
}
.site-footer__details {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 44px;
  padding-top: 8px;
}
.site-footer__detail-group {
  display: grid;
  min-width: 0;
  align-content: start;
  justify-items: start;
  gap: 12px;
}
.site-footer__detail-group a,
.site-footer__socials a,
.site-footer__locale a {
  color: rgba(255,255,255,.72);
  text-decoration: none;
  transition: color .24s ease,text-shadow .24s ease;
}
.site-footer__detail-group a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  font-size: 14px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.site-footer__detail-group a:hover,
.site-footer__detail-group a:focus-visible,
.site-footer__socials a:hover,
.site-footer__socials a:focus-visible,
.site-footer__locale a:hover,
.site-footer__locale a:focus-visible {
  color: #fff;
  text-shadow: 0 0 16px rgba(93,226,255,.2);
}
.site-footer a:focus-visible {
  outline: 2px solid var(--footer-accent);
  outline-offset: 5px;
  border-radius: 3px;
}
.site-footer__brand-zone {
  display: grid;
  min-block-size: clamp(142px,13vw,220px);
  place-items: center;
  overflow: clip;
  isolation: isolate;
  margin: clamp(50px,6vw,84px) 0 18px;
  border-top: 1px solid rgba(255,255,255,.045);
  border-bottom: 1px solid rgba(255,255,255,.045);
}
.site-footer__watermark {
  position: static;
  display: block;
  max-inline-size: none;
  color: rgba(255,255,255,.042);
  text-shadow: 0 0 42px rgba(93,226,255,.075);
  font-size: clamp(92px,13.5vw,226px);
  font-weight: 900;
  letter-spacing: -.075em;
  line-height: .82;
  text-align: center;
  text-transform: uppercase;
  white-space: nowrap;
  pointer-events: none;
  user-select: none;
}
.site-footer__bottom {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  grid-template-areas: "logo socials locale" "copyright copyright copyright";
  gap: 20px 32px;
  align-items: center;
  padding-top: 20px;
}
.site-footer__logo {
  grid-area: logo;
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: 4px;
  color: rgba(255,255,255,.72);
  text-decoration: none;
  font-size: 16px;
  font-weight: 900;
  letter-spacing: -.04em;
}
.site-footer__logo strong { color: var(--footer-accent); font-weight: 900; }
.site-footer__socials {
  grid-area: socials;
  display: flex;
  min-width: 0;
  justify-content: center;
  gap: clamp(20px,2.6vw,38px);
}
.site-footer__socials a,
.site-footer__locale a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.site-footer__locale { grid-area: locale; }
.site-footer__locale a {
  min-width: 44px;
  justify-content: center;
  color: var(--footer-accent);
}
.site-footer__copyright {
  grid-area: copyright;
  margin: 0;
  color: rgba(255,255,255,.24);
  font-size: 10px;
  line-height: 1.5;
  letter-spacing: .12em;
  text-align: center;
  text-transform: uppercase;
}
.site-footer--contact .site-footer__main {
  grid-template-columns: minmax(0,1fr) minmax(420px,.82fr);
  gap: clamp(54px,6vw,96px);
}
.site-footer--contact .site-footer__cta h2 {
  max-width: 14ch;
  font-size: clamp(38px,4.4vw,66px);
}
.site-footer--contact .site-footer__brand-zone {
  min-block-size: clamp(112px,10vw,172px);
  margin-top: clamp(40px,5vw,68px);
}
.site-footer--about .site-footer__cta h2 { max-width: 13ch; }
@media (max-width:980px) {
  .site-footer__shell { padding-left: 24px; padding-right: 24px; }
  .site-footer__main,
  .site-footer--contact .site-footer__main { grid-template-columns: 1fr; gap: 50px; }
  .site-footer__cta h2 { max-width: 13ch; }
  .site-footer__details { max-width: 720px; }
}
@media (max-width:700px) {
  .site-footer__shell { padding: 70px 22px calc(30px + env(safe-area-inset-bottom)); }
  .site-footer__main { gap: 42px; }
  .site-footer__eyebrow { gap: 10px; }
  .site-footer__eyebrow::before { width: 30px; }
  .site-footer__cta h2,
  .site-footer--contact .site-footer__cta h2 {
    max-width: 12ch;
    font-size: clamp(38px,11.6vw,56px);
    line-height: 1;
  }
  .site-footer__summary { margin-top: 20px; font-size: 15px; }
  .site-footer__primary-action { width: 100%; }
  .site-footer__details { grid-template-columns: 1fr; gap: 28px; }
  .site-footer__detail-group { padding-top: 22px; border-top: 1px solid rgba(255,255,255,.07); }
  .site-footer__brand-zone,
  .site-footer--contact .site-footer__brand-zone {
    min-block-size: 80px;
    margin: 38px 0 12px;
    overflow: hidden;
  }
  .site-footer__watermark {
    width: 100%;
    max-width: 100%;
    font-size: clamp(40px,11.8vw,54px);
    line-height: .88;
  }
  .site-footer__bottom {
    grid-template-columns: 1fr auto;
    grid-template-areas: "logo locale" "socials socials" "copyright copyright";
    gap: 14px 20px;
  }
  .site-footer__socials { justify-content: flex-start; flex-wrap: wrap; gap: 2px 22px; }
  .site-footer__copyright { text-align: left; }
}
@media (max-height:540px) and (orientation:landscape) {
  .site-footer__shell { padding: 46px 24px 24px; }
  .site-footer__main,
  .site-footer--contact .site-footer__main {
    grid-template-columns: minmax(0,1.08fr) minmax(320px,.92fr);
    gap: 32px;
  }
  .site-footer__cta h2,
  .site-footer--contact .site-footer__cta h2 { max-width: 15ch; font-size: clamp(34px,6.4vw,48px); }
  .site-footer__summary { margin: 16px 0 20px; font-size: 14px; line-height: 1.55; }
  .site-footer__details { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; }
  .site-footer__detail-group a { min-height: 44px; font-size: 13px; }
  .site-footer__brand-zone,
  .site-footer--contact .site-footer__brand-zone { min-block-size: 68px; margin: 28px 0 8px; }
  .site-footer__watermark { width: auto; max-width: none; font-size: clamp(50px,10vw,76px); }
  .site-footer__bottom { gap: 10px 22px; padding-top: 14px; }
}
@media (prefers-reduced-motion:reduce) {
  .site-footer *,
  .site-footer *::before,
  .site-footer *::after {
    scroll-behavior: auto;
    transition-duration: .01ms;
    animation: none;
  }
}
@media (forced-colors:active) {
  .site-footer__watermark { display: none; }
  .site-footer__primary-action,
  .site-footer a:focus-visible {
    border: 1px solid CanvasText;
    outline-color: Highlight;
  }
}

/* Footer System V1 — Portfolio family. */
.site-footer--portfolio {
  background:
    radial-gradient(circle at 72% 0%,rgba(93,226,255,.045),transparent 28%),
    linear-gradient(180deg,rgba(255,255,255,.01),rgba(255,255,255,.003));
}
.site-footer--portfolio .site-footer__summary { max-width: 620px; }
.site-footer--portfolio .site-footer__brand-zone {
  min-block-size: clamp(104px,9vw,156px);
  margin-top: clamp(42px,5vw,68px);
}
.site-footer--portfolio .site-footer__watermark {
  font-size: clamp(72px,10.4vw,174px);
  color: rgba(255,255,255,.038);
}
@media (min-width:981px) {
  .site-footer--portfolio .site-footer__shell { padding-top: clamp(58px,6vw,88px); }
  .site-footer--portfolio .site-footer__main {
    grid-template-columns: minmax(0,1.08fr) minmax(360px,.92fr);
    gap: clamp(54px,6vw,92px);
  }
  .site-footer--portfolio .site-footer__cta h2 {
    max-width: 15ch;
    font-size: clamp(38px,4.4vw,64px);
    line-height: 1;
  }
}
@media (max-width:700px) {
  .site-footer--portfolio .site-footer__cta h2 {
    max-width: 13ch;
    font-size: clamp(36px,10.6vw,50px);
  }
  .site-footer--portfolio .site-footer__brand-zone {
    min-block-size: 76px;
    margin-top: 34px;
  }
  .site-footer--portfolio .site-footer__watermark {
    width: 100%;
    max-width: 100%;
    font-size: clamp(38px,11.2vw,52px);
  }
}
@media (max-height:540px) and (orientation:landscape) {
  .site-footer--portfolio .site-footer__cta h2 {
    max-width: 16ch;
    font-size: clamp(31px,5.7vw,43px);
  }
  .site-footer--portfolio .site-footer__brand-zone {
    min-block-size: 62px;
    margin-top: 24px;
  }
  .site-footer--portfolio .site-footer__watermark {
    width: auto;
    max-width: none;
    font-size: clamp(46px,8.8vw,68px);
  }
}

/* Portfolio Russian title readability. */
.site-footer--portfolio:lang(ru) .site-footer__cta h2 {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}
@media (max-width:700px) {
  .site-footer--portfolio:lang(ru) .site-footer__cta h2 {
    max-width: 100%;
    font-size: clamp(32px,9.2vw,40px);
    line-height: 1.04;
  }
}

/* Footer System V1 — Editorial family. */
.site-footer--editorial { background:radial-gradient(circle at 28% 0%,rgba(184,182,236,.04),transparent 30%),linear-gradient(180deg,rgba(255,255,255,.009),rgba(255,255,255,.003)); }
.site-footer--editorial .site-footer__summary { max-width:620px; }
.site-footer--editorial .site-footer__brand-zone { min-block-size:clamp(96px,8vw,144px); margin-top:clamp(38px,4.6vw,62px); }
.site-footer--editorial .site-footer__watermark { font-size:clamp(68px,9.6vw,160px); color:rgba(255,255,255,.036); }
@media (min-width:981px) {
  .site-footer--editorial .site-footer__shell { padding-top:clamp(54px,5.7vw,82px); }
  .site-footer--editorial .site-footer__main { grid-template-columns:minmax(0,1.06fr) minmax(360px,.94fr); gap:clamp(50px,5.7vw,86px); }
  .site-footer--editorial .site-footer__cta h2 { max-width:15ch; font-size:clamp(36px,4.1vw,60px); line-height:1; }
}
@media (max-width:700px) {
  .site-footer--editorial .site-footer__cta h2 { max-width:14ch; font-size:clamp(34px,9.8vw,46px); }
  .site-footer--editorial .site-footer__brand-zone { min-block-size:74px; margin-top:32px; }
  .site-footer--editorial .site-footer__watermark { width:100%; max-width:100%; font-size:clamp(38px,11vw,50px); }
}
@media (max-height:540px) and (orientation:landscape) {
  .site-footer--editorial .site-footer__cta h2 { max-width:16ch; font-size:clamp(30px,5.4vw,41px); }
  .site-footer--editorial .site-footer__brand-zone { min-block-size:60px; margin-top:22px; }
  .site-footer--editorial .site-footer__watermark { width:auto; max-width:none; font-size:clamp(44px,8.4vw,64px); }
}
.site-footer--editorial:lang(ru) .site-footer__cta h2 { overflow-wrap:normal; word-break:normal; hyphens:none; }
@media (max-width:700px) { .site-footer--editorial:lang(ru) .site-footer__cta h2 { max-width:100%; font-size:clamp(31px,8.9vw,39px); line-height:1.04; } }
