/* ATJR Transport — Precision Rail V11
   Premium refinement layer on top of V10. */

:root {
  --container: min(1480px, calc(100vw - clamp(64px, 7vw, 128px)));
  --shadow-soft: 0 24px 70px rgba(10, 23, 32, .09);
  --section-space: clamp(92px, 8.6vw, 138px);
}

body {
  background: var(--paper-2);
  font-size: 17px;
  line-height: 1.72;
}

h1,
h2,
h3 {
  font-weight: 640;
  letter-spacing: -.052em;
}

h2 { font-size: clamp(2.65rem, 4.25vw, 4.85rem); }

.section { padding-block: var(--section-space); }
.section--compact { padding-block: clamp(66px, 6.5vw, 94px); }

.lead {
  font-size: clamp(1.08rem, 1.35vw, 1.24rem);
  line-height: 1.78;
}

.eyebrow {
  margin-bottom: 27px;
  font-size: .73rem;
  letter-spacing: .205em;
}

.eyebrow::before { width: 38px; }

.button {
  min-height: 56px;
  padding-inline: 27px;
  letter-spacing: .13em;
}

.button--xl { min-height: 64px; padding-inline: 34px; }

.site-header {
  border-bottom-color: rgba(255, 255, 255, .2);
}

.site-header.is-scrolled {
  background: rgba(7, 17, 25, .985);
  box-shadow: 0 16px 42px rgba(7, 17, 25, .2);
}

.header-inner { gap: 34px; }
.desktop-nav { gap: clamp(20px, 2vw, 34px); }
.desktop-nav a { font-size: .7rem; letter-spacing: .13em; }

/* A calmer, more cinematic first impression. */
.hero { min-height: min(900px, 100svh); }
.hero-inner { min-height: min(900px, 100svh); }
.hero-media { left: 41.5%; }
.hero-media::after { background: rgba(10, 23, 32, .18); }
.hero-media img { object-position: 55% center; }
.hero-copy { max-width: 770px; padding-left: 38px; }
.hero-copy::before { inset-block: 36px; width: 4px; }
.hero-copy h1 { margin-bottom: 30px; font-size: clamp(4.2rem, 6.35vw, 7rem); }
.hero-copy .lead { max-width: 610px; }
.hero-proof { gap: 24px 34px; margin-top: 49px; }
.hero-index {
  margin-bottom: 86px;
  border-color: rgba(255, 255, 255, .23);
  background: rgba(7, 17, 25, .9);
  backdrop-filter: none;
  box-shadow: 18px 22px 0 rgba(242, 195, 0, .12);
}
.hero-index div { padding: 23px 20px; }

/* Signature rail */
.dispatch-grid { min-height: 172px; grid-template-columns: .72fr 2fr; }
.dispatch-intro strong { max-width: 330px; }
.dispatch-steps::before { background: rgba(10, 23, 32, .72); }
.proof-track { min-height: 50px; gap: 25px; }

/* Editorial homepage rhythm */
.intro-grid { align-items: start; }
.intro-heading h2 { max-width: 800px; }
.intro-copy { max-width: 530px; padding-top: 13px; }
.cinematic-frame {
  height: clamp(500px, 42vw, 650px);
  margin-top: clamp(64px, 7vw, 100px);
}
.cinematic-frame img { object-position: 50% 57%; }
.cinematic-caption {
  min-width: min(390px, 90%);
  padding: 29px 34px;
  box-shadow: -18px -18px 0 rgba(242, 195, 0, .12);
}

.section-heading-row {
  position: relative;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, .58fr);
  margin-bottom: clamp(52px, 6vw, 82px);
  padding-top: 31px;
  border-top: 1px solid currentColor;
}
.section--dark .section-heading-row { border-top-color: rgba(255, 255, 255, .2); }
.section-heading-row::before {
  position: absolute;
  top: -1px;
  left: 0;
  width: 78px;
  height: 3px;
  background: var(--signal);
  content: "";
}

.service-showcase {
  grid-template-columns: minmax(0, 1.22fr) minmax(360px, .78fr);
  grid-template-rows: clamp(350px, 29vw, 460px) clamp(310px, 24vw, 390px);
  gap: 8px;
}
.service-tile { min-height: 310px; }
.service-tile::after { height: 52%; background: rgba(7, 17, 25, .9); }
.service-tile-copy { padding: clamp(28px, 3.6vw, 48px); }
.service-tile-copy p { line-height: 1.65; }
.service-tile--gold { background: var(--signal); }

.journey-grid { grid-template-columns: minmax(300px, .68fr) minmax(0, 1.32fr); }
.journey-sticky { top: 112px; }
.journey-step { grid-template-columns: 72px 1fr; padding-block: 45px; }
.journey-step > strong { font-size: 1rem; }
.journey-step p { line-height: 1.7; }

.gallery {
  grid-template-rows: clamp(360px, 31vw, 490px) clamp(300px, 24vw, 380px);
  grid-auto-rows: auto;
  gap: 12px;
}
.gallery figure { min-height: 0; box-shadow: inset 0 0 0 1px rgba(10, 23, 32, .05); }
.gallery figure:nth-child(1) { grid-column: span 7; }
.gallery figure:nth-child(2) { grid-column: span 5; }
.gallery figure:nth-child(n+3) { grid-column: span 4; }
.gallery figcaption {
  padding: 19px 23px;
  background: rgba(7, 17, 25, .92);
  letter-spacing: .115em;
}

.trustbar { padding-block: clamp(64px, 6vw, 82px); }
.trustbar-inner { position: relative; }
.trustbar-inner::before {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1px;
  height: 70px;
  background: rgba(255, 255, 255, .16);
  content: "";
  translate: -50% -50%;
}
.trust-copy strong { max-width: 690px; font-size: clamp(2rem, 2.65vw, 3rem); }
.trust-logo {
  width: 154px;
  height: 102px;
  border: 1px solid rgba(255, 255, 255, .34);
  background: var(--white);
  box-shadow: 10px 10px 0 rgba(242, 195, 0, .08);
}

.final-stage { padding-block: clamp(78px, 7vw, 110px); }
.cta-panel {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  padding: clamp(52px, 6.5vw, 86px);
  box-shadow: var(--shadow-soft);
}
.cta-panel::before { height: 5px; }
.cta-panel::after {
  position: absolute;
  right: 7%;
  bottom: -72px;
  width: 170px;
  height: 230px;
  border: 1px solid rgba(255, 255, 255, .08);
  content: "";
  rotate: 18deg;
}
.cta-panel h2 { max-width: 820px; }
.cta-panel .button-row { flex-direction: row; align-items: center; }

/* Inner pages */
.page-hero { min-height: clamp(570px, 62vh, 650px); }
.page-hero .hero-inner { min-height: clamp(570px, 62vh, 650px); }
.page-hero .hero-media::after { background: rgba(7, 17, 25, .63); }
.page-hero .hero-copy { max-width: 930px; padding-left: 38px; }
.page-hero h1 { font-size: clamp(3.7rem, 5.6vw, 6.15rem); }

.split { gap: clamp(66px, 8vw, 126px); }
.split-media { min-height: clamp(480px, 40vw, 610px); }
.split-media img { min-height: clamp(480px, 40vw, 610px); }
.split-media::before { inset: -18px 18px 18px -18px; }
.split-media::after { width: 38%; height: 7px; }
.split p:not(.eyebrow):not(.lead) { max-width: 690px; }

.cards { margin-top: clamp(44px, 5vw, 68px); }
.section--paper .cards {
  border-top-color: var(--line);
  border-left-color: var(--line);
  background: rgba(255, 254, 250, .52);
}
.section--paper .card {
  min-height: 300px;
  border-right-color: var(--line);
  border-bottom-color: var(--line);
}
.section--paper .card h3 { color: var(--ink); }
.section--paper .card p { color: var(--steel); }
.section--paper .card-number { margin-bottom: 52px; color: var(--signal-dark); }

.section--dark .split-media::before { border-color: rgba(255, 255, 255, .16); }
.section--dark .feature-list li { border-top-color: rgba(255, 255, 255, .16); }
.feature-list strong { display: block; margin-bottom: 4px; }
.feature-list li { padding-block: 17px; }

.quote-block {
  padding: clamp(44px, 5.4vw, 72px);
  border-left-width: 5px;
  font-size: clamp(1.9rem, 3.1vw, 3.35rem);
  line-height: 1.24;
  box-shadow: var(--shadow-soft);
}

/* Forms and utility pages */
.quote-form { box-shadow: 0 28px 90px rgba(0, 0, 0, .24); }
.delivery-banner {
  margin-bottom: 28px;
  padding: clamp(22px, 4vw, 34px);
  border: 1px solid rgba(255, 199, 0, .56);
  background: linear-gradient(135deg, #fff8d7 0%, #fffefa 72%);
  color: #071824;
  box-shadow: 0 18px 45px rgba(7, 24, 36, .12);
}
.delivery-banner > strong { display: block; font-size: clamp(1.2rem, 2vw, 1.55rem); line-height: 1.12; }
.delivery-banner > p { max-width: 68ch; margin: 10px 0 0; }
.delivery-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.delivery-actions .button { min-height: 46px; }
.copy-status { min-height: 1.45em; font-weight: 750; color: #315a32; }
.delivery-note {
  margin: 22px 0 0;
  padding: 16px 18px;
  border-left: 3px solid var(--accent);
  background: rgba(255, 199, 0, .10);
  color: var(--muted);
  font-size: .94rem;
}
.form-layout { grid-template-columns: minmax(0, 1.42fr) minmax(320px, .58fr); gap: clamp(42px, 6vw, 86px); }
.form-step { padding: clamp(36px, 4.4vw, 58px); }
.form-step h2 { letter-spacing: -.045em; }
.field input,
.field select,
.field textarea { background: #fffefa; }
.choice label { background: #fffefa; }
.contact-panel { box-shadow: 0 24px 70px rgba(0, 0, 0, .2); }
.contact-panel-media { height: 300px; }
.contact-panel-media img { object-position: 50% 56%; }

.faq-stage { background: var(--paper); }
.faq-stage .container { max-width: min(1180px, var(--container)); }
.faq-stage .faq-list { background: rgba(255, 254, 250, .55); border-inline: 1px solid var(--line); }
.faq-stage .faq-item { padding-inline: clamp(22px, 3vw, 42px); }
.faq-stage .faq-question { min-height: 94px; }
.faq-stage .faq-answer p { max-width: 880px; font-size: 1.02rem; line-height: 1.75; }
.filter-button { min-height: 44px; padding-inline: 19px; }

.updates-grid { gap: clamp(60px, 7vw, 106px); }
.empty-state { background: var(--white); box-shadow: var(--shadow-soft); }
.social-card { transition: border-color .2s ease, background-color .2s ease, translate .2s ease; }
.social-card:hover { border-color: var(--signal); background: rgba(255, 255, 255, .05); translate: 4px 0; }

.legal-content > section > span {
  color: var(--signal-dark);
  font-family: var(--condensed);
  font-size: .73rem;
  font-weight: 700;
  letter-spacing: .14em;
}
.legal-content p,
.legal-content li { max-width: 780px; line-height: 1.78; }

.site-footer { padding-top: 86px; }
.footer-grid { grid-template-columns: 1.25fr .62fr .62fr; }
.footer-links { gap: 12px; }
.footer-links a { transition: color .18s ease, translate .18s ease; }
.footer-links a:hover { translate: 4px 0; }

@media (max-width: 1180px) {
  :root { --container: min(100% - 48px, 1120px); }
  .hero-media { left: 42%; }
  .service-showcase { grid-template-rows: clamp(370px, 42vw, 490px) clamp(310px, 33vw, 390px); }
  .gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none;
    grid-auto-rows: clamp(340px, 43vw, 470px);
  }
  .gallery figure:nth-child(n) { grid-column: auto; }
  .gallery figure:last-child { grid-column: span 2; }
  .trustbar-inner::before { display: none; }
}

@media (max-width: 860px) {
  :root { --container: min(100% - 36px, 780px); }
  .hero { min-height: auto; }
  .hero-inner { min-height: auto; }
  .hero-media { inset: auto; }
  .hero-copy { padding-left: 25px; }
  .hero-copy h1 { font-size: clamp(3.45rem, 12.6vw, 5.8rem); }
  .intro-copy { padding-top: 0; }
  .cinematic-frame { height: min(66vw, 530px); min-height: 420px; }
  .section-heading-row {
    grid-template-columns: 1fr;
    gap: 30px;
    padding-top: 27px;
  }
  .service-showcase {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(450px, 68vw) minmax(400px, 58vw) auto;
  }
  .service-tile { min-height: 400px; }
  .journey-grid { grid-template-columns: 1fr; gap: 60px; }
  .journey-sticky { position: static; }
  .gallery { grid-auto-rows: clamp(350px, 52vw, 470px); }
  .cta-panel { grid-template-columns: 1fr; align-items: start; }
  .split-media,
  .split-media img { min-height: min(590px, 80vw); }
  .form-layout { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 620px) {
  :root {
    --container: calc(100% - 28px);
    --section-space: 74px;
  }
  body { font-size: 16px; }
  h2 { font-size: clamp(2.45rem, 12vw, 3.8rem); }
  .hero-copy { padding-left: 18px; }
  .hero-copy h1 { font-size: clamp(3.15rem, 17vw, 4.9rem); }
  .hero-copy .lead { font-size: 1rem; }
  .cinematic-frame { min-height: 390px; height: 105vw; }
  .cinematic-caption { padding: 24px 25px; box-shadow: none; }
  .service-showcase { grid-template-rows: minmax(430px, 112vw) minmax(400px, 102vw) auto; }
  .service-tile { min-height: 400px; }
  .service-tile--gold { min-height: 370px; }
  .journey-step { grid-template-columns: 42px 1fr; }
  .gallery {
    grid-template-columns: 1fr;
    grid-auto-rows: minmax(350px, 98vw);
  }
  .gallery figure:nth-child(n),
  .gallery figure:last-child { grid-column: auto; }
  .gallery figure:last-child { grid-row: auto; }
  .trust-logo { width: calc(50% - 7px); max-width: none; height: 92px; box-shadow: none; }
  .cta-panel { padding: 40px 23px; }
  .cta-panel .button-row { flex-direction: column; align-items: stretch; }
  .page-hero .hero-copy { padding-left: 18px; }
  .split-media,
  .split-media img { min-height: 105vw; }
  .cards { grid-template-columns: 1fr; }
  .section--paper .card { min-height: 250px; }
  .section--paper .card-number { margin-bottom: 34px; }
  .faq-stage .faq-item { padding-inline: 18px; }
  .site-footer { padding-top: 68px; }
}

@media (prefers-reduced-motion: reduce) {
  .social-card:hover,
  .footer-links a:hover { translate: 0; }
}
