/* Light gray surfaces and Oliva red, shared across the existing pages. */
:root {
  --paper: #f6f7f8;
  --ink: #343a42;
  --muted: #5e6771;
  --line: #d5dbe0;
  --red: #982630;
  --orange: #a62b35;
  --dark: #dfe4e8;
}
.header { background: rgba(250, 251, 252, .97); border-color: var(--line); }
.header-cta { background: var(--red); }
.header-cta:hover, .button:hover { background: #7f1f28; }
.hero {
  display: grid;
  grid-template-columns: 43% 57%;
  grid-template-rows: minmax(600px, auto) auto;
  min-height: 0;
  background: #e8ecef;
  color: var(--ink);
}
.hero-photo {
  position: relative;
  grid-area: 1 / 2;
  inset: auto;
  min-width: 0;
  background: none;
  opacity: 1;
  filter: none;
  overflow: hidden;
}
.hero-photo img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; object-position: 54% 58%; }
.hero-photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, #e8ecef 0%, #e8ecef00 12%); pointer-events: none; }
.hero::after, .hero-grid, .hero-orbit, .hero-caption { display: none; }
.hero-content.wrap {
  grid-area: 1 / 1;
  width: auto;
  margin: 0;
  padding: 66px 26px 68px clamp(28px, 4vw, 80px);
  align-self: center;
}
.hero-eyebrow { display: block; position: relative; padding-left: 20px; color: #535d67; font-size: .8125rem; line-height: 1.6; letter-spacing: .055em; margin-bottom: 32px; }
.status-dot { position: absolute; left: 0; top: .6em; background: var(--red); box-shadow: 0 0 0 5px #98263012; }
.hero h1 { font-size: clamp(52px, 4.9vw, 84px); line-height: 1.13; letter-spacing: -.055em; max-width: 680px; }
.hero h1 em { color: var(--red); }
.hero-content > p { color: #505b65; font-size: 1.125rem; line-height: 1.75; max-width: 550px; margin-top: 28px; }
.hero-actions { gap: 24px; margin-top: 30px; }
.hero .button { background: var(--red); min-width: 225px; }
.hero .button:hover { background: #7f1f28; }
.hero-secondary { color: var(--ink); gap: 15px; }
.hero-strip { grid-area: 2 / 1 / 3 / 3; background: #d9e0e5; border-top: 1px solid #c7d0d7; color: var(--ink); backdrop-filter: none; }
.hero-strip a { border-color: #c3ccd4; }
.hero-strip a > span { color: #687581; }
.hero-strip a:hover { color: var(--red); }

.section-heading > p, .service-card p, .process-grid p,
.tank-copy p, .page-hero > p, .service-hero > div > p,
.need-grid > div > p, .company-story p, .client-options p,
.feature-grid p, .legal-copy p, .dialog-intro p, .request-result > p,
.cta-bottom p, .faq-grid details > p { color: #58636d; }
.service-tag, .card-num { color: #66717b; }
.cargo-filter button.active { background: var(--red); border-color: var(--red); }
.infra-section { background: #e0e5e9; color: var(--ink); }
.infra-section h2 em { color: var(--red); }
.infra-section p { color: #53616b; }
.outline-light { color: var(--red); border-color: #a84c54; background: transparent; }
.outline-light:hover { background: #9826300b; }
.infra-visual { color: var(--ink); }
.infra-links, .infra-links a { border-color: #c4cdd4; }
.infra-links a:hover { color: var(--red); }
.pill-list span { border-color: #bac5ce; color: #505e68; }
.terminal-diagram { background: #eef1f4; border-color: #c8d1d8; box-shadow: 0 18px 45px #3d4d5a12; }
.diagram-heading { color: #485660; border-color: #d3dbe1; }
.diagram-heading span:last-child { color: #677783; }
.terminal-network { background-image: radial-gradient(#6a7b8b28 .8px, transparent .8px); }
.connection-base { stroke: #95a5b377; }
.connection-flow { stroke: var(--red); }
.network-node { background: #fafbfc; border-color: #c3cdd5; box-shadow: 0 7px 18px #5365750d; }
.network-node:hover { background: #fff; border-color: #ad626a; }
.network-node > span:last-child { color: #64727d; }
.node-icon { color: var(--red); }
.node-terminal { background: var(--red); border-color: var(--red); color: #fff; box-shadow: 0 0 0 7px #9826300a, 0 10px 25px #9826301a; }
.node-terminal:hover { background: #84212a; border-color: #84212a; }
.node-terminal > span:last-child, .terminal-wordmark { color: #fff0f1; }
.diagram-legend { color: #5c6d78; border-color: #d3dbe1; }
.legend-stroke { border-color: var(--red); }
.cta-section, .need-section, .dialog-intro { background: #e6eaed; border-color: #d2d9df; }
.cta-section::after { border-color: #c5cfd7; }
.tank-copy { background: #eceff1; }
.footer { background: #f0f3f5; color: var(--ink); }
.footer-top, .footer-bottom { border-color: #bdc8d0; }
.footer-top > p, .footer-middle p, .footer-middle nav,
.footer-middle .overline, .footer-bottom { color: #53616d; }
.footer-middle > .text-button { color: var(--red); }
.footer-mail { color: var(--red); }
.contact-cta { color: var(--ink); }
.company-image img, .service-hero-art img { filter: none; }

@media (min-width: 1700px) {
  .hero-content.wrap { padding-left: max(80px, calc((100vw - 1440px) / 2)); }
}
@media (max-width: 1100px) {
  .hero { grid-template-columns: 48% 52%; }
  .hero h1 { font-size: clamp(48px, 5.5vw, 62px); }
  .hero-content.wrap { padding-left: 32px; }
  .hero-actions { gap: 20px; }
}
@media (max-width: 800px) {
  .hero { grid-template-columns: 1fr; grid-template-rows: auto auto auto; }
  .hero-content.wrap { grid-area: 1 / 1; padding: 48px 28px 40px; }
  .hero h1 { font-size: clamp(48px, 8.8vw, 72px); max-width: 680px; }
  .hero-content > p { max-width: 600px; }
  .hero-photo { grid-area: 2 / 1; aspect-ratio: 16 / 9; }
  .hero-photo img { object-position: center; }
  .hero-photo::after { display: none; }
  .hero-strip { grid-area: 3 / 1; }
  .hero-strip a { border-color: #c3ccd4; }
}
@media (max-width: 500px) {
  .hero-content.wrap { padding: 38px 24px 34px; }
  .hero-eyebrow { font-size: .75rem; letter-spacing: .025em; gap: 10px; margin-bottom: 24px; }
  .hero h1 { font-size: clamp(40px, 10.7vw, 56px); line-height: 1.16; }
  .hero-content > p { font-size: 1.0625rem; margin-top: 23px; }
  .hero-actions { flex-direction: row; align-items: center; gap: 20px; margin-top: 26px; }
  .hero .button { min-width: 230px; }
  .hero-strip a { border-bottom-color: #c3ccd4; }
}

/* Direct inquiry delivery */
.form-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.request-error { color: #91232d; background: #f9ecee; border-left: 3px solid var(--red); padding: 14px 16px; font-size: 1rem; line-height: 1.6; overflow-wrap: anywhere; }
#request-form button:disabled, .form-tabs button:disabled { cursor: wait; opacity: .7; }
#request-result-title:focus { outline-offset: 5px; }
