.read-progress {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  z-index: calc(var(--z-header) + 1);
  background: var(--mint);
  transform-origin: 0 50%;
  transform: scaleX(var(--read, 0));
  pointer-events: none;
}

.hero {
  position: relative;
  background: var(--paper);
  padding-block: clamp(2.75rem, 7vw, 6.5rem) 0;
  border-bottom: 0;
  overflow: hidden;
}

.hero__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--s-6) var(--gutter);
  align-items: end;
}

.hero__grid > * { min-width: 0; }

.hero__opener { grid-column: 1 / -1; }

.hero__title {
  grid-column: 1 / -1;
  max-width: 14ch;
  font-size: var(--fs-hero);
  line-height: 0.88;
  letter-spacing: -0.015em;
  text-transform: uppercase;
  overflow-wrap: break-word;
  hanging-punctuation: first;
}

.hero__title em {
  font-style: normal;
  color: var(--mint-deep);
}

.hero__aside {
  grid-column: 1 / span 4;
  align-self: start;
  display: grid;
  gap: var(--s-5);
  padding-top: var(--s-4);
  border-top: var(--border) solid var(--ink);
}

.hero__lead {
  font-size: var(--fs-lead);
  line-height: 1.45;
  max-width: 34ch;
}

.hero__meta {
  display: grid;
  gap: var(--s-2);
}

.hero__meta span { display: block; }

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-3);
}

.hero__figure {
  grid-column: 5 / -1;
  position: relative;
  margin: 0;
  isolation: isolate;
}

.hero__frame {
  position: relative;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  border: var(--border) solid var(--ink);
  border-bottom: 0;
}

.hero__frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform-origin: 50% 60%;
}

.hero__stamp {
  position: absolute;
  z-index: 2;
  top: clamp(-3.5rem, -5vw, -1.5rem);
  left: clamp(-3.5rem, -4vw, -1rem);
  background: var(--ink);
  color: var(--mint);
  border: 3px solid var(--mint);
  outline: var(--rule) solid var(--paper);
  transform: rotate(-8deg);
  transform-origin: 50% 50%;
}

.hero__stamp .seal__text { font-size: 0.5625rem; }

.hero__caption {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--s-2) var(--s-4);
  padding: var(--s-3) 0 var(--s-4);
  font-family: var(--fise-693);
  font-size: var(--fs-mono);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--graphite);
}

.hero__hazard {
  margin-top: clamp(2.5rem, 6vw, 4.5rem);
  border-top: var(--border) solid var(--ink);
  border-bottom: var(--rule) solid var(--ink);
  height: 18px;
}

@media (max-width: 1000px) {
  .hero__aside { grid-column: 1 / -1; order: 3; }
  .hero__figure { grid-column: 1 / -1; order: 2; margin-top: var(--s-5); }
  .hero__stamp { left: auto; right: 0.75rem; top: -2.25rem; }
}

@media (max-width: 420px) {
  .hero__stamp { width: 84px; padding: 0.45rem; top: -1.75rem; }
  .hero__stamp .seal__text { font-size: 0.5rem; letter-spacing: 0.1em; }
}

.page-head {
  position: relative;
  background: var(--paper);
  padding-block: clamp(3rem, 8vw, 7rem) clamp(2.5rem, 6vw, 5rem);
  border-bottom: var(--rule) solid var(--ink);
  overflow: hidden;
}

.page-head--concrete { background: var(--concrete); }
.page-head--light { background: var(--concrete-light); }

.page-head__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--s-5) var(--gutter);
  align-items: end;
}

.page-head__grid > * { min-width: 0; }

.page-head__title {
  font-size: var(--fs-d1);
  text-transform: uppercase;
  max-width: 16ch;
  margin-top: var(--s-4);
}

.page-head__lead {
  margin-top: var(--s-5);
  font-size: var(--fs-lead);
  line-height: 1.45;
  max-width: 46ch;
}

.page-head__stamp { align-self: start; }

@media (max-width: 640px) {
  .page-head__grid { grid-template-columns: minmax(0, 1fr); }
  .page-head__stamp { justify-self: start; order: -1; width: 76px; }
  .page-head__stamp .seal__text { display: none; }
}

.block__head {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--s-5) var(--gutter);
  margin-bottom: clamp(2.5rem, 6vw, 5rem);
}

.block__head > * { min-width: 0; }
.block__head .block-opener { grid-column: 1 / -1; }
.block__title { grid-column: 1 / span 8; text-transform: uppercase; font-size: var(--fs-d1); max-width: 16ch; }
.block__intro { grid-column: 9 / -1; align-self: end; max-width: 38ch; color: var(--ink-80); }

@media (max-width: 900px) {
  .block__title, .block__intro { grid-column: 1 / -1; }
}

.offer .list-rows { border-top-width: var(--rule); }

.offer-row {
  grid-template-columns: 4.5rem minmax(0, 1.2fr) minmax(0, 1fr) minmax(170px, 0.7fr) auto;
  padding-block: clamp(1.4rem, 3vw, 2.4rem);
  border-bottom: 2px solid var(--ink);
  transition: background-color var(--dur-2) var(--ease-out);
}

.offer-row:hover { background: var(--concrete-light); }
.offer-row .offer-row__link:hover { background: var(--mint); box-shadow: 4px 4px 0 var(--ink); transform: translate(-1px, -1px); }
.offer-row .offer-row__link:active { background: var(--mint-deep); color: var(--paper); box-shadow: 1px 1px 0 var(--ink); transform: translate(1px, 1px); }
.scrolly__frame[style] { aspect-ratio: auto !important; height: auto !important; max-height: none !important; }

.offer-row__num {
  align-self: start;
  padding-top: 0.5rem;
  color: var(--mint-deep);
}

.offer-row .list-row__name { font-size: clamp(1.9rem, 3.6vw, 3.4rem); }
.offer-row .list-row__detail { color: var(--ink-80); }
.offer-row .list-row__basis { font-size: 0.72rem; }

.offer-row__link {
  min-width: var(--tap);
  padding-inline: 0.85rem;
}

.offer__foot {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: var(--s-4);
  margin-top: var(--s-6);
}

@media (max-width: 1100px) {
  .offer-row { grid-template-columns: 3.25rem minmax(0, 1fr) auto; }
  .offer-row .list-row__detail,
  .offer-row .list-row__basis { grid-column: 2 / -1; }
  .offer-row__link { grid-column: 3; grid-row: 1; }
}

@media (max-width: 520px) {
  .offer-row { grid-template-columns: minmax(0, 1fr) auto; }
  .offer-row__num { grid-column: 1 / -1; padding-top: 0; }
  .offer-row .list-row__name { grid-column: 1; }
  .offer-row .list-row__name { grid-column: 1 / -1; }
  .offer-row__link { grid-column: 1 / -1; grid-row: auto; justify-self: start; }
  .offer-row .list-row__detail,
  .offer-row .list-row__basis { grid-column: 1 / -1; }
}

.scrolly__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--s-6) var(--gutter);
  align-items: start;
}

.scrolly__grid > * { min-width: 0; }

.scrolly__media {
  grid-column: 1 / span 6;
  position: sticky;
  top: calc(88px + var(--s-5));
  display: grid;
  gap: var(--s-5);
}

.scrolly__figure {
  margin: 0;
  position: relative;
}

.scrolly__frame {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  border: var(--border) solid var(--ink);
  background: var(--concrete-light);
}

.scrolly__frame--landscape { aspect-ratio: 3 / 2; }

.scrolly__frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.scrolly__tag {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 1;
  max-width: calc(100% - 1rem);
  padding: 0.45rem 0.7rem;
  background: var(--ink);
  color: var(--mint);
  font-family: var(--fise-693);
  font-size: 0.72rem;
  letter-spacing: var(--tr-mono);
  text-transform: uppercase;
}

.scrolly.is-live .scrolly__media {
  grid-template-areas: "stage";
  max-height: calc(100vh - 88px - 3rem);
}

.scrolly.is-live .scrolly__figure {
  grid-area: stage;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--dur-5) var(--ease-out), visibility var(--dur-5);
}

.scrolly.is-live .scrolly__figure.is-active { opacity: 1; visibility: visible; }
.scrolly.is-live .scrolly__frame { max-height: calc(100vh - 88px - 7rem); aspect-ratio: auto; height: min(78vh, 780px); }

.scrolly__steps {
  grid-column: 8 / -1;
  counter-reset: step;
}

.scrolly-step {
  position: relative;
  min-height: clamp(18rem, 62vh, 36rem);
  padding: var(--s-5) 0 var(--s-6);
  border-top: 2px solid var(--ink);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: var(--s-4);
  transition: border-color var(--dur-3) var(--ease-out);
}

.scrolly-step:last-child { min-height: 0; border-bottom: 2px solid var(--ink); }

.scrolly-step__num {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  color: var(--graphite);
}

.scrolly-step__num b {
  font-weight: 500;
  color: var(--mint-deep);
}

.scrolly-step__title {
  font-size: var(--fs-d2);
  text-transform: uppercase;
  max-width: 13ch;
}

.scrolly-step p { max-width: 44ch; }

.scrolly-step__fact {
  display: inline-flex;
  align-self: flex-start;
  align-items: center;
  gap: 0.6rem;
  min-height: 36px;
  padding: 0.35rem 0.7rem;
  border: 1px solid var(--ink);
  font-family: var(--fise-693);
  font-size: 0.72rem;
  letter-spacing: var(--tr-mono);
  text-transform: uppercase;
  max-width: 100%;
}

.scrolly-step.is-active { border-top-color: var(--mint-deep); }

@media (max-width: 900px) {
  .scrolly__media,
  .scrolly__steps { grid-column: 1 / -1; }
  .scrolly__media { position: static; }
  .scrolly.is-live .scrolly__media { grid-template-areas: none; max-height: none; }
  .scrolly.is-live .scrolly__figure { grid-area: auto; opacity: 1; visibility: visible; }
  .scrolly.is-live .scrolly__frame { height: auto; max-height: none; aspect-ratio: 4 / 5; }
  .scrolly-step { min-height: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .scrolly__media { position: static; }
  .scrolly.is-live .scrolly__media { grid-template-areas: none; max-height: none; }
  .scrolly.is-live .scrolly__figure { grid-area: auto; opacity: 1; visibility: visible; }
  .scrolly.is-live .scrolly__frame { height: auto; max-height: none; aspect-ratio: 4 / 5; }
  .scrolly-step { min-height: 0; }
  .read-progress { display: none; }
}

.proof__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--s-6) var(--gutter);
  align-items: start;
}

.proof__grid > * { min-width: 0; }

.proof__figure { grid-column: 1 / span 8; }

.proof__frame {
  aspect-ratio: 3 / 2;
  overflow: hidden;
  border: var(--border) solid var(--ink);
}

.proof__frame img { width: 100%; height: 100%; object-fit: cover; }

.proof__spec {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
  border-bottom: 2px solid var(--ink);
}

.proof__spec div {
  min-width: 0;
  padding: var(--s-3) var(--s-3) var(--s-3) 0;
  border-right: 1px solid var(--steel);
}

.proof__spec div + div { padding-left: var(--s-3); }
.proof__spec div:last-child { border-right: 0; }
.proof__spec dt { font-family: var(--fise-693); font-size: 0.7rem; letter-spacing: var(--tr-mono); text-transform: uppercase; color: var(--graphite); }
.proof__spec dd { margin-top: 0.25rem; font-weight: 500; line-height: 1.35; font-size: 0.98rem; }

.proof__side { grid-column: 9 / -1; display: grid; gap: var(--s-5); }

.proof__quote {
  font-family: var(--fise-c0c);
  font-weight: 800;
  font-size: var(--fs-d3);
  line-height: 1;
  text-transform: uppercase;
  max-width: 14ch;
}

.refusals { border-top: var(--rule) solid var(--ink); }

.refusal {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--s-3);
  align-items: baseline;
  padding: var(--s-4) 0;
  border-bottom: 1px solid var(--graphite);
}

.refusal__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.75rem;
  min-height: 28px;
  padding: 0.15rem 0.45rem;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--fise-693);
  font-size: 0.7rem;
  letter-spacing: var(--tr-mono);
  text-transform: uppercase;
}

.refusal:first-child .refusal__tag { background: var(--mint); color: var(--ink); }
.refusal__text { line-height: 1.45; }
.refusal__text strong { display: block; font-weight: 600; }

@media (max-width: 900px) {
  .proof__figure, .proof__side { grid-column: 1 / -1; }
}

@media (max-width: 480px) {
  .proof__spec { grid-template-columns: minmax(0, 1fr); }
  .proof__spec div, .proof__spec div + div { padding-left: 0; border-right: 0; border-bottom: 1px solid var(--steel); }
  .proof__spec div:last-child { border-bottom: 0; }
}

.contact-block__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--s-6) var(--gutter);
  align-items: start;
}

.contact-block__grid > * { min-width: 0; }
.contact-block__info { grid-column: 1 / span 5; display: grid; gap: var(--s-5); }
.contact-block__form { grid-column: 7 / -1; }

.contact-block__title {
  font-size: var(--fs-d1);
  text-transform: uppercase;
  max-width: 11ch;
}

.contact-block .contact-fact p { font-size: 1.05rem; }

.map-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 44px;
  padding: 0.35rem 0;
  font-family: var(--fise-693);
  font-size: var(--fs-mono);
  letter-spacing: var(--tr-mono);
  text-transform: uppercase;
  text-decoration: underline;
  text-underline-offset: 0.3em;
  color: var(--mint-deep);
  transition: color var(--dur-2) var(--ease-out), background-color var(--dur-2) var(--ease-out);
}

.block--ink .map-link { color: var(--mint); }
.map-link:hover { color: var(--ink); background: var(--mint); }
.map-link:active { color: var(--paper); background: var(--mint-deep); }
.map-link:focus-visible { outline: 3px solid var(--mint); outline-offset: 3px; }

.inquiry-form {
  display: grid;
  gap: var(--s-5);
  padding: clamp(1.25rem, 3vw, 2.5rem);
  border: 2px solid currentColor;
}

.block--ink .inquiry-form { border-color: var(--graphite); }
.block--ink .form-label { color: var(--paper); }
.block--ink .form-label span { color: var(--mint); }
.block--ink .form-control { border-color: var(--graphite); }
.block--ink .form-control:focus { border-color: var(--mint); box-shadow: 4px 4px 0 var(--mint); }
.block--ink .form-check label,
.block--ink .form-check span { color: var(--concrete); }
.block--ink .form-check a { color: var(--mint); }
.block--ink .form-status { color: var(--mint); }
.block--ink .form-error { color: #FFB4A3; }
.block--ink .form-field[data-invalid="true"] .form-control { border-color: #FFB4A3; }

.inquiry-form__head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: var(--s-2) var(--s-4);
  padding-bottom: var(--s-3);
  border-bottom: 1px solid currentColor;
}

.inquiry-form__title {
  font-family: var(--fise-c0c);
  font-size: var(--fs-d3);
  font-weight: 800;
  text-transform: uppercase;
  line-height: 1;
}

.inquiry-form__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-4);
}

.inquiry-form__note { font-size: 0.9rem; color: var(--graphite); max-width: 40ch; }
.block--ink .inquiry-form__note { color: var(--steel); }

@media (max-width: 900px) {
  .contact-block__info, .contact-block__form { grid-column: 1 / -1; }
}

.catalogue-index {
  position: sticky;
  top: 70px;
  z-index: calc(var(--z-header) - 1);
  background: var(--concrete);
  border-bottom: 2px solid var(--ink);
}

.catalogue-index__list {
  display: flex;
  gap: 0;
  overflow-x: auto;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}

.catalogue-index__list li { flex: 0 0 auto; border-right: 1px solid var(--steel); }
.catalogue-index__list li:first-child { border-left: 1px solid var(--steel); }

.catalogue-index__link {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-height: var(--tap);
  padding: 0.6rem 1rem;
  font-family: var(--fise-693);
  font-size: 0.72rem;
  letter-spacing: var(--tr-mono);
  text-transform: uppercase;
  text-decoration: none;
  color: var(--ink);
  white-space: nowrap;
  transition: background-color var(--dur-2) var(--ease-out), color var(--dur-2) var(--ease-out), box-shadow var(--dur-2) var(--ease-out);
}

.catalogue-index__link b { font-weight: 500; color: var(--mint-deep); }
.catalogue-index__link:hover { background: var(--paper); box-shadow: inset 0 -3px 0 var(--mint); }
.catalogue-index__link:active { background: var(--mint); }
.catalogue-index__link:active b { color: var(--ink); }
.catalogue-index__link:focus-visible { outline: 3px solid var(--mint-deep); outline-offset: -3px; }

.gown { scroll-margin-top: 140px; }

.gown__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--s-6) var(--gutter);
  align-items: start;
}

.gown__grid > * { min-width: 0; }

.gown__media {
  grid-column: 1 / span 5;
  position: sticky;
  top: calc(140px + var(--s-3));
}

.gown__frame {
  position: relative;
  overflow: hidden;
  aspect-ratio: 2 / 3;
  border: var(--border) solid var(--ink);
}

.gown__frame--landscape { aspect-ratio: 3 / 2; }
.gown__frame img { width: 100%; height: 100%; object-fit: cover; }

.gown__body { grid-column: 7 / -1; display: grid; gap: var(--s-5); }

.gown--reverse .gown__media { grid-column: 8 / -1; grid-row: 1; }
.gown--reverse .gown__body { grid-column: 1 / span 6; grid-row: 1; }

.gown__name {
  font-size: var(--fs-d1);
  text-transform: uppercase;
  max-width: 12ch;
}

.gown__search {
  font-family: var(--fise-174);
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--mint-deep);
  max-width: 40ch;
}

.gown__basis {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--s-3);
  align-items: baseline;
  padding: var(--s-3) var(--s-4);
  background: var(--ink);
  color: var(--paper);
}

.gown__basis .meta { color: var(--mint); }
.gown__basis p { font-family: var(--fise-693); font-size: 0.8rem; letter-spacing: 0.04em; line-height: 1.5; }

.fabric-note {
  padding: var(--s-4) 0 var(--s-4) var(--s-4);
  border-left: var(--rule) solid var(--mint);
  font-style: italic;
  font-size: 1.08rem;
  max-width: 48ch;
}

.gown__actions { display: flex; flex-wrap: wrap; gap: var(--s-3); }

@media (max-width: 900px) {
  .gown__media,
  .gown--reverse .gown__media { grid-column: 1 / -1; grid-row: auto; position: static; }
  .gown__body,
  .gown--reverse .gown__body { grid-column: 1 / -1; grid-row: auto; }
  .gown__frame { aspect-ratio: 4 / 5; }
  .gown__frame--landscape { aspect-ratio: 3 / 2; }
}

@media (max-width: 420px) {
  .gown__basis { grid-template-columns: minmax(0, 1fr); gap: var(--s-1); }
}

.data-table-wrap {
  overflow-x: auto;
  border-top: var(--rule) solid var(--ink);
  -webkit-overflow-scrolling: touch;
}

.data-table { min-width: 560px; font-size: 0.98rem; }
.data-table caption { caption-side: top; text-align: left; padding: var(--s-3) 0; font-family: var(--fise-693); font-size: var(--fs-mono); letter-spacing: var(--tr-mono); text-transform: uppercase; color: var(--graphite); }

.data-table th,
.data-table td {
  padding: 0.9rem 0.8rem;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--steel);
  line-height: 1.45;
}

.data-table thead th {
  font-family: var(--fise-693);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: var(--tr-mono);
  text-transform: uppercase;
  background: var(--ink);
  color: var(--paper);
  border-bottom: 0;
}

.data-table tbody tr:nth-child(even) { background: var(--concrete-light); }
.data-table tbody th { font-weight: 600; }
.data-table code,
.data-table .mono { font-family: var(--fise-693); font-size: 0.85em; letter-spacing: 0.02em; text-transform: none; word-break: break-word; }

.timeline-table td:first-child {
  font-family: var(--fise-c0c);
  font-weight: 800;
  font-size: 1.6rem;
  line-height: 1;
  white-space: nowrap;
  color: var(--mint-deep);
}

.bench__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--s-6) var(--gutter);
  align-items: start;
}

.bench__grid > * { min-width: 0; }
.bench__figure { grid-column: 1 / span 7; }
.bench__frame { aspect-ratio: 3 / 2; overflow: hidden; border: var(--border) solid var(--ink); }
.bench__frame img { width: 100%; height: 100%; object-fit: cover; }
.bench__copy { grid-column: 9 / -1; }

@media (max-width: 900px) {
  .bench__figure, .bench__copy { grid-column: 1 / -1; }
}

.check-list { border-top: 2px solid var(--ink); counter-reset: check; }

.check-list li {
  counter-increment: check;
  display: grid;
  grid-template-columns: 2.75rem minmax(0, 1fr);
  gap: var(--s-3);
  padding: var(--s-4) 0;
  border-bottom: 1px solid var(--steel);
  line-height: 1.5;
}

.check-list li::before {
  content: counter(check, decimal-leading-zero);
  font-family: var(--fise-693);
  font-size: var(--fs-mono);
  letter-spacing: var(--tr-mono);
  color: var(--mint-deep);
  padding-top: 0.2rem;
}

.check-list strong { font-weight: 600; }

.split {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--s-6) var(--gutter);
  align-items: start;
}

.split > * { min-width: 0; }
.split__a { grid-column: 1 / span 5; }
.split__b { grid-column: 7 / -1; }

@media (max-width: 900px) {
  .split__a, .split__b { grid-column: 1 / -1; }
}

.appt-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--s-6) var(--gutter);
  align-items: start;
}

.appt-grid > * { min-width: 0; }
.appt-grid__form { grid-column: 1 / span 7; }
.appt-grid__side { grid-column: 9 / -1; display: grid; gap: var(--s-6); position: sticky; top: calc(88px + var(--s-4)); }

.directions {
  padding: var(--s-5);
  background: var(--concrete-light);
  border-top: var(--rule) solid var(--ink);
}

.directions p + p { margin-top: var(--s-3); }

@media (max-width: 1000px) {
  .appt-grid__form, .appt-grid__side { grid-column: 1 / -1; position: static; }
}

.faq { border-bottom: 2px solid var(--ink); }
.faq .accordion__trigger { font-size: 1.08rem; padding-block: 1.05rem; }
.faq .accordion__trigger .icon { transition: transform var(--dur-2) var(--ease-out); }
.faq .accordion__trigger[aria-expanded="true"] .icon { transform: rotate(180deg); }
.faq .accordion__panel p { max-width: var(--measure); color: var(--ink-80); }
.faq .accordion__panel p + p { margin-top: var(--s-3); }

.doc-page {
  background: var(--concrete);
  padding-block: clamp(2.5rem, 7vw, 6rem);
  border-bottom: var(--rule) solid var(--ink);
}

.doc-card {
  position: relative;
  max-width: 920px;
  margin-inline: auto;
  background: var(--paper);
  border: 1px solid var(--steel);
  box-shadow: 0 1px 0 var(--steel), 0 22px 48px -26px rgba(22, 25, 27, 0.45), 0 2px 6px rgba(22, 25, 27, 0.08);
  padding: clamp(1.5rem, 6vw, 5.5rem) clamp(1.25rem, 6.5vw, 6rem);
}

.doc-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: clamp(1.25rem, 6.5vw, 6rem);
  width: 72px;
  height: var(--rule);
  background: var(--mint);
}

.doc-card__masthead {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--s-5);
  align-items: start;
  padding-bottom: var(--s-6);
  border-bottom: var(--rule) double var(--ink);
}

.doc-card__masthead > * { min-width: 0; }

.doc-card__title {
  font-size: var(--fs-d1);
  text-transform: uppercase;
  margin-top: var(--s-3);
  max-width: 12ch;
}

.doc-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2) var(--s-5);
  margin-top: var(--s-5);
}

.doc-card__meta div { min-width: 0; }
.doc-card__meta dt { font-family: var(--fise-693); font-size: 0.68rem; letter-spacing: var(--tr-mono); text-transform: uppercase; color: var(--graphite); }
.doc-card__meta dd { font-family: var(--fise-693); font-size: 0.85rem; font-weight: 500; }

.doc-card__seal { color: var(--mint-deep); width: clamp(78px, 11vw, 120px); }

.doc-card__summary {
  margin-top: var(--s-6);
  font-size: var(--fs-lead);
  line-height: 1.5;
  max-width: 54ch;
}

.doc-card__contents {
  margin-top: var(--s-5);
  padding: var(--s-4) 0;
  border-top: 1px solid var(--steel);
  border-bottom: 1px solid var(--steel);
  columns: 2 16rem;
  column-gap: var(--s-6);
}

.doc-card__contents li { break-inside: avoid; }

.doc-card__contents a {
  display: flex;
  gap: 0.6rem;
  min-height: 44px;
  align-items: center;
  font-size: 0.95rem;
  text-decoration: none;
  transition: color var(--dur-2) var(--ease-out), background-color var(--dur-2) var(--ease-out);
}

.doc-card__contents a span { font-family: var(--fise-693); font-size: 0.72rem; color: var(--mint-deep); letter-spacing: 0.04em; }
.doc-card__contents a:hover { background: var(--mint-dim); }
.doc-card__contents a:active { background: var(--mint); }
.doc-card__contents a:focus-visible { outline: 3px solid var(--mint-deep); outline-offset: 2px; }

.clause {
  display: grid;
  grid-template-columns: 4.25rem minmax(0, 1fr);
  gap: 0 var(--s-4);
  padding-top: var(--s-6);
  scroll-margin-top: 110px;
}

.clause + .clause { margin-top: var(--s-5); border-top: 1px solid var(--steel); }

.clause__num {
  font-family: var(--fise-693);
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--mint-deep);
  padding-top: 0.35rem;
}

.clause__body { min-width: 0; }
.clause__body > * + * { margin-top: var(--s-4); }

.clause__title {
  font-size: clamp(1.5rem, 2.6vw, 2.1rem);
  text-transform: uppercase;
}

.clause__body p,
.clause__body li { max-width: var(--measure); }

.clause__body ol { counter-reset: sub; }
.clause__body ol > li { counter-increment: sub; display: grid; grid-template-columns: 2.75rem minmax(0, 1fr); gap: var(--s-2); margin-top: var(--s-3); }
.clause__body ol > li::before { content: attr(data-n); font-family: var(--fise-693); font-size: 0.78rem; color: var(--graphite); padding-top: 0.2rem; }

.clause__body a { color: var(--mint-deep); text-decoration-color: var(--mint); }
.clause__body a:hover { color: var(--ink); background: var(--mint-dim); }
.clause__body a:focus-visible { outline: 3px solid var(--mint-deep); outline-offset: 2px; }

.doc-card__signoff {
  margin-top: var(--s-7);
  padding-top: var(--s-5);
  border-top: var(--rule) double var(--ink);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: var(--s-4);
}

@media (max-width: 600px) {
  .doc-card__masthead { grid-template-columns: minmax(0, 1fr); }
  .doc-card__seal { order: -1; width: 70px; }
  .doc-card__seal .seal__text { display: none; }
  .clause { grid-template-columns: minmax(0, 1fr); }
  .clause__num { padding-top: 0; margin-bottom: var(--s-2); }
  .clause__body ol > li { grid-template-columns: 2.25rem minmax(0, 1fr); }
}

@media (max-width: 360px) {
  .doc-card { padding-inline: 1rem; }
  .doc-page .shell { padding-inline: 0.75rem; }
}

.glance {
  background: var(--ink);
  color: var(--paper);
  border-bottom: var(--rule) solid var(--ink);
  padding-block: clamp(2.5rem, 6vw, 5rem);
}

.glance__head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: end;
  gap: var(--s-4);
  padding-bottom: var(--s-4);
  border-bottom: 2px solid var(--mint);
}

.glance__title {
  font-family: var(--fise-c0c);
  font-size: var(--fs-d2);
  font-weight: 800;
  line-height: 0.95;
  text-transform: uppercase;
}

.glance__head .meta { color: var(--steel); }

.glance__table {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-left: 1px solid var(--graphite);
}

.glance__row {
  min-width: 0;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: var(--s-3);
  padding: var(--s-5) var(--s-5) var(--s-4);
  border-right: 1px solid var(--graphite);
  border-bottom: 1px solid var(--graphite);
}

.glance__key {
  font-family: var(--fise-693);
  font-size: 0.72rem;
  letter-spacing: var(--tr-mono);
  text-transform: uppercase;
  color: var(--mint);
}

.glance__value {
  font-size: 1.05rem;
  line-height: 1.5;
  color: var(--paper);
}

.glance__value code { font-family: var(--fise-693); font-size: 0.88em; color: var(--mint); }

.glance__more {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 44px;
  padding: 0.3rem 0;
  font-family: var(--fise-693);
  font-size: 0.7rem;
  letter-spacing: var(--tr-mono);
  text-transform: uppercase;
  color: var(--steel);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color var(--dur-2) var(--ease-out), border-color var(--dur-2) var(--ease-out), background-color var(--dur-2) var(--ease-out);
}

.glance__more:hover { color: var(--mint); border-color: var(--mint); }
.glance__more:active { color: var(--ink); background: var(--mint); }
.glance__more:focus-visible { outline: 3px solid var(--mint); outline-offset: 3px; }

.glance__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-3);
  margin-top: var(--s-5);
}

@media (max-width: 700px) {
  .glance__table { grid-template-columns: minmax(0, 1fr); }
  .glance__row { padding: var(--s-4); }
}

.cookie-prose {
  max-width: 68ch;
  margin-inline: auto;
}

.cookie-prose > section { scroll-margin-top: 110px; }
.cookie-prose > section + section { margin-top: var(--s-7); padding-top: var(--s-5); border-top: 2px solid var(--ink); }
.cookie-prose h2 { text-transform: uppercase; font-size: clamp(1.6rem, 3vw, 2.4rem); }
.cookie-prose .data-table-wrap { margin-block: var(--s-5); }

.signal-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  border-top: 2px solid var(--ink);
  margin-top: var(--s-4);
}

.signal-list li {
  min-width: 0;
  padding: var(--s-3) var(--s-3) var(--s-3) 0;
  border-bottom: 1px solid var(--steel);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--s-2);
}

.signal-list li:nth-child(odd) { border-right: 1px solid var(--steel); }
.signal-list li:nth-child(even) { padding-left: var(--s-3); }
.signal-list code { font-family: var(--fise-693); font-size: 0.85rem; overflow-wrap: anywhere; }

.signal-state {
  font-family: var(--fise-693);
  font-size: 0.68rem;
  letter-spacing: var(--tr-mono);
  text-transform: uppercase;
  padding: 0.1rem 0.4rem;
  background: var(--ink);
  color: var(--paper);
}

@media (max-width: 520px) {
  .signal-list { grid-template-columns: minmax(0, 1fr); }
  .signal-list li:nth-child(odd) { border-right: 0; }
  .signal-list li:nth-child(even) { padding-left: 0; }
}

.terms-head { border-bottom: 0; }

.jump-chips {
  position: sticky;
  top: 70px;
  z-index: calc(var(--z-header) - 1);
  background: var(--paper);
  border-top: var(--rule) solid var(--ink);
  border-bottom: 2px solid var(--ink);
}

.jump-chips__inner {
  display: flex;
  align-items: center;
  gap: var(--s-4);
  min-width: 0;
}

.jump-chips__label { flex: 0 0 auto; color: var(--graphite); }

.jump-chips__list {
  display: flex;
  gap: 0.5rem;
  padding-block: 0.7rem;
  min-width: 0;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}

.jump-chips__list li { flex: 0 0 auto; scroll-snap-align: start; }

.chip {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 44px;
  padding: 0.5rem 0.85rem;
  border: 2px solid var(--ink);
  background: var(--paper);
  color: var(--ink);
  font-family: var(--fise-693);
  font-size: 0.72rem;
  letter-spacing: var(--tr-mono);
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color var(--dur-2) var(--ease-out), color var(--dur-2) var(--ease-out), box-shadow var(--dur-2) var(--ease-out), transform var(--dur-2) var(--ease-press);
}

.chip b { font-weight: 500; color: var(--mint-deep); }
.chip:hover { background: var(--mint); box-shadow: 3px 3px 0 var(--ink); }
.chip:hover b { color: var(--ink); }
.chip:active { background: var(--mint-deep); color: var(--paper); box-shadow: 0 0 0 var(--ink); transform: translate(1px, 1px); }
.chip:active b { color: var(--paper); }
.chip:focus-visible { outline: 3px solid var(--mint-deep); outline-offset: 2px; }
.chip[aria-current="true"] { background: var(--ink); color: var(--paper); }
.chip[aria-current="true"] b { color: var(--mint); }

@media (max-width: 640px) {
  .jump-chips__label { display: none; }
  .jump-chips .shell { padding-inline: 0; }
  .jump-chips__list { padding-inline: var(--gutter); }
}

.terms-section {
  padding-block: clamp(3.5rem, 8vw, 7rem);
  border-bottom: var(--rule) solid var(--ink);
  scroll-margin-top: 140px;
}

.terms-section:nth-of-type(even) { background: var(--concrete-light); }
.terms-section--warranty { background: var(--concrete); }

.terms-section__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--s-5) var(--gutter);
}

.terms-section__grid > * { min-width: 0; }
.terms-section__head { grid-column: 1 / span 5; display: grid; gap: var(--s-4); align-content: start; }
.terms-section__body { grid-column: 7 / -1; }

.terms-section__title {
  font-size: var(--fs-d2);
  text-transform: uppercase;
  max-width: 12ch;
}

.terms-section__standfirst {
  font-size: var(--fs-lead);
  line-height: 1.4;
  font-style: italic;
  max-width: 34ch;
  padding-left: var(--s-4);
  border-left: var(--rule) solid var(--mint);
}

.terms-section__body > * + * { margin-top: var(--s-4); }
.terms-section__body h3 { font-size: clamp(1.25rem, 2vw, 1.6rem); text-transform: uppercase; margin-top: var(--s-5); }
.terms-section__body a { color: var(--mint-deep); text-decoration-color: var(--mint); }
.terms-section__body a:hover { color: var(--ink); background: var(--mint-dim); }

@media (max-width: 900px) {
  .terms-section__head, .terms-section__body { grid-column: 1 / -1; }
}

.cta-strip {
  background: var(--mint);
  color: var(--ink);
  border-bottom: var(--rule) solid var(--ink);
  padding-block: clamp(2.5rem, 6vw, 4.5rem);
}

.cta-strip__inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: var(--s-5);
}

.cta-strip__title {
  font-family: var(--fise-c0c);
  font-weight: 800;
  font-size: var(--fs-d2);
  line-height: 0.95;
  text-transform: uppercase;
  max-width: 18ch;
}

.cta-strip .button--primary { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.cta-strip .button--primary:hover { background: var(--paper); color: var(--ink); box-shadow: 4px 4px 0 var(--ink); }
.cta-strip .button--primary:active { background: var(--mint-deep); color: var(--paper); }

.notfound {
  min-height: 70vh;
  display: grid;
  align-items: center;
  background: var(--concrete);
  border-bottom: var(--rule) solid var(--ink);
  padding-block: var(--block-pad);
}

.notfound__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--s-6) var(--gutter);
  align-items: center;
}

.notfound__grid > * { min-width: 0; }

.notfound__code {
  font-family: var(--fise-c0c);
  font-weight: 800;
  font-size: clamp(6rem, 30vw, 22rem);
  line-height: 0.8;
  letter-spacing: -0.02em;
  color: var(--ink);
}

.notfound__code span { color: var(--mint-deep); }
.notfound__title { font-size: var(--fs-d2); text-transform: uppercase; margin-top: var(--s-4); max-width: 16ch; }
.notfound__links { display: flex; flex-wrap: wrap; gap: var(--s-3); margin-top: var(--s-5); }

@media (max-width: 700px) {
  .notfound__grid { grid-template-columns: minmax(0, 1fr); }
  .notfound__grid .seal { justify-self: start; }
}

@media (min-width: 1920px) {
  :root { --shell: 1480px; }
  .hero__title { max-width: 16ch; }
}

/* Cookies page: at-a-glance panel, then prose */
.glance-panel {
  border: 1px solid var(--line, rgba(22, 25, 27, 0.2));
  background: var(--paper, #fff);
  color: var(--ink);
  padding: clamp(1rem, 3vw, 2rem);
}
.glance-table {
  width: 100%;
  border-collapse: collapse;
}
.glance-table__caption {
  text-align: left;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid currentColor;
}
.glance-table__title {
  font-size: clamp(1.35rem, 3vw, 1.9rem);
  line-height: 1.15;
  font-weight: 600;
}
.glance-table th,
.glance-table td {
  text-align: left;
  vertical-align: top;
  padding: 0.9rem 0;
  border-bottom: 1px solid var(--line, rgba(22, 25, 27, 0.15));
  overflow-wrap: anywhere;
}
.glance-table th {
  width: 32%;
  padding-right: 1.5rem;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
}
.glance-table tr:last-child th,
.glance-table tr:last-child td { border-bottom: 0; }
.cookie-prose {
  max-width: 68ch;
  margin-inline: auto;
}
.cookie-cards {
  list-style: none;
  margin: 1.5rem 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr));
  gap: 1rem;
}
.cookie-card {
  border: 1px solid var(--line, rgba(22, 25, 27, 0.2));
  padding: 1rem;
  margin: 0;
}
.cookie-card__name {
  margin: 0 0 0.6rem;
  font-weight: 600;
  overflow-wrap: anywhere;
}
.cookie-card dl { margin: 0; display: grid; gap: 0.45rem; }
.cookie-card dl div { display: grid; gap: 0.1rem; }
.cookie-card dt {
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.75;
}
.cookie-card dd { margin: 0; }
@media (max-width: 560px) {
  .glance-table,
  .glance-table tbody,
  .glance-table tr,
  .glance-table th,
  .glance-table td { display: block; width: auto; }
  .glance-table th { padding: 0.9rem 0 0.2rem; border-bottom: 0; }
  .glance-table td { padding-top: 0; }
}

/* Cookie inventory table (cookies.html) */
.cookie-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:1.25rem 0;border:1px solid currentColor;border-color:rgba(22,25,27,.18)}
.cookie-table{width:100%;min-width:40rem;border-collapse:collapse;font-size:.9375rem;line-height:1.45}
.cookie-table th,.cookie-table td{padding:.7rem .85rem;text-align:left;vertical-align:top;border-bottom:1px solid rgba(22,25,27,.12)}
.cookie-table thead th{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;background:rgba(22,25,27,.05)}
.cookie-table tbody th{font-weight:600;white-space:nowrap}
.cookie-table tbody tr:last-child th,.cookie-table tbody tr:last-child td{border-bottom:0}
