.cover {
  background: #25343b;
  isolation: isolate;
}

.cover-slides,
.cover-slide {
  position: absolute;
  inset: 0;
  margin: 0;
}

.cover-slides {
  z-index: 0;
  overflow: hidden;
}

.cover-slide {
  opacity: 0;
  visibility: hidden;
  transform: scale(1.025);
  transition: opacity 1s ease, visibility 1s ease, transform 6s linear;
}

.cover-slide.is-active {
  opacity: 1;
  visibility: visible;
  transform: scale(1);
}

.cover-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.cover-veil {
  background: linear-gradient(90deg, rgba(0, 0, 0, .48) 0%, rgba(0, 0, 0, .22) 44%, rgba(0, 0, 0, .04) 78%, transparent 100%);
}

.cover-copy {
  width: min(1000px, 78vw);
}

.cover-catch {
  font-size: clamp(32px, 4vw, 60px); /* 2026-09-30 拡大（旧: clamp(28px, 3.2vw, 46px)） */
  line-height: 1.5;
  letter-spacing: .1em;
  white-space: nowrap;
}

.cover-controls {
  position: absolute;
  right: 5vw;
  bottom: 26px;
  z-index: 4;
  display: flex;
  align-items: center;
  gap: 14px;
  color: #fff;
}

.cover-arrow,
.cover-dots button {
  border: 0;
  color: inherit;
  background: transparent;
}

.cover-arrow {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(255, 255, 255, .7);
  border-radius: 50%;
  font-size: 17px;
  transition: color .2s ease, background-color .2s ease;
}

.cover-arrow:hover,
.cover-arrow:focus-visible {
  color: #007fa9;
  background: #fff;
}

.cover-dots {
  display: flex;
  align-items: center;
  gap: 9px;
}

.cover-dots button {
  width: 9px;
  height: 9px;
  padding: 0;
  border: 1px solid #fff;
  border-radius: 50%;
}

.cover-dots button.is-active {
  background: #fff;
}

.team-feature {
  background: #fff;
  padding: clamp(28px, 4vw, 64px) clamp(20px, 5vw, 80px) 0;
}

.team-feature figure {
  width: min(1440px, 100%);
  height: clamp(300px, 36vw, 520px);
  margin: 0 auto;
  overflow: hidden;
}

.team-feature img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 66% bottom;
}

@media (max-width: 900px) {
  .cover-copy {
    width: min(820px, 84vw);
  }

  .cover-catch {
    font-size: clamp(28px, 5.2vw, 46px); /* 2026-09-30 拡大（旧: clamp(25px, 4.4vw, 39px)） */
  }

  .team-feature figure {
    height: clamp(280px, 42vw, 460px);
  }
}

@media (max-width: 560px) {
  .cover {
    display: block;
    height: clamp(430px, 118vw, 610px);
    background: #25343b;
  }

  .cover-slides,
  .cover-slide {
    position: absolute;
    inset: 0;
    height: 100%;
  }

  .cover-slide img {
    object-position: center;
  }

  .cover-veil {
    display: block;
    z-index: 1;
    background: linear-gradient(180deg, rgba(0, 0, 0, .08) 15%, rgba(0, 0, 0, .58) 100%);
  }

  .cover-copy {
    position: absolute;
    left: 24px;
    right: 24px;
    bottom: 108px;
    width: auto;
    padding: 0;
    z-index: 3;
    color: #fff;
  }

  .cover-kicker,
  .cover-catch {
    color: #fff;
    text-shadow: 0 2px 20px rgba(0, 0, 0, .35);
  }

  .cover-kicker {
    margin-bottom: 9px;
    font-size: 10px;
    letter-spacing: .1em;
  }

  .cover-catch {
    font-size: clamp(22px, 7vw, 31px);
    line-height: 1.55;
    letter-spacing: .06em;
    white-space: normal;
  }

  .cover-arcs {
    z-index: 2;
  }

  .cover-controls {
    right: 20px;
    bottom: 22px;
    gap: 11px;
  }

  .cover-arrow {
    width: 34px;
    height: 34px;
  }

  .scroll {
    display: none;
  }

  .team-feature {
    padding: 22px 0 0;
  }

  .team-feature figure {
    width: 100%;
    height: min(50vw, 280px);
  }

  .team-feature img {
    object-position: 66% bottom;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cover-slide {
    transition: none;
    transform: none;
  }
}

@media print {
  .cover-slide {
    display: none;
  }

  .cover-slide:first-child {
    display: block;
    opacity: 1;
    visibility: visible;
    transform: none;
  }

  .cover-controls {
    display: none;
  }
}

/* Cinematic alternative: each slide uses a restrained camera move. */
.cover-slide {
  transform: none;
  transition: opacity 1.15s cubic-bezier(.35, 0, .2, 1), visibility 1.15s ease;
}

.cover-slide.is-active {
  transform: none;
}

.cover-slide:nth-child(1).is-active img {
  animation: cinematic-zoom 5.8s cubic-bezier(.2, .55, .25, 1) both;
}

.cover-slide:nth-child(2).is-active img {
  animation: cinematic-pan 5.8s cubic-bezier(.2, .55, .25, 1) both;
}

.cover-slide:nth-child(3).is-active img {
  animation: cinematic-rise 5.8s cubic-bezier(.2, .55, .25, 1) both;
}

.cinematic-flash {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  opacity: 0;
  background: linear-gradient(105deg, rgba(255,255,255,0) 15%, rgba(255,255,255,.24) 48%, rgba(255,255,255,0) 78%);
  transform: translateX(-45%);
}

.cover.is-changing .cinematic-flash {
  animation: cinematic-flash .95s ease-out both;
}

.cover-copy {
  animation: cinematic-copy-in 1.45s cubic-bezier(.2, .65, .25, 1) both;
}

.cover-progress {
  position: absolute;
  right: 5vw;
  bottom: 78px;
  z-index: 4;
  width: 188px;
  height: 1px;
  overflow: hidden;
  background: rgba(255,255,255,.35);
}

.cover-progress span {
  display: block;
  width: 100%;
  height: 100%;
  background: #fff;
  transform: scaleX(0);
  transform-origin: left;
}

.cover.is-counting .cover-progress span {
  animation: cinematic-progress 5s linear both;
}

.cover.is-paused .cover-progress span {
  animation-play-state: paused;
}

@keyframes cinematic-zoom {
  from { transform: scale(1.065); }
  to { transform: scale(1.01); }
}

@keyframes cinematic-pan {
  from { transform: scale(1.07) translateX(1.4%); }
  to { transform: scale(1.035) translateX(-1.4%); }
}

@keyframes cinematic-rise {
  from { transform: scale(1.065) translateY(1.2%); }
  to { transform: scale(1.025) translateY(-1%); }
}

@keyframes cinematic-flash {
  0% { opacity: 0; transform: translateX(-45%); }
  38% { opacity: 1; }
  100% { opacity: 0; transform: translateX(45%); }
}

@keyframes cinematic-copy-in {
  from { opacity: 0; transform: translateY(20px); letter-spacing: .04em; }
  to { opacity: 1; transform: none; letter-spacing: normal; }
}

@keyframes cinematic-progress {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}

@media (max-width: 560px) {
  .cover-progress {
    right: 20px;
    bottom: 68px;
    width: 142px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cover-slide.is-active img,
  .cover.is-changing .cinematic-flash,
  .cover-copy,
  .cover.is-counting .cover-progress span {
    animation: none;
  }

  .cover-progress {
    display: none;
  }
}

/* 2026-09 content update: multiline mission copy and overlaid top message. */
.cover-catch .catch-line {
  display: inline-block;
  white-space: nowrap;
}

@media (min-width: 561px) {
  .cover-copy {
    width: min(1080px, 82vw);
  }
}

.message.message-overlay {
  position: relative;
  display: block;
  min-height: 0;
  padding: clamp(36px, 5vw, 72px) clamp(20px, 5vw, 80px) clamp(70px, 7vw, 110px);
  background: #fff;
  overflow: hidden;
}

.message-overlay .message-photo {
  position: relative;
  width: min(1440px, 100%);
  height: clamp(500px, 42vw, 640px);
  margin: 0 auto;
  overflow: hidden;
}

.message-overlay .message-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 66% bottom;
}

.message-overlay .message-card {
  position: absolute;
  left: clamp(32px, 5vw, 80px);
  top: calc(clamp(36px, 5vw, 72px) + 36px);
  width: min(460px, 31vw);
  margin: 0;
  padding: clamp(32px, 2.6vw, 42px);
  transform: none;
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 24px 70px rgba(21, 40, 47, .16);
  backdrop-filter: blur(5px);
}

.message-overlay .message-card h2 {
  margin: 24px 0 26px;
  font-size: clamp(17px, 1.2vw, 19px);
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: .035em;
  white-space: nowrap;
}

.message-overlay .message-copy-line,
.index-copy-line {
  display: block;
}

.message-overlay .message-copy-line {
  white-space: nowrap;
}

.keep-together {
  white-space: nowrap;
}

.message-overlay .message-card > p:not(.section-label) {
  margin: 0;
  color: #3f494d;
  font-size: clamp(13px, 1.05vw, 16px);
  line-height: 2.15;
}

.message-overlay .message-card > a {
  width: min(320px, 100%);
  margin-top: 32px;
}

.profile .profile-history-copy {
  font-size: clamp(24px, 2.45vw, 38px);
  line-height: 1.75;
}

.profile .profile-history-copy span {
  display: inline-block;
  white-space: nowrap;
}

@media (max-width: 900px) {
  .message-overlay .message-photo {
    height: clamp(430px, 56vw, 520px);
  }

  .message-overlay .message-card {
    left: 6vw;
    width: min(620px, 68vw);
    padding: 34px;
  }

  .message-overlay .message-card h2 {
    font-size: clamp(19px, 2.5vw, 23px);
  }
}

@media (max-width: 560px) {
  .cover-catch {
    font-size: clamp(16px, 5.8vw, 24px); /* 2026-09-30 拡大（旧: clamp(12px, 3.75vw, 17px)）。1行に収まる上限 */
    line-height: 1.9;
    letter-spacing: .02em;
  }

  .message.message-overlay {
    display: flex;
    flex-direction: column;
    padding: 28px 0 68px;
  }

  .message-overlay .message-photo {
    order: 0;
    width: 100%;
    height: min(58vw, 320px);
  }

  .message-overlay .message-photo img {
    object-position: 73% bottom;
  }

  .message-overlay .message-card {
    position: relative;
    order: -1;
    left: auto;
    top: auto;
    width: auto;
    margin: 0 18px -18px;
    padding: 30px 22px;
    transform: none;
    background: #fff;
  }

  .message-overlay .message-card h2 {
    margin: 20px 0 22px;
    font-size: clamp(14px, 3.7vw, 16px);
    line-height: 1.9;
    letter-spacing: .01em;
  }

  .index-copy-line {
    display: inline;
    white-space: normal;
  }

  .message-overlay .message-card > p:not(.section-label) {
    font-size: 14px;
  }

  .message-overlay .message-card .pc-break {
    display: none;
  }

  .profile .profile-history-copy {
    font-size: 18px;
    line-height: 1.75;
    letter-spacing: .015em;
  }
}

@media (min-width: 561px) and (max-width: 1366px) {
  .message-overlay .message-card {
    width: 29vw;
    max-width: 396px;
    padding: clamp(28px, 2.5vw, 36px);
  }

  .message-overlay .message-card h2 {
    font-size: clamp(15px, 1.2vw, 17px);
    letter-spacing: .02em;
    white-space: normal;
  }

  .message-overlay .message-card > p:not(.section-label) {
    font-size: clamp(12px, 1vw, 14px);
    line-height: 2;
  }

  .message-overlay .message-card > a {
    margin-top: 24px;
  }
}

@media (max-width: 760px) {
  .policy-quality .policy-brand p {
    font-size: 14px;
  }
}

@media (min-width: 761px) and (max-width: 1100px) {
  .policy-intro > p:not(.section-label) {
    font-size: 15px;
  }
}

@media (min-width: 561px) and (max-width: 1100px) {
  .message-overlay .message-card {
    left: 5vw;
    width: 34vw;
    max-width: none;
    padding: 28px;
  }

  .message-overlay .message-card h2 {
    font-size: clamp(13px, 1.45vw, 16px);
    letter-spacing: 0;
  }
}
