/* ============================================================
   スクール・会場専用（kaijyo.html）
   共通の色・ボタン・ページ見出し・目次・項目一覧は drone-base.css
   ============================================================ */

/* ---------- ページ見出し（写真付き） ---------- */
.place-hero { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 3rem; align-items: start; }
.place-hero__photo { margin: 0; }
.place-hero__photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; }

/* ---------- 学ぶ場所の全体像 ---------- */
.place-overview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 2.2rem 0 0; padding: 0; border: 1px solid var(--drone-line); border-radius: 6px; list-style: none; }
.place-overview__item { display: flex; flex-direction: column; gap: .2rem; padding: 1.4rem 1.6rem; }
.place-overview__item + .place-overview__item { border-left: 1px solid var(--drone-line); }
.place-overview__label { color: var(--drone-amber); font-size: .78rem; font-weight: 700; letter-spacing: .08em; }
.place-overview__item strong { color: var(--drone-navy); font-size: 1.25rem; line-height: 1.5; }
.place-overview__item span:last-child { color: #4b5c62; font-size: .9rem; }

/* ---------- 学科会場 ---------- */
.classroom { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 3rem; align-items: center; }
.classroom__photo { margin: 0; }
.classroom__photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; }
.classroom__photo figcaption { margin-top: .5rem; color: #5d6d72; font-size: .8rem; }
.classroom .section-heading + p { margin: 1rem 0 0; }

/* ---------- 屋外の会場 ---------- */
.field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6rem; margin-top: 2.2rem; }
.field-card { overflow: hidden; border: 1px solid var(--drone-line); border-radius: 6px; background: #fff; }
.field-card img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.field-card__body { padding: 1.5rem 1.7rem 1.6rem; }
.field-card__label { margin: 0; color: var(--drone-amber); font-size: .76rem; font-weight: 700; letter-spacing: .12em; }
.field-card h3 { margin: .3rem 0 .5rem; color: var(--drone-navy); font-size: 1.4rem; }
.field-card__body > p:not(.field-card__label) { margin: 0; }
.field-rental { margin: 1.6rem 0 0; }

/* ---------- 受講風景 ---------- */
.photo-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; margin: 2.2rem 0 0; padding: 0; list-style: none; }
.photo-grid figure { margin: 0; }
.photo-grid img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 4px; }
.photo-grid figcaption { margin-top: .5rem; color: var(--drone-navy); font-size: .88rem; font-weight: 700; line-height: 1.6; }

/* ---------- アクセスと送迎 ---------- */
.shuttle { margin-top: 2rem; padding: 1.2rem 1.5rem; border-left: 4px solid var(--drone-amber); background: #fffaf2; }
.shuttle h3 { margin: 0; color: var(--drone-navy); font-size: 1.1rem; }
.shuttle p { margin: .3rem 0 0; }
.access-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; margin-top: 1.6rem; }
.access-card { display: flex; flex-direction: column; padding: 1.5rem; border: 1px solid var(--drone-line); border-radius: 6px; }
.access-card__label { margin: 0; color: var(--drone-amber); font-size: .78rem; font-weight: 700; letter-spacing: .08em; }
.access-card h3 { margin: .2rem 0 0; color: var(--drone-navy); font-size: 1.2rem; }
.access-card .spec-list { flex: 1; margin-bottom: 1rem; }
.access-card .spec-list div { grid-template-columns: 6.5em 1fr; font-size: .92rem; }

/* ---------- 認定・登録 ---------- */
.cert-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem; margin-top: 2.2rem; }
.cert { display: flex; flex-direction: column; align-items: flex-start; padding: 1.7rem; border-top: 4px solid var(--drone-navy); background: #fff; }
.cert + .cert { border-top-color: var(--drone-teal); }
.cert__type { margin: 0; color: var(--drone-teal); font-size: .8rem; font-weight: 700; }
.cert h3 { margin: .2rem 0 .5rem; color: var(--drone-navy); font-size: 1.3rem; }
.cert p:not(.cert__type) { margin: 0 0 .8rem; }
.cert .text-link { margin-top: auto; }

/* ---------- 次の行動 ---------- */
.next-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 2rem 0 0; padding: 0; list-style: none; }
.next-card { display: flex; flex-direction: column; gap: .3rem; height: 100%; padding: 1.4rem 1.5rem; border: 1px solid rgba(255,255,255,.3); border-radius: 6px; color: #dce9e7; font-size: .9rem; text-decoration: none; transition: background .2s ease; }
.next-card:hover { color: #fff; background: rgba(255,255,255,.08); }
.next-card__title { color: #fff; font-size: 1.2rem; font-weight: 700; }
.next-card__title::after { content: " →"; }
.next-contact { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1.2rem 2rem; margin-top: 2rem; padding-top: 1.6rem; border-top: 1px solid rgba(255,255,255,.2); }
.next-contact p { margin: 0; color: #dce9e7; font-size: .92rem; }
.next-contact a:not(.button) { color: #fff; font-size: 1.2rem; font-weight: 700; }

/* ---------- タブレット ---------- */
@media (max-width: 1000px) {
  .access-grid { grid-template-columns: 1fr; }
  .photo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- スマホ ---------- */
@media (max-width: 800px) {
  .place-hero, .classroom { grid-template-columns: 1fr; gap: 1.6rem; }
}
@media (max-width: 760px) {
  .place-overview, .field-grid, .cert-grid, .next-grid { grid-template-columns: 1fr; }
  .place-overview__item + .place-overview__item { border-top: 1px solid var(--drone-line); border-left: 0; }
  .field-card__body, .cert { padding: 1.3rem; }
  .photo-grid { gap: 1rem .8rem; }
  .photo-grid figcaption { font-size: .8rem; }
  .access-card { padding: 1.2rem; }
}
