:root {
  --paper: #f7f5f0;
  --paper-2: #eeeae2;
  --ink: #3e495c;
  --muted: #626b78;
  --red: #e10000;
  --red-dark: #b90000;
  --night: #3e495c;
  --line: #d9d7cf;
  --font-display: "Outfit", Arial, sans-serif;
  --font-body: "DM Sans", Arial, sans-serif;
}

html { scroll-padding-top: 36px; }
body { background: var(--paper); color: var(--ink); font-family: var(--font-body); -webkit-font-smoothing: antialiased; }
::selection { background: #f9b8b8; color: var(--ink); }
:focus-visible { outline: 3px solid var(--red); outline-offset: 4px; }
.page-shell { max-width: 1320px; padding-inline: clamp(22px, 3vw, 40px); }
.site-header { min-height: 88px; padding-block: 18px; border-color: rgba(33, 39, 37, .11); }
.brand { gap: 12px; font: 600 14px/1.3 var(--font-body); letter-spacing: 0; }
.studio-mark { display: grid; place-items: center; width: 39px; height: 39px; flex: none; border-radius: 9px; background: var(--red); color: #fff; font: 700 24px/1 var(--font-display); letter-spacing: -.05em; }
.brand-name { color: var(--ink); font: 600 24px/1 var(--font-display); letter-spacing: -.045em; white-space: nowrap; }
.brand-name span { color: var(--red); }
.brand-separator { width: 1px; height: 25px; background: var(--line); margin: 0; }
.brand-context { color: var(--muted); white-space: nowrap; }
.header-note { color: var(--muted); font-size: 12px; font-weight: 500; letter-spacing: .02em; text-transform: none; }

.intro { grid-template-columns: minmax(0, 1.07fr) minmax(0, .93fr); gap: clamp(36px, 5vw, 80px); padding-block: clamp(70px, 7vw, 108px) clamp(82px, 8vw, 112px); overflow: visible; }
.intro-copy { max-width: 700px; }
.eyebrow { display: flex; align-items: center; gap: 12px; margin-bottom: 34px; color: var(--red); font-size: 12px; letter-spacing: .17em; }
.eyebrow-line { width: 28px; height: 2px; flex: none; background: currentColor; }
h1, h2, h3 { font-family: var(--font-display); font-weight: 500; }
h1 { max-width: 710px; margin-bottom: 28px; font-size: clamp(54px, 5.8vw, 88px); line-height: .99; letter-spacing: -.045em; }
h1 em { color: var(--red); font-weight: 500; }
.lead { max-width: 560px; color: var(--ink); font: 500 clamp(18px, 1.55vw, 22px)/1.42 var(--font-display); letter-spacing: -.018em; }
.intro-link { display: inline-flex; align-items: center; gap: 16px; margin-top: 28px; border-bottom: 1px solid var(--ink); padding-bottom: 5px; color: var(--ink); font-size: 14px; font-weight: 700; text-decoration: none; transition: color .2s ease, gap .2s ease; }
.intro-link:hover { color: var(--red); gap: 22px; }

.route-art { position: relative; width: 100%; height: min(47vw, 525px); min-height: 390px; background: var(--night); border-radius: 4px; overflow: hidden; box-shadow: 0 34px 70px rgba(31, 47, 62, .15); opacity: 1; }
.route-art img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }

.gallery { padding-block: clamp(70px, 7vw, 106px) 96px; border-color: var(--line); }
.section-heading { align-items: end; margin-bottom: 39px; }
.section-heading .eyebrow { margin-bottom: 20px; }
h2 { font-size: clamp(41px, 4.5vw, 67px); line-height: 1.05; letter-spacing: -.045em; }
.availability { margin-bottom: 5px; color: var(--muted); font-size: 12px; font-weight: 600; letter-spacing: .02em; text-transform: none; }
.card-grid { gap: 24px; }
.sample-card { min-height: 425px; border-color: var(--line); border-radius: 3px; box-shadow: none; }
.sample-card.is-available:hover { border-color: var(--red); box-shadow: 0 20px 35px rgba(33, 39, 37, .09); }
.card-type { color: var(--red); }
.card-status { background: #f5e8e6; color: var(--red); border-radius: 3px; }
.is-available .card-status { background: #f5e8e6; color: var(--red); }
.card-symbol--service span { background: var(--red); }
.card-symbol--service span:nth-child(2) { background: #d7cbc0; }
.card-symbol--service span:nth-child(3) { background: var(--night); }
.card-symbol--parts span { border-color: var(--red); }
.card-symbol--parts span:nth-child(2), .card-symbol--parts span:nth-child(3) { border-color: #d7cbc0; }
.card-symbol--parts span:nth-child(4) { border-color: var(--night); }
.card-content h3 { font-weight: 500; }
.card-content p, .card-route, .gallery-note { color: var(--muted); }
.card-bottom { border-color: var(--line); }
.card-action a { color: var(--red); }
.card-action a:focus-visible { outline-color: var(--red); }
.empty-state { min-height: 260px; border-color: var(--line); border-radius: 3px; background: #fff; }
.empty-state__mark { border-color: #ebd7d3; background: #f5e8e6; }
.empty-state__mark img { display: block; width: 46px; height: 59px; object-fit: contain; }
.empty-state h3 { max-width: 590px; font-size: clamp(30px, 3.2vw, 44px); font-weight: 500; }
.site-footer { border-color: var(--line); color: var(--muted); }

@media (max-width: 950px) {
  .intro { grid-template-columns: 1fr; }
  .intro-copy { max-width: 760px; }
  .route-art { display: block; width: 100%; max-width: 760px; height: 400px; justify-self: start; }
}
@media (max-width: 600px) {
  .page-shell { padding-inline: 18px; }
  .site-header { min-height: 72px; }
  .brand { gap: 9px; }
  .studio-mark { width: 33px; height: 33px; border-radius: 7px; font-size: 21px; }
  .brand-name { font-size: 19px; }
  .brand-separator { height: 21px; }
  .brand-context { font-size: 12px; }
  .intro { padding-block: 66px 78px; }
  .eyebrow { margin-bottom: 28px; font-size: 10px; }
  h1 { font-size: clamp(48px, 12vw, 68px); }
  .lead { font-size: 19px; }
  .route-art { min-height: 330px; height: 330px; }
  .gallery { padding-block: 69px 78px; }
  h2 { font-size: clamp(39px, 10vw, 52px); }
  .empty-state { min-height: 280px; }
}
@media (prefers-reduced-motion: reduce) {
  .intro-link { transition: none; }
}
