.gridlines {
  position: relative;
  isolation: isolate;
}

.gridlines::before {
  content: "";
  position: absolute;
  inset: 0 var(--gutter);
  max-width: calc(var(--shell-max) - 2 * var(--gutter));
  margin-inline: auto;
  z-index: -1;
  pointer-events: none;
  background-image: linear-gradient(to right, var(--rule) 0 1px, transparent 1px);
  background-size: 25% 100%;
  border-right: var(--hairline) solid var(--rule);
  opacity: 0.55;
}

@media (min-width: 1000px) {
  .gridlines::before { background-size: calc(100% / 12) 100%; }
}

.section--ink.gridlines::before {
  background-image: linear-gradient(to right, var(--rule-ink) 0 1px, transparent 1px);
  border-right-color: var(--rule-ink);
  opacity: 0.5;
}

.section-index {
  display: flex;
  align-items: baseline;
  gap: var(--s-3);
  font-family: var(--pibu-443);
  font-size: var(--pibu-aba0);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-3);
  margin-bottom: var(--s-5);
}

.section-index::before {
  content: "";
  width: 2.25rem;
  height: 0;
  border-top: 2px solid var(--signal);
  transform: translateY(-0.3em);
  flex: none;
}

.section--ink .section-index { color: rgba(243, 240, 233, 0.6); }

.hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  background: var(--ink);
  color: var(--paper);
  overflow: hidden;
}

.hero__media {
  position: relative;
  min-height: 56vh;
  min-height: 56svh;
  overflow: hidden;
  background: var(--ink);
}

.hero__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 45% 60%;
  filter: saturate(0.82) contrast(1.04);
  background-color: var(--ink);
}

.hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(21, 20, 18, 0.72) 0%, rgba(21, 20, 18, 0) 32%),
    linear-gradient(0deg, rgba(21, 20, 18, 0.5) 0%, rgba(21, 20, 18, 0) 28%);
}

.hero__tag {
  position: absolute;
  left: var(--gutter);
  bottom: var(--s-5);
  z-index: 2;
  font-family: var(--pibu-443);
  font-size: var(--pibu-aba00);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(243, 240, 233, 0.78);
  max-width: calc(100% - 2 * var(--gutter));
}

.hero__body {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: var(--s-5);
  padding: clamp(2.5rem, 7vw, 4rem) var(--gutter) clamp(3rem, 8vw, 5rem);
  min-width: 0;
}

.hero__body::before {
  content: "";
  position: absolute;
  left: var(--gutter);
  top: 0;
  width: 4rem;
  border-top: 4px solid var(--signal);
}

.hero__eyebrow {
  font-family: var(--pibu-443);
  font-weight: 500;
  font-size: var(--pibu-aba0);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(243, 240, 233, 0.66);
}

.hero__title {
  font-size: var(--pibu-a88);
  line-height: 0.98;
  letter-spacing: -0.02em;
  color: var(--paper);
  max-width: 13ch;
  text-wrap: balance;
}

.hero__title em {
  font-style: normal;
  color: var(--paper);
  -webkit-text-stroke: 1px var(--paper);
}

@supports not (-webkit-text-stroke: 1px black) {
  .hero__title em { color: var(--paper); }
}

.hero__lede {
  font-size: var(--pibu-550);
  line-height: 1.55;
  color: rgba(243, 240, 233, 0.78);
  max-width: 44ch;
}

.hero__cta { display: flex; flex-wrap: wrap; gap: var(--s-4); align-items: center; }

.hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s-2) var(--s-5);
  padding-top: var(--s-4);
  border-top: var(--hairline) solid var(--rule-ink);
  font-family: var(--pibu-443);
  font-size: var(--pibu-aba00);
  letter-spacing: 0.06em;
  color: rgba(243, 240, 233, 0.6);
}

.hero__meta a { color: var(--paper); text-decoration: none; }
.hero__meta a:hover { color: var(--signal); }

@media (min-width: 1000px) {
  .hero {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    min-height: 100vh;
    min-height: 100svh;
  }

  .hero__media { min-height: 100%; }

  .hero__body {
    padding: calc(var(--header-h) + var(--s-8)) clamp(2rem, 4.5vw, 5rem) clamp(3.5rem, 6vw, 6rem);
    border-left: var(--hairline) solid var(--rule-ink);
  }

  .hero__body::before { left: clamp(2rem, 4.5vw, 5rem); top: calc(var(--header-h) + var(--s-6)); }
}

@media (min-width: 1680px) {
  .hero { grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr); }
}

.features { background: var(--paper); }

.features__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-5);
  margin-bottom: clamp(2.5rem, 5vw, 4.5rem);
}

.features__head > * { min-width: 0; }
.features__title { max-width: 16ch; }
.features__intro { color: var(--ink-2); max-width: 46ch; }

@media (min-width: 1000px) {
  .features__head { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: end; }
}

.features__list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0 var(--grid-gap);
  list-style: none;
  margin: 0;
  padding: 0;
}

@media (min-width: 620px) { .features__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .features__list { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.feature {
  display: flex;
  flex-direction: column;
  gap: var(--s-4);
  min-width: 0;
  padding: var(--s-5) 0 var(--s-7);
  border-top: 2px solid var(--ink);
  position: relative;
}

.feature::after {
  content: "";
  position: absolute;
  left: 0;
  top: -2px;
  width: 0;
  border-top: 2px solid var(--signal);
  transition: width var(--dur-4) var(--ease-out);
}

.feature:hover::after,
.feature:focus-within::after { width: 100%; }

.feature__index {
  font-family: var(--pibu-443);
  font-weight: 400;
  font-size: var(--pibu-72a);
  line-height: 1;
  letter-spacing: -0.04em;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}

.feature__title {
  font-family: var(--pibu-0cf);
  font-weight: 800;
  font-size: var(--pibu-1d8);
  letter-spacing: -0.02em;
  line-height: 1.05;
}

.feature__body { color: var(--ink-2); font-size: var(--pibu-aba0); line-height: 1.65; max-width: 36ch; }
.feature__legal { align-self: flex-start; }
.feature__link { margin-top: auto; }

.collage {
  background: var(--paper);
  overflow: hidden;
  overflow: clip;
}

.collage__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(2.5rem, 6vw, 5rem);
  align-items: start;
}

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

@media (min-width: 1000px) {
  .collage__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .collage__text { position: sticky; top: calc(var(--header-h-min) + var(--s-7)); }
}

.collage__text > * + * { margin-top: var(--s-5); }
.collage__text p { color: var(--ink-2); max-width: 46ch; }

.collage__quote {
  font-family: var(--pibu-0cf);
  font-weight: 600;
  font-size: var(--pibu-1d8);
  line-height: 1.15;
  letter-spacing: -0.015em;
  color: var(--ink);
  padding-left: var(--s-5);
  border-left: 4px solid var(--signal);
  max-width: 26ch;
}

.collage__stage {
  --rot-a: -1.5deg;
  --rot-b: 2.5deg;
  --overlap: -18%;
  position: relative;
  isolation: isolate;
  padding: var(--s-4) var(--s-3) var(--s-5);
}

.collage__rule {
  position: absolute;
  left: -8%;
  right: -8%;
  top: 62%;
  z-index: -1;
  border-top: 4px solid var(--signal);
  transform: rotate(-0.6deg);
  transform-origin: left center;
}

.collage__a,
.collage__b {
  position: relative;
  background: var(--paper);
  padding: clamp(0.4rem, 0.9vw, 0.75rem);
  border: var(--hairline) solid var(--rule);
  box-shadow: var(--lift-3);
}

.collage__a {
  width: 84%;
  z-index: 1;
  transform: rotate(var(--rot-a));
}

.collage__b {
  width: 42%;
  margin-left: auto;
  margin-top: var(--overlap);
  margin-right: 1%;
  z-index: 2;
  transform: rotate(var(--rot-b));
}

.collage__a img,
.collage__b img { width: 100%; height: auto; filter: saturate(0.85); }

.collage__caption {
  font-family: var(--pibu-443);
  font-size: var(--pibu-aba00);
  letter-spacing: 0.04em;
  line-height: 1.6;
  color: var(--ink-3);
  max-width: 30ch;
  margin-top: var(--s-5);
  padding-top: var(--s-3);
  border-top: var(--hairline) solid var(--ink);
}

.collage__caption b { color: var(--ink); font-weight: 500; }

@media (max-width: 760px) {
  .collage__stage { --rot-a: -1deg; --rot-b: 1deg; --overlap: -10%; padding-inline: var(--s-2); }
  .collage__a { width: 90%; }
  .collage__b { width: 52%; }
}

@media (min-width: 1000px) {
  .collage__caption { margin-left: 4%; }
}

.process {
  background: var(--paper-2);
  border-block: var(--hairline) solid var(--rule);
}

.process__list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0 var(--grid-gap);
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: none;
}

@media (min-width: 620px) { .process__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .process__list { grid-template-columns: repeat(5, minmax(0, 1fr)); } }

.step {
  display: flex;
  flex-direction: column;
  gap: var(--s-3);
  min-width: 0;
  padding: var(--s-5) 0 var(--s-7);
  border-top: var(--hairline) solid var(--ink);
}

.step__num {
  font-family: var(--pibu-0cf);
  font-weight: 800;
  font-size: var(--step-numeral);
  line-height: 0.85;
  letter-spacing: -0.05em;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}

@supports (-webkit-text-stroke: 1px black) {
  .step__num { color: transparent; -webkit-text-stroke: 1.25px var(--ink); }
  .step:hover .step__num { -webkit-text-stroke-color: var(--signal); }
}

.step__num { transition: -webkit-text-stroke-color var(--dur-3) var(--ease-out); }

.step__title {
  font-family: var(--pibu-0cf);
  font-weight: 600;
  font-size: var(--pibu-da6);
  letter-spacing: -0.012em;
  line-height: 1.15;
}

.step__body { font-size: var(--pibu-aba0); line-height: 1.6; color: var(--ink-2); max-width: 30ch; }

.process__stats {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-6) var(--grid-gap);
  margin-top: clamp(2.5rem, 5vw, 4.5rem);
}

@media (min-width: 620px) { .process__stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.count { font-variant-numeric: tabular-nums; }

.offer {
  background: var(--ink);
  color: var(--paper);
}

.offer__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(2.5rem, 5vw, 4rem);
}

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

@media (min-width: 1000px) {
  .offer__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
}

.offer__title { color: var(--paper); max-width: 14ch; }
.offer__intro { color: rgba(243, 240, 233, 0.72); margin-top: var(--s-5); max-width: 42ch; }

.offer__list { list-style: none; margin: 0; padding: 0; border-top: var(--hairline) solid var(--paper); }

.offer__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-2) var(--s-5);
  padding: var(--s-5) 0;
  border-bottom: var(--hairline) solid var(--rule-ink);
}

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

@media (min-width: 560px) {
  .offer__row { grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; }
}

.offer__name {
  font-family: var(--pibu-0cf);
  font-weight: 600;
  font-size: var(--pibu-da6);
  letter-spacing: -0.012em;
  line-height: 1.2;
  color: var(--paper);
}

.offer__basis {
  grid-column: 1 / -1;
  font-size: var(--pibu-aba0);
  color: rgba(243, 240, 233, 0.6);
  max-width: 58ch;
}

.offer__price {
  font-family: var(--pibu-443);
  font-weight: 500;
  font-size: var(--pibu-1d8);
  letter-spacing: -0.02em;
  color: var(--paper);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.offer__price small {
  font-size: 0.45em;
  font-weight: 400;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(243, 240, 233, 0.55);
  margin-right: 0.5em;
}

.offer__stamp {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  margin-top: var(--s-6);
  padding: 0.7rem 1rem;
  border: var(--hairline) solid rgba(243, 240, 233, 0.55);
  font-family: var(--pibu-443);
  font-size: var(--pibu-aba00);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  line-height: 1.5;
  color: rgba(243, 240, 233, 0.86);
  max-width: 100%;
}

.offer__refusal {
  margin-top: clamp(3rem, 6vw, 5rem);
  padding-top: var(--s-6);
  border-top: 4px solid var(--signal);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-4);
}

@media (min-width: 900px) {
  .offer__refusal { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: end; }
}

.offer__refusal-line {
  font-family: var(--pibu-0cf);
  font-weight: 800;
  font-size: var(--pibu-72a);
  line-height: 0.98;
  letter-spacing: -0.025em;
  color: var(--paper);
  max-width: 18ch;
}

.offer__refusal p:not(.offer__refusal-line) { color: rgba(243, 240, 233, 0.7); font-size: var(--pibu-aba0); max-width: 44ch; }

.inquiry__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(2.5rem, 5vw, 5rem);
}

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

@media (min-width: 1000px) {
  .inquiry__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .inquiry__aside { position: sticky; top: calc(var(--header-h-min) + var(--s-6)); align-self: start; }
}

.inquiry__aside > * + * { margin-top: var(--s-5); }
.inquiry__aside p { color: var(--ink-2); max-width: 42ch; }

.inquiry__form {
  padding: clamp(1.25rem, 3vw, 2.5rem);
  background: var(--paper);
  border: var(--hairline) solid var(--ink);
  box-shadow: 10px 10px 0 0 var(--paper-2), var(--lift-2);
}

.page-head {
  background: var(--ink);
  color: var(--paper);
  padding: calc(var(--header-h) + clamp(2.5rem, 6vw, 5rem)) 0 clamp(3rem, 6vw, 5.5rem);
  position: relative;
  border-bottom: 4px solid var(--signal);
}

.page-head__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-6);
}

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

@media (min-width: 1000px) {
  .page-head__grid { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); align-items: end; }
}

.page-head__title { color: var(--paper); max-width: 18ch; margin-top: var(--s-4); }
.page-head__lede { color: rgba(243, 240, 233, 0.76); font-size: var(--pibu-550); line-height: 1.55; max-width: 48ch; }
.page-head__meta { font-family: var(--pibu-443); font-size: var(--pibu-aba00); letter-spacing: 0.08em; color: rgba(243, 240, 233, 0.55); margin-top: var(--s-4); }

.page-head .breadcrumb,
.page-head .breadcrumb a { color: rgba(243, 240, 233, 0.6); }
.page-head .breadcrumb a:hover { color: var(--paper); }
.page-head .breadcrumb [aria-current="page"] { color: var(--paper); }

.page-head--legal .page-head__title { font-size: var(--pibu-72a); max-width: 22ch; }

.service-nav {
  position: sticky;
  top: var(--header-h-min);
  z-index: var(--z-sticky);
  background: var(--paper);
  border-bottom: var(--hairline) solid var(--rule);
}

.service-nav__track {
  display: flex;
  gap: var(--s-2);
  padding-block: 0.7rem;
  overflow-x: auto;
  scrollbar-width: none;
  list-style: none;
  margin: 0;
}

.service-nav__track::-webkit-scrollbar { display: none; }

.service {
  padding-block: var(--section-y);
  border-top: var(--hairline) solid var(--rule);
}

.service:nth-of-type(even) { background: var(--paper-2); }

.service__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-6);
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

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

@media (min-width: 1000px) {
  .service__head { grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); align-items: end; }
}

.service__index {
  font-family: var(--pibu-443);
  font-size: var(--pibu-aba0);
  letter-spacing: 0.14em;
  color: var(--signal-dark);
}

.service__title { margin-top: var(--s-3); max-width: 16ch; }
.service__lede { color: var(--ink-2); font-size: var(--pibu-550); max-width: 50ch; }

.service__media {
  position: relative;
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
}

.service__media img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  filter: saturate(0.85);
}

@media (min-width: 1000px) {
  .service__media img { aspect-ratio: 21 / 9; }
}

.service__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(2rem, 4vw, 4rem);
}

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

@media (min-width: 1000px) {
  .service__body { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
}

.service__price {
  padding: var(--s-5);
  border: var(--hairline) solid var(--ink);
  background: var(--paper);
}

.service__price-value {
  font-family: var(--pibu-443);
  font-weight: 500;
  font-size: var(--pibu-3ca);
  letter-spacing: -0.03em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  margin-top: var(--s-2);
}

.service__price-note { font-size: var(--pibu-aba0); color: var(--ink-3); margin-top: var(--s-3); line-height: 1.55; }

.legal-path {
  list-style: none;
  margin: 0;
  padding: 0;
  border-left: 2px solid var(--ink);
}

.legal-path li {
  position: relative;
  padding: 0 0 var(--s-5) var(--s-5);
  font-size: var(--pibu-aba0);
  line-height: 1.6;
  color: var(--ink-2);
}

.legal-path li::before {
  content: "";
  position: absolute;
  left: -6px;
  top: 0.45em;
  width: 10px;
  height: 10px;
  background: var(--paper);
  border: 2px solid var(--ink);
}

.legal-path li:last-child { padding-bottom: 0; }
.legal-path li:last-child::before { background: var(--signal); border-color: var(--signal); }
.legal-path strong { display: block; color: var(--ink); font-family: var(--pibu-0cf); font-size: var(--pibu-550); font-weight: 600; letter-spacing: -0.01em; }

.refuse {
  background: var(--ink);
  color: var(--paper);
  padding-block: var(--section-y);
}

.refuse__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0 var(--grid-gap);
  border-top: 4px solid var(--signal);
}

@media (min-width: 800px) { .refuse__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.refuse__item {
  padding: var(--s-5) 0;
  border-bottom: var(--hairline) solid var(--rule-ink);
  min-width: 0;
}

.refuse__item h3 { color: var(--paper); font-size: var(--pibu-da6); }
.refuse__item p { color: rgba(243, 240, 233, 0.72); font-size: var(--pibu-aba0); margin-top: var(--s-2); max-width: 48ch; }

.split {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 5rem);
}

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

@media (min-width: 1000px) {
  .split { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .split--rev { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
  .split__sticky { position: sticky; top: calc(var(--header-h-min) + var(--s-6)); align-self: start; }
}

.workshop-figure {
  position: relative;
  margin-top: calc(-1 * clamp(2rem, 5vw, 4rem));
}

.workshop-figure img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  filter: saturate(0.82);
  border: clamp(0.4rem, 1vw, 0.75rem) solid var(--paper);
  box-shadow: var(--lift-3);
}

.sheet {
  border: var(--hairline) solid var(--ink);
  background: var(--paper);
  padding: clamp(1rem, 3vw, 2rem);
}

.sheet__head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--s-2) var(--s-4);
  padding-bottom: var(--s-3);
  border-bottom: 2px solid var(--ink);
  font-family: var(--pibu-443);
  font-size: var(--pibu-aba00);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-3);
}

.sheet__rows { list-style: none; margin: 0; padding: 0; }

.sheet__rows li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--s-4);
  padding: 0.8rem 0;
  border-bottom: var(--hairline) solid var(--rule);
  font-size: var(--pibu-aba0);
  color: var(--ink-2);
}

.sheet__rows li > * { min-width: 0; }
.sheet__rows .mono { color: var(--ink); }

.sheet svg { width: 100%; height: auto; margin-top: var(--s-4); }

.failure {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-5);
  padding: clamp(1.5rem, 4vw, 3rem);
  border-left: 4px solid var(--signal);
  background: var(--paper-2);
}

@media (min-width: 900px) { .failure { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); } }

.failure > * { min-width: 0; }
.failure__label { font-family: var(--pibu-443); font-size: var(--pibu-aba0); letter-spacing: 0.12em; text-transform: uppercase; color: var(--signal); }

.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(2.5rem, 5vw, 5rem);
}

.contact-layout > * { min-width: 0; }

@media (min-width: 1000px) {
  .contact-layout { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
  .contact-aside { position: sticky; top: calc(var(--header-h-min) + var(--s-6)); align-self: start; }
}

.contact-aside > * + * { margin-top: var(--s-7); }

.contact-card {
  padding-top: var(--s-4);
  border-top: 2px solid var(--ink);
}

.contact-card__big {
  display: inline-block;
  font-family: var(--pibu-0cf);
  font-weight: 800;
  font-size: var(--pibu-3ca);
  letter-spacing: -0.025em;
  line-height: 1.05;
  color: var(--ink);
  text-decoration: none;
  overflow-wrap: anywhere;
  margin-top: var(--s-2);
  transition: color var(--dur-2) var(--ease-press);
}

.contact-card__big:hover { color: var(--signal); }
.contact-card__big:active { color: var(--signal-dark); }
.contact-card address { font-style: normal; color: var(--ink-2); line-height: 1.6; margin-top: var(--s-2); }

.bring-list { list-style: none; margin: 0; padding: 0; counter-reset: bring; }

.bring-list li {
  counter-increment: bring;
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: var(--s-3);
  padding: var(--s-3) 0;
  border-bottom: var(--hairline) solid var(--rule);
  font-size: var(--pibu-aba0);
  line-height: 1.55;
  color: var(--ink-2);
}

.bring-list li::before {
  content: counter(bring, decimal-leading-zero);
  font-family: var(--pibu-443);
  color: var(--signal);
  font-size: var(--pibu-aba0);
}

.form-fieldset {
  border: 0;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-5);
  min-width: 0;
}

.form-fieldset + .form-fieldset { margin-top: var(--s-7); padding-top: var(--s-6); border-top: var(--hairline) solid var(--rule); }

@media (min-width: 720px) { .form-fieldset { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.form-fieldset legend {
  grid-column: 1 / -1;
  padding: 0;
  margin-bottom: var(--s-4);
  font-family: var(--pibu-0cf);
  font-weight: 600;
  font-size: var(--pibu-da6);
  letter-spacing: -0.01em;
}

.form-fieldset legend span { font-family: var(--pibu-443); font-size: var(--pibu-aba0); color: var(--signal); margin-right: 0.6rem; font-weight: 400; }

.faq__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(2rem, 4vw, 4rem);
}

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

@media (min-width: 1000px) { .faq__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); } }

.data-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  border-top: 2px solid var(--ink);
  border-bottom: var(--hairline) solid var(--ink);
  margin-block: var(--s-6);
  max-width: 100%;
}

.data-table {
  width: 100%;
  min-width: 40rem;
  border-collapse: collapse;
  font-size: var(--pibu-aba0);
  line-height: 1.5;
}

.data-table caption {
  text-align: left;
  caption-side: top;
  padding: var(--s-3) 0;
  font-family: var(--pibu-443);
  font-size: var(--pibu-aba00);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-3);
}

.data-table th,
.data-table td {
  text-align: left;
  vertical-align: top;
  padding: 0.85rem 1rem 0.85rem 0;
  border-bottom: var(--hairline) solid var(--rule);
}

.data-table thead th {
  font-family: var(--pibu-443);
  font-weight: 500;
  font-size: var(--pibu-aba00);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-3);
  white-space: nowrap;
  border-bottom-color: var(--ink);
}

.data-table tbody th { font-weight: 600; color: var(--ink); }
.data-table td { color: var(--ink-2); }
.data-table code { font-family: var(--pibu-443); font-size: 0.92em; color: var(--ink); background: var(--paper-2); padding: 0.1em 0.35em; overflow-wrap: anywhere; }
.data-table tbody tr:last-child th,
.data-table tbody tr:last-child td { border-bottom: 0; }

.legal-numerals {
  padding-block: var(--section-y);
}

.legal-numerals__wrap {
  max-width: 76ch;
  margin-inline: auto;
}

.ln-intro {
  font-size: var(--pibu-da6);
  line-height: 1.5;
  color: var(--ink);
  max-width: 58ch;
  padding-bottom: var(--s-8);
}

.ln-section {
  position: relative;
  padding-block: var(--s-8) var(--s-9);
  border-top: var(--hairline) solid var(--rule);
}

.ln-num {
  display: block;
  font-family: var(--pibu-0cf);
  font-weight: 800;
  font-size: clamp(3.5rem, 2rem + 7vw, 10rem);
  line-height: 0.8;
  letter-spacing: -0.06em;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
  margin-bottom: var(--s-5);
}

@supports (-webkit-text-stroke: 1px black) {
  .ln-num { color: transparent; -webkit-text-stroke: 1.25px var(--ink-3); }
  .ln-section:target .ln-num { -webkit-text-stroke-color: var(--signal); }
}

.ln-section h2 {
  font-size: var(--pibu-3ca);
  max-width: 22ch;
  margin-bottom: var(--s-5);
}

.ln-section .prose { max-width: 72ch; }

@media (min-width: 1180px) {
  .legal-numerals__wrap { padding-left: 14rem; max-width: calc(76ch + 14rem); }
  .ln-intro { margin-left: 0; }
  .ln-num {
    position: absolute;
    right: calc(100% + var(--s-6));
    top: var(--s-8);
    margin: 0;
    text-align: right;
    width: 14rem;
  }
  .ln-section::before {
    content: "";
    position: absolute;
    top: -1px;
    right: 100%;
    width: 14rem;
    border-top: var(--hairline) solid var(--rule);
  }
}

@media (max-width: 400px) {
  .ln-section { padding-block: var(--s-6) var(--s-7); }
}

.chipbar {
  position: sticky;
  top: var(--header-h-min);
  z-index: var(--z-sticky);
  background: var(--paper);
  border-bottom: var(--hairline) solid var(--ink);
  box-shadow: 0 12px 24px -22px rgba(21, 20, 18, 0.6);
}

.chipbar__track {
  display: flex;
  flex-wrap: nowrap;
  gap: var(--s-2);
  list-style: none;
  margin: 0;
  padding-block: 0.7rem;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
  scrollbar-color: var(--ink-3) transparent;
  -webkit-overflow-scrolling: touch;
}

.chipbar__track > li { flex: none; scroll-snap-align: start; }

.chipbar__label {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding-right: var(--s-2);
  font-family: var(--pibu-443);
  font-size: var(--pibu-aba00);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-3);
  white-space: nowrap;
}

.chip:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; background: var(--paper-2); color: var(--ink); }

.ck-section {
  padding-block: clamp(3.5rem, 8vw, 7rem);
  border-top: var(--hairline) solid var(--ink);
  scroll-margin-top: calc(var(--header-h-min) + 4.5rem);
}

.ck-section:first-of-type { border-top: 0; }

.ck-section__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-4);
  margin-bottom: var(--s-7);
}

.ck-section__head > * { min-width: 0; }

@media (min-width: 1000px) {
  .ck-section__head { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: end; }
}

.ck-section__head h2 { font-size: var(--pibu-3ca); max-width: 18ch; }

.ck-standfirst {
  font-family: var(--pibu-0cf);
  font-weight: 600;
  font-size: var(--pibu-da6);
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--ink);
  max-width: 44ch;
  padding-left: var(--s-4);
  border-left: 4px solid var(--signal);
}

.ck-section .prose { max-width: 72ch; }

.consent-signals {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0 var(--grid-gap);
  list-style: none;
  margin: var(--s-6) 0 0;
  padding: 0;
}

@media (min-width: 720px) { .consent-signals { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.consent-signals li {
  padding: var(--s-4) 0;
  border-top: var(--hairline) solid var(--rule);
  min-width: 0;
}

.consent-signals code {
  display: block;
  font-family: var(--pibu-443);
  font-weight: 500;
  font-size: var(--pibu-550);
  color: var(--ink);
  overflow-wrap: anywhere;
}

.consent-signals span { font-size: var(--pibu-aba0); color: var(--ink-2); }

.tabs { padding-block: var(--section-y); }

.tabs__list {
  display: none;
  gap: 0;
  border-bottom: 2px solid var(--ink);
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.tabs__tab {
  position: relative;
  display: inline-flex;
  align-items: baseline;
  gap: 0.65rem;
  min-height: 56px;
  padding: 1rem clamp(1rem, 2vw, 1.75rem);
  font-family: var(--pibu-0cf);
  font-weight: 600;
  font-size: var(--pibu-550);
  letter-spacing: -0.01em;
  color: var(--ink-3);
  background: transparent;
  border: var(--hairline) solid transparent;
  border-bottom: 0;
  margin-bottom: -2px;
  transition: color var(--dur-2) var(--ease-press), background var(--dur-2) var(--ease-press), border-color var(--dur-2) var(--ease-press);
}

.tabs__tab .mono { font-size: var(--pibu-aba00); color: var(--ink-3); letter-spacing: 0.08em; }

.tabs__tab::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -1px;
  border-top: 4px solid var(--signal);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--dur-3) var(--ease-out);
}

.tabs__tab:hover { color: var(--ink); background: var(--paper-2); }
.tabs__tab:active { background: var(--paper-3); color: var(--ink); }
.tabs__tab:focus-visible { outline: 2px solid var(--signal); outline-offset: -2px; color: var(--ink); }

.tabs__tab[aria-selected="true"] {
  color: var(--ink);
  background: var(--paper);
  border-color: var(--ink);
  border-bottom: 2px solid var(--paper);
}

.tabs__tab[aria-selected="true"]::after { transform: scaleX(1); }
.tabs__tab[aria-selected="true"] .mono { color: var(--signal); }

.tabs__acc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--s-4);
  width: 100%;
  min-height: 60px;
  padding: 1rem 0;
  border-top: var(--hairline) solid var(--ink);
  text-align: left;
  font-family: var(--pibu-0cf);
  font-weight: 600;
  font-size: var(--pibu-da6);
  letter-spacing: -0.012em;
  line-height: 1.2;
  color: var(--ink);
  transition: color var(--dur-2) var(--ease-press), padding-left var(--dur-3) var(--ease-out), background var(--dur-2) var(--ease-press);
}

.tabs__acc > span { min-width: 0; }
.tabs__acc .mono { font-size: var(--pibu-aba00); color: var(--signal); margin-right: 0.6rem; }
.tabs__acc .icon { flex: none; color: var(--ink-3); transition: transform var(--dur-3) var(--ease-out); }
.tabs__acc:hover { color: var(--signal); padding-left: 0.4rem; }
.tabs__acc:active { background: var(--paper-2); }
.tabs__acc:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.tabs__acc[aria-expanded="true"] .icon { transform: rotate(180deg); }

.tabs__panel { padding-bottom: var(--s-7); }
.tabs__panel:focus-visible { outline: 2px solid var(--signal); outline-offset: 6px; }

.tabs__panel-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--s-4);
  margin-bottom: var(--s-7);
}

.tabs__panel-head > * { min-width: 0; }
.tabs__panel-head h2 { font-size: var(--pibu-3ca); max-width: 20ch; }

@media (min-width: 1000px) {
  .tabs__panel-head { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: end; }
}

.tabs__panel .prose { max-width: 70ch; }

html:not(.js) .tabs__panel[hidden] { display: block !important; }
html:not(.js) .tabs__acc { display: none; }

@media (min-width: 768px) {
  .js .tabs__list { display: flex; flex-wrap: wrap; }
  .tabs__acc { display: none; }
}

@media (max-width: 767.98px) {
  .tabs__panel { padding: var(--s-2) 0 var(--s-6); }
  .tabs__panel-head { margin-bottom: var(--s-5); }
  .tabs__panel-head h2 { display: none; }
  .tabs__group:last-child .tabs__acc[aria-expanded="false"] { border-bottom: var(--hairline) solid var(--ink); }
}

.warranty-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0 var(--grid-gap);
  margin-block: var(--s-6);
}

@media (min-width: 720px) { .warranty-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.warranty-grid > div { padding: var(--s-4) 0; border-top: 2px solid var(--ink); min-width: 0; }
.warranty-grid > div.is-excluded { border-top-color: var(--signal); }
.warranty-grid h3 { font-size: var(--pibu-550); }
.warranty-grid p, .warranty-grid li { font-size: var(--pibu-aba0); color: var(--ink-2); }

.notfound {
  min-height: 88vh;
  min-height: 88svh;
  display: flex;
  align-items: flex-end;
  background: var(--ink);
  color: var(--paper);
  padding: calc(var(--header-h) + var(--s-8)) 0 var(--section-y);
  overflow: hidden;
}

.notfound__num {
  display: block;
  font-family: var(--pibu-0cf);
  font-weight: 800;
  font-size: clamp(6rem, 3rem + 20vw, 22rem);
  line-height: 0.8;
  letter-spacing: -0.07em;
  color: transparent;
  -webkit-text-stroke: 1.5px rgba(243, 240, 233, 0.5);
  margin-bottom: var(--s-6);
}

@supports not (-webkit-text-stroke: 1px black) {
  .notfound__num { color: rgba(243, 240, 233, 0.2); }
}

.notfound h1 { color: var(--paper); max-width: 16ch; }
.notfound p { color: rgba(243, 240, 233, 0.72); max-width: 46ch; margin-top: var(--s-5); }
.notfound .cluster { margin-top: var(--s-7); }

.cta-band {
  background: var(--paper-2);
  border-top: 4px solid var(--ink);
}

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

.cta-band__inner > * { min-width: 0; }

@media (min-width: 900px) { .cta-band__inner { grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); } }

.cta-band__title { max-width: 20ch; }

@media (max-width: 360px) {
  .hero__cta .btn { width: 100%; }
  .offer__price { font-size: var(--pibu-da6); white-space: normal; }
  .tabs__acc { font-size: var(--pibu-550); }
}
