@charset "UTF-8";
/* ============================================================================
   公益財団法人 健和会 / 1DAY 医療経営マネジメント オープンカンパニー LP
   Figma: dsLEUmXLVycOvAeoN7dMNa (node 59:3 / 設計幅 375px)

   ■ スケールの考え方
     1rem = 10px（設計幅375px時）。html の font-size を 100vw/37.5 にすることで
     Figmaの数値をそのまま「px値 ÷ 10 = rem」で書ける。
     430px を超えると固定（= LP の最大幅 430px）となり、PCでは中央寄せになる。
   ========================================================================== */

/* ---------------------------------------------------------------- Reset -- */
*,
*::before,
*::after { box-sizing: border-box; }

html, body, h1, h2, h3, p, ul, ol, li, dl, dt, dd, figure, figcaption, hr {
  margin: 0;
  padding: 0;
}

ul, ol { list-style: none; }
img    { border-style: none; vertical-align: bottom; }
a      { color: inherit; }

/* ---------------------------------------------------------------- Token -- */
:root {
  --navy:      #0b3b5c;
  --teal:      #1fa9b8;
  --teal-d:    #0e7f8d;
  --orange:    #f39a3e;
  --orange-d:  #e37f1f;
  --gray:      #6b7885;
  --red:       #e74c3c;
  --green:     #57a85a;
  --line:      #06c755;
  --cream:     #fbf8f3;
  --pale:      #e4f5f7;

  --zen:     "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  --noto:    "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  --poppins: "Poppins", sans-serif;

  /* 設計幅 375px / 最大表示幅 430px */
  --lp-w:   37.5rem;
  --lp-max: 430px;
}

/* --------------------------------------------------------------- Layout -- */
html {
  font-size: calc(100vw / 37.5);   /* 1rem = 10px @375px */
  scroll-behavior: smooth;
}

@media (min-width: 430px) {
  html { font-size: 11.4667px; }   /* 430 / 37.5 → LP幅を430pxで固定 */
}

body {
  background: #eceff3;
  color: var(--navy);
  font-family: var(--noto);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

/* スマホ想定のLP本体。PC表示時は中央寄せ */
.lp {
  position: relative;
  width: var(--lp-w);
  max-width: var(--lp-max);
  margin-inline: auto;
  background: #fff;
  overflow-x: clip;   /* clip なので position:sticky を壊さない */
}

@media (min-width: 430px) {
  .lp {
    min-height: 100vh;
    box-shadow: 0 0 4rem rgba(11, 59, 92, .12);
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* ページ内リンクの着地位置をヘッダーの高さ分だけ下げる。
   これが無いと、画面の低い端末でリンク先がスティッキーヘッダーに隠れる。
   ヘッダー高 5.1rem + 余白 1rem */
[id] { scroll-margin-top: 6.1rem; }

/* ------------------------------------------------------------ Utilities -- */

/* 視覚的に隠すがスクリーンリーダー・クローラーには読ませる
   （ヒーローの主見出しが画像に焼き込まれているため h1 をこの方法で補う） */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.c-teal     { color: var(--teal); }
.c-teal-d   { color: var(--teal-d); }
.c-orange   { color: var(--orange); }
.c-orange-d { color: var(--orange-d); }
.c-red      { color: var(--red); }
.c-green    { color: var(--green); }

/* 読点の詰め（Figmaの tracking 指定を em 換算） */
.kn    { letter-spacing: -.5em; }
.kn-44 { letter-spacing: -.444em; }
.kn-33 { letter-spacing: -.333em; }

/* 見出しの下に敷くマーカー／アンダーライン */
.marker,
.underline { position: relative; display: inline-block; }

.marker::before,
.underline::before {
  content: "";
  position: absolute;
  z-index: -1;
}

.marker::before {
  inset-inline: -.1rem;
  bottom: .1rem;
  height: .8rem;
  background: #f9ff54;
}

.underline::before {
  inset-inline: -.7rem;
  bottom: 0;
  height: .6rem;
  background: var(--teal);
}

/* セクション番号ラベル（02 QUESTION など） */
.sec-label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .8rem;
  height: 4.5rem;
}

.sec-label__num {
  font: italic 900 3rem/1.5 var(--poppins);
  color: var(--teal);
}

.sec-label__en {
  font: 700 1.1rem/1.4545 var(--zen);
  letter-spacing: .264rem;
  color: var(--teal);
}

.sec-label__en--deep { color: var(--teal-d); }


/* ============================================================================
   ヘッダー  (Figma 180:2)
   ========================================================================== */
.header {
  position: sticky;
  top: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 5.1rem;
  padding: 0 1.6rem 0 1rem;
  background: #fff;
  transition: box-shadow .25s ease;
}

.header.is-stuck { box-shadow: 0 .2rem .8rem rgba(11, 59, 92, .08); }

.header__logo img { width: 11.7rem; height: 1.8rem; object-fit: contain; }

.header__cta {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .7rem 1.2rem;
  border-radius: 999px;
  background: var(--orange);
  box-shadow: 0 .4rem 1rem rgba(243, 154, 62, .35);
  color: #fff;
  font: 900 1.1rem/1.4545 var(--zen);
  text-decoration: none;
  white-space: nowrap;
}


/* ============================================================================
   ヒーロー  (Figma 180:3)
   ========================================================================== */
.hero__visual img {
  display: block;
  width: 100%;
  height: 75.5rem;   /* height属性のプレゼンテーション値を上書き */
  object-fit: cover;
}

.hero__catch {
  height: 24.3rem;
  margin-top: -.1rem;
  padding-top: 4rem;
  background: url("../img/shape-hero.svg") center / 100% 100% no-repeat;
  text-align: center;
}

.hero__catch p {
  font: 700 1.8rem/1.444 var(--zen);
  letter-spacing: .018rem;
  color: var(--navy);
}

.hero__catch p + p { margin-top: 1.4rem; }

.hero__catch-last {
  font-weight: 900;
  color: var(--orange-d);
}


/* ============================================================================
   セクション02 - QUESTION  (Figma 180:4)
   ========================================================================== */
.question {
  padding-top: 2.6rem;
  text-align: center;
}

.question__title {
  isolation: isolate;                  /* .marker の z-index:-1 を閉じ込める */
  margin-top: 1.8rem;
  font: 900 2.4rem/1.4 var(--zen);
  letter-spacing: .024rem;
  color: var(--navy);
}

.question__title .marker { color: var(--orange); }

.question__lead {
  margin-top: 2.88rem;
  font: 400 1.4rem/1.8 var(--noto);
  color: var(--navy);
}


/* ============================================================================
   比較 - イメージ vs リアル  (Figma 180:5)
   ========================================================================== */
.vs { margin-top: 3.7rem; }

/* IMAGE ブロック：下辺がV字にカットされた淡いブルー */
.vs__image {
  position: relative;
  z-index: 1;
  height: 23.1rem;
  padding-top: 3.6rem;
  background: var(--pale);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 4.4834rem), 50% 100%, 0 calc(100% - 4.4834rem));
}

/* REAL ブロック：V字の背面に潜り込むオレンジ */
.vs__real {
  position: relative;
  z-index: 0;
  margin-top: -6.5rem;
  padding: 9.7rem 0 7.9rem;
  background: rgba(243, 154, 62, .15);
}

.vs__head {
  width: 28.1rem;
  height: 5rem;
  margin-inline: auto;
  padding-top: .2rem;
  background: rgba(255, 255, 255, .8);
  text-align: center;
}

.vs__head-en {
  font: 400 1.6rem/1.4 var(--zen);
  letter-spacing: .016rem;
  color: var(--navy);
}

.vs__head-ja {
  font: 900 1.6rem/1.4 var(--zen);
  letter-spacing: .016rem;
  color: var(--navy);
}

.vs__head-ja.is-orange { color: var(--orange); }

.vs__lists {
  display: flex;
  justify-content: center;
  margin-top: 2.7rem;
}

.vs__image .vs__lists { gap: 2.9rem; }
.vs__real  .vs__lists { gap: 3.4rem; margin-top: 1.8rem; }

.vs__lists li {
  font: 500 1.4rem/2.2rem var(--noto);
  color: var(--navy);
  white-space: nowrap;
}

.vs__real .vs__lists li { font-weight: 700; }

/* 結論のオレンジボックス */
.vs__conclusion {
  isolation: isolate;
  width: 28.1rem;
  margin: -6.2rem auto 0;
  padding: 2.3rem 0 2.2rem;
  border-radius: 1.1rem;
  background: var(--orange);
  color: #fff;
  text-align: center;
}

/* 直下のspanのみ。子孫セレクタにすると入れ子の .underline まで block 化してしまう */
.vs__conclusion > span { display: block; }
.vs__conclusion-sm { font: 700 1.6rem/1.5 var(--zen); }
.vs__conclusion-lg { font: 900 2rem/1.5 var(--zen); }


/* ============================================================================
   セクション03 - JOBS  (Figma 59:43 / 180:6)
   ========================================================================== */
.jobs {
  margin-top: 8.4rem;
  text-align: center;
}

.jobs__title {
  margin-top: 1rem;
  font: 900 2.4rem/1.35 var(--zen);
  color: var(--navy);
}

.jobs__lead {
  margin-top: 1.96rem;
  font: 700 1.4rem/1.8 var(--noto);
  color: var(--gray);
}

.jobs__lead b { font-weight: 900; }

.jobs__list { margin-top: 3.46rem; }

/* カード間の余白はFigmaの実測値（02・03・05だけ他と異なる） */
.job + .job        { margin-top: 3rem; }
.job:nth-child(2)  { margin-top: 1.7rem; }
.job:nth-child(3)  { margin-top: 2.4rem; }
.job:nth-child(5)  { margin-top: 3.1rem; }

.job__visual {
  position: relative;
  width: 33.5rem;
  margin-inline: auto;
}

.job__visual img {
  display: block;
  width: 100%;
  height: 19.9rem;
  object-fit: cover;
}

/* 01 は画像上部を基準にトリミング */
.job:nth-child(1) .job__visual img,
.job:nth-child(6) .job__visual img { object-position: center top; }

.job:nth-child(4) .job__visual img,
.job:nth-child(5) .job__visual img,
.job:nth-child(6) .job__visual img { height: 20rem; }

.job__bar {
  position: absolute;
  inset: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  height: 5rem;
  background: rgba(228, 245, 247, .8);
}

.job__num {
  font: italic 900 3.4rem/1.5 var(--poppins);
  color: rgba(31, 169, 184, .4);
}

.job__name {
  font: 900 1.8rem/1.4444 var(--zen);
  color: var(--navy);
}

.job__name--s { font-size: 1.7rem; }

.job__desc {
  margin-top: 1.5rem;
  font: 400 1.2rem/1.75 var(--noto);
  color: var(--gray);
}

.job__desc b { font-weight: 700; }

/* 07 は帯が画像の上に積まれる（画像へのオーバーレイではない） */
.job--future .job__bar {
  position: static;
  background: rgba(243, 154, 62, .7);
}

.job--future .job__name { color: #fff; }
.job--future .job__visual img { height: 17.6rem; }
.job--future .job__desc { margin-top: 1.4rem; }


/* ============================================================================
   CTA（中間 / ボトム共通）  (Figma 180:7 / 180:12)
   ========================================================================== */
.cta--mid { margin-top: 6.4rem; }

.cta__banner {
  height: 15.8rem;
  padding-top: 5.7rem;
  background: linear-gradient(180deg, #005fa0 0, #005fa0 6.1rem, #0b3b5c 13.95rem, #0b3b5c 100%);
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 4.175rem), 50% 100%, 0 calc(100% - 4.175rem));
  text-align: center;
}

.cta__banner-title {
  font: 700 2.3rem/1.4348 var(--zen);
  color: #fff;
}

.cta__actions { padding-top: 3rem; }

.btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 29.5rem;
  margin-inline: auto;
  border-radius: 1.4rem;
  color: #fff;
  text-decoration: none;
}

.btn--entry {
  gap: .8rem;
  height: 7.6rem;
  padding: 0 2rem;
  background: linear-gradient(90deg, #f39a3e, #e37f1f);
  box-shadow: 0 1rem 2.4rem rgba(243, 154, 62, .4);
  font: 900 1.7rem/2rem var(--zen);
}

.btn__label { text-align: center; }
.btn__arrow { line-height: 1; }

.btn--line {
  height: 5.5rem;
  margin-top: 1.9rem;
  padding: 0 2rem;
  background: var(--line);
  box-shadow: 0 .6rem 1.6rem rgba(6, 199, 85, .3);
  font: 700 1.6rem/1 var(--zen);
}

.btn--line b { font-size: 1.7rem; font-weight: 700; }

.cta__note {
  margin-top: .7rem;
  font: 400 1.1rem/1.2 var(--noto);
  color: var(--gray);
  text-align: center;
}


/* ============================================================================
   タイムライン + グループワーク  (Figma 180:8 / 180:9)
   Figma上は1枚のベージュ帯（Rectangle 15）に両セクションが載っている
   ========================================================================== */
.band {
  margin-top: 10.1rem;
  padding-bottom: 11.1rem;
  background: var(--cream);
  clip-path: polygon(0 0, 100% 7.698rem, 100% 100%, 0 calc(100% - 8.905rem));
}

/* ------------------------------------------------------------- Timeline -- */
.timeline {
  padding-top: 13.1rem;
  text-align: center;
}

.timeline__title {
  margin-top: 1rem;
  font: 900 2.4rem/1.35 var(--zen);
  color: var(--navy);
}

.timeline__lead {
  margin-top: 1.92rem;
  font: 500 1.3rem/1.8 var(--noto);
  color: var(--gray);
}

.timeline__lead b { font-weight: 700; }

.timeline__list {
  margin-top: 3.82rem;
  text-align: left;
}

.tl {
  position: relative;
  margin-top: var(--mt, 2.4rem);
}

.tl__dot {
  position: absolute;
  top: .6rem;
  left: 3.2rem;
  width: 1.4rem;
  height: 1.4rem;
  border: .3rem solid var(--teal);
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 0 .4rem rgba(31, 169, 184, .15);
}

.tl__time {
  display: flex;
  align-items: center;
  gap: .8rem;
  margin-left: 6.4rem;
  margin-bottom: var(--gt, .3rem);
  font: 700 1.5rem/1.4667 var(--zen);
  letter-spacing: .03rem;
  color: var(--teal-d);
}

.tl__badge {
  padding: .3rem .8rem;
  border-radius: 999px;
  background: var(--orange);
  font: 700 .95rem/1.4737 var(--zen);
  letter-spacing: .095rem;
  color: #fff;
}

.tl__card {
  width: 28.6rem;
  margin-left: 5.5rem;
  padding: var(--pt, 1.1rem) 0 var(--pb, 1.08rem) .9rem;
  border-radius: 1rem;
  background: #fff;
  box-shadow: .2rem .2rem .4rem rgba(0, 0, 0, .25);
}

.tl__name {
  font: 700 1.6rem/1.4375 var(--zen);
  color: var(--navy);
}

.tl__desc {
  margin-top: .2rem;
  font: 400 1.2rem/1.6 var(--noto);
  color: var(--gray);
}

/* Figmaの実測値をそのまま反映（項目ごとに余白が微妙に異なるため） */
.tl:nth-child(1) { --mt: 0;      --gt: 0;     --pt: 1.1rem; --pb: 1.08rem; }
.tl:nth-child(2) { --mt: 2.4rem; --gt: .3rem; --pt: .9rem;  --pb: .86rem;  }
.tl:nth-child(3) { --mt: .6rem;  --gt: .3rem; --pt: .9rem;  --pb: .86rem;  }
.tl:nth-child(4) { --mt: 2.4rem; --gt: .3rem; --pt: 1.2rem; --pb: .98rem;  }
.tl:nth-child(5) { --mt: 2.5rem; --gt: 1.5rem;--pt: 2rem;   --pb: 3.16rem; }
.tl:nth-child(6) { --mt: 1.1rem; --gt: .2rem; --pt: .9rem;  --pb: 1.28rem; }
.tl:nth-child(7) { --mt: 2.2rem; --gt: .2rem; --pt: 1.3rem; --pb: .46rem;  }

/* MAIN CONTENT の行 */
.tl--main .tl__dot {
  border-color: var(--orange);
  box-shadow: 0 0 0 .4rem rgba(243, 154, 62, .2);
}

.tl--main .tl__time  { margin-left: 6.6rem; color: var(--orange-d); }
.tl--main .tl__card  { padding-left: 1.1rem; box-shadow: .2rem .2rem .4rem var(--orange); }
.tl--main .tl__name  { font: 900 1.8rem/1.3 var(--zen); }
.tl--main .tl__desc  { margin-top: .6rem; font-weight: 500; color: var(--navy); }

/* ---------------------------------------------------------- Group work -- */
.gw {
  margin-top: 7.9rem;
  text-align: center;
}

.gw__badge {
  display: inline-block;
  min-width: 24.2rem;
  padding: .3rem .8rem;
  border-radius: 999px;
  background: var(--orange);
  font: 700 1.4rem/1.4286 var(--zen);
  letter-spacing: .14rem;
  color: #fff;
  white-space: nowrap;
}

.gw__title {
  margin-top: 1.5rem;
  font: 900 2.4rem/1.2 var(--zen);
  color: var(--orange-d);
}

.gw__lead {
  margin-top: 1.32rem;
  font: 400 1.4rem/1.5 var(--noto);
  color: var(--navy);
}

.gw__lead b { font-weight: 700; }

.gw__visual { margin-top: 1.6rem; }

.gw__visual img {
  display: block;
  width: 30.3rem;
  height: 15rem;
  margin-inline: auto;
  object-fit: cover;
  object-position: center bottom;
}

.gw__caption {
  margin-top: 2.3rem;
  font: 700 1.5rem/1.5 var(--zen);
  color: var(--navy);
}

.gw__crisis { margin-top: 3.3rem; }

.gw__crisis li {
  width: 32.2rem;
  height: 7.9rem;
  margin-inline: auto;
  background: #fff;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 3.0145rem), 50% 100%, 0 calc(100% - 3.0145rem));
}

.gw__crisis li + li { margin-top: 2rem; }

.gw__crisis-num {
  display: block;
  font: 700 1.6rem/1.4375 var(--zen);
  color: var(--red);
}

.gw__crisis p {
  font: 400 1.4rem/1.5 var(--noto);
  color: var(--navy);
}

.gw__crisis b { font-weight: 700; color: var(--orange); }

.gw__question {
  width: 29.9rem;
  margin: 2.4rem auto 0;
  padding: 1.8rem 1.6rem;
  border-radius: 1.2rem;
  background: linear-gradient(90deg, #e37f1f, #ea6400);
  color: #fff;
}

.gw__question-en {
  font: 700 1.1rem/1.4545 var(--zen);
  letter-spacing: .154rem;
  color: rgba(255, 255, 255, .85);
}

.gw__question-ja {
  margin-top: .6rem;
  font: 900 2.2rem/1.3 var(--zen);
}

.gw__closing {
  margin-top: 2rem;
  font: 700 1.3rem/1.6 var(--zen);
  color: var(--navy);
}


/* ============================================================================
   セクション05 - VOICE  (Figma 180:10)
   ========================================================================== */
.voice {
  margin-top: 1.1rem;
  text-align: center;
}

.voice__title {
  margin-top: 1rem;
  font: 900 2.4rem/1.35 var(--zen);
  color: var(--navy);
}

.voice__lead {
  margin-top: 1.92rem;
  font: 400 1.4rem/1.8 var(--noto);
  color: var(--gray);
}

.voice__lead b { font-weight: 700; }

.voice__list { margin-top: 3.38rem; }

.vc {
  display: flex;
  align-items: flex-start;
  gap: .2rem;
}

.vc + .vc { margin-top: 3rem; }

.vc--left  { padding-left: .9rem; }
.vc--right { flex-direction: row-reverse; padding-right: 1.1rem; }

.vc__avatar {
  position: relative;
  flex: 0 0 7.8rem;
  width: 7.8rem;
  height: 7.8rem;
  border-radius: 50%;
  background: rgba(31, 169, 184, .15);
  overflow: hidden;
}

.vc__avatar img {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: var(--s);
  height: auto;
  max-width: none;
}

.vc__body {
  display: flex;
  flex-direction: column;
  flex: 0 0 26.7rem;
  height: 11rem;
  padding: 2.7rem 0 1.7rem .8rem;
  border-radius: 1.5rem;
  background: rgba(31, 169, 184, .06);
  text-align: left;
}

.vc:nth-child(2) .vc__body { padding-left: 1.1rem; }
.vc__body--tight           { padding-top: 1.8rem; }

/* テキストの折返し位置をFigmaに合わせるため、テキストボックス幅を明示 */
.vc__text {
  width: 25rem;
  font: 400 1.2rem/1.6 var(--noto);
  color: var(--navy);
}

.vc:nth-child(1) .vc__text { width: 25.4rem; }
.vc:nth-child(2) .vc__text { width: 25.8rem; }

.vc__text b { font-weight: 700; color: var(--orange-d); }

.vc__name {
  margin-top: auto;
  font: 400 1.05rem/1.238 var(--noto);
  color: var(--gray);
}


/* ============================================================================
   セクション06 - PHILOSOPHY / 施設紹介  (Figma 180:11)
   ========================================================================== */
.philosophy {
  margin-top: 7.68rem;
  padding-top: 3.7rem;
  padding-bottom: 3.4rem;
  background: url("../img/shape-philosophy.svg") top center / 100% 100% no-repeat;
  text-align: center;
}

.philosophy__title {
  margin-top: 1rem;
  font: 900 2.4rem/1.35 var(--zen);
  color: var(--navy);
}

.philosophy__card {
  width: 32.8rem;
  margin: 2.32rem auto 0;
  padding: 2.3rem 1.2rem 3.8rem 1.3rem;
  border-radius: 2rem;
  background: #fff;
}

.philosophy__copy {
  font: 700 2rem/1.6 var(--zen);
  color: var(--navy);
}

.philosophy__rule {
  width: 29.1rem;
  height: 1px;
  margin: .7rem auto 0;
  border: 0;
  background: var(--navy);
}

.philosophy__points {
  display: inline-block;
  margin-top: 1.5rem;
  font: 700 1.3rem/1.8 var(--noto);
  color: var(--navy);
  text-align: left;
}

.philosophy__points .check { color: var(--red); }

.philosophy__gallery {
  display: grid;
  grid-template-columns: 14.5rem 14.9rem;
  grid-template-rows: 9.7rem 9.5rem;
  gap: .7rem .9rem;
  margin-top: 1.4rem;
}

.philosophy__gallery img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.philosophy__gallery img:nth-child(3) {
  grid-column: 2;
  grid-row: 1 / 3;
}


/* ============================================================================
   ボトムCTA  (Figma 180:12)
   ========================================================================== */
.cta--bottom {
  margin-top: 4.8rem;
  text-align: center;
}

.cta__kicker {
  font: 700 1.6rem/1.2 var(--zen);
  color: var(--navy);
}

.cta__headline {
  margin-top: 1.26rem;
  font: 900 2.4rem/1.25 var(--zen);
  color: var(--navy);
}

/* 写真は青帯の上に重なる */
.cta__visual {
  position: relative;
  z-index: 1;
  margin-top: 2.3rem;
}

.cta__visual img {
  display: block;
  width: 31.3rem;
  height: 23.5rem;
  margin-inline: auto;
  border-radius: 2.6rem;
  object-fit: cover;
}

.cta__banner--bottom {
  position: relative;
  z-index: 0;
  height: 25.5rem;
  margin-top: -12.2rem;
  padding-top: 15.5rem;
  background: linear-gradient(180deg, #007bd0, #0b3b5c);
}

.cta__banner-lead {
  font: 700 1.8rem/1.032 var(--zen);
  color: #fff;
}

/* ボトム側だけ注記までの余白が広い（Figma実測） */
.cta--bottom .cta__note { margin-top: 2.3rem; }


/* ============================================================================
   開催概要  (Figma 180:13)
   ========================================================================== */
.summary {
  margin-top: 3.2rem;
  padding: 3.4rem 0 3.35rem;
  background: rgba(31, 169, 184, .05);
}

.summary__title {
  font: 900 1.2rem/1.6 var(--zen);
  color: var(--navy);
  text-align: center;
}

.summary__list {
  width: 25rem;
  margin: 1.56rem auto 0;
}

.summary__row {
  display: flex;
  padding-bottom: 1.5rem;
  border-bottom: .05rem solid rgba(31, 169, 184, .41);
}

.summary__row + .summary__row { padding-top: 1.5rem; }

.summary__row:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.summary__row dt {
  flex: 0 0 6.5rem;
  font: 700 1.05rem/2rem var(--zen);
  color: var(--navy);
}

/* 罫線は幅250px、本文はそこからはみ出して幅207px（Figma準拠） */
.summary__row dd {
  flex: 0 0 20.7rem;
  font: 400 1.15rem/2rem var(--noto);
  color: var(--navy);
}


/* ============================================================================
   フッター  (Figma 59:211)
   ========================================================================== */
.footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .8rem;
  padding: 2rem;
  background: var(--navy);
  text-align: center;
}

.footer__name {
  font: 700 1.3rem/1.4615 var(--zen);
  letter-spacing: .026rem;
  color: #fff;
}

.footer__address,
.footer__tel {
  font: 400 1.05rem/1.6 var(--noto);
  color: rgba(255, 255, 255, .5);
}

.footer__tel a { text-decoration: none; }
