/* ---------- ヘッダー（水深＝現在地を常に表示） ---------- */
.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 40;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  column-gap: var(--gap);
  height: var(--header-height);
  padding-inline: var(--margin);
  background: var(--bg);
}

.header__logo {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-family: var(--font-display);
  font-weight: 300;
  font-size: 24px;
  letter-spacing: 0.3em;
}

.header__pos {
  display: flex;
  align-items: baseline;
  gap: 0.7em;
  margin-left: clamp(16px, 4vw, 64px);
  font-family: var(--font-note);
  font-size: 13px;
  letter-spacing: 0.14em;
  color: var(--color-silver);
}

.pos__depth {
  min-width: 3.2em;
  font-family: var(--font-display);
  font-size: 24px;
  letter-spacing: 0.06em;
  color: var(--color-ink);
  text-align: right;
}

.pos__unit {
  margin-left: -0.5em;
}

.pos__name {
  color: var(--color-ink);
}

.header__actions {
  display: flex;
  align-items: center;
  gap: clamp(12px, 2vw, 28px);
}

.header__link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 4px;
  font-size: 15px;
  letter-spacing: 0.2em;
}

.header__bar {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: var(--color-line);
}

.header__bar-fill {
  display: block;
  height: 100%;
  background: var(--color-silver);
  transform-origin: left;
  transform: scaleX(var(--t));
}

/* ---------- 水深計（PC：画面右端の縦の目盛り） ---------- */
.gauge {
  position: fixed;
  top: calc(var(--header-height) + 40px);
  right: 20px;
  bottom: 40px;
  z-index: 30;
  display: none;
  width: 64px;
}

@media (min-width: 1100px) {
  .gauge { display: block; }
}

.gauge__line {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 18px;
  width: 1px;
  background: var(--color-line);
}

.gauge__tick {
  position: absolute;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  min-height: 24px;
  transform: translateY(-50%);
  font-family: var(--font-display);
  font-size: 13px;
  letter-spacing: 0.08em;
  color: var(--color-silver);
  text-shadow: 0 0 8px var(--color-abyss), 0 0 2px var(--color-abyss);
}

.gauge__tick.is-near .gauge__tick-label {
  opacity: 0;
}

.gauge__tick::after {
  content: "";
  width: 9px;
  height: 1px;
  background: var(--color-silver);
  margin-right: 14px;
}

.gauge__marker {
  position: absolute;
  right: 12px;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: var(--color-ink);
  transform: translateY(-50%);
}

.gauge__readout {
  position: absolute;
  right: 26px;
  top: 50%;
  transform: translateY(-50%);
  white-space: nowrap;
  font-family: var(--font-display);
  font-size: 15px;
  letter-spacing: 0.06em;
  color: var(--color-ink);
  text-shadow: 0 0 8px var(--color-abyss), 0 0 2px var(--color-abyss);
}

/* ---------- 表紙 ---------- */
.cover {
  position: relative;
  padding: var(--header-height) 0 0;
}

.cover__title {
  padding: clamp(24px, 4vw, 56px) var(--margin) 0;
}

.cover__catch {
  padding: clamp(16px, 2vw, 32px) var(--margin) 0;
}

.cover__dive {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin: clamp(24px, 3vw, 48px) var(--margin) 0;
}

/* ---------- 5つの深さ ---------- */
.depth {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  column-gap: var(--gap);
  padding: var(--space-section) var(--margin-end) 0 var(--margin);
}

@media (min-width: 768px) {
  /* a：全幅の接写、文字は下の左 */
  .depth--a .depth__plate { grid-column: 1 / 13; grid-row: 1; margin-inline: calc(var(--margin) * -1) calc(var(--margin-end) * -1); }
  .depth--a .depth__num { grid-column: 8 / 13; grid-row: 2; text-align: right; }
  .depth--a .depth__body { grid-column: 1 / 7; grid-row: 2; margin-top: var(--space-block); }

  /* b：写真が右（出血）、文字が左下 */
  .depth--b .depth__num { grid-column: 1 / 6; grid-row: 1; align-self: start; }
  .depth--b .depth__plate { grid-column: 7 / 13; grid-row: 1 / 3; margin-right: calc(var(--margin-end) * -1); }
  .depth--b .depth__body { grid-column: 1 / 6; grid-row: 2; align-self: end; }

  /* c：小さな写真が左、文字が右 */
  .depth--c .depth__plate { grid-column: 1 / 7; grid-row: 1 / 3; }
  .depth--c .depth__num { grid-column: 8 / 13; grid-row: 1; align-self: start; text-align: right; }
  .depth--c .depth__body { grid-column: 8 / 13; grid-row: 2; align-self: start; }

  /* d：中央に大きく。光る章 */
  .depth--d .depth__num { grid-column: 1 / 13; grid-row: 1; text-align: center; }
  .depth--d .depth__plate { grid-column: 3 / 11; grid-row: 2; }
  .depth--d .depth__body { grid-column: 4 / 10; grid-row: 3; margin-top: var(--space-block); }

  /* e：底。全幅の接写、文字は右 */
  .depth--e .depth__plate { grid-column: 1 / 13; grid-row: 1; margin-inline: calc(var(--margin) * -1) calc(var(--margin-end) * -1); }
  .depth--e .depth__num { grid-column: 1 / 7; grid-row: 2; }
  .depth--e .depth__body { grid-column: 7 / 12; grid-row: 2; margin-top: var(--space-block); }
}

/* ---------- ご予約・店舗情報 ---------- */
.reserve,
.info {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  column-gap: var(--gap);
  padding: var(--space-section) var(--margin-end) 0 var(--margin);
}

.reserve__title,
.info__title { grid-column: 1 / 6; }
.reserve__form { grid-column: 6 / 12; }
.info__list { grid-column: 6 / 12; }

.footer {
  margin-top: var(--space-section);
  padding: clamp(48px, 7vw, 96px) var(--margin) 64px;
  border-top: 1px solid var(--color-line);
}

/* ---------- スマホ ---------- */
@media (max-width: 767px) {
  .header {
    grid-template-columns: 1fr auto;
    grid-template-rows: 44px 24px;
    align-content: center;
    row-gap: 0;
  }

  .header__logo { font-size: 20px; }

  .header__pos {
    grid-column: 1 / 3;
    grid-row: 2;
    margin-left: 0;
    font-size: 12px;
  }

  .pos__depth { font-size: 18px; min-width: 2.8em; }

  .depth,
  .reserve,
  .info {
    grid-template-columns: 1fr;
  }

  .reserve__title,
  .reserve__form,
  .info__title,
  .info__list {
    grid-column: 1;
  }

  .depth__num { margin-bottom: 8px; }
  .depth__body { margin-top: 28px; }

  /* 深さごとに、写真の大きさと寄せを変える */
  .depth--a .depth__plate,
  .depth--e .depth__plate { margin-inline: calc(var(--margin) * -1) calc(var(--margin-end) * -1); }
  .depth--b .depth__plate { width: 78%; margin-left: auto; margin-right: calc(var(--margin-end) * -1); }
  .depth--c .depth__plate { width: 84%; }
  .depth--d .depth__plate { width: 100%; }
}
