.masthead {
  position: relative;
  padding-block: clamp(32px, 5vw, 72px) var(--section-pad-sm);
  border-bottom: var(--rule-key);
}
.masthead__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-7) var(--col-gap);
  align-items: end;
}
@media (min-width: 1024px) {
  .masthead__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--s-8) var(--col-gap); }
}
.masthead__copy { display: flex; flex-direction: column; gap: var(--s-5); min-width: 0; }
.masthead__copy h1 { max-width: 15ch; }
.masthead__lede { font-size: var(--fs-lede); line-height: 1.45; color: var(--slate); max-width: 44ch; }
.masthead__actions { display: flex; flex-wrap: wrap; gap: var(--s-3); padding-top: var(--s-2); }
.masthead__media { min-width: 0; }
.masthead__media .frame__media { aspect-ratio: 3 / 2; }
.masthead__index {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: var(--s-7);
  border-top: var(--hair);
}
@media (min-width: 720px) { .masthead__index { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.masthead__index > div {
  min-width: 0;
  padding: var(--s-3) var(--s-3) var(--s-3) 0;
  border-bottom: var(--hair);
  font-family: var(--haso-c4f);
  font-size: var(--fs-micro);
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--steel);
}
.masthead__index strong { display: block; margin-top: 2px; font-weight: 500; color: var(--ink); font-size: var(--fs-meta); }

.page-head {
  padding-block: var(--s-6) var(--section-pad-sm);
  border-bottom: var(--rule-key);
}
.page-head__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-7) var(--col-gap);
  margin-top: var(--s-6);
  align-items: end;
}
@media (min-width: 1024px) {
  .page-head__grid { grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); }
  .page-head--text .page-head__grid { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); }
}
.page-head__copy { display: flex; flex-direction: column; gap: var(--s-5); min-width: 0; }
.page-head__copy h1 { font-size: clamp(2rem, 1.2rem + 3.6vw, 4.4rem); max-width: 17ch; }
.page-head__media .frame__media { aspect-ratio: 3 / 2; }
.page-head__aside {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  padding-left: var(--s-4);
  border-left: var(--rule-signal);
  min-width: 0;
}
.page-head__price {
  font-family: var(--haso-c4f);
  font-size: var(--fs-small);
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.page-head__price small { display: block; color: var(--steel); font-size: var(--fs-micro); letter-spacing: 0.05em; text-transform: uppercase; margin-top: 4px; }

.section-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-5) var(--col-gap);
  margin-bottom: var(--s-8);
}
@media (min-width: 1024px) {
  .section-head { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: end; }
}
.section-head .opener { min-width: 0; }
.section-head__note { color: var(--slate); max-width: 44ch; min-width: 0; }
.section--deep .section-head__note { color: var(--deep-text); }
.konfig__weeks { position: relative; display: block; margin-top: var(--s-2); line-height: 1.1; }
.table-wrap { position: relative; }
.table-note { position: relative; z-index: 1; margin-top: var(--s-4); }

.dir-section { padding-block: var(--section-pad-sm) var(--section-pad); }
.dir-section__intro {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--s-3) var(--s-6);
  margin-bottom: var(--s-5);
}
.dir-section__intro p { color: var(--slate); max-width: 52ch; }

.scrolly { position: relative; }
.scrolly__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-7) var(--col-gap);
}
.scrolly__sticky { min-width: 0; }
.scrolly__figs { display: grid; gap: var(--s-6); }
.scrolly__fig { margin: 0; min-width: 0; }
.scrolly__fig img, .scrolly__fig svg { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.scrolly__fig figcaption { color: inherit; opacity: 0.85; }
.section--deep .scrolly__fig figcaption { color: var(--deep-meta); }
.section--deep .scrolly__fig .fig__num { color: var(--signal-hi); }
.scrolly__diagram { background: var(--deep-2); border: 1px solid var(--deep-rule); }
.scrolly__diagram text { font-family: var(--haso-c4f); fill: var(--deep-text); }
.scrolly__steps { display: flex; flex-direction: column; min-width: 0; }
.scrolly__step {
  position: relative;
  padding: var(--s-6) 0 var(--s-6) var(--s-6);
  border-left: 1px solid var(--rule);
  transition: border-color var(--dur-3) var(--ease-out), opacity var(--dur-3) var(--ease-out);
}
.section--deep .scrolly__step { border-left-color: var(--deep-rule); }
.scrolly__step::before {
  content: "";
  position: absolute;
  left: -1px;
  top: var(--s-6);
  width: 2px;
  height: 0;
  background: var(--signal);
  transition: height var(--dur-4) var(--ease-out);
}
.scrolly__step.is-active::before { height: calc(100% - var(--s-6) * 2); }
.scrolly__step-num {
  display: block;
  margin-bottom: var(--s-3);
  font-family: var(--haso-c4f);
  font-size: var(--fs-meta);
  letter-spacing: var(--track-meta);
  text-transform: uppercase;
  color: var(--steel);
}
.section--deep .scrolly__step-num { color: var(--signal-hi); }
.scrolly__step h3 { margin-bottom: var(--s-3); max-width: 26ch; }
.scrolly__step p + p { margin-top: var(--s-3); }
.section--deep .scrolly__step p { color: var(--deep-text); }
.scrolly__step .meta { margin-top: var(--s-4); }

@media (min-width: 900px) {
  .scrolly__grid { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: var(--s-8) clamp(32px, 5vw, 88px); }
  .scrolly__sticky {
    position: sticky;
    top: calc(var(--header-h) + 32px);
    align-self: start;
  }
  .js .scrolly__figs { display: grid; grid-template-areas: "stack"; gap: 0; }
  .js .scrolly__fig {
    grid-area: stack;
    opacity: 0;
    visibility: hidden;
    transition: opacity var(--dur-4) var(--ease-out), visibility 0s linear var(--dur-4);
  }
  .js .scrolly__fig.is-active,
  .js .scrolly__figs:not(:has(.is-active)) .scrolly__fig:first-child {
    opacity: 1;
    visibility: visible;
    transition: opacity var(--dur-4) var(--ease-out), visibility 0s linear 0s;
  }
  .scrolly__step { min-height: 62vh; display: flex; flex-direction: column; justify-content: center; }
  .js .scrolly__step:not(.is-active) { opacity: 0.42; }
  .js .scrolly__steps:not(:has(.is-active)) .scrolly__step:first-child { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .scrolly__sticky { position: static !important; }
  .js .scrolly__figs { grid-template-areas: none !important; gap: var(--s-6) !important; }
  .js .scrolly__fig { grid-area: auto !important; opacity: 1 !important; visibility: visible !important; }
  .js .scrolly__step { opacity: 1 !important; min-height: 0 !important; }
}

.figures { padding-block: var(--section-pad); }
.figures__panel { --frame-pad: clamp(18px, 3vw, 40px); }
.figures__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  border-top: var(--rule-key);
}
@media (min-width: 560px) { .figures__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .figures__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.figure-cell {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  min-width: 0;
  padding: var(--s-6) var(--s-4) var(--s-6) 0;
  border-bottom: var(--hair);
}
@media (min-width: 560px) {
  .figure-cell { padding-left: var(--s-4); border-left: var(--hair); }
  .figure-cell:nth-child(2n + 1) { border-left: 0; padding-left: 0; }
}
@media (min-width: 1024px) {
  .figure-cell:nth-child(2n + 1) { border-left: var(--hair); padding-left: var(--s-4); }
  .figure-cell:first-child { border-left: 0; padding-left: 0; }
}
.figure-cell .figure-num { color: var(--ink); overflow-wrap: anywhere; }
.figure-cell .figure-num sup { font-size: 0.4em; vertical-align: top; color: var(--signal-press); margin-left: 2px; letter-spacing: 0; }
.figure-cell p { font-size: var(--fs-small); color: var(--slate); max-width: 28ch; }
.figure-cell .meta { color: var(--steel); }

.inquiry-strip { padding-block: var(--section-pad-sm); background: var(--panel); border-top: var(--rule-key); }
.inquiry-strip__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-7) var(--col-gap);
}
@media (min-width: 1024px) { .inquiry-strip__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }
.inquiry-strip__copy { display: flex; flex-direction: column; gap: var(--s-4); min-width: 0; }
.inquiry-strip__copy h2 { max-width: 18ch; }
.inquiry-strip .form { background: var(--paper); padding: clamp(16px, 3vw, 32px); border-top: 2px solid var(--signal); }

.compare-wrap { margin-top: var(--s-6); }
.compare { min-width: 860px; }
.compare tbody th { min-width: 14ch; }
.compare tbody th a { color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--rule); transition: border-color var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out); }
.compare tbody th a:hover { border-bottom-color: var(--signal); color: var(--slate); }
.compare tbody th a:active { color: var(--signal-press); }
.compare tbody th a:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.compare td:last-child { font-family: var(--haso-c4f); font-size: var(--fs-meta); color: var(--ink); }
.table-note { margin-top: var(--s-3); font-family: var(--haso-c4f); font-size: var(--fs-micro); letter-spacing: 0.05em; text-transform: uppercase; color: var(--steel); max-width: 80ch; }

.cat-list { border-top: var(--rule-key); }
.cat-list .item:first-child { border-top: 0; }
.cat-list .item__body h3 a { text-decoration: none; color: var(--ink); background-image: linear-gradient(var(--signal), var(--signal)); background-size: 0 2px; background-position: 0 100%; background-repeat: no-repeat; transition: background-size var(--dur-2) var(--ease-out); }
.cat-list .item__body h3 a:hover { background-size: 100% 2px; }
.cat-list .item__body h3 a:active { color: var(--slate); }
.cat-list .item__body h3 a:focus-visible { outline: 2px solid var(--signal); outline-offset: 3px; }
.item__for { font-size: var(--fs-small); color: var(--slate); }
.item__for strong { font-family: var(--haso-c4f); font-size: var(--fs-micro); letter-spacing: 0.07em; text-transform: uppercase; color: var(--steel); font-weight: 500; margin-right: 6px; }

.facts {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  border-top: var(--rule-key);
  list-style: none;
  margin: 0;
  padding: 0;
}
@media (min-width: 640px) { .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .facts--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.facts > li {
  min-width: 0;
  padding: var(--s-5) var(--s-5) var(--s-5) 0;
  border-bottom: var(--hair);
}
.facts h3 { font-size: var(--fs-h4); margin-bottom: var(--s-2); }
.facts p { font-size: var(--fs-small); color: var(--slate); }
.facts__k { display: block; margin-bottom: var(--s-2); font-family: var(--haso-c4f); font-size: var(--fs-micro); letter-spacing: var(--track-meta); text-transform: uppercase; color: var(--signal-press); }

.media-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-7) var(--col-gap);
  align-items: start;
}
@media (min-width: 900px) {
  .media-split { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
  .media-split--rev { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .media-split--rev > .fig, .media-split--rev > .frame { order: 2; }
}
.media-split .fig img { aspect-ratio: 3 / 2; object-fit: cover; }
.media-split__text { display: flex; flex-direction: column; gap: var(--s-4); min-width: 0; }

.wide-fig { margin-block: var(--s-8) 0; }
.wide-fig img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; }
@media (max-width: 640px) { .wide-fig img { aspect-ratio: 3 / 2; } }

.deviation {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  border: 1px solid var(--ink);
  background: var(--white);
}
@media (min-width: 720px) { .deviation { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); } }
details:not([open]) > :not(summary) { display: none; }
.deviation__head { padding: var(--s-5); background: var(--ink); color: var(--paper); display: flex; flex-direction: column; gap: var(--s-3); min-width: 0; }
.deviation__head .kicker { color: var(--deep-meta); }
.deviation__head h3 { color: var(--white); }
.deviation__body { padding: var(--s-5); min-width: 0; }
.deviation__body dl { display: grid; grid-template-columns: minmax(0, 1fr); margin: 0; }
.deviation__body dl > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px var(--s-4); padding: 10px 0; border-bottom: var(--hair); }
.deviation__body dt { font-family: var(--haso-c4f); font-size: var(--fs-micro); letter-spacing: 0.07em; text-transform: uppercase; color: var(--steel); }
.deviation__body dd { margin: 0; font-family: var(--haso-c4f); font-size: var(--fs-small); color: var(--ink); }

.konfig { padding-block: var(--section-pad-sm) var(--section-pad); }
.konfig__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-8) var(--col-gap);
  align-items: start;
}
@media (min-width: 1024px) { .konfig__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }
.konfig__options { display: flex; flex-direction: column; gap: 0; min-width: 0; border-top: var(--rule-key); }
.konfig__step {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-3);
  padding-block: var(--s-5);
  border-bottom: var(--hair);
}
@media (min-width: 720px) { .konfig__step { grid-template-columns: 3em minmax(0, 1fr); gap: var(--s-4); } }
.konfig__step-num { font-family: var(--haso-c4f); font-size: var(--fs-meta); color: var(--steel); letter-spacing: 0.04em; padding-top: 2px; }
.konfig__hint { margin-top: var(--s-2); font-size: var(--fs-small); color: var(--steel); max-width: 56ch; }
.konfig__range-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--s-4); }
.konfig__range-val {
  min-width: 3.4em;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 10px;
  border: 1px solid var(--ink);
  font-family: var(--haso-c4f);
  font-size: 1rem;
  font-variant-numeric: tabular-nums;
  background: var(--white);
}
.konfig__scale { display: flex; justify-content: space-between; font-family: var(--haso-c4f); font-size: var(--fs-micro); color: var(--steel); }
.konfig__result { min-width: 0; }
@media (min-width: 1024px) { .konfig__result { position: sticky; top: calc(var(--header-h) + 24px); } }
.konfig__panel { background: var(--white); --frame-pad: clamp(16px, 2.4vw, 28px); }
.konfig__out { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: var(--rule-key); }
.konfig__out > div { min-width: 0; padding: var(--s-4) var(--s-3) var(--s-4) 0; border-bottom: var(--hair); }
.konfig__out > div + div { padding-left: var(--s-3); border-left: var(--hair); }
.konfig__out > .konfig__out-wide { grid-column: 1 / -1; padding-left: 0; border-left: 0; }
.konfig__label { display: block; font-family: var(--haso-c4f); font-size: var(--fs-micro); letter-spacing: var(--track-meta); text-transform: uppercase; color: var(--steel); margin-bottom: 6px; }
.konfig__value {
  display: block;
  font-family: var(--haso-77c);
  font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.6rem);
  font-weight: 600;
  line-height: 1.05;
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  overflow-wrap: anywhere;
}
.konfig__value small { font-family: var(--haso-c4f); font-size: 0.4em; letter-spacing: 0.04em; color: var(--slate); font-weight: 500; margin-left: 4px; }
.konfig__value--range { font-size: clamp(1.25rem, 1rem + 1.1vw, 1.9rem); }
.konfig__value.is-updated { color: var(--signal-press); }
.konfig__impl { list-style: none; margin: var(--s-4) 0 0; padding: 0; }
.konfig__impl li {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2px;
  padding: 10px 0;
  border-bottom: var(--hair);
  font-size: var(--fs-small);
  color: var(--ink);
}
@media (min-width: 420px) { .konfig__impl li { grid-template-columns: 9em minmax(0, 1fr); gap: var(--s-3); } }
.konfig__impl li > span:first-child { font-family: var(--haso-c4f); font-size: var(--fs-micro); letter-spacing: 0.06em; text-transform: uppercase; color: var(--steel); padding-top: 3px; }
.konfig__warn { list-style: none; margin: var(--s-4) 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.konfig__warn li {
  padding: 10px var(--s-3);
  border-left: 2px solid var(--danger);
  background: var(--danger-wash);
  font-size: var(--fs-small);
  color: var(--ink);
}
.konfig__warn:empty { display: none; }
.konfig__disclaimer {
  margin-top: var(--s-4);
  padding-top: var(--s-3);
  border-top: var(--hair);
  font-family: var(--haso-c4f);
  font-size: var(--fs-micro);
  letter-spacing: 0.04em;
  line-height: 1.55;
  color: var(--slate);
}
.konfig__actions { display: flex; flex-wrap: wrap; gap: var(--s-3); margin-top: var(--s-5); }
.konfig__send { scroll-margin-top: calc(var(--header-h) + 24px); }
.konfig__spec-preview { margin-top: var(--s-3); padding: var(--s-3) var(--s-4); background: var(--panel); border-left: var(--rule-signal); font-family: var(--haso-c4f); font-size: var(--fs-micro); line-height: 1.6; color: var(--slate); white-space: pre-wrap; overflow-wrap: anywhere; }

.steps { list-style: none; margin: 0; padding: 0; border-top: var(--rule-key); counter-reset: step; }
.steps__item {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-3) var(--col-gap);
  padding-block: var(--s-6);
  border-bottom: var(--hair);
}
@media (min-width: 900px) { .steps__item { grid-template-columns: minmax(0, 1fr) minmax(0, 5fr) minmax(0, 4fr); } }
.steps__num { font-family: var(--haso-77c); font-size: clamp(2rem, 1.4rem + 2vw, 3.4rem); font-weight: 600; line-height: 1; letter-spacing: -0.04em; color: var(--steel); font-variant-numeric: tabular-nums; }
.steps__item:hover .steps__num { color: var(--signal); }
.steps__num { transition: color var(--dur-2) var(--ease-out); }
.steps__main { display: flex; flex-direction: column; gap: var(--s-3); min-width: 0; }
.steps__client { min-width: 0; padding: var(--s-4); background: var(--paper-2); border-left: var(--rule-signal); font-size: var(--fs-small); color: var(--slate); }
.steps__client strong { display: block; margin-bottom: 4px; font-family: var(--haso-c4f); font-size: var(--fs-micro); letter-spacing: var(--track-meta); text-transform: uppercase; color: var(--ink); font-weight: 500; }

.project { padding-block: var(--section-pad-sm); border-top: var(--rule-key); }
.project + .project { border-top: var(--hair); }
.project__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-6) var(--col-gap); }
@media (min-width: 1024px) {
  .project__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
  .project:nth-of-type(even) .project__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .project:nth-of-type(even) .project__media { order: 2; }
}
.project__media .frame__media { aspect-ratio: 3 / 2; }
.project__body { display: flex; flex-direction: column; gap: var(--s-4); min-width: 0; }
.project__num { font-family: var(--haso-c4f); font-size: var(--fs-meta); letter-spacing: var(--track-meta); color: var(--signal-press); text-transform: uppercase; }

.formats { display: grid; grid-template-columns: minmax(0, 1fr); border-top: var(--rule-key); }
@media (min-width: 720px) { .formats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .formats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.format { min-width: 0; padding: var(--s-5) var(--s-5) var(--s-5) 0; border-bottom: var(--hair); display: flex; flex-direction: column; gap: var(--s-2); }
.format__ext { font-family: var(--haso-c4f); font-size: clamp(1.3rem, 1.1rem + 0.8vw, 1.8rem); font-weight: 500; color: var(--ink); letter-spacing: -0.01em; }
.format p { font-size: var(--fs-small); color: var(--slate); }

.roles { display: grid; grid-template-columns: minmax(0, 1fr); border-top: var(--rule-key); list-style: none; margin: 0; padding: 0; }
@media (min-width: 640px) { .roles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .roles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.roles li { min-width: 0; padding: var(--s-5) var(--s-4) var(--s-5) 0; border-bottom: var(--hair); }
.roles .meta { display: block; margin-bottom: var(--s-2); color: var(--steel); }

.faq { border-top: var(--rule-key); max-width: 64rem; }
.faq__item { border-bottom: var(--hair); }
.faq__item summary {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 28px;
  align-items: center;
  gap: var(--s-4);
  min-height: 60px;
  padding: var(--s-4) var(--s-3) var(--s-4) 0;
  font-family: var(--haso-77c);
  font-size: var(--fs-h4);
  font-weight: 600;
  line-height: 1.3;
  cursor: pointer;
  list-style: none;
  transition: background-color var(--dur-1) var(--ease-out), padding-left var(--dur-2) var(--ease-out), box-shadow var(--dur-2) var(--ease-out);
}
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after {
  content: "+";
  justify-self: end;
  font-family: var(--haso-c4f);
  font-size: 1.3rem;
  font-weight: 400;
  color: var(--steel);
  transition: transform var(--dur-2) var(--ease-out), color var(--dur-1) var(--ease-out);
}
.faq__item[open] summary::after { content: "−"; color: var(--signal-press); }
.faq__item summary:hover { background: var(--panel); padding-left: var(--s-3); box-shadow: inset 2px 0 0 var(--signal); }
.faq__item summary:active { background: var(--rule); }
.faq__item summary:focus-visible { outline: 2px solid var(--signal); outline-offset: -2px; }
.faq__answer { padding: 0 0 var(--s-5); color: var(--slate); max-width: var(--measure); }
.faq__answer > * + * { margin-top: 0.8em; }

.disclosures-page { padding-block: var(--s-6) var(--section-pad); }
.disclosures-head { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-6) var(--col-gap); margin-block: var(--s-6) var(--s-7); align-items: end; }
@media (min-width: 1024px) { .disclosures-head { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }
.disclosures-head .fig img { aspect-ratio: 16 / 9; object-fit: cover; }
.disclosures__bar {
  position: sticky;
  top: calc(var(--header-h) + 1px);
  z-index: 5;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-2) var(--s-4);
  padding: 10px 0;
  background: var(--paper);
  border-top: var(--rule-key);
  border-bottom: var(--hair);
}
.disclosures__count { font-family: var(--haso-c4f); font-size: var(--fs-micro); letter-spacing: var(--track-meta); text-transform: uppercase; color: var(--steel); }
.disclosures__ctrls { display: flex; flex-wrap: wrap; gap: 6px; }
.disclosures__ctrl {
  display: inline-flex;
  align-items: center;
  gap: var(--s-2);
  min-height: 44px;
  padding: 8px 14px;
  border: 1px solid var(--ink);
  background: var(--paper);
  color: var(--ink);
  font-family: var(--haso-c4f);
  font-size: var(--fs-micro);
  font-weight: 500;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  transition: background-color var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out), border-color var(--dur-1) var(--ease-out);
}
.disclosures__ctrl .icon { width: 16px; height: 16px; }
.disclosures__ctrl:hover { background: var(--ink); color: var(--paper); }
.disclosures__ctrl:active { background: var(--slate); border-color: var(--slate); color: var(--paper); }
.disclosures__ctrl:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.disclosures { display: flex; flex-direction: column; }
.disclosure { border-bottom: var(--hair); scroll-margin-top: calc(var(--header-h) + 80px); }
.disclosure > summary {
  display: grid;
  grid-template-columns: 2.8em minmax(0, 1fr) 32px;
  gap: var(--s-3);
  align-items: start;
  min-height: 64px;
  padding: var(--s-5) var(--s-3) var(--s-5) 0;
  cursor: pointer;
  list-style: none;
  transition: background-color var(--dur-1) var(--ease-out), box-shadow var(--dur-2) var(--ease-out), padding-left var(--dur-2) var(--ease-out);
}
.disclosure > summary::-webkit-details-marker { display: none; }
.disclosure__num { font-family: var(--haso-c4f); font-size: var(--fs-meta); color: var(--steel); padding-top: 0.35em; letter-spacing: 0.04em; }
.disclosure__sum { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.disclosure__sum strong { font-family: var(--haso-77c); font-size: var(--fs-h3); font-weight: 600; line-height: 1.25; letter-spacing: -0.01em; color: var(--ink); }
.disclosure__sum span { font-size: var(--fs-small); color: var(--slate); max-width: 64ch; }
.disclosure__mark {
  justify-self: end;
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--rule);
  color: var(--ink);
  transition: transform var(--dur-2) var(--ease-out), border-color var(--dur-1) var(--ease-out), background-color var(--dur-1) var(--ease-out);
}
.disclosure__mark .icon { width: 16px; height: 16px; }
.disclosure[open] > summary .disclosure__mark { transform: rotate(180deg); border-color: var(--signal); background: var(--signal-wash); }
.disclosure[open] > summary { box-shadow: inset 0 -1px 0 var(--rule-soft); }
.disclosure[open] .disclosure__num { color: var(--signal-press); }
.disclosure > summary:hover { background: var(--panel); padding-left: var(--s-3); box-shadow: inset 2px 0 0 var(--signal); }
.disclosure > summary:hover .disclosure__mark { border-color: var(--ink); }
.disclosure > summary:active { background: var(--rule); }
.disclosure > summary:focus-visible { outline: 2px solid var(--signal); outline-offset: -2px; }
.disclosure__body { padding: var(--s-5) 0 var(--s-7); }
@media (min-width: 720px) { .disclosure__body { padding-left: calc(2.8em + var(--s-3)); } }
.disclosure__body .table-wrap { margin-block: var(--s-4); }
@media (max-width: 420px) {
  .disclosure > summary { grid-template-columns: minmax(0, 1fr) 32px; }
  .disclosure__num { grid-column: 1 / -1; padding-top: 0; }
}
@media print {
  .disclosures__bar { position: static; }
  .disclosures__ctrls, .disclosure__mark { display: none; }
  .disclosure__body { display: block !important; }
}

.doc-ground {
  padding-block: var(--s-6) var(--section-pad);
  background:
    linear-gradient(to right, var(--rule-soft) 1px, transparent 1px) 0 0 / 64px 64px,
    linear-gradient(to bottom, var(--rule-soft) 1px, transparent 1px) 0 0 / 64px 64px,
    var(--paper-2);
}
.doc {
  position: relative;
  max-width: 920px;
  margin: var(--s-6) auto 0;
  background: var(--white);
  border: 1px solid var(--rule);
  box-shadow: var(--shadow-doc);
  padding: clamp(20px, 6vw, 88px) clamp(16px, 6.5vw, 96px) clamp(32px, 6vw, 96px);
}
.doc::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--ink);
}
.doc__mast {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-5);
  padding-bottom: var(--s-6);
  margin-bottom: var(--s-6);
  border-bottom: var(--rule-key);
}
@media (min-width: 720px) { .doc__mast { grid-template-columns: minmax(0, 1fr) auto; align-items: end; } }
.doc__mast h1 { font-size: clamp(1.9rem, 1.3rem + 2.6vw, 3.4rem); max-width: 16ch; }
.doc__meta { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px var(--s-4); margin: 0; font-family: var(--haso-c4f); font-size: var(--fs-micro); letter-spacing: 0.06em; text-transform: uppercase; min-width: 0; }
.doc__meta dt { color: var(--steel); }
.doc__meta dd { margin: 0; color: var(--ink); font-variant-numeric: tabular-nums; }
.doc__lead { font-size: var(--fs-lede); line-height: 1.45; color: var(--slate); max-width: 52ch; margin-bottom: var(--s-6); }
.doc__fig { margin-block: 0 var(--s-7); }
.doc__fig img { aspect-ratio: 16 / 7; object-fit: cover; }
.doc__clause { position: relative; padding-top: var(--s-6); margin-top: var(--s-6); border-top: var(--hair); scroll-margin-top: calc(var(--header-h) + 24px); }
.doc__clause:first-of-type { border-top: 0; margin-top: 0; padding-top: 0; }
.doc__clause h2 { display: grid; grid-template-columns: 3.2em minmax(0, 1fr); gap: var(--s-2); font-size: clamp(1.25rem, 1.05rem + 0.9vw, 1.75rem); max-width: none; margin-bottom: var(--s-4); }
.clause-num { font-family: var(--haso-c4f); font-size: 0.62em; font-weight: 500; letter-spacing: 0.04em; color: var(--signal-press); padding-top: 0.45em; }
.doc__clause > :not(h2) { margin-left: 0; }
@media (min-width: 720px) { .doc__clause > :not(h2) { margin-left: calc(3.2em * 0.9); } }
.doc__clause > * + * { margin-top: 0.9em; }
.doc__clause ul, .doc__clause ol { padding-left: 1.2em; }
.doc__clause li + li { margin-top: 0.35em; }
.doc__clause ul li::marker { color: var(--signal); }
.doc__sign { margin-top: var(--s-8); padding-top: var(--s-4); border-top: var(--rule-key); display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-3); font-family: var(--haso-c4f); font-size: var(--fs-micro); letter-spacing: 0.06em; text-transform: uppercase; color: var(--steel); }
.doc .settings-box { margin-top: var(--s-4); padding: var(--s-5); background: var(--paper-2); border: 1px solid var(--rule); border-left: var(--rule-signal); }
.doc .settings-box .cluster { margin-top: var(--s-4); }

.data-table { width: 100%; min-width: 620px; border-collapse: collapse; font-size: var(--fs-small); }
.data-table caption { caption-side: top; text-align: left; padding-bottom: var(--s-2); font-family: var(--haso-c4f); font-size: var(--fs-micro); letter-spacing: var(--track-meta); text-transform: uppercase; color: var(--steel); }
.data-table th, .data-table td { text-align: left; vertical-align: top; padding: 10px var(--s-3) 10px 0; border-bottom: var(--hair); }
.data-table thead th { font-family: var(--haso-c4f); font-size: var(--fs-micro); font-weight: 500; letter-spacing: 0.07em; text-transform: uppercase; color: var(--steel); border-bottom: 1px solid var(--ink); }
.data-table td:first-child, .data-table td code { font-family: var(--haso-c4f); color: var(--ink); overflow-wrap: anywhere; }
.data-table td { color: var(--slate); }

.glance-page { padding-block: var(--s-6) var(--section-pad); }
.glance-head { margin-block: var(--s-6) var(--s-7); display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-6) var(--col-gap); align-items: end; }
@media (min-width: 1024px) { .glance-head { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }
.glance-head .fig img { aspect-ratio: 16 / 9; object-fit: cover; }
.glance { --frame-pad: clamp(14px, 2.6vw, 32px); background: var(--white); margin-bottom: var(--section-pad-sm); }
.glance__title { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-2) var(--s-4); padding-bottom: var(--s-3); font-family: var(--haso-c4f); font-size: var(--fs-meta); letter-spacing: var(--track-meta); text-transform: uppercase; color: var(--ink); }
.glance__title span:last-child { color: var(--steel); }
.glance__table { width: 100%; border-collapse: collapse; border-top: var(--rule-key); }
.glance__table th, .glance__table td { display: block; text-align: left; vertical-align: top; padding: 0; }
.glance__table tr { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px var(--s-5); padding: var(--s-4) 0; border-bottom: var(--hair); }
@media (min-width: 720px) { .glance__table tr { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr) auto; align-items: baseline; } }
.glance__table th { font-family: var(--haso-c4f); font-size: var(--fs-micro); font-weight: 500; letter-spacing: 0.07em; text-transform: uppercase; color: var(--steel); }
.glance__table td { color: var(--ink); font-size: var(--fs-body); line-height: 1.45; }
.glance__table td a.glance__jump {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  padding: 6px 10px;
  border: 1px solid var(--rule);
  font-family: var(--haso-c4f);
  font-size: var(--fs-micro);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--slate);
  text-decoration: none;
  white-space: nowrap;
  transition: background-color var(--dur-1) var(--ease-out), border-color var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out);
}
.glance__table td a.glance__jump .icon { width: 14px; height: 14px; }
.glance__table td a.glance__jump:hover { border-color: var(--ink); background: var(--panel); color: var(--ink); }
.glance__table td a.glance__jump:active { background: var(--rule); }
.glance__table td a.glance__jump:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.longform { max-width: 68ch; margin-inline: 0; }
@media (min-width: 1024px) { .longform { margin-left: calc((100% / 12) * 3); } }
.longform > * + * { margin-top: 1em; }
.longform h2 { font-size: clamp(1.35rem, 1.1rem + 1vw, 1.9rem); margin-top: 2.4em; padding-top: var(--s-4); border-top: var(--rule-key); max-width: none; scroll-margin-top: calc(var(--header-h) + 24px); }
.longform h2:first-child { margin-top: 0; }
.longform h3 { margin-top: 1.6em; }
.longform h2 + *, .longform h3 + * { margin-top: 0.7em; }
.longform ul, .longform ol { padding-left: 1.25em; }
.longform li + li { margin-top: 0.4em; }
.longform ul li::marker { color: var(--signal); }

.dsar-form { margin-top: var(--section-pad-sm); padding: clamp(16px, 3vw, 40px); background: var(--white); border-top: 2px solid var(--signal); }

.contact-page { padding-block: var(--section-pad-sm) var(--section-pad); }
.contact__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-8) var(--col-gap); align-items: start; }
@media (min-width: 1024px) { .contact__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } }
.contact__facts { display: flex; flex-direction: column; gap: var(--s-6); min-width: 0; }
.contact__card { border-top: var(--rule-key); padding-top: var(--s-4); display: flex; flex-direction: column; gap: var(--s-2); }
.contact__card address { font-style: normal; font-size: var(--fs-lede); line-height: 1.4; color: var(--ink); }
.contact__big {
  display: inline-flex;
  align-items: center;
  gap: var(--s-3);
  min-height: 48px;
  font-family: var(--haso-77c);
  font-size: clamp(1.2rem, 1rem + 1vw, 1.8rem);
  font-weight: 600;
  letter-spacing: -0.015em;
  color: var(--ink);
  text-decoration: none;
  overflow-wrap: anywhere;
  border-bottom: 2px solid transparent;
  transition: border-color var(--dur-1) var(--ease-out), color var(--dur-1) var(--ease-out);
}
.contact__big .icon { color: var(--signal); width: 22px; height: 22px; }
.contact__big:hover { border-bottom-color: var(--signal); }
.contact__big:active { color: var(--slate); }
.contact__big:focus-visible { outline: 2px solid var(--signal); outline-offset: 3px; }
.contact__hours { width: 100%; font-size: var(--fs-small); }
.contact__hours td, .contact__hours th { padding: 8px var(--s-3) 8px 0; border-bottom: var(--hair); text-align: left; }
.contact__hours th { font-weight: 500; color: var(--slate); }
.contact__hours td { font-family: var(--haso-c4f); color: var(--ink); }
.contact__form { background: var(--white); padding: clamp(16px, 3vw, 40px); border-top: 2px solid var(--signal); min-width: 0; }
.contact__fig img { aspect-ratio: 16 / 9; object-fit: cover; }

.notfound { padding-block: var(--section-pad-sm) var(--section-pad); }
.notfound__panel { --frame-pad: clamp(18px, 4vw, 56px); max-width: 980px; background: var(--white); }
.notfound__code { font-family: var(--haso-c4f); font-size: clamp(3rem, 2rem + 6vw, 7rem); font-weight: 500; line-height: 1; letter-spacing: -0.04em; color: var(--rule); margin-bottom: var(--s-4); }
.notfound__panel h1 { font-size: clamp(1.9rem, 1.3rem + 2.8vw, 3.6rem); margin-bottom: var(--s-4); }
.notfound__panel p { color: var(--slate); }
.notfound__dir { margin-top: var(--s-7); }

.thanks { padding-block: var(--section-pad-sm) var(--section-pad); }
.thanks__panel { --frame-pad: clamp(18px, 4vw, 56px); max-width: 980px; background: var(--white); }
.thanks__panel h1 { font-size: clamp(1.9rem, 1.3rem + 2.8vw, 3.6rem); margin-block: var(--s-4); }
.thanks__next { list-style: none; margin: var(--s-6) 0 0; padding: 0; border-top: var(--rule-key); counter-reset: next; }
.thanks__next li { display: grid; grid-template-columns: 2.6em minmax(0, 1fr); gap: var(--s-3); padding: var(--s-4) 0; border-bottom: var(--hair); counter-increment: next; color: var(--slate); }
.thanks__next li::before { content: "0" counter(next); font-family: var(--haso-c4f); font-size: var(--fs-meta); color: var(--signal-press); padding-top: 0.25em; }
.thanks__actions { display: flex; flex-wrap: wrap; gap: var(--s-3); margin-top: var(--s-6); }

.cta-band { padding-block: var(--section-pad-sm); background: var(--deep); color: var(--deep-text); }
.cta-band__inner { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: var(--s-6); }
.cta-band h2 { color: var(--white); max-width: 22ch; }
.cta-band p { color: var(--deep-meta); margin-top: var(--s-3); }
.cta-band__actions { display: flex; flex-wrap: wrap; gap: var(--s-3); }

.related { display: grid; grid-template-columns: minmax(0, 1fr); border-top: var(--rule-key); }
@media (min-width: 720px) { .related { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.related a {
  display: flex;
  flex-direction: column;
  gap: var(--s-2);
  min-height: 112px;
  padding: var(--s-5) var(--s-4);
  border-bottom: var(--hair);
  text-decoration: none;
  color: var(--ink);
  transition: background-color var(--dur-1) var(--ease-out), box-shadow var(--dur-2) var(--ease-out);
}
@media (min-width: 720px) { .related a + a { border-left: var(--hair); } }
.related a strong { font-family: var(--haso-77c); font-size: var(--fs-h4); font-weight: 600; }
.related a span { font-size: var(--fs-small); color: var(--slate); }
.related a:hover { background: var(--panel); box-shadow: inset 0 2px 0 var(--signal); }
.related a:active { background: var(--rule); }
.related a:focus-visible { outline: 2px solid var(--signal); outline-offset: -2px; }

@media (max-width: 359px) {
  .masthead__index { grid-template-columns: minmax(0, 1fr); }
  .konfig__out { grid-template-columns: minmax(0, 1fr); }
  .konfig__out > div + div { padding-left: 0; border-left: 0; }
  .doc { padding-inline: 14px; }
}
