/* The entire theme uses a minimum text size of 16 CSS pixels. */
small, sub, sup { font-size: 16px; }
.eyebrow, .section-kicker, .partner-type, .solution-number,
.filter-port-label, .lane-index, .water-coordinate, .footer-col h3,
.scroll-cue, .journey-hud, .scene-caption { letter-spacing: .04em; }
.button { min-height: 52px; line-height: 1.4; max-width: 100%; text-align: center; }
.visual-card { width: 300px; padding: 20px; }
.visual-card span:not(.status-dot) { line-height: 1.55; }
.focus-label { width: 280px; }
.focus-label span { line-height: 1.55; }
.solution-number, .partner-type { display: block; line-height: 1.5; }
.journey-content .solution-card h3 { margin-top: 78px; }
.partner-card { gap: 12px; }
.journey-hud { gap: 10px; max-width: calc(100% - 30px); }
.hud-track { flex-shrink: 0; }
.filter-stages span { line-height: 1.5; display: block; }
.filter-note { line-height: 1.5; }
.filter-port-label { left: 64%; white-space: nowrap; }
.arrival-section .focus-content { padding: 100px 0 24px; }
.arrival-section .focus-content h2 { font-size: 44px; line-height: 1.12; margin-bottom: 16px; }
.arrival-section .focus-content .section-kicker { margin-bottom: 16px; }
.arrival-section .focus-content > p:not(.section-kicker) { line-height: 1.6; margin: 0 0 16px; }
.arrival-section .check-list { margin: 20px 0; gap: 8px 24px; }
.arrival-section .check-list li { line-height: 1.5; }
.arrival-cta { padding-top: 18px; }
.arrival-cta h3 { font-size: 22px; margin-bottom: 10px; }
.arrival-cta p { line-height: 1.55; margin-bottom: 16px; max-width: 540px; }
.arrival-cta .button { min-height: 48px; }
.footer-col h3 { line-height: 1.5; }
.footer-bottom { flex-wrap: wrap; }
.site-nav { gap: clamp(14px, 1.5vw, 26px); white-space: nowrap; }

@media (max-height: 820px) and (min-width: 761px) {
  .arrival-grid { gap: 55px; grid-template-columns: 1.12fr .88fr; }
  .arrival-section .focus-content h2 { font-size: 40px; }
  .arrival-section .focus-content { padding-top: 100px; }
  .arrival-section .focus-content > p:not(.section-kicker) { line-height: 1.5; }
  .arrival-cta p { line-height: 1.45; }
}
@media (max-width: 1100px) {
  .site-nav { gap: 18px; }
  .visual-card { width: 260px; }
  .arrival-section .check-list { gap: 8px 15px; }
}
@media (max-width: 760px) {
  .hero-grid { padding-bottom: 265px; }
  .hero-actions { align-items: stretch; }
  .hero-actions .button { padding: 12px 17px; }
  .hero-lead { line-height: 1.7; }
  .hero-water-slot { margin-top: 30px; height: 390px; }
  .hero-water-slot .visual-card { width: 255px; bottom: 16%; right: -3%; padding: 15px; }
  .hero-water-slot .scene-caption { bottom: 0; line-height: 1.4; }
  .hero-index .container { display: block; }
  .hero-stat, .hero-stat + .hero-stat { padding: 10px 0; border-right: 0; border-bottom: 1px solid #c6dfe8; line-height: 1.5; }
  .hero-stat:last-child { border-bottom: 0; }
  .hero-stat b { display: inline; white-space: normal; }
  .hero .scroll-cue { bottom: 190px; flex-wrap: wrap; right: 20px; }
  .lane-sticky .scene-caption { writing-mode: vertical-rl; white-space: nowrap; width: auto; max-width: none; left: -4px; top: 50%; bottom: auto; transform: translateY(-50%) rotate(180deg); line-height: 1; }
  .lane-index { writing-mode: vertical-rl; top: 12%; left: auto; right: 0; white-space: nowrap; line-height: 1; max-width: none; }
  .journey-content .section-kicker { flex-wrap: wrap; gap: 8px; }
  .journey-content .solution-card { min-height: 320px; }
  .journey-content .partner-type { padding-right: 22px; }
  .journey-content .partner-card h3 { overflow-wrap: anywhere; }
  .filtration-sticky { min-height: 790px; }
  .filtration-grid { padding-top: 76px; }
  .filter-copy .section-kicker { margin-bottom: 12px; }
  .filter-copy h2 { font-size: 30px; line-height: 1.12; }
  .filter-copy .section-intro { line-height: 1.55; margin-top: 12px; }
  .filter-stages { margin-top: 20px; gap: 10px; }
  .filter-stages > div { padding-top: 10px; min-width: 0; }
  .filter-stages b { margin-bottom: 5px; }
  .filter-stages span { line-height: 1.35; overflow-wrap: anywhere; }
  .filter-note { margin-top: 10px; line-height: 1.4; }
  .filter-device { height: clamp(200px, 34svh, 290px); margin-top: 4px; }
  .filter-port-label { left: 66%; }
  .filter-device .port-in { top: 0; }
  .filter-device .port-out { bottom: 0; }
  .arrival-section .focus-content { padding: 100px 0 35px; }
  .arrival-section .focus-content h2 { font-size: 40px; }
  .arrival-section .check-list { grid-template-columns: 1fr; gap: 12px; margin: 25px 0; }
  .arrival-cta h3 { font-size: 27px; }
  .arrival-cta p { line-height: 1.7; }
  .arrival-visual .focus-label { width: 250px; left: 0; bottom: 13%; }
  .arrival-visual .scene-caption { bottom: 5%; }
  .journey-hud { bottom: 10px; right: 10px; padding: 10px 12px; }
  .journey-hud .hud-track { width: 32px; }
  .journey-hud .hud-end { display: none; }
}
