:root {
  --dispecom-navy: #052f70;
  --dispecom-red: #ff1239;
  --dispecom-line: #dce4f2;
  --dispecom-surface: #f5f7fb;
}

.dispecom-page { width: 100%; min-height: 100vh; overflow-x: clip; background: #fff; }
.dispecom-hero { position: relative; min-height: max(720px, 52.73vw); padding: 170px 0 96px; overflow: hidden; border-bottom: 1px solid var(--dispecom-line); }
.dispecom-hero__background { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dispecom-hero__grid { position: relative; z-index: 1; display: block; }
.dispecom-back { display: inline-flex; margin-bottom: 34px; color: #657496; font-size: 13px; font-weight: 700; }
.dispecom-back::before { content: "←"; margin-right: 10px; color: var(--dispecom-red); }
.dispecom-back:hover { color: var(--dispecom-navy); }
.dispecom-hero h1 { margin: 0; }
.dispecom-hero__logo { width: min(100%, 798px); height: auto; display: block; }
.dispecom-hero h1 span { display: block; margin-top: 20px; color: var(--dispecom-red); font-size: clamp(20px, 2vw, 34px); line-height: 1.1; letter-spacing: -.035em; }
.dispecom-hero__copy > p { max-width: 620px; margin: 34px 0 0; color: #657496; font-size: clamp(16px, 1.2vw, 20px); line-height: 1.7; }

.dispecom-showcase { width: 100%; margin: 0; padding: 0; }
.dispecom-showcase img { width: 100%; height: auto; display: block; margin: 0; }

.dispecom-page a:focus-visible { outline: 3px solid #ffd21f; outline-offset: 4px; }

@media (max-width: 640px) {
  .dispecom-hero { padding: 140px 0 64px; }
  .dispecom-hero h1 span { margin-top: 14px; font-size: 20px; }
  .dispecom-hero__copy > p { margin-top: 24px; font-size: 15px; }
}
