.theo-service-page,
.theo-b2b-page {
  overflow: hidden;
  background: var(--color-white);
}

/* Shared service hero */
.service-hero,
.b2b-hero {
  position: relative;
  display: flex;
  min-height: 680px;
  align-items: center;
  overflow: hidden;
  color: var(--color-white);
  background: var(--color-deep);
}
.service-hero > picture,
.service-hero > picture img,
.service-hero__veil,
.b2b-hero > picture,
.b2b-hero > picture img,
.b2b-hero__veil {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.service-hero > picture img,
.b2b-hero > picture img {
  object-fit: cover;
  object-position: center 52%;
}
.service-hero__veil,
.b2b-hero__veil {
  background:
    linear-gradient(90deg, rgba(7, 12, 17, .92) 0%, rgba(7, 12, 17, .7) 46%, rgba(7, 12, 17, .16) 84%),
    linear-gradient(180deg, rgba(7, 12, 17, .34), transparent 44%, rgba(7, 12, 17, .48));
}
.service-hero__content,
.b2b-hero__content {
  position: relative;
  z-index: 1;
  padding-top: var(--header-height);
}
.service-hero h1,
.b2b-hero h1 {
  max-width: 760px;
  margin: 0 0 var(--space-3);
  font-size: clamp(42px, 4vw, 58px);
  font-weight: 600;
  line-height: 1.17;
  letter-spacing: -.04em;
}
.service-hero__content > p:not(.kicker),
.b2b-hero__content > p:not(.kicker) {
  max-width: 680px;
  margin-bottom: var(--space-4);
  color: rgba(255, 255, 255, .82);
  font-size: 17px;
  line-height: 1.75;
}
.service-hero__foot {
  display: flex;
  max-width: 920px;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
}
.service-hero__foot > span {
  color: rgba(255, 255, 255, .64);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .14em;
}

/* Intro and common section headings */
.service-intro,
.b2b-intro {
  padding: 112px 0;
}
.service-intro__grid,
.b2b-intro__grid {
  display: grid;
  grid-template-columns: minmax(320px, .82fr) minmax(440px, 1.18fr);
  gap: clamp(56px, 8vw, 132px);
  align-items: start;
}
.service-intro h2,
.b2b-intro h2,
.service-section-heading h2,
.b2b-section-heading h2,
.service-route h2,
.compare-module h2,
.coa-fields h2,
.official-review h2,
.frame-mockup h2 {
  margin: 0;
  font-size: clamp(32px, 3vw, 44px);
  font-weight: 600;
  line-height: 1.28;
  letter-spacing: -.035em;
}
.service-intro__lead {
  max-width: 32ch;
  margin: var(--space-3) 0 0;
  color: var(--color-neutral);
  font-size: 16px;
}
.service-intro__copy,
.b2b-intro__grid > div {
  display: grid;
  gap: var(--space-2);
  color: var(--color-neutral);
  font-size: 17px;
  line-height: 1.8;
}
.service-intro__copy p,
.b2b-intro__grid > div p {
  margin: 0;
}
.service-principles {
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
  background: var(--color-warm);
}
.service-principles__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.service-principles article {
  min-width: 0;
  min-height: 280px;
  padding: var(--space-4);
  border-left: 1px solid var(--color-line);
}
.service-principles article:last-child {
  border-right: 1px solid var(--color-line);
}
.service-principles article > span {
  display: block;
  margin-bottom: var(--space-8);
  color: var(--color-deep);
  font-size: 16px;
  font-weight: 600;
}
.service-principles h2 {
  margin: 0 0 var(--space-1);
  font-size: 23px;
  line-height: 1.35;
}
.service-principles p {
  margin: 0;
  color: var(--color-neutral);
}
.service-module {
  padding: 112px 0;
}
.service-module--warm {
  background: var(--color-warm);
}
.service-module--dark {
  color: var(--color-white);
  background: var(--color-deep);
}
.service-section-heading,
.b2b-section-heading {
  display: grid;
  grid-template-columns: minmax(320px, .82fr) minmax(440px, 1.18fr);
  gap: clamp(56px, 8vw, 132px);
  align-items: end;
  margin-bottom: var(--space-8);
}
.service-section-heading > p,
.b2b-section-heading > p {
  max-width: 680px;
  margin: 0;
  color: var(--color-neutral);
  font-size: 16px;
  line-height: 1.8;
}

/* Paper guide */
.paper-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: var(--space-4);
}
.paper-filters button {
  min-height: 44px;
  padding: 0 16px;
  border: 1px solid var(--color-line);
  color: var(--color-neutral);
  background: var(--color-white);
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  transition: color var(--motion), background var(--motion), border-color var(--motion);
}
.paper-filters button:hover,
.paper-filters button.is-active {
  border-color: var(--color-deep);
  color: var(--color-white);
  background: var(--color-deep);
}
.paper-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-3);
}
.paper-card {
  min-width: 0;
  border: 1px solid var(--color-line);
  background: var(--color-white);
}
.paper-card[hidden] {
  display: none;
}
.paper-card figure {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--color-warm-2);
}
.paper-card figure picture,
.paper-card figure img {
  width: 100%;
  height: 100%;
}
.paper-card figure img {
  object-fit: cover;
  filter: saturate(.78);
  transition: transform 650ms cubic-bezier(.2, .75, .2, 1), filter var(--motion);
}
.paper-card__zoom {
  position: absolute;
  z-index: 2;
  top: 12px;
  right: 12px;
  display: grid;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .72);
  place-items: center;
  color: var(--color-white);
  background: rgba(7, 12, 17, .66);
  cursor: pointer;
  font-size: 22px;
  line-height: 1;
  transition: color var(--motion), background var(--motion);
}
.paper-card__zoom:hover,
.paper-card__zoom:focus-visible,
.paper-card__zoom[aria-pressed="true"] {
  color: var(--color-deep);
  background: var(--color-white);
}
.paper-card__zoom span {
  transition: transform var(--motion);
}
.paper-card__zoom[aria-pressed="true"] span {
  transform: rotate(45deg);
}
.paper-card > div {
  padding: var(--space-3);
}
.paper-card > div > span,
.service-info-card > span,
.frame-type-card > div > span,
.consultation-card > span {
  color: var(--color-deep);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .14em;
}
.paper-card h3,
.service-info-card h3,
.frame-type-card h3 {
  margin: 10px 0 var(--space-1);
  font-size: 23px;
}
.paper-card p,
.service-info-card p,
.frame-type-card p {
  margin: 0;
  color: var(--color-neutral);
}
.paper-card em,
.service-info-card em {
  display: inline-flex;
  margin-top: var(--space-3);
  padding: 5px 8px;
  border: 1px solid #d7b657;
  color: #775b12;
  font-size: 14px;
  font-style: normal;
  font-weight: 600;
}
.service-data-note {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: var(--space-3);
  margin-top: var(--space-6);
  padding: var(--space-3);
  border: 1px solid #d7b657;
  background: #fffaf0;
}
.service-data-note > span {
  align-self: start;
  color: #775b12;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .08em;
}
.service-data-note strong {
  display: block;
  margin-bottom: 4px;
  font-size: 17px;
}
.service-data-note p {
  margin: 0;
  color: var(--color-neutral);
}
.service-info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
}
.service-info-card {
  min-height: 300px;
  padding: var(--space-4);
  border-left: 1px solid var(--color-line);
}
.service-info-card:last-child {
  border-right: 1px solid var(--color-line);
}
.service-info-card h3 {
  margin-top: var(--space-8);
}
.service-info-card .text-link {
  margin-top: var(--space-3);
}

/* Frames */
.frame-type-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
}
.frame-type-card {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1.08fr) minmax(280px, .92fr);
  border: 1px solid var(--color-line);
  background: var(--color-white);
}
.frame-type-card figure {
  min-height: 420px;
  overflow: hidden;
  background: var(--color-warm-2);
}
.frame-type-card figure picture,
.frame-type-card figure img {
  width: 100%;
  height: 100%;
}
.frame-type-card figure img {
  object-fit: cover;
  filter: saturate(.78);
  transition: transform 650ms cubic-bezier(.2, .75, .2, 1), filter var(--motion);
}
.frame-type-card > div {
  display: flex;
  min-width: 0;
  padding: var(--space-4);
  flex-direction: column;
  justify-content: flex-end;
}
.frame-type-card .text-link {
  align-self: flex-start;
  margin-top: var(--space-3);
}
.frame-mockup .eyebrow {
  color: rgba(255, 255, 255, .7);
}
.frame-mockup__grid {
  display: grid;
  grid-template-columns: minmax(340px, .8fr) minmax(520px, 1.2fr);
  gap: clamp(56px, 8vw, 132px);
  align-items: center;
}
.frame-mockup__copy > p:not(.eyebrow) {
  margin: var(--space-3) 0 var(--space-4);
  color: rgba(255, 255, 255, .72);
  line-height: 1.8;
}
.frame-mockup__visual {
  position: relative;
  min-height: 520px;
  overflow: hidden;
}
.frame-mockup__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.72) brightness(.82);
}
.frame-mockup__visual span {
  position: absolute;
  right: var(--space-3);
  bottom: var(--space-3);
  left: var(--space-3);
  color: var(--color-white);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .12em;
}

/* Edition support */
.edition-chain {
  display: grid;
  grid-template-columns: auto 1fr auto 1fr auto 1fr auto 1fr auto;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-6);
  border: 1px solid var(--color-line);
  background: var(--color-warm);
}
.edition-chain span {
  font-size: 16px;
  font-weight: 600;
  letter-spacing: .08em;
  text-align: center;
}
.edition-chain i {
  height: 1px;
  overflow: visible;
  color: var(--color-neutral);
  background: var(--color-line);
  font-size: 14px;
  font-style: normal;
  line-height: 0;
  text-align: right;
}
.coa-fields__grid {
  display: grid;
  grid-template-columns: minmax(320px, .78fr) minmax(520px, 1.22fr);
  gap: clamp(56px, 8vw, 132px);
  align-items: start;
}
.coa-fields header > p:not(.eyebrow) {
  margin: var(--space-3) 0 0;
  color: var(--color-neutral);
  line-height: 1.8;
}
.coa-field-list {
  display: grid;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--color-line);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  list-style: none;
}
.coa-field-list li {
  min-height: 126px;
  padding: var(--space-2);
  border-right: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
}
.coa-field-list li:nth-child(3n+1) {
  border-left: 1px solid var(--color-line);
}
.coa-field-list span {
  display: block;
  margin-bottom: var(--space-3);
  color: var(--color-neutral);
  font-size: 14px;
}
.coa-field-list strong {
  font-size: 16px;
}
.official-review {
  border-top: 1px solid var(--color-line);
}
.official-review__inner {
  display: grid;
  grid-template-columns: minmax(320px, .8fr) minmax(440px, 1.2fr);
  gap: clamp(56px, 8vw, 132px);
  align-items: center;
}
.official-review__status {
  padding: var(--space-4);
  border: 1px solid var(--color-line);
  background: var(--color-warm);
}
.official-review__status > span {
  display: inline-flex;
  margin-bottom: var(--space-2);
  padding: 4px 8px;
  border: 1px solid #d7b657;
  color: #775b12;
  font-size: 14px;
  font-weight: 600;
}
.official-review__status strong {
  display: block;
  margin-bottom: 6px;
}
.official-review__status p {
  margin: 0;
  color: var(--color-neutral);
}

/* Reproduction comparison */
.compare-module {
  background: var(--color-warm);
}
.compare-module__grid {
  display: grid;
  grid-template-columns: minmax(320px, .72fr) minmax(560px, 1.28fr);
  gap: clamp(56px, 8vw, 132px);
  align-items: center;
}
.compare-module header > p:not(.eyebrow) {
  margin: var(--space-3) 0 var(--space-4);
  color: var(--color-neutral);
  line-height: 1.8;
}
.compare-module label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  margin-bottom: 8px;
  font-size: 14px;
  font-weight: 600;
}
.compare-module input[type="range"] {
  width: 100%;
  accent-color: var(--color-deep);
}
.image-compare {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: 1px solid var(--color-line);
  background: var(--color-warm-2);
}
.image-compare__before,
.image-compare__after,
.image-compare__after img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.image-compare__before {
  filter: blur(3px) saturate(.45) contrast(.86);
  transform: scale(1.02);
}
.image-compare__after {
  width: 100%;
  overflow: hidden;
  clip-path: inset(0 calc(100% - var(--compare-position)) 0 0);
}
.image-compare__after img {
  width: 100%;
  filter: saturate(.9) contrast(1.06);
}
.image-compare__line {
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--compare-position);
  width: 2px;
  background: var(--color-white);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, .18);
  transform: translateX(-1px);
}
.image-compare__line::after {
  content: "↔";
  position: absolute;
  top: 50%;
  left: 50%;
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 50%;
  color: var(--color-deep);
  background: var(--color-white);
  box-shadow: 0 8px 22px rgba(0, 0, 0, .18);
  transform: translate(-50%, -50%);
  font-size: 16px;
}
.image-compare__label {
  position: absolute;
  top: var(--space-2);
  padding: 5px 8px;
  color: var(--color-white);
  background: rgba(10, 16, 22, .72);
  font-size: 14px;
  letter-spacing: .12em;
}
.image-compare__label--before { left: var(--space-2); }
.image-compare__label--after { right: var(--space-2); }

/* Common route and CTA */
.service-route {
  padding: 112px 0;
}
.service-route__grid {
  display: grid;
  grid-template-columns: minmax(320px, .72fr) minmax(520px, 1.28fr);
  gap: clamp(56px, 8vw, 132px);
  align-items: start;
}
.service-route__sticky {
  position: sticky;
  top: var(--scroll-offset);
}
.service-route__sticky > p:not(.eyebrow) {
  max-width: 38ch;
  margin: var(--space-3) 0 0;
  color: var(--color-neutral);
}
.service-route__list {
  border-top: 1px solid var(--color-line);
}
.service-route__list article {
  display: grid;
  min-height: 156px;
  align-items: center;
  padding: var(--space-3) 0;
  border-bottom: 1px solid var(--color-line);
  grid-template-columns: 54px minmax(0, 1fr) auto;
  gap: var(--space-3);
}
.service-route__list article > span {
  color: var(--color-deep);
  font-size: 16px;
  font-weight: 600;
}
.service-route__list h3 {
  margin: 0 0 5px;
  font-size: 21px;
}
.service-route__list p {
  margin: 0;
  color: var(--color-neutral);
}
.service-route__list em {
  padding: 5px 9px;
  border: 1px solid var(--color-line);
  color: var(--color-neutral);
  font-size: 14px;
  font-style: normal;
  white-space: nowrap;
}
.service-cta,
.b2b-institution {
  padding: 88px 0;
  color: var(--color-white);
  background: var(--color-deep);
}
.service-cta__inner,
.b2b-institution__inner {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: var(--space-6);
}
.service-cta__inner > div > p,
.b2b-institution__inner > div > p {
  margin-bottom: var(--space-2);
  color: rgba(255, 255, 255, .62);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .16em;
}
.service-cta h2,
.b2b-institution h2 {
  max-width: 780px;
  margin: 0 0 var(--space-2);
  font-size: clamp(28px, 2.7vw, 40px);
  line-height: 1.35;
}
.service-cta__inner > div > span,
.b2b-institution__inner > div > span {
  display: block;
  max-width: 720px;
  color: rgba(255, 255, 255, .68);
}

/* B2B page */
.b2b-hero__content > div {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.b2b-projects,
.b2b-consultation,
.b2b-faq {
  padding: 112px 0;
}
.b2b-projects {
  background: var(--color-warm);
}
.b2b-project-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
}
.b2b-project-card {
  display: flex;
  min-width: 0;
  min-height: 380px;
  padding: var(--space-4);
  border: 0;
  border-left: 1px solid var(--color-line);
  color: var(--color-ink);
  background: transparent;
  cursor: pointer;
  flex-direction: column;
  text-align: left;
  transition: color var(--motion), background var(--motion);
}
.b2b-project-card:last-child {
  border-right: 1px solid var(--color-line);
}
.b2b-project-card__number {
  color: var(--color-deep);
  font-size: 18px;
  font-weight: 600;
}
.b2b-project-card__title {
  display: block;
  margin: auto 0 var(--space-2);
  font-size: 23px;
  line-height: 1.4;
}
.b2b-project-card__copy {
  display: block;
  margin-bottom: var(--space-2);
  color: var(--color-neutral);
  line-height: 1.65;
}
.b2b-project-card em {
  display: inline-flex;
  align-self: flex-start;
  align-items: center;
  gap: 10px;
  padding-bottom: 4px;
  border-bottom: 1px solid currentColor;
  font-size: 14px;
  font-style: normal;
  font-weight: 600;
}
.b2b-project-card em i {
  font-style: normal;
  transition: transform var(--motion);
}
.b2b-project-card:hover,
.b2b-project-card.is-active {
  color: var(--color-white);
  background: var(--color-deep);
}
.b2b-project-card:hover .b2b-project-card__number,
.b2b-project-card.is-active .b2b-project-card__number,
.b2b-project-card:hover .b2b-project-card__copy,
.b2b-project-card.is-active .b2b-project-card__copy {
  color: rgba(255, 255, 255, .72);
}
.b2b-project-card:hover em i { transform: translateX(4px); }
.b2b-ready {
  padding: 112px 0;
}
.b2b-ready__grid {
  display: grid;
  grid-template-columns: minmax(340px, .82fr) minmax(520px, 1.18fr);
  gap: clamp(56px, 8vw, 132px);
  align-items: start;
}
.b2b-ready__selected {
  display: inline-flex;
  margin-bottom: var(--space-3);
  padding: 5px 9px;
  border: 1px solid var(--color-deep);
  color: var(--color-deep);
  font-size: 14px;
  font-weight: 600;
}
.b2b-ready h2 {
  margin: 0;
  font-size: clamp(32px, 3vw, 44px);
  line-height: 1.28;
  letter-spacing: -.035em;
}
.b2b-ready__copy > p:not(.eyebrow) {
  margin: var(--space-3) 0;
  color: var(--color-neutral);
  line-height: 1.8;
}
.b2b-ready__notice {
  padding: var(--space-3);
  border: 1px solid #d7b657;
  background: #fffaf0;
}
.b2b-ready__notice strong {
  display: block;
  margin-bottom: 4px;
  color: #775b12;
}
.b2b-ready__notice p {
  margin: 0;
  color: var(--color-neutral);
}
.b2b-ready__panel {
  padding: clamp(32px, 5vw, 64px);
  color: var(--color-white);
  background: var(--color-deep);
}
.b2b-ready__panel > span {
  color: rgba(255, 255, 255, .62);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .15em;
}
.b2b-ready__panel ol {
  margin: var(--space-4) 0;
  padding: 0;
  border-top: 1px solid rgba(255, 255, 255, .18);
  list-style: none;
}
.b2b-ready__panel li {
  display: grid;
  min-height: 76px;
  align-items: center;
  border-bottom: 1px solid rgba(255, 255, 255, .18);
  grid-template-columns: 44px minmax(0, 1fr);
  gap: var(--space-2);
}
.b2b-ready__panel li b {
  color: rgba(255, 255, 255, .55);
  font-size: 14px;
}
.b2b-ready__panel .button {
  width: 100%;
  color: rgba(255, 255, 255, .62);
  background: rgba(255, 255, 255, .12);
  cursor: not-allowed;
}
.b2b-ready__panel > p {
  margin: 10px 0 0;
  color: rgba(255, 255, 255, .58);
  font-size: 14px;
  text-align: center;
}
.b2b-consultation {
  background: var(--color-warm);
}
.consultation-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
}
.consultation-card {
  min-height: 420px;
  padding: var(--space-4);
  border: 1px solid var(--color-line);
  background: var(--color-white);
}
.consultation-card h3 {
  margin: var(--space-8) 0 var(--space-2);
  font-size: 26px;
}
.consultation-card p {
  color: var(--color-neutral);
}
.consultation-card ul {
  margin: var(--space-4) 0 0;
  padding: 0;
  border-top: 1px solid var(--color-line);
  list-style: none;
}
.consultation-card li {
  padding: 13px 0;
  border-bottom: 1px solid var(--color-line);
}
.consultation-card--dark {
  border-color: var(--color-deep);
  color: var(--color-white);
  background: var(--color-deep);
}
.consultation-card--dark > span,
.consultation-card--dark p {
  color: rgba(255, 255, 255, .7);
}
.consultation-card--dark ul,
.consultation-card--dark li {
  border-color: rgba(255, 255, 255, .18);
}
.b2b-faq__grid {
  display: grid;
  grid-template-columns: minmax(300px, .7fr) minmax(520px, 1.3fr);
  gap: clamp(56px, 8vw, 132px);
}

@media (hover: hover) and (pointer: fine) {
  .paper-card:hover figure img,
  .paper-card:focus-within figure img,
  .frame-type-card:hover figure img,
  .frame-type-card:focus-within figure img {
    transform: scale(1.045);
    filter: saturate(.94);
  }
}

.paper-card.is-zoomed figure img {
  transform: scale(1.1);
  filter: saturate(.96);
}

@media (max-width: 1180px) {
  .paper-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .frame-type-card { grid-template-columns: 1fr; }
  .frame-type-card figure { min-height: 340px; }
  .b2b-project-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); border-bottom: 0; }
  .b2b-project-card:nth-child(2) { border-right: 1px solid var(--color-line); }
  .b2b-project-card { border-bottom: 1px solid var(--color-line); }
}

@media (max-width: 900px) {
  .service-hero,
  .b2b-hero { min-height: 640px; }
  .service-intro,
  .b2b-intro,
  .service-module,
  .service-route,
  .b2b-projects,
  .b2b-ready,
  .b2b-consultation,
  .b2b-faq { padding: 88px 0; }
  .service-intro__grid,
  .b2b-intro__grid,
  .service-section-heading,
  .b2b-section-heading,
  .frame-mockup__grid,
  .coa-fields__grid,
  .official-review__inner,
  .compare-module__grid,
  .service-route__grid,
  .b2b-ready__grid,
  .b2b-faq__grid { grid-template-columns: 1fr; gap: var(--space-6); }
  .service-principles__grid { grid-template-columns: 1fr; }
  .service-principles article { min-height: 0; border-right: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line); }
  .service-principles article:last-child { border-bottom: 0; }
  .service-principles article > span { margin-bottom: var(--space-4); }
  .frame-mockup__copy { max-width: 680px; }
  .frame-mockup__visual { min-height: 430px; }
  .service-route__sticky { position: static; }
  .service-cta__inner,
  .b2b-institution__inner { align-items: flex-start; flex-direction: column; }
  .b2b-ready__copy { max-width: 680px; }
}

@media (max-width: 640px) {
  .service-hero,
  .b2b-hero {
    min-height: 620px;
    align-items: flex-end;
  }
  .service-hero > picture img,
  .b2b-hero > picture img { object-position: 58% center; }
  .service-hero__veil,
  .b2b-hero__veil { background: linear-gradient(180deg, rgba(7, 12, 17, .3), rgba(7, 12, 17, .9) 76%); }
  .service-hero__content,
  .b2b-hero__content { padding-top: calc(72px + var(--space-8)); padding-bottom: var(--space-6); }
  .service-hero h1,
  .b2b-hero h1 { font-size: 40px; }
  .service-hero__content > p:not(.kicker),
  .b2b-hero__content > p:not(.kicker) { font-size: 16px; line-height: 1.7; }
  .service-hero__foot { align-items: stretch; flex-direction: column; gap: var(--space-3); }
  .service-hero__foot .button,
  .b2b-hero__content > div,
  .b2b-hero__content .button { width: 100%; }
  .b2b-hero__content > div { display: grid; grid-template-columns: 1fr; }
  .service-intro,
  .b2b-intro,
  .service-module,
  .service-route,
  .b2b-projects,
  .b2b-ready,
  .b2b-consultation,
  .b2b-faq { padding: 72px 0; }
  .service-intro h2,
  .b2b-intro h2,
  .service-section-heading h2,
  .b2b-section-heading h2,
  .service-route h2,
  .compare-module h2,
  .coa-fields h2,
  .official-review h2,
  .frame-mockup h2,
  .b2b-ready h2 { font-size: 32px; }
  .service-intro__copy,
  .b2b-intro__grid > div { font-size: 16px; }
  .service-principles article { padding: var(--space-3); }
  .service-section-heading,
  .b2b-section-heading { margin-bottom: var(--space-6); }
  .paper-filters {
    flex-wrap: nowrap;
    margin-right: -16px;
    margin-left: -16px;
    padding: 0 16px 4px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
  }
  .paper-filters::-webkit-scrollbar { display: none; }
  .paper-filters button { flex: 0 0 auto; }
  .paper-grid { grid-template-columns: 1fr; }
  .paper-card > div { padding: var(--space-3); }
  .service-data-note { grid-template-columns: 1fr; gap: var(--space-1); padding: var(--space-2); }
  .service-info-grid { grid-template-columns: 1fr; border-bottom: 0; }
  .service-info-card,
  .service-info-card:last-child { min-height: 260px; border-right: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line); }
  .service-info-card h3 { margin-top: var(--space-6); }
  .frame-type-grid { grid-template-columns: 1fr; }
  .frame-type-card { display: flex; flex-direction: column; }
  .frame-type-card figure { min-height: 300px; }
  .frame-type-card > div { padding: var(--space-3); }
  .frame-mockup__copy { order: 1; }
  .frame-mockup__visual { order: 2; min-height: 300px; }
  .frame-mockup__copy .button { width: 100%; }
  .edition-chain {
    grid-template-columns: 1fr;
    gap: 0;
    padding: var(--space-3);
  }
  .edition-chain span { min-height: 58px; line-height: 58px; }
  .edition-chain i { width: 1px; height: 24px; justify-self: center; text-indent: -2px; writing-mode: vertical-rl; }
  .coa-field-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .coa-field-list li:nth-child(3n+1) { border-left: 0; }
  .coa-field-list li:nth-child(odd) { border-left: 1px solid var(--color-line); }
  .official-review__status { padding: var(--space-3); }
  .compare-module__grid { display: flex; flex-direction: column; }
  .compare-module header { order: 1; }
  .image-compare { order: 2; width: 100%; aspect-ratio: 4 / 5; }
  .service-route__list article { min-height: 148px; grid-template-columns: 38px minmax(0, 1fr); gap: var(--space-2); }
  .service-route__list em { grid-column: 2; justify-self: start; }
  .service-cta,
  .b2b-institution { padding: 64px 0; }
  .service-cta h2,
  .b2b-institution h2 { font-size: 28px; }
  .service-cta .button,
  .b2b-institution .button { width: 100%; }
  .b2b-project-grid { grid-template-columns: 1fr; }
  .b2b-project-card,
  .b2b-project-card:nth-child(2),
  .b2b-project-card:last-child { min-height: 300px; border-right: 1px solid var(--color-line); }
  .b2b-ready__panel { padding: var(--space-4) var(--space-3); }
  .consultation-grid { grid-template-columns: 1fr; }
  .consultation-card { min-height: 360px; padding: var(--space-3); }
  .consultation-card h3 { margin-top: var(--space-6); }
}

@media (max-width: 380px) {
  .service-hero h1,
  .b2b-hero h1 { font-size: 37px; }
  .coa-field-list { grid-template-columns: 1fr; }
  .coa-field-list li,
  .coa-field-list li:nth-child(3n+1),
  .coa-field-list li:nth-child(odd) { min-height: 100px; border-left: 1px solid var(--color-line); }
}

@media (prefers-reduced-motion: reduce) {
  .paper-card figure img,
  .frame-type-card figure img,
  .paper-card__zoom span { transition: none; }
}
.theo-portfolio-formats { margin-top:40px; padding-top:32px; border-top:1px solid #dedede; }
.theo-portfolio-formats > header { margin-bottom:24px; }
.theo-portfolio-formats h3 { font-size:26px; margin:0 0 12px; }
.theo-format-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.theo-format-grid article { background:#fff; border:1px solid #dedede; padding:20px; }
.theo-format-visual { height:180px; display:flex; align-items:flex-end; justify-content:center; margin-bottom:20px; }
.theo-format-visual span { max-width:100%; border:1px solid #777777; background:linear-gradient(145deg,#eeeeee,#dedede); box-shadow:4px 5px 0 #dedede; }
.theo-format-grid h4 { font-size:20px; margin:12px 0; }
.theo-format-grid .button { width:100%; margin-top:16px; padding:12px; min-width:0; }
@media(max-width:980px){.theo-format-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:480px){.theo-format-grid{gap:12px;}.theo-format-grid article{padding:14px;}.theo-format-visual{height:130px;}.theo-format-grid .button{font-size: 14px;}}
