@import url('https://fonts.googleapis.com/css2?family=Jost:wght@400;500;600&family=Klee+One:wght@400;600&family=Noto+Serif+JP:wght@400;500;600&family=Zen+Kaku+Gothic+New:wght@400;500;600;700&display=swap');

/* ========================================
   もぐらの会 共通スタイル
   Clean v4
   2026-09-12
======================================== */

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

html {
  scroll-behavior: smooth;
}

body,
h1,
h2,
h3,
h4,
p,
ul {
  margin: 0;
}

ul {
  padding: 0;
  list-style: none;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font: inherit;
}

/* ========================================
   Design tokens
======================================== */
:root {
  --text: #3e3a34;
  --muted: #7f7a70;

  --bg: #f7f6f2;
  --white: #ffffff;
  --kinari: #eee9dc;
  --photo: #e7e5df;

  --mustard: #d4ad58;
  --brown: #6b5838;

  --accent-gold: #b59a55;
  --accent-gold-dark: #806e3c;
  --border: #ddd8cc;

  --container: 1120px;
  --wide: 1220px;

  --font-sans:
    "Zen Kaku Gothic New",
    "Noto Sans JP",
    "Hiragino Kaku Gothic ProN",
    "Hiragino Sans",
    "Yu Gothic",
    "YuGothic",
    "Meiryo",
    sans-serif;

  --font-serif:
    "Noto Serif JP",
    "Yu Mincho",
    "YuMincho",
    "Hiragino Mincho ProN",
    serif;

  --font-en:
    "Jost",
    "Helvetica Neue",
    Arial,
    sans-serif;
}

/* ========================================
   Font family
   基本：ゴシック / アクセント：明朝
======================================== */
html,
body,
button,
input,
textarea,
select {
  font-family: var(--font-sans);
}

.font-serif,
.scene__number,
.scene__heading h3 {
  font-family: var(--font-serif);
}

body {
  color: var(--text);
  background: var(--bg);
  font-size: 18px;
  line-height: 1.8;
  letter-spacing: .035em;
  -webkit-font-smoothing: antialiased;
}

/* ========================================
   Typography
======================================== */
h1 {
  font-size: 40px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: .05em;
}

h2 {
  font-size: 32px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: .045em;
}

h3 {
  font-size: 24px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .035em;
}

h4 {
  font-size: 20px;
  font-weight: 600;
  line-height: 1.5;
}

/* 基本本文 */
p {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.8;
}

/* Lead */
.lead {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.8;
}

.small-heading {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
}

.note {
  font-size: 13px;
  font-weight: 400;
  line-height: 1.6;
}

.button,
.btn,
.cta-button {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
}

/* ========================================
   Common layout
======================================== */
.container {
  width: min(var(--container), calc(100% - 40px));
  margin-inline: auto;
}

.section-pad {
  padding-block: 100px;
}

.placeholder {
  display: grid;
  place-items: center;
  color: var(--muted);
  background: var(--photo);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
}

/* ========================================
   Common text link
======================================== */
.text-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 6px 0;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.4;
  border-bottom: 0;
  transition: opacity .25s ease;
}

.text-link span {
  display: inline-block;
  transition: transform .25s ease;
}

.text-link:hover {
  opacity: .72;
}

.text-link:hover span {
  transform: translateX(5px);
}

/* H2と直後の本文の間隔 */
.about__content h2,
.section-head h2 {
  margin-bottom: 32px;
}

/* ========================================
   Header
======================================== */
.site-header {
  position: relative;
  z-index: 100;
  background: var(--bg);
}

.site-header__logo {
  display: block;
  line-height: 0;
}

.site-header__logo img {
  display: block;
  width: 360px;
  height: auto;
}

.site-header__inner {
  width: min(1200px, calc(100% - 40px));
  height: 80px;
  margin-inline: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.site-logo {
  font-size: 16px;
  font-weight: 600;
}

@media screen and (max-width: 767px) {
  .site-header__logo img {
    width: 180px;
  }
}


/* =========================
   Header / Hamburger
========================= */

.menu-button {
  width: 42px;
  height: 42px;
  border: 0;
  padding: 0;
  background: transparent;

  display: grid;
  place-content: center;
  gap: 6px;

  cursor: pointer;

  position: relative;
  z-index: 110;
}

.menu-button span {
  display: block;
  width: 24px;
  height: 1px;
  background: #333;
  transition: .3s ease;
}


/* × */

.menu-button[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.menu-button[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}

.menu-button[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}


/* close */

.menu-button[aria-expanded="true"]::after {
  content: "close";

  position: absolute;
  top: 36px;
  left: 50%;

  transform: translateX(-50%);

  font-family: Arial, sans-serif;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: .02em;
  color: var(--text);
}


/* =========================
   Drawer
========================= */

.drawer {
  position: fixed;
  inset: 0;
  z-index: 90;

  display: grid;
  grid-template-columns: 52% 48%;

  background: var(--bg);

  visibility: hidden;
  opacity: 0;

  transition:
    opacity .35s ease,
    visibility .35s ease;
}

.drawer[aria-hidden="false"] {
  visibility: visible;
  opacity: 1;
}


/* 左側写真 */

.drawer__visual {
  width: 100%;
  height: 100%;

  background:
    url("../images/menu-drawer.webp")
    center / cover no-repeat;
}


/* 右側 */

.drawer__panel {
  min-height: 100vh;

  padding:
    80px
    clamp(50px, 6vw, 100px);

  background: var(--bg);

  overflow-y: auto;
}


/* メニュー本体 */

.drawer__menu {
  width: 100%;
  max-width: 420px;
}


/* 各メニュー */

.drawer__item {
  margin-bottom: 34px;
}

.drawer__item > a {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;

  text-decoration: none;
  color: var(--text);
}

.drawer__jp {
  font-size: 20px;
  font-weight: 500;
  line-height: 1.5;
}

.drawer__en {
  margin-top: 2px;
  font-family: var(--font-en);

  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;

  letter-spacing: .05em;

  color: var(--accent-gold);
}


/* サブメニュー */

.drawer__sub {
  margin: 20px 0 0;
  padding: 0 0 0 20px;

  list-style: none;

  border-left: 1px solid var(--border);
}

.drawer__sub li + li {
  margin-top: 14px;
}

.drawer__sub a {
  display: inline-block;

  position: relative;

  padding-left: 20px;

  font-size: 15px;
  font-weight: 400;
  line-height: 1.6;

  color: var(--text);
}

.drawer__sub a::before {
  content: "−";

  position: absolute;
  left: 0;
  top: 0;
}


/* hover */

.drawer__item > a,
.drawer__sub a {
  transition: opacity .25s ease;
}

.drawer__item > a:hover,
.drawer__sub a:hover {
  opacity: .55;
}

/* ========================================
   DRAWER MENU - SP
======================================== */
@media (max-width: 767px) {

  .drawer {
    display: block;
  }

  /* PC用ビジュアルは非表示 */
  .drawer__visual {
    display: none;
  }

  /* メニューを画面いっぱいに */
  .drawer__panel {
    width: 100%;
    min-height: 100vh;
    padding: 100px 32px 60px;
    overflow-y: auto;
  }

  .drawer__menu {
    width: 100%;
    max-width: none;
  }

  .drawer__item {
    margin-bottom: 32px;
  }

  .drawer__jp {
    font-size: 20px;
    line-height: 1.5;
  }

  .drawer__sub {
    margin-top: 18px;
    padding-left: 20px;
  }

  .drawer__sub a {
    font-size: 15px;
    line-height: 1.7;
  }
}

/* ========================================
   01 Hero
======================================== */
.hero {
  background: var(--bg);
}

.hero__media {
   width: min(1200px, calc(100% - 40px));
  height: 500px;
  margin-inline: auto;
  position: relative;
  display: flex;
  align-items: center;
  overflow: hidden;
  border-radius: 28px;

  background:
    radial-gradient(
      ellipse at 24% 43%,
      rgba(247, 246, 242, .52) 0%,
      rgba(247, 246, 242, .34) 25%,
      rgba(247, 246, 242, .14) 48%,
      rgba(247, 246, 242, 0) 70%
    ),
    url("../images/mainvisual.webp") center / cover no-repeat;
}

.hero__copy {
  margin-left: 118px;
}

.hero h1 {
  font-family: "Klee One", cursive;
  font-size: 42px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .07em;

  color: #463f36;
  text-shadow: 0 1px 0 rgba(255,255,255,.35);
}

.size-label {
  position: absolute;
  right: 108px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.6;
  color: var(--muted);
}

/* ========================================
   02 Intro
======================================== */
.intro {
  padding: 100px 0;
  background: var(--bg);
}

.intro__text {
  width: 480px;
  max-width: 100%;
  margin-inline: auto;
  text-align: center;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: .055em;
}

.intro__line {
  display: block;
  width: 1px;
  height: 60px;
  margin: 28px auto 26px;
  background: var(--accent-gold);
}

/* ========================================
   03 About
======================================== */
.about__grid {
  display: grid;
  grid-template-columns: 560px 1fr;
  gap: 70px;
  align-items: start;
}

.about__photo {
  width: 560px;
  height: 360px;
  margin-left: -50px;
  overflow: hidden;
}

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

.about__content .text-link {
  margin-top: 32px;
  gap: 10px;
  border-bottom: 0;
}

/* 本文内リンク：文字＋短い矢印 */
.about__content .text-link span {
  display: inline-block;
  font-size: 18px;
  line-height: 1;
  transition: transform .25s ease;
}

.about__content .text-link:hover span {
  transform: translateX(5px);
}

/* ========================================
   Common section heading
======================================== */
.section-head {
  margin-bottom: 72px;
}

.section-head h2 {
  font-size: 32px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: .045em;
}

.section-head p {
  font-size: 18px;
  font-weight: 400;
  line-height: 1.8;
}

.section-head--center {
  text-align: center;
}

/* セクション見出し：H2の下線は使わず、小さな英字ラベルを添える */
.section-head h2,
.about__content h2 {
  position: relative;
  padding-bottom: 0;
}

/* 旧H2下線を確実に無効化 */
.section-head h2::after,
.about__content h2::after {
  content: none;
}

/* H2直下の英字ラベル */
.section-head .section-label,
.about__content .section-label {
  margin-top: 4px;
  margin-bottom: 0;

  font-family: var(--font-en);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .12em;

  color: var(--accent-gold);
}

/* 中央見出しではラベルも中央 */
.section-head--center .section-label {
  text-align: center;
}


/* 英字ラベル付き見出しは、日本語タイトルとひとまとまりに見せる */
.section-head h2:has(+ .section-label),
.about__content h2:has(+ .section-label) {
  margin-bottom: 0;
}

/* ラベルを入れた見出しでは、本文までの間隔を確保 */
.section-head .section-label + p,
.about__content .section-label + p {
  margin-top: 28px;
}

/* ========================================
   04 Scenes
======================================== */
.scenes-section {
  padding-top: 120px;
  padding-bottom: 120px;
}

.scenes-section .section-head {
  margin-bottom: 72px;
}

.scene-list {
  display: grid;
  gap: 100px;
}

.scene {
  min-height: 355px;
  display: grid;
  align-items: center;
}

/* 01・03 */
.scene--odd {
  grid-template-columns: 250px 80px 510px 30px 250px;
}

/* 02・04：文章エリアを広めに */
.scene--even {
  grid-template-columns: 220px 30px 480px 60px 330px;
}

.scene--odd .scene__copy {
  grid-column: 1;
}

.scene--odd .scene__main {
  grid-column: 3;
}

.scene--odd .scene__sub {
  grid-column: 5;
}

.scene--even .scene__sub {
  grid-column: 1;
}

.scene--even .scene__main {
  grid-column: 3;
}

.scene--even .scene__copy {
  grid-column: 5;
}

.scene__copy {
  align-self: center;
}

.scene__heading {
  display: flex;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 24px;
}

.scene__number {
  font-size: 48px;
  font-weight: 400;
  line-height: 1;
  color: var(--accent-gold-dark);
}

.scene__heading h3 {
  margin: 0;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.5;
}

.scene__copy p {
  margin: 0;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.8;
}

/* 大小写真は高さを統一し、横幅だけ変える */
.scene__main,
.scene__sub {
  height: 355px;
  overflow: hidden;
}

.scene__main {
  width: 510px;
}

.scene__sub {
  width: 250px;
}

/* 02・04のみサイズ調整 */
.scene--even .scene__main {
  width: 480px;
}

.scene--even .scene__sub {
  width: 220px;
}

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

/* =========================
   05 PHOTO PAUSE
========================= */

.photo-pause {
  padding: 100px 0;
}

.photo-pause__inner {
  width: min(1220px, calc(100% - 40px));
  height: 650px;
  margin-inline: auto;
  overflow: hidden;
}

.photo-pause__inner img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

@media (max-width: 767px) {
  .photo-pause {
    padding: 70px 0;
  }

  .photo-pause__inner {
    width: 100%;
    height: 420px;
  }
}

/* ========================================
   06 Values
======================================== */
.values {
  background: var(--kinari);
}

.values .section-head {
  margin-bottom: 56px;
  text-align: center;
}

.values .section-head h2 {
  margin-bottom: 0;
}

.values__grid {
  display: grid;
  grid-template-columns: repeat(3, 350px);
  justify-content: space-between;
  gap: 35px;
}

/* 1つずつの考え方 */
.value-card {
  display: flex;
  flex-direction: column;
  text-align: left;
}

.value-card h3 {
  position: relative;

  margin: 0 0 24px;
  padding-bottom: 12px;

  font-size: 24px;
  font-weight: 600;
  line-height: 1.5;
}

/* 見出し下のライン */
.value-card h3::after {
  content: "";
  position: absolute;

  left: 0;
  bottom: 0;

  width: 72px;
  height: 1px;

  background: var(--accent-gold);
}

.value-card p {
   margin: 0;

  font-size: 18px;
  font-weight: 400;
  line-height: 1.8;
}

/* 写真 */
.value-card__photo {
   width: 350px;
  height: 244px;
  margin-top: 20px;
  overflow: hidden;
  border-radius: 24px 24px 0 0;
}

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

/* セクション下のリンク */
.values .section-more {
  margin-top: 48px;
  text-align: center;
}

/* セクション末尾リンク：控えめなライン矢印 */
.section-more .text-link {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding-bottom: 0;
  border-bottom: 0;
  text-decoration: none;
  font-size: 16px;
  font-weight: 600;
}

/* HTMLの <span>→</span> をライン矢印として描画 */
.section-more .text-link span {
  position: relative;
  display: block;
  width: 40px;
  height: 10px;
  font-size: 0;
  line-height: 1;
  transform: none;
  transition: transform .25s ease;
}

.section-more .text-link span::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 38px;
  height: 1px;
  background: var(--accent-gold);
}

.section-more .text-link span::after {
  content: "";
  position: absolute;
  right: 1px;
  top: 50%;
  width: 6px;
  height: 6px;
  border-top: 1px solid var(--accent-gold);
  border-right: 1px solid var(--accent-gold);
  transform: translateY(-50%) rotate(45deg);
}

.section-more .text-link:hover span {
  transform: translateX(4px);
}

/* ========================================
   07 Events
======================================== */
.events__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

/* カード全体 */
.event-card {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: 6px;
  overflow: hidden;

  display: flex;
  flex-direction: column;

  transition:
    transform .25s ease,
    box-shadow .25s ease;
}

.event-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .06);
}

/* 写真 */
.event-card__photo {
  width: 100%;
  height: 236px;
  overflow: hidden;
  background: var(--photo);
}

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

/* 写真以外の情報部分 */
.event-card__body {
  padding: 18px 18px 20px;

  display: flex;
  flex-direction: column;
  flex: 1;
}

/* 日付 */
.event-card__date {
  margin: 0 0 8px;

  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
}

/* タイトル */
.event-card h3 {
  margin: 0;

  font-size: 22px;
  font-weight: 600;
  line-height: 1.5;
}

/* 受付終了 */
.event-card__status {
  display: inline-block;
  align-self: flex-start;

  margin: 10px 0 0;
  padding: 4px 10px;

  border-radius: 4px;
  background: #777;

  color: #fff;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
}

/* 詳細ボタン */
.event-card__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;

  align-self: flex-start;
  margin-top: auto;
  padding-top: 18px;

  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;

  color: var(--text);
}

.event-card__link span {
  transition: transform .25s ease;
}

.event-card__link:hover span {
  transform: translateX(4px);
}

/* イベント一覧を見る */
.events .section-more {
  margin-top: 44px;
  text-align: center;
}

/* ========================================
   08 Ways
======================================== */
.ways {
  background: var(--kinari);
}

.ways__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 70px;
  text-align: center;
}

.ways__icon {
  height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ways__icon-img {
  display: block;
  width: 160px;
  height: 160px;
  object-fit: contain;
}

.ways h3 {
  margin-top: 12px;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.5;
}

.ways p {
  margin-top: 9px;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.8;
}

.ways .text-link {
  margin-top: 8px;
}

/* ========================================
   Final CTA
======================================== */
.final-cta {
  padding: 100px 0;
  background: var(--bg);
}

.final-cta__inner {
  width: min(1120px, calc(100% - 40px));
  min-height: 380px;
  margin: 0 auto;
  padding: 60px 64px;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 60px;

  background:
    linear-gradient(
      90deg,
      rgba(30, 28, 22, .48) 0%,
      rgba(30, 28, 22, .20) 55%,
      rgba(30, 28, 22, .06) 100%
    ),
    url("../images/final-cta.webp") center / cover no-repeat;
}

.final-cta__text p {
  margin: 0;

  color: #fff;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.9;
}

.final-cta .cta-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 22px;

  padding: 15px 30px;

  color: #9a7025;
  background: rgba(250, 248, 241, .94);

  border: 0;
  border-radius: 999px;

  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .04em;

  text-decoration: none;

  transition:
    background-color .3s ease,
    transform .3s ease;
}

.final-cta .cta-button span {
  display: inline-block;
  font-size: 18px;
  line-height: 1;
  transition: transform .3s ease;
}

.final-cta .cta-button:hover {
  background: #fff;
  transform: translateY(-2px);
}

.final-cta .cta-button:hover span {
  transform: translateX(5px);
}

/* ========================================
   Footer
======================================== */
.site-footer {
  width: 100%;
  background: var(--mustard);
}

.site-footer__inner {
  width: min(1120px, calc(100% - 40px));
  margin: 0 auto;
  padding: 52px 0 38px;

  display: grid;
  grid-template-columns: 1.25fr 2fr;
  gap: 70px;
}

/* 左側：団体情報 */
.site-footer__logo {
  margin-bottom: 20px;
}

.site-footer__logo img {
  display: block;
  width: 180px;
  height: auto;
}

.site-footer__tel {
  margin-top: 20px;
  font-family: var(--font-en);
  font-size: 30px;
  font-weight: 600;
  line-height: 1.4;
}

.site-footer__tel small {
  margin-left: 8px;
  font-family: var(--font-sans);

  font-size: 12px;
  font-weight: 400;
}

/* SNS */
.site-footer__sns {
  display: flex;
  gap: 12px;
  margin-top: 18px;
}

.site-footer__sns img {
  display: block;
  width: 28px;
  height: 28px;
  object-fit: contain;
}

/* 右側ナビ */
.site-footer__nav {
  display: grid;
  grid-template-columns: 1.3fr 1.1fr .9fr 1.3fr;
  gap: 28px;
}

.site-footer__nav h3 {
  margin-bottom: 14px;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.5;
  white-space: nowrap;
}

.site-footer__nav a {
  display: block;
  padding: 3px 0;

  font-size: 14px;
  font-weight: 400;
  line-height: 1.8;
}

/* コピーライト */
.site-footer__bottom {
  padding: 10px 20px;

  background: var(--brown);
  color: #fff;

  text-align: center;

  font-size: 12px;
  font-weight: 400;
  line-height: 1.5;
}

/* =========================
   HAMBURGER BUTTON
   PawPark風
========================= */

.menu-button {
  position: relative;
  width: 78px;
  height: 72px;
  padding: 0;
  border: 0;
  background: #dfb85b;
  cursor: pointer;

  /* 少し不規則な丸み */
  border-radius: 48% 52% 58% 42% / 42% 46% 54% 58%;

  transition:
    background-color .3s ease,
    border-radius .3s ease;
}


/* 三本線 */
.menu-button span {
  position: absolute;
  left: 50%;
  display: block;
  width: 28px;
  height: 2px;
  margin: 0;
  background: #fff;
  transform: translateX(-50%);
  transition:
    top .3s ease,
    transform .3s ease,
    opacity .3s ease;
}

.menu-button span:nth-child(1) {
  top: 20px;
}

.menu-button span:nth-child(2) {
  top: 28px;
}

.menu-button span:nth-child(3) {
  top: 36px;
}


/* menu の文字 */
.menu-button::after {
  content: "menu";
  position: absolute;
  left: 50%;
  top: 45px;
  transform: translateX(-50%);

  color: #fff;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .02em;
}


/* hover */
.menu-button:hover {
  background: #d5aa49;
  border-radius: 54% 46% 46% 54% / 48% 56% 44% 52%;
}


/* =========================
   OPEN
========================= */

.menu-button[aria-expanded="true"] {
  background: transparent;
  border-radius: 0;
}

.menu-button[aria-expanded="true"] span {
  background: #493f35;
}

.menu-button[aria-expanded="true"] span:nth-child(1) {
  top: 27px;
  transform: translateX(-50%) rotate(45deg);
}

.menu-button[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}

.menu-button[aria-expanded="true"] span:nth-child(3) {
  top: 27px;
  transform: translateX(-50%) rotate(-45deg);
}

.menu-button[aria-expanded="true"]::after {
  content: "close";
  top: 45px;
  color: #493f35;
}

/* ヘッダーとFVの間隔 */
.site-header {
  margin-bottom: 24px;
}

/* ========================================
   Responsive
======================================== */
@media (max-width: 1180px) {
  .scene--odd {
    grid-template-columns: 220px 40px minmax(0, 1fr) 24px 220px;
  }

  .scene--even {
    grid-template-columns: 200px 24px minmax(0, 1fr) 40px 300px;
  }

  .scene__main,
  .scene--even .scene__main {
    width: 100%;
  }

  .scene__sub {
    width: 220px;
  }

  .scene--even .scene__sub {
    width: 200px;
  }

  .values__grid {
    grid-template-columns: repeat(3, 1fr);
  }

  .value-card__photo {
    width: 100%;
    height: auto;
    aspect-ratio: 350 / 244;
  }
}

@media (max-width: 900px) {
  .about__grid {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .about__photo {
    height: 330px;
  }

  .scene--odd,
  .scene--even {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .scene--odd .scene__copy,
  .scene--odd .scene__main,
  .scene--odd .scene__sub,
  .scene--even .scene__copy,
  .scene--even .scene__main,
  .scene--even .scene__sub {
    grid-column: 1;
  }

  .scene__sub {
    display: none;
  }

  .scene__main,
  .scene--even .scene__main {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
  }

  .values__grid,
  .events__grid,
  .ways__grid {
    grid-template-columns: 1fr;
  }

  .site-footer__inner {
    grid-template-columns: 1fr;
  }

  .site-footer__nav {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 767px) {
  .container,
  .site-header__inner,
  .hero__media {
    width: calc(100% - 32px);
  }

  .site-header__inner {
    width: calc(100% - 32px);
    height: 80px;
  }

  /* FV：PC版と同じ、写真そのものに溶け込む柔らかな光 */
  .hero__media {
    width: 100%;
    height: 500px;
    position: relative;
    display: block;
    border-radius: 18px;

    background:
      radial-gradient(
        ellipse at 22% 34%,
       rgba(247, 246, 242, .78) 0%,
       rgba(247, 246, 242, .72) 25%,
       rgba(247, 246, 242, .38) 48%,
       rgba(247, 246, 242, 0) 70%
      ),
      url("../images/mainvisual-sp.webp")
      center center / cover no-repeat;
  }

  .hero__copy {
    position: absolute;
    z-index: 2;
    top: 90px;
    left: 32px;
    margin: 0;
  }

  .hero h1 {
    font-family: "Klee One", cursive;
    font-size: 35px;
    font-weight: 600;
    line-height: 1.5;
    letter-spacing: .06em;
    color: #493f35;
    text-shadow: none;
  }

    .photo-pause {
    width: 100%;
    height: 300px;
  }

  .photo-pause__inner {
    width: 100%;
    height: 300px;
  }

  .photo-pause__inner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 60% center;
  }
  
  html,
  body {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
  }

  main {
    width: 100%;
    max-width: 100%;
    margin: 0;
  }

   /* 01〜04 スマホでは
     タイトル・文章 → メイン画像 → サブ画像
     の順番に統一 */
  .scene {
    display: flex;
    flex-direction: column;
  }

  .scene__copy {
    order: 1;
  }

  .scene__main {
    order: 2;
  }

  .scene__sub {
    order: 3;
  }

   .scene__copy {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
  }

  .scene__copy > p {
    margin-left: 0;
    margin-right: 0;
  }
}

/* 英字ラベル：スマホでも控えめに */
@media (max-width: 767px) {
  .section-head .section-label,
  .about__content .section-label {
    margin-top: 2px;
    font-size: 12px;
    letter-spacing: .11em;
  }

  .section-head .section-label + p,
  .about__content .section-label + p {
    margin-top: 24px;
  }

  .section-more .text-link {
    gap: 14px;
  }

  .section-more .text-link span {
    width: 36px;
  }

  .section-more .text-link span::before {
    width: 34px;
  }
  .final-cta {
    padding: 70px 0;
  }

  .final-cta__inner {
    width: calc(100% - 40px);
    min-height: 500px;
    padding: 54px 40px;

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 34px;

    background:
      linear-gradient(
        90deg,
        rgba(30, 28, 22, .42) 0%,
        rgba(30, 28, 22, .14) 100%
      ),
      url("../images/final-cta.webp") center / cover no-repeat;
  }

  .final-cta__text {
    width: 100%;
  }

  .final-cta__text p {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.9;
    letter-spacing: .04em;
  }

  .final-cta .cta-button {
    align-self: flex-start;
    padding: 11px 18px;
    font-size: 15px;
  }
}

/* =========================
   04 SCENES ～ 05 PHOTO PAUSE
========================= */

.scenes,
.pause-photo {
  background: #f1efe8;
}

/* ========================================
   Link Design System - 2026-09-15
======================================== */

/* 01 ゴールドの少し長い矢印 */
.link-arrow-line {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 6px 0;
  color: var(--text);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  border-bottom: 0;
}

.link-arrow-line .arrow {
  position: relative;
  display: inline-block;
  flex: 0 0 38px;
  width: 38px;
  height: 10px;
  font-size: 0;
  line-height: 1;
  transform: none;
  transition: transform .25s ease;
}

.link-arrow-line .arrow::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 36px;
  height: 1px;
  background: var(--accent-gold);
}

.link-arrow-line .arrow::after {
  content: "";
  position: absolute;
  right: 1px;
  top: 50%;
  width: 6px;
  height: 6px;
  border-top: 1px solid var(--accent-gold);
  border-right: 1px solid var(--accent-gold);
  transform: translateY(-50%) rotate(45deg);
}

.link-arrow-line:hover {
  opacity: .78;
}

.link-arrow-line:hover .arrow {
  transform: translateX(4px);
}


/* 02 ゴールドの丸＋白い矢印 */
.link-arrow-circle {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--text);
  text-decoration: none;
}

.link-arrow-circle .arrow {
  position: static;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
  border: 1px solid var(--accent-gold);
  border-radius: 50%;
  background: transparent;
  color: var(--accent-gold);
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  transform: none;
  transition:
    transform .25s ease,
    background-color .25s ease,
    color .25s ease;
}

.link-arrow-circle .arrow::before,
.link-arrow-circle .arrow::after {
  content: none;
}

.link-arrow-circle:hover {
  opacity: 1;
}

.link-arrow-circle:hover .arrow {
  transform: translateX(3px);
  background: var(--accent-gold);
  color: #fff;
}

@media (max-width: 767px) {
  .link-arrow-line {
    gap: 12px;
  }

  .link-arrow-line .arrow {
    flex-basis: 34px;
    width: 34px;
  }

  .link-arrow-line .arrow::before {
    width: 32px;
  }

  .link-arrow-circle .arrow {
    flex-basis: 25px;
    width: 25px;
    height: 25px;
    font-size: 13px;
  }
}

/* ========================================
   COMPANY PAGE / 運営について
   2026-10-01
======================================== */

.company-hero {
  background: var(--bg);
}

.company-hero__media {
  width: min(1200px, calc(100% - 40px));
  height: 500px;
  margin-inline: auto;
  position: relative;
  overflow: hidden;
  border-radius: 28px;

  background:
    linear-gradient(
      90deg,
      rgba(247, 246, 242, 1) 0%,
      rgba(247, 246, 242, .98) 18%,
      rgba(247, 246, 242, .88) 30%,
      rgba(247, 246, 242, .55) 40%,
      rgba(247, 246, 242, .15) 52%,
      rgba(247, 246, 242, 0) 62%
    ),
    url("../images/company-hero.webp") center / cover no-repeat;
}

.company-hero__copy {
  position: absolute;
  left: 70px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
}

.company-hero h1 {
  font-family: "Klee One", cursive;
  font-size: 40px;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: .06em;
  color: #493f35;
}

.company-hero .section-label {
  margin-top: 4px;
  font-family: var(--font-en);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .12em;
  color: var(--accent-gold);
}

/* 導入文 */
.company-introduction {
  padding: 90px 0 110px;
  background: var(--bg);
}

.company-introduction p {
  max-width: 760px;
  margin-inline: auto;
  font-size: 18px;
  line-height: 2;
  text-align: center;
}

/* 会社情報 */
.company-section {
  padding: 0 0 100px;
  background: var(--bg);
}

.company-section--support {
  padding-top: 0px;
}

.company-section__head {
  width: 100%;
  max-width: 820px;
  margin: 0 auto 38px;
}

.company-section__head h2 {
  margin: 0;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.45;
}

.company-section__head .section-label {
  margin-top: 4px;
  font-family: var(--font-en);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .12em;
  color: var(--accent-gold);
}

.company-information {
  width: 100%;
  max-width: 820px;
  margin-inline: auto;
}

.company-information h3 {
  margin: 0 0 28px;
  font-size: 24px;
  font-weight: 600;
}

.company-information__logo {
  display: flex;
  align-items: center;
  min-height: 60px;
  margin: 0 0 48px;
}

.company-information__logo img {
  display: block;
  width: 200px;
  height: auto;
}

.company-information__list {
  width: 100%;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--border);
}

.company-information__row {
  display: grid;
  grid-template-columns: 145px 1fr;
  align-items: center;
  border-bottom: 1px solid var(--border);
}

.company-information__row dt,
.company-information__row dd {
  margin: 0;
  padding: 22px 0;
  font-size: 16px;
  line-height: 1.8;
  background: transparent;
}

.company-information__row dt {
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--accent-gold-dark);
}

.company-information__row dd {
  color: var(--text);
}

.company-information__row dd br {
  display: none;
}

.company-information__row dd br + span {
  margin-left: .5em;
}

.company-information__identity {
  display: flex;
  align-items: center;
  gap: 40px;
  margin-bottom: 48px;
}

.company-information__identity h3 {
  margin: 0;
}

.company-information__identity .company-information__logo {
  min-height: 0;
  margin: 0;
}

.company-information__website {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--text);
  text-decoration: none;
}

.company-information__website i {
  font-size: 12px;
  color: #888;
}

.company-information__website:hover {
  opacity: .65;
}

.company-information__external {
  width: 15px;
  height: 15px;
  flex-shrink: 0;
  color: #888;
}

@media (max-width: 767px) {

  .company-information__row {
    display: block;
  }

  .company-information__row dt {
    padding: 20px 16px 4px;
    border-bottom: 0;
  }

  .company-information__row dd {
    min-height: 0;
    padding: 4px 16px 20px;
  }

  .company-hero__media {
  width: 100%;
  height: 500px;
  border-radius: 0;

  background:
    linear-gradient(
      to bottom,
      rgba(247, 246, 242, 0) 0%,
      rgba(247, 246, 242, 0) 42%,
      rgba(247, 246, 242, .15) 52%,
      rgba(247, 246, 242, .55) 65%,
      rgba(247, 246, 242, .88) 78%,
      rgba(247, 246, 242, .98) 90%,
      rgba(247, 246, 242, 1) 100%
    ),
    url("../images/company-hero.webp") center / cover no-repeat;
  }

  .company-hero__copy {
    left: 28px;
    right: 28px;
    top: auto;
    bottom: 38px;
    transform: none;
  }

  .company-hero h1 {
    font-size: 34px;
    line-height: 1.5;
  }

  .company-hero .section-label {
    margin-top: 2px;
    font-size: 12px;
  }

  .company-hero__copy::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: -35px;
    right: -20px;
    bottom: -30px;
    left: -20px;
    background: rgba(247, 246, 242, .82);
    filter: blur(20px);
    border-radius: 40%;
  }

  .company-information__row dd br {
    display: block;
  }

  .company-information__row dd br + span {
    margin-left: 0;
  }

  .company-information__identity {
  display: block;
  }

  .company-information__identity h3 {
  margin: 0 0 28px;
  }

  .company-information__identity .company-information__logo {
  margin: 0;
  }

}

/* ========================================
   ABOUT PAGE / もぐらの会について
   2026-09-15
======================================== */
.about-page .site-header { margin-bottom: 24px; }

.about-hero { background: var(--bg); }
.about-hero__media {
   width: min(1200px, calc(100% - 40px));
  height: 500px;
  margin-inline: auto;
  position: relative;
  overflow: hidden;
  border-radius: 28px;
  background:
    linear-gradient(
      90deg,
      rgba(247, 246, 242, 1) 0%,
      rgba(247, 246, 242, .98) 18%,
      rgba(247, 246, 242, .88) 30%,
      rgba(247, 246, 242, .55) 40%,
      rgba(247, 246, 242, .15) 52%,
      rgba(247, 246, 242, 0) 62%
    ),
    url("../images/about-mainvisual.webp") center / cover no-repeat;
}
.about-hero__copy {
  position: absolute;
  left: 70px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
}
.about-hero h1 { font-family:"Klee One",cursive; font-size:40px; font-weight:600; line-height:1.45; letter-spacing:.06em; color:#493f35; }
.about-hero__lead { margin-top:18px; font-size:20px; font-weight:500; line-height:1.8; }

.about-introduction { padding: 100px 0; background: var(--bg); }
.about-introduction__grid { display:grid; grid-template-columns: 1fr 560px; gap:90px; align-items:center; }
.about-introduction__copy h2, .about-story__copy h2 { margin:0; font-size:32px; }
.about-page .section-label { margin-top:4px; font-family:var(--font-en); font-size:14px; font-weight:500; line-height:1.4; letter-spacing:.12em; color:var(--accent-gold); }
.about-introduction__body, .about-story__body { margin-top:32px; }
.about-introduction__body p + p, .about-story__body p + p { margin-top:24px; }
.about-introduction__photo { width:560px; height:360px; overflow:hidden; }
.about-introduction__photo img, .about-story__photo img, .about-pause img, .about-more__photo img { display:block; width:100%; height:100%; object-fit:cover; }

.about-pause {
  width: 100%;
  height: 300px;
  overflow: hidden;
}

.about-pause img {
  object-fit: contain;
  object-position: center center;
  background: var(--bg);
}

.about-story { padding:100px 0; background:var(--bg); }
.about-story__grid { display:grid; grid-template-columns:560px 1fr; gap:90px; align-items:center; }
.about-story__photo { width:560px; height:360px; overflow:hidden; }

/* ========================================
   ABOUT / OUR MESSAGE
   irregular floating message shapes
======================================== */
.about-message {
  padding: 110px 0 125px;
  background: var(--kinari);
  overflow: hidden;
}

.about-message__head {
  text-align: center;
  margin-bottom: 54px;
}

.about-message__head h2 {
  margin: 0;
  font-size: 32px;
}

/* ========================================
   ABOUT / OUR MESSAGE
   PC
======================================== */

.about-message__words {
  position: relative;
  width: 1120px;
  max-width: 100%;
  height: 760px;
  margin-inline: auto;
}

.about-message__word {
  position: absolute;
  box-sizing: border-box;

  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}


/* ----------------------------------------
   文字
---------------------------------------- */

.about-message__word h3 {
  margin: 0;
  font-size: 30px;
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: .04em;
}

.about-message__word p {
  margin: 24px 0 0;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.8;
  text-align: left;
}

/* 01：文字をわずかに左へ */
.about-message__word--01 h3,
.about-message__word--01 p {
  position: relative;
  left: -18px;
}

/* 02：ほぼ中央 */
.about-message__word--02 h3,
.about-message__word--02 p {
  position: relative;
  left: 5px;
}

/* 03：少し左へ */
.about-message__word--03 h3,
.about-message__word--03 p {
  position: relative;
  left: -12px;
}

/* ----------------------------------------
   01：左上
---------------------------------------- */

.about-message__word--01 {
  left: -70px;
  top: 0;

  width: 700px;
  height: 370px;

  padding: 75px 125px;

  background: rgba(250, 247, 238, .88);

  border-radius:
    34% 66% 55% 45% /
    46% 34% 66% 54%;

  transform: rotate(-2deg);
}

.about-message__word--01 > * {
  transform: rotate(2deg);
}


/* ----------------------------------------
   02：右中央
---------------------------------------- */

.about-message__word--02 {
  right: -70px;
  top: 190px;

  width: 650px;
  height: 380px;

  padding: 78px 110px;

  background: rgba(239, 211, 137, .42);

  border-radius:
    63% 37% 42% 58% /
    40% 61% 39% 60%;

  transform: rotate(2deg);
}

.about-message__word--02 > * {
  transform: rotate(-2deg);
}


/* ----------------------------------------
   03：左下
---------------------------------------- */

.about-message__word--03 {
  left: -10px;
  bottom: -25px;

  width: 730px;
  height: 325px;

  padding: 68px 125px;

  background: rgba(221, 226, 207, .58);

  border-radius:
    41% 59% 68% 32% /
    39% 64% 36% 61%;

  transform: rotate(1.5deg);
}

.about-message__word--03 > * {
  transform: rotate(-1.5deg);
}

.about-more { padding:110px 0 120px; background:var(--bg); }
.about-more__head { text-align:center; margin-bottom:52px; }
.about-more__head h2 { font-size:30px; }
.about-more__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:36px; }
.about-more__card { display:flex; flex-direction:column; }
.about-more__photo { width:100%; height:210px; overflow:hidden; }
.about-more__card h3 { margin-top:20px; font-size:22px; }
.about-more__card p { margin-top:8px; font-size:16px; line-height:1.75; }
.about-more__card .text-link { margin-top:14px; align-self:flex-start; }

@media (max-width:900px) {
  .about-introduction__grid, .about-story__grid { grid-template-columns:1fr; gap:44px; }
  .about-introduction__photo, .about-story__photo { width:100%; height:auto; aspect-ratio: 14 / 9; }
  .about-story__photo { order:2; }
  .about-story__copy { order:1; }
}

@media (max-width:767px) {
  .about-hero__media { 
      width: 100%;
      height: 500px;
      border-radius: 0;

      background:
      linear-gradient(
      to bottom,
      rgba(247, 246, 242, 0) 0%,
      rgba(247, 246, 242, 0) 42%,
      rgba(247, 246, 242, .15) 52%,
      rgba(247, 246, 242, .55) 65%,
      rgba(247, 246, 242, .88) 78%,
      rgba(247, 246, 242, .98) 90%,
      rgba(247, 246, 242, 1) 100%
    ),
    url("../images/about-mainvisual-sp.webp") 60% top / cover no-repeat;
}

  .about-hero__copy {  
    left: 28px;
    right: 28px;
    top: auto;
    bottom: 38px;
    transform: none;
    z-index: 1;
}
  
  .about-hero h1 { font-size:34px; line-height:1.5; }
  .about-hero__lead { margin-top:12px; font-size:17px; line-height:1.8; }
  .about-introduction, .about-story { padding:76px 0; }
  .about-introduction__grid, .about-story__grid { gap:36px; }
  .about-introduction__copy h2, .about-story__copy h2 { font-size:27px; line-height:1.5; }
  .about-page .section-label { margin-top:2px; font-size:12px; }
  .about-introduction__body, .about-story__body { margin-top:26px; }
  .about-introduction__body p, .about-story__body p { font-size:16px; line-height:1.9; }
  .about-pause {
    height: 180px;
  }

  .about-pause img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 30% center;
  }
  /* ABOUT / OUR MESSAGE - SP */
  .about-message {
    padding: 82px 0 92px;
  }

  .about-message__head {
    margin-bottom: 42px;
  }

  .about-message__head h2 {
    font-size: 27px;
    line-height: 1.5;
  }

  .about-message__words {
  width: 100%;
  height: auto;

  display: flex;
  flex-direction: column;
  gap: 30px;
}

.about-message__word {
  position: relative;

  top: auto;
  right: auto;
  bottom: auto;
  left: auto;

  flex: none;
  box-sizing: border-box;
}

.about-message__word h3 {
  font-size: 19px;
  line-height: 1.65;
}

.about-message__word p {
  margin-top: 14px;
  font-size: 14px;
  line-height: 1.85;
  text-align: left;
}

/* CONTACT HERO - SP */
.contact-hero__copy {
  left: 28px;
  right: 28px;
  top: 50%;
  transform: translateY(-50%);
}

.contact-hero h1 {
  font-size: 34px;
  line-height: 1.5;
}

.contact-hero .section-label {
  margin-top: 2px;
  font-size: 12px;
}

/* 01 ─ 左寄り */
.about-message__word--01 {
  width: 94%;
  height: 180px;

  margin-right: auto;
  margin-left: 2%;

  padding: 38px 42px;

  border-radius:
    40% 60% 55% 45% /
    44% 38% 62% 56%;

  transform: rotate(-1.5deg);
}

.about-message__word--01 > * {
  transform: rotate(1.5deg);
}


/* 02 ─ 右寄り */
.about-message__word--02 {
  width: 92%;
  height: 220px;

  margin-right: -1%;
  margin-left: auto;

  padding: 42px 42px 46px;

  background: rgba(239, 211, 137, .42);

  border-radius:
   57% 43% 42% 58% /
   46% 56% 44% 54%;

  transform: rotate(1.5deg);
}

.about-message__word--02 > * {
  transform: rotate(-1.5deg);
}


/* 03 ─ 少し左へ */
.about-message__word--03 {
  width: 92%;
  height: 180px;

  margin-right: auto;
  margin-left: 3%;

  padding: 38px 42px;

  border-radius:
    45% 55% 63% 37% /
    42% 61% 39% 58%;

  transform: rotate(1deg);
}

.about-message__word--03 > * {
  transform: rotate(-1deg);
}

  .about-more { padding:90px 0 100px; }
  .about-more__head { margin-bottom:42px; }
  .about-more__head h2 { font-size:26px; }
  .about-more__grid { grid-template-columns:1fr; gap:54px; }
  .about-more__photo { height:auto; aspect-ratio:16/9; }

.about-message__word {
  align-items: center;
}

.about-message__word h3,
.about-message__word p {
  width: fit-content;
  max-width: 100%;
  align-self: center;
}
}

/* ABOUT：INTRODUCTIONタイトル調整 */

/* PC：1行表示 */
@media (min-width: 901px) {
  .about-introduction__copy h2,
  .about-story__copy h2 {
    white-space: nowrap;
  }
}

/* SP：2行で自然に表示 */
@media (max-width: 767px) {
  .about-introduction__copy h2 {
    font-size: 25px;
    line-height: 1.5;
    letter-spacing: 0;
  }
}
/* ==================================================
   EVENT ARCHIVE
   Hero
================================================== */

.event-hero {
  padding: 0 20px;
}

.event-hero__inner {
  position: relative;
  width: 100%;
  max-width: 1200px;
  height: 500px;
  margin: 0 auto;
  overflow: hidden;
  border-radius: 28px;
}

.event-hero__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

/* Hero 左側グラデーション */
.event-hero__inner::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;

  background: linear-gradient(
    90deg,
    rgba(247, 246, 242, 1) 0%,
    rgba(247, 246, 242, .98) 18%,
    rgba(247, 246, 242, .88) 30%,
    rgba(247, 246, 242, .55) 40%,
    rgba(247, 246, 242, .15) 52%,
    rgba(247, 246, 242, 0) 62%
  );
}

/* Hero タイトル */
.event-hero__content {
  position: absolute;
  left: 70px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
}

.event-hero__title {
  margin: 0;
  font-family: "Klee One", cursive;
  font-size: 40px;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.06em;
  color: #493f35;
}

.event-hero__lead {
  margin: 18px 0 0;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.8;
  color: #493f35;
}

/* SP */
@media (max-width: 800px) {

  .event-hero {
    padding: 0;
  }

  .event-hero__inner {
    position: relative;
    width: 100%;
    height: 500px;
    min-height: 0;
    max-height: none;
    overflow: hidden;
    border-radius: 0;
    background: var(--bg);
  }

  .event-hero__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
  }

  /* 写真 → 生成りへフェード */
  .event-hero__inner::after {
    background: linear-gradient(
    to bottom,
    rgba(247, 246, 242, 0) 0%,
    rgba(247, 246, 242, 0) 42%,
    rgba(247, 246, 242, .15) 52%,
    rgba(247, 246, 242, .55) 65%,
    rgba(247, 246, 242, .88) 78%,
    rgba(247, 246, 242, .98) 90%,
    rgba(247, 246, 242, 1) 100%
  );
}

  /* タイトル・説明文 */
  .event-hero__content {
    position: absolute;
    left: 28px;
    right: 28px;
    top: auto;
    bottom: 38px;
    transform: none;
    z-index: 2;
  }

  /* 文字の背後をやわらかく明るくする */
  .event-hero__content::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: -35px;
    right: -20px;
    bottom: -30px;
    left: -20px;
    background: rgba(247, 246, 242, .82);
    filter: blur(20px);
    border-radius: 40%;
  }

  .event-hero__title {
    font-size: 34px;
    line-height: 1.5;
  }

  .event-hero__lead {
    margin-top: 12px;
    font-size: 17px;
    line-height: 1.8;
  }
}

/* ==================================================
   EVENT ARCHIVE
   Layout
================================================== */

.event-archive {
  background: var(--bg);
  color: var(--text);
}

.event-archive__container {
  width: calc(100% - 40px);
  max-width: 1120px;
  margin: 0 auto;
}


/* ------------------------------
   INTRO
------------------------------ */

.event-archive__intro {
  padding: 80px 0 120px;
}

.event-archive__title {
  margin: 0 0 24px;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

.event-archive__lead {
  margin: 0;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.8;
}


/* ------------------------------
   UPCOMING EVENTS
------------------------------ */

.event-upcoming {
  padding: 120px 0 140px;
}

/* セクション見出し */
.event-section-heading {
  margin-bottom: 70px;
}

.event-section-title {
  margin: 0;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.45;
}

.event-section-en {
  margin: 6px 0 0;
  font-family: "Jost", sans-serif;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.14em;
  color: var(--accent-gold-dark);
}

.event-year {
  margin: 32px 0 24px;
  font-family: "Jost", sans-serif;
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 0.08em;
}

/* ------------------------------
   EVENT ROW
------------------------------ */

.event-row {
  border-top: 1px solid var(--border);
}

.event-row:last-child {
  border-bottom: 1px solid var(--border);
}

.event-row__link {
  display: grid;
  grid-template-columns: 320px 1fr 48px;
  gap: 28px;
  align-items: stretch;
  padding: 0;
  color: inherit;
  text-decoration: none;
}

/* 画像 */
.event-row__image {
  width: 320px;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--photo);
}

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

.event-row__image-placeholder {
  width: 100%;
  height: 100%;
  background: var(--photo);
}

/* イベント情報全体 */
.event-row__content {
  display: grid;
  grid-template-columns: 155px 1fr;
  align-items: center;
  min-width: 0;
  padding: 26px 0;
}

/* タイトル側 */
.event-row__detail {
  position: relative;
  min-width: 0;
  padding-left: 24px;
}

/* 日付・時間とタイトルの間の短い縦線 */
.event-row__detail::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 54px;
  background: #e3dfd5;
}

/* カテゴリー＋日付 */
.event-row__date-column {
  align-self: center;
  padding-right: 28px;
  transform: translateY(-10px);
}

.event-row__category {
  margin-bottom: 14px;
  font-family: "Jost", sans-serif;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.12em;
  white-space: nowrap;
}

/* WORKSHOP：スモーキーグリーン */
.event-row__category--workshop {
  color: #7f9482;
}

/* SEMINAR & FLOWER ARRANGEMENT：くすみピンク */
.event-row__category--seminar-flower-arrangement {
  color: #b58b93;
}

.event-row__date {
  display: block;
  font-family: "Jost", sans-serif;
}

.event-row__date-main {
  display: flex;
  align-items: baseline;
  line-height: 1;
}

.event-row__month,
.event-row__day {
  font-size: 38px;
  font-weight: 400;
  letter-spacing: 0.02em;
}

.event-row__date-dot {
  margin: 0 3px;
  font-size: 28px;
  font-weight: 400;
}

/* SATを日付の右側へ */
.event-row__weekday {
  margin: 0 0 0 8px;
  font-family: "Jost", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.08em;
}

/* 時間を日付の下へ */
.event-row__time {
  margin: 12px 0 0;
  font-family: "Jost", sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.03em;
}

.event-row__time span {
  margin: 0 5px;
}

.event-row__title {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.6;
}

.event-row__code {
  margin-top: 8px;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.02em;
  color: var(--text);
}

.event-row__status {
  display: inline-block;
  margin-left: 10px;
  padding: 2px 8px;
  border-radius: 3px;
  background: #777;
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
}

/* 矢印 */
.event-row__arrow {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}

.event-row__arrow span {
  position: relative;
  display: block;
  width: 42px;
  height: 18px;
}

.event-row__arrow span::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 42px;
  height: 1px;
  background: var(--text);
  transform: translateY(-50%);
}

.event-row__arrow span::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 7px;
  height: 7px;
  border-top: 1px solid var(--text);
  border-right: 1px solid var(--text);
  transform: translateY(-50%) rotate(45deg);
}

/* 矢印のホバーアニメーション */
.event-row__arrow span::before {
  transition: width 0.3s ease;
}

.event-row__arrow span::after {
  transition: right 0.3s ease;
}

.event-row__link:hover .event-row__arrow span::before {
  width: 48px;
}

.event-row__link:hover .event-row__arrow span::after {
  right: -6px;
}

/* ------------------------------
   TABLET
------------------------------ */
@media (min-width: 801px) {
  .event-row__arrow {
    transform: translateX(42px);
  }
}

/* ------------------------------
   SP
------------------------------ */

@media (max-width: 800px) {

  .event-archive__container {
    width: calc(100% - 40px);
  }

  .event-archive__intro {
    padding: 55px 0 85px;
  }

  .event-archive__title {
    margin-bottom: 18px;
    font-size: 30px;
  }

  .event-archive__lead {
    font-size: 16px;
  }

  .event-upcoming {
    padding: 80px 0 100px;
  }

  .event-section-heading {
  margin-bottom: 45px;
  }

  .event-section-title {
  font-size: 26px;
  }

  .event-section-en {
  margin-top: 5px;
  font-size: 10px;
  }

  .event-year {
    margin-bottom: 22px;
  }

   /* イベント1件：スマホ */
  .event-row__link {
    position: relative;
    display: block;
    padding: 28px 0 34px;
  }

  /* 画像 */
  .event-row__image {
    width: 100%;
    aspect-ratio: 16 / 10;
    margin-bottom: 24px;
  }

  /* イベント情報 */
  .event-row__content {
    display: block;
    padding: 0;
  }

  /* 日付側 */
  .event-row__date-column {
    padding-right: 0;
    transform: none;
  }

  /* カテゴリー */
  .event-row__category {
    margin-bottom: 10px;
    font-size: 12px;
  }

  /* 日付＋曜日 */
  .event-row__date-main {
    display: flex;
    align-items: baseline;
  }

  .event-row__month,
  .event-row__day {
    font-size: 38px;
  }

  .event-row__date-dot {
    font-size: 26px;
  }

  .event-row__weekday {
    margin-left: 8px;
    font-size: 15px;
  }

  /* 時間 */
  .event-row__time {
    margin: 10px 0 0;
    font-size: 17px;
  }

  /* タイトル側 */
  .event-row__detail {
     position: relative;
     margin-top: 16px;
     padding: 0;
  }

  /* PC版の縦線はスマホでは消す */
  .event-row__detail::before {
    content: none;
  }

  .event-row__title {
     margin: 0;
     font-size: 20px;
     font-weight: 500;
     line-height: 1.65;
  }

  .event-row__code {
    margin-top: 8px;
    font-size: 16px;
  }

  .event-row__title-wrap {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 38px;
    gap: 16px;
    align-items: center;
  }

  /* 矢印 */
  .event-row__arrow {
     position: static;
     display: flex;
     align-items: center;
     justify-content: flex-end;
  }

  .event-row__arrow span {
    width: 38px;
    height: 18px;
  }

  .event-row__arrow span::before {
    width: 38px;
  }

  .event-row + .event-row {
  margin-top: 24px;
  }

  .event-past {
    padding-bottom: 100px;
  }

  .event-past__years {
    gap: 8px;
    margin: -15px 0 40px;
  }

  .event-past__year-button {
    min-width: 76px;
    padding: 8px 16px;
    font-size: 14px;
  }

  .event-past__list {
    grid-template-columns: 1fr;
    row-gap: 45px;
  }

   .event-past-card__content {
    padding-top: 16px;
  }

  /* カテゴリー */
  .event-past-card__category {
    margin-bottom: 10px;
    font-size: 14px;
  }

  /* 日付 */
  .event-past-card__date {
    margin-bottom: 4px;
    font-size: 20px;
  }

  .event-past-card__year {
    font-size: 16px;
  }

  /* タイトル */
  .event-past-card__title {
    font-size: 22px;
    line-height: 1.55;
  }

  /* 活動レポート */
  .event-past-card__report-link {
    font-size: 16px;
  }

  /* スマホ：イベントセクション見出しを統一 */
  .event-section-title,
  .event-past__title {
    margin: 0;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.45;
  }

}

/* ==================================================
   EVENT ARCHIVE
   Past Events
================================================== */

.event-past {
  padding: 0 0 140px;
}


/* ------------------------------
   YEAR TABS
------------------------------ */

.event-past__years {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 10px 0 55px;
}

.event-past__year-button {
  min-width: 90px;
  padding: 10px 22px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--muted);
  font-family: "Jost", sans-serif;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.06em;
  cursor: pointer;
  transition:
    background-color 0.25s ease,
    border-color 0.25s ease,
    color 0.25s ease;
}

.event-past__year-button:hover,
.event-past__year-button.is-active {
  border-color: var(--accent-gold);
  background: var(--accent-gold);
  color: #fff;
}

.event-past-card__links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 18px;
  margin-top: 18px;
}

.event-past-card__links a {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding-right: 28px;
  color: var(--text);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.25s ease;
}

/* 横線 */
.event-past-card__links a::before {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 19px;
  height: 1px;
  background: var(--accent-gold);
}

/* 矢印の先端 */
.event-past-card__links a::after {
  content: "";
  position: absolute;
  right: 0;
  top: calc(50% - 3px);
  width: 6px;
  height: 6px;
  border-top: 1px solid var(--accent-gold);
  border-right: 1px solid var(--accent-gold);
  transform: rotate(45deg);
}

.event-past-card__links a:hover {
  color: var(--accent-gold-dark);
}

/* ------------------------------
   CARD LIST
------------------------------ */

.event-past__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: 24px;
  row-gap: 60px;
}

.event-past-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.event-past-card[hidden] {
  display: none;
}

.event-past-card__main {
  display: flex;
  flex-direction: column;
  flex: 1;
  color: inherit;
  text-decoration: none;
}


/* ------------------------------
   CARD IMAGE
------------------------------ */

.event-past-card__image {
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--photo);
}

.event-past-card__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.event-past-card__main:hover .event-past-card__image img {
  transform: scale(1.025);
}

.event-past-card__image-placeholder {
  width: 100%;
  height: 100%;
  background: var(--photo);
}


/* ------------------------------
   CARD CONTENT
------------------------------ */

.event-past-card__content {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding-top: 20px;
}

.event-past-card__category {
  margin-bottom: 12px;
  color: var(--accent-gold-dark);
  font-family: "Jost", sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: 0.1em;
}

.event-past-card__date {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 10px;
  font-family: "Jost", sans-serif;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.04em;
}

.event-past-card__year {
  font-size: 13px;
  color: var(--muted);
}

.event-past-card__title {
  margin: 0;
  font-size: 19px;
  font-weight: 600;
  line-height: 1.6;
}


/* ------------------------------
   SP
------------------------------ */

@media (max-width: 800px) {

  .event-past {
    padding-bottom: 100px;
  }

  .event-past__years {
    gap: 8px;
    margin: 10px 0 40px;
  }

  .event-past__year-button {
    min-width: 76px;
    padding: 8px 16px;
    font-size: 14px;
  }

  .event-past__list {
    grid-template-columns: 1fr;
    row-gap: 56px;
  }

  .event-past-card__content {
    padding-top: 16px;
  }

  .event-past-card__title {
    font-size: 18px;
  }
}

/* ------------------------------
   TABLET
------------------------------ */

@media (min-width: 801px) and (max-width: 1100px) {

  .event-past__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 28px;
    row-gap: 50px;
  }
}

/* ==================================================
   EVENT ARCHIVE
   Instagram Report Button
================================================== */

.event-past-card__links {
  margin-top: auto;
  padding-top: 24px;
}

.event-past-card__report-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  padding: 8px 12px !important;
  border: 1px solid var(--accent-gold);
  border-radius: 999px;

  color: var(--text);
  font-size: 12px;
  font-weight: 500;
  line-height: 1;

  text-decoration: none;
  transition:
    background-color 0.25s ease,
    color 0.25s ease;
}

/* Instagramアイコン */
.event-past-card__report-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.event-past-card__report-icon img {
  display: block;
  width: 16px;
  height: 16px;
  object-fit: contain;
}

/* テキスト */
.event-past-card__report-text {
  white-space: nowrap;
}

/* 外部リンクマーク */
.event-past-card__external {
  margin-left: 2px;
  color: var(--accent-gold-dark);
  font-family: "Jost", sans-serif;
  font-size: 13px;
  line-height: 1;
}

/* hover */
.event-past-card__report-link:hover {
  background: var(--kinari);
  color: var(--accent-gold-dark);
}

/* 過去イベント：旧リンク矢印を無効化 */
.event-past-card__links a.event-past-card__report-link::before,
.event-past-card__links a.event-past-card__report-link::after {
  display: none;
  content: none;
}

.event-past__more {
  display: block !important;
  margin-top: 50px;
  text-align: center;
}

.event-past__more-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 18px;
  padding: 12px 32px;
  border: 1px solid var(--accent-gold);
  border-radius: 50px;
  background: transparent;
  color: var(--accent-gold);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.5;
  cursor: pointer;
  transition: background-color .3s ease, color .3s ease;
}

/* ========================================
   EVENT ARCHIVE / SP 最終文字調整
======================================== */

@media (max-width: 800px) {

  /* セクション見出し */
  .event-section-title,
  .event-past__title {
    margin: 0;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.45;
  }

  /* 過去イベント：カテゴリー */
  .event-past-card__category {
    margin-bottom: 10px;
    font-size: 14px;
  }

  /* 過去イベント：日付 */
  .event-past-card__date {
    margin-bottom: 4px;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.4;
  }

  .event-past-card__year {
    margin-right: 6px;
    font-size: 14px;
    font-weight: 400;
  }

  /* 過去イベント：タイトル */
  .event-past-card__title {
    font-size: 22px;
    line-height: 1.55;
  }

  /* 活動レポート */
  .event-past-card__report-link {
    gap: 9px;
    padding: 10px 16px;
    font-size: 16px;
    line-height: 1;
  }

  .event-past-card__report-icon img {
    width: 18px;
    height: 18px;
  }

  .event-past-card__external {
    margin-left: 3px;
    font-size: 15px;
  }
  /* 活動レポートをタイトルに少し近づける */
  .event-past-card__links {
    margin-top: 0;
    padding-top: 12px;
  }

  /* 過去イベント：カテゴリーカラー */
  .event-past-card__category--workshop {
    color: #7f9482;
  }

  .event-past-card__category--seminar-flower-arrangement {
    color: #b58b93;
  }

  /* 過去イベント：さらに見る */
  .event-past__more-button {
    padding: 14px 24px;
    font-size: 16px;
    line-height: 1.4;
  }

  /* 過去イベント：フッターまでの余白 */
  .event-past {
   padding-bottom: 70px;
  }

}

/* ==================================================
   EVENT DETAIL
================================================== */

.event-single {
  background: var(--bg);
  color: var(--text);
}


/* ---------- Hero ---------- */

.event-detail-hero {
  width: 100%;
}

.event-detail-hero__inner {
  position: relative;
  width: 100%;
  max-width: 1200px;
  height: 500px;
  margin: 0 auto;
  background: var(--photo);
}

.event-detail-hero__content {
  position: absolute;
  left: 40px;
  top: 50%;
  transform: translateY(-50%);
}

.event-detail-hero__title {
  margin: 0;
  font-size: 40px;
  font-weight: 700;
  line-height: 1.4;
}

.event-detail-hero__lead {
  margin: 18px 0 0;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.8;
}


/* ---------- 詳細エリア ---------- */

.event-detail {
  padding: 100px 0 120px;
}

.event-detail__container {
  width: calc(100% - 40px);
  max-width: 1120px;
  margin: 0 auto;
}

.event-detail__main {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: start;
}


/* ---------- アイキャッチ ---------- */

.event-detail__image {
  width: 100%;
  overflow: hidden;
  background: var(--photo);
}

.event-detail__image img {
  display: block;
  width: 100%;
  height: auto;
}


/* ---------- 右側イベント情報 ---------- */

.event-detail__info {
  min-width: 0;
}

.event-detail__category {
  margin: 0 0 16px;
  font-family: "Jost", sans-serif;
  font-size: 11px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.12em;
}

.event-detail__category--workshop {
  color: #7f9482;
}

.event-detail__category--seminar-flower-arrangement {
  color: #b58b93;
}

.event-detail__title {
  margin: 0;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.02em;
}

.event-detail__code {
  margin-top: 8px;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
}
/* ---------- イベント基本情報表 ---------- */

.event-detail__data {
  margin: 28px 0 0;
}

.event-detail__data-row {
  display: grid;
  grid-template-columns: 110px 1fr;
  margin: 0;
  padding: 11px 0;
  border-bottom: 1px solid var(--border);
}

.event-detail__data-row:first-child {
  border-top: 1px solid var(--border);
}

.event-detail__data-row dt,
.event-detail__data-row dd {
  margin: 0;
}

.event-detail__data-row dt {
  font-size: 16px;
  font-weight: 600;
  line-height: 1.7;
}

.event-detail__data-row dd {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
}

.event-detail__data-row dd > div + div {
  margin-top: 4px;
}

/* ---------- イベント本文 ---------- */

.event-detail__body {
  margin-top: 28px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.02em;
}

.event-detail__body p {
  margin: 0 0 6px;
}

.event-detail__body p:last-child {
  margin-bottom: 0;
}


/* ---------- 特記事項 ---------- */

.event-detail__notes {
  margin-top: 28px;
  padding: 20px 24px;
  background: var(--kinari);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.8;
}

/* ---------- イベント詳細 アクション ---------- */

.event-detail__actions {
  width: 100%;
  margin: 28px 0 0;
}

.event-detail__reserve {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(300px, 100%);
  min-height: 56px;
  margin-inline: auto;
  padding: 12px 24px;
  border: 1px solid #f39819;
  border-radius: 50px;
  background: #fff8ef;
  color: #f39819;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  transition: background-color 0.3s ease, color 0.3s ease;
}

.event-detail__reserve:hover {
  background: #f39819;
  color: #fff;
}

/* ---------- 活動レポートボタン ---------- */

.event-detail__report {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 64px;
  padding: 15px 24px;
  border: 1px solid var(--mustard);
  background: transparent;
  color: var(--brown);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  text-decoration: none;
  transition:
    background-color 0.3s ease,
    color 0.3s ease;
}

.event-detail__report:hover {
  background: var(--mustard);
  color: var(--white);
}

.event-detail__report {
  gap: 10px;
}

.event-detail__report-icon {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
}

.event-detail__report-icon img {
  display: block;
  width: 22px;
  height: 22px;
  object-fit: contain;
}

.event-detail__report-text {
  line-height: 1.4;
}

.event-detail__report-arrow {
  margin-left: 2px;
  font-size: 14px;
  line-height: 1;
}

/* ---------- 本文＋アクション 2カラム ---------- */

.event-detail__bottom {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: start;
  margin-top: 56px;
}

/* ==================================================
   EVENT DETAIL - MOBILE
================================================== */
@media (max-width: 800px) {

  .event-detail__main {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .event-detail__data-row {
    grid-template-columns: 80px 1fr;
    column-gap: 12px;
  }

  .event-detail__instructor-second {
  margin-top: 8px;
  }

  .event-detail {
  padding: 60px 0 80px;
}

}

/* ========================================
   お申し込みフォーム
======================================== */

.reservation-hero {
  padding: 0 20px;
}

.reservation-hero__inner {
  position: relative;
  width: 100%;
  max-width: 1200px;
  height: 500px;
  margin: 0 auto;
  overflow: hidden;
  border-radius: 28px;
}

.reservation-hero__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

/* Hero 左側グラデーション */

.reservation-hero__inner::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    rgba(247, 246, 242, 1) 0%,
    rgba(247, 246, 242, .98) 18%,
    rgba(247, 246, 242, .88) 30%,
    rgba(247, 246, 242, .55) 40%,
    rgba(247, 246, 242, .15) 52%,
    rgba(247, 246, 242, 0) 62%
  );
}

/* Hero タイトル・リード */

.reservation-hero__content {
  position: absolute;
  left: 70px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
}

.reservation-hero__title {
  margin: 0;
  font-family: "Klee One", cursive;
  font-size: 40px;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: 0.06em;
  color: #493f35;
}

.reservation-hero__lead {
  margin: 18px 0 0;
  font-size: 20px;
  font-weight: 500;
  line-height: 1.8;
  color: #493f35;
}

/* フォーム本文 */

.reservation-page__inner {
  width: calc(100% - 40px);
  max-width: var(--container);
  margin: 0 auto;
}

/* 予約Hero SP */
@media (max-width: 767px) {

  .reservation-hero {
    padding: 0;
  }

  .reservation-hero__inner {
    position: relative;
    width: 100%;
    height: 500px;
    min-height: 0;
    max-height: none;
    overflow: hidden;
    border-radius: 0;
    background: var(--bg);
  }

  .reservation-hero__inner picture {
    display: block;
    width: 100%;
    height: 100%;
  }

  .reservation-hero__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    transform: scale(1.05) translateY(-3%);
    transform-origin: center center;
  }

  .reservation-hero__inner::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(
      to bottom,
      rgba(247, 246, 242, 0) 0%,
      rgba(247, 246, 242, 0) 42%,
      rgba(247, 246, 242, .15) 52%,
      rgba(247, 246, 242, .55) 65%,
      rgba(247, 246, 242, .88) 78%,
      rgba(247, 246, 242, .98) 90%,
      rgba(247, 246, 242, 1) 100%
    );
  }

  .reservation-hero__content {
    position: absolute;
    left: 28px;
    right: 28px;
    top: auto;
    bottom: 45px;
    transform: none;
    z-index: 2;
  }

  .reservation-hero__title {
    font-size: 34px;
    line-height: 1.5;
  }

  .reservation-hero__lead {
    margin-top: 12px;
    font-size: 17px;
    line-height: 1.8;
  }

}

/* ========================================
   イベント情報
======================================== */
.reservation-event {
  padding-top: 100px;
  padding-bottom: 100px;
}

.reservation-event h2 {
  margin: 0 0 24px;
  color: var(--text);
  font-size: 32px;
  font-weight: 600;
  line-height: 1.5;
}

.reservation-event__card {
  display: grid;
  grid-template-columns: 44% 1fr;
  gap: 40px;
  align-items: center;
  padding: 36px;
  background: var(--kinari);
}

.reservation-event__image {
  width: 100%;
}

.reservation-event__image img {
  display: block;
  width: 100%;
  height: 340px;
  object-fit: cover;
}

.reservation-event__content {
  min-width: 0;
}

.reservation-event__date,
.reservation-event__time,
.reservation-event__code,{
    margin: 0;
 　 color: var(--text);
  　font-size: 14px;
  　line-height: 1.7;
}

.reservation-event__price p {
  margin: 0;
  color: var(--text);
  font-size: 15px;
  line-height: 1.8;
}

.reservation-event__code {
  margin-top: 8px;
}

.reservation-event__title {
  margin: 20px 0 18px;
  color: var(--text);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.55;
}

.reservation-event__price p + p {
  margin-top: 4px;
}

/* ========================================
   入力エリア
======================================== */
.reservation-form {
  padding-bottom: 32px;
}

.reservation-form h2 {
  margin: 0 0 32px;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.5;
}

.reservation-form__block {
  margin-bottom: 48px;
}

.reservation-form h3 {
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.5;
}

.reservation-form__block > p {
  margin: 0 0 8px;
  font-size: 14px;
  line-height: 1.7;
}

/* ========================================
   申込人数・同伴人数
======================================== */
.reservation-counts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin-bottom: 24px;
}

.reservation-counts__group {
  min-width: 0;
  padding-right: 55px;
}

.reservation-counts__group + .reservation-counts__group {
  padding-right: 0;
  padding-left: 55px;
  border-left: 1px solid var(--border);
}

.reservation-counts select {
  min-width: 72px;
  height: 38px;
  padding: 4px 28px 4px 10px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text);
  font-size: 15px;
  letter-spacing: 0.08em;
}

/* 説明文 */
.reservation-counts__heading p {
  margin-bottom: 0;
  font-size: 16px;
  line-height: 1.8;
}

/* 人数制限の注釈 */
.reservation-counts__note {
  font-size: 13px;
}

/* 説明文と人数入力の間隔 */
.reservation-counts__fields {
  display: flex;
  align-items: center;
  margin-top: 14px;
}

/* 大人・子どもの間隔 */
.reservation-count {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.reservation-count + .reservation-count {
  margin-left: 22px;
}  

/* ========================================
   参加者情報
======================================== */
.reservation-participants {
  margin-top: 0;
  padding-bottom: 36px;
  border-bottom: 1px solid var(--border);
}

.reservation-participants h2 {
  margin: 0 0 6px;
  font-size: 24px;
  font-weight: 600;
}

.reservation-participants__note {
  margin: 0 0 20px;
  font-size: 16px;
  line-height: 1.8;
}

#participant-fields {
  margin-top: 24px;
}

.participant-field {
  padding: 24px 0;
  border-bottom: 1px solid var(--border);
}

.participant-field:first-child {
  padding-top: 0;
}

.reservation-participants .participant-field:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.participant-field h3 {
  margin-bottom: 14px;
  font-size: 18px;
  font-weight: 600;
}

.participant-field label {

  font-size: 16px;
  line-height: 1.6;
}

.reservation-contact label {
  font-size: 16px;
  line-height: 1.6;
}

/* 大人：お名前 */
.participant-field__name {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 18px;
}

.participant-field__name .reservation-field-error {
  flex-basis: 100%;
  margin-top: 2px;
}

.participant-field__name label {
  flex: 0 0 auto;
  margin: 0;
}

/* 子ども：お名前＋年齢 */
.participant-field__basic {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 18px;
}

.participant-field__basic label {
  flex: 0 0 auto;
  margin: 0;
}

.participant-field__age-label {
  margin-left: 24px;
}

.participant-field__age-unit {
  margin-left: 2px;
}

/* 名前・年齢の入力欄 */
.participant-field__name input[type="text"],
.participant-field__basic input[type="text"],
.participant-field__basic input[type="number"] {
  display: block;
  height: 42px;
  padding: 8px 12px;
  border: 1px solid #d8d4cc;
  border-radius: 6px;
  background: #fff;
  color: var(--text);
  font-size: 15px;
  box-sizing: border-box;
  outline: none;
}

/* 子ども：お名前・年齢のグループ */
.participant-field__child-name,
.participant-field__child-age {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

/* 子どもの名前欄 */
.participant-field__child-name {
  flex: 0 0 440px;
  max-width: 440px;
}

/* 子どもの年齢欄 */
.participant-field__child-age {
  flex: 0 0 260px;
  max-width: 260px;
}

/* 子どものエラー表示 */
.participant-field__child-name .reservation-field-error,
.participant-field__child-age .reservation-field-error {
  flex: 0 0 100%;
  width: 100%;
  margin-top: 2px;
}

/* 子どもの年齢エラー表示欄 */
.participant-field__age-error {
  flex: 0 0 100%;
  width: 100%;
}


/* 大人・子どもの名前幅を統一 */
.participant-field__name input[type="text"],
.participant-field__basic input[type="text"] {
  width: 300px;
  max-width: 100%;
  flex: 0 0 300px;
}

.participant-field__basic input[type="number"] {
  width: 70px;
  flex: 0 0 70px;
}

.participant-field__name input:focus,
.participant-field__basic input:focus {
  border-color: #aaa49a;
}

/* 参加内容・追加選択 */
.participant-field__participation,
.participant-field__extra {
  margin-top: 18px;
}

.participant-field__participation p,
.participant-field__extra p {
  margin: 0 0 8px;
  font-size: 16px;
  font-weight: 500;
}

.participant-field__participation label,
.participant-field__extra-options label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-right: 24px;
  cursor: pointer;
}

.participant-field__participation input[type="radio"],
.participant-field__extra-options input[type="radio"] {
  width: 20px;
  height: 20px;
   margin: 0;
}

.participant-field__extra-options {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 0;
}

/* ========================================
   必須・任意表示
======================================== */
.required {
  display: inline-block;
  margin-left: 5px;
  padding: 1px 5px;
  border-radius: 3px;
  background: #e35d35;
  color: #fff;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.5;
  vertical-align: middle;
}

.optional {
  display: inline-block;
  margin-left: 5px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 500;
}

/* ========================================
   ご連絡先
======================================== */
.reservation-contact {
  margin-top: 0;
  padding: 32px 0 40px;
  border-top: 0;
}

.reservation-contact h2 {
  margin: 0 0 28px;
  font-size: 24px;
  font-weight: 600;
}

.reservation-contact__fields {
  max-width: 620px;
}

.reservation-contact .reservation-field {
  display: flex;
  align-items: center;
  margin-bottom: 14px;
}

.reservation-contact .reservation-field:last-child {
  margin-bottom: 0;
}

.reservation-contact .reservation-field label {
  flex: 0 0 180px;
  margin: 0;
}

.reservation-contact input[type="email"],
.reservation-contact input[type="tel"] {
  flex: 0 0 380px;
  width: 380px;
  max-width: 100%;
  height: 42px;
  padding: 8px 12px;
  border: 1px solid #d8d4cc;
  border-radius: 6px;
  background: #fff;
  color: var(--text);
  font-size: 15px;
  outline: none;
}

.reservation-contact input:focus {
  border-color: #aaa49a;
}

/* ========================================
   その他確認事項
======================================== */
.reservation-other {
  margin-left: 0;
  margin-right: 0;
  padding: 36px 42px 40px;
  background: #eee6cf;
}

.reservation-other h2 {
  margin: 0 0 24px;
  font-size: 18px;
  font-weight: 600;
}

.reservation-other__fields {
  max-width: none;
  margin: 0 auto;
}

.reservation-field--allergy {
  margin-bottom: 30px;
}

.reservation-field__label {
  margin: 0 0 10px;
  font-size: 16px;
  font-weight: 500;
}

.reservation-radio-group {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 46px;
  margin-bottom: 10px;
}

.reservation-radio-group label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  cursor: pointer;
}

/* ラジオボタン */
.reservation-radio-group input[type="radio"] {
  width: 20px;
  height: 20px;
  margin: 0;
  flex: 0 0 20px;
}

.reservation-field__note {
  margin: 0;
  font-size: 14px;
  line-height: 1.7;
}

.reservation-field--message label,
.reservation-allergy-detail label {
  display: block;
  margin-bottom: 10px;
  font-size: 16px;
  font-weight: 500;
}

.reservation-field--message textarea,
.reservation-allergy-detail textarea {
  display: block;
  width: 100%;
  padding: 14px 16px;
  border: 1px solid #d7d1c4;
  border-radius: 0;
  background: #fff;
  color: var(--text);
  font: inherit;
  font-size: 14px;
  line-height: 1.7;
  resize: vertical;
  box-sizing: border-box;
}

.reservation-field--message textarea {
  min-height: 150px;
}

.reservation-allergy-detail textarea {
  min-height: 80px;
}

.reservation-field--message textarea:focus,
.reservation-allergy-detail textarea:focus {
  border-color: var(--accent-gold);
  outline: none;
}

/* ========================================
   お申し込み前に
======================================== */
.reservation-before {
  width: 100%;
  margin-top: 48px;
  margin-bottom: 100px;
  padding-bottom: 38px;
  background: #e3edc7;
}

.reservation-before__content {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 90px;
  min-height: auto;
  padding: 32px 70px 26px;
}

.reservation-before__text h2 {
  margin: 0 0 12px;
  font-size: 18px;
  font-weight: 600;
  text-align: left;
}

.reservation-before__text ul {
   margin: 0;
  padding-left: 0;
  font-size: 16px;
  line-height: 2;
  list-style: none;
}

.reservation-before__text li {
  position: relative;
  padding-left: 1.2em;
}

.reservation-before__text li::before {
  content: "・";
  position: absolute;
  left: 0;
  color: #e58b20;
  font-weight: 700;
}

.reservation-before__illustration {
  flex: 0 0 135px;
  text-align: center;
  transform: translateX(-35px);
}

.reservation-before__illustration img {
  display: block;
  width: 100%;
  height: auto;
}

/* ========================================
   お申し込み内容：確認画面
======================================== */
.reservation-confirm {
  padding-bottom: 72px;
}

.reservation-confirm__header {
  margin-bottom: 40px;
}

.reservation-confirm__header h2 {
  margin: 0 0 8px;
  font-size: 28px;
}

.reservation-confirm__header p {
  margin: 0;
}

.reservation-confirm__section {
  margin-bottom: 44px;
}

.reservation-confirm__section h3 {
  margin: 0 0 20px;
  padding-bottom: 10px;
  border-bottom: 1px solid #ddd4c5;
  font-size: 22px;
}

.reservation-confirm__participant {
  margin-top: 28px;
}

.reservation-confirm__participant h4 {
  margin: 0 0 16px;
  font-size: 18px;
}

.reservation-confirm__list {
  margin: 0;
}

.reservation-confirm__row {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 24px;
  padding: 10px 0;
}

.reservation-confirm__row dt,
.reservation-confirm__row dd {
  margin: 0;
}

.reservation-confirm__row dt {
  font-weight: 600;
}

.reservation-confirm__row dd {
  min-width: 0;
}

/* ========================================
   お申し込み完了画面
======================================== */
.reservation-complete {
  padding: 0 0 100px;
}

.reservation-complete__inner {
  padding-top: 20px;
}

.reservation-complete__title {
  margin: 0 0 12px;
  font-size: 28px;
}

.reservation-complete__text,
.reservation-complete__note {
  margin: 0;
  line-height: 1.9;
}

.reservation-complete__note {
  margin-top: 2px;
}

/* お申し込み完了ページ：誘導ボタン */
.reservation-complete__actions {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
    margin-top: 40px;
}
.reservation-complete__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 300px;
    max-width: 100%;
    min-height: 56px;
    padding: 12px 20px;
    box-sizing: border-box;
    border: 1px solid #f39a18;
    border-radius: 50px;
    font-size: 16px;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    transition: opacity .2s ease, background-color .2s ease;
}
.reservation-complete__link--primary { background: #f39a18; color: #fff; }
.reservation-complete__link--secondary { background: transparent; color: #f39a18; }
.reservation-complete__link--primary:hover { opacity: .85; color: #fff; }
.reservation-complete__link--secondary:hover { background: rgba(243,154,24,.08); color: #f39a18; }
.reservation-complete__link:focus-visible { outline: 2px solid #f39a18; outline-offset: 3px; }

/* スマートフォン：縦2段・中央揃え */
@media screen and (max-width: 767px) {
    .reservation-complete__actions {
        flex-direction: column;
        align-items: center;
        gap: 16px;
    }
}

/* ========================================
   確認画面ボタン
======================================== */
.reservation-before .reservation-submit {
  padding: 0;
  text-align: center;
}

.reservation-submit__button {
  width: 300px;
  max-width: 100%;
  min-height: 56px;
  padding: 12px 24px;
  border: 1px solid #f39819;
  border-radius: 50px;
  background: #fff8ef;
  color: #f39819;
  font: inherit;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: background-color .3s ease, color .3s ease, transform .2s ease;
}

.reservation-submit__button:hover {
  background: #f39819;
  color: #fff;
}

.reservation-submit__button:active {
  transform: translateY(1px);
}

/* 入力エラー */
.reservation-field-error {
  margin: 12px 0 0;
  padding: 10px 14px;
  border-radius: 8px;
  background: #fff1ee;
  color: #c9473a;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.6;
}

.reservation-field-error::before {
  content: "！";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  margin-right: 6px;
  border-radius: 50%;
  background: #c9473a;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  vertical-align: -1px;
}

/* ご連絡先のエラーは次の行に表示 */
.reservation-contact__fields .reservation-field {
  flex-wrap: wrap;
}

.reservation-contact__fields .reservation-field .reservation-field-error {
  flex: 0 0 100%;
  width: 100%;
  margin-top: 2px;
} 

/* ========================================
   お申し込みフォーム：スマホ
======================================== */
@media (max-width: 800px) {
  .reservation-event {
    padding-bottom: 72px;
  }

  .reservation-event h2 {
    margin-bottom: 18px;
    font-size: 20px;
  }

  .reservation-event__card {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 24px 20px;
  }

  .reservation-event__image img {
    height: auto;
    aspect-ratio: 16 / 10;
    object-fit: cover;
  }

  .reservation-event__title {
    margin: 12px 0 16px;
    font-size: 18px;
  }

  .reservation-form {
    padding-bottom: 32px;
  }

  .reservation-form h2,
  .reservation-contact h2 {
    font-size: 20px;
  }

  .reservation-counts {
    grid-template-columns: 1fr;
    gap: 32px;
    margin-bottom: 36px;
  }

  .reservation-counts__group {
  padding-right: 0;
  }

.reservation-counts__group + .reservation-counts__group {
  padding-left: 0;
  border-left: 0;
  }

  .reservation-participants {
    padding-bottom: 30px;
  }

  .reservation-participants h2 {
    font-size: 20px;
  }

  .participant-field {
    padding: 22px 0;
  }

  .participant-field__name,
  .participant-field__basic {
    display: block;
  }

  .participant-field__name label,
  .participant-field__basic label {
    display: block;
    margin: 0 0 6px;
  }

  .participant-field__age-label {
    margin-left: 0;
    margin-top: 10px;
  }

  .participant-field__age-unit {
    display: inline-block;
    margin-left: 4px;
  }

  .participant-field__name input[type="text"],
  .participant-field__basic input[type="text"] {
    width: 100%;
    max-width: 100%;
  }

  .participant-field__basic input[type="number"] {
    display: inline-block;
    width: 80px;
  }

  .participant-field__participation label,
  .participant-field__extra-options label {
    margin-right: 16px;
  }

  .reservation-contact {
    padding: 30px 0 36px;
  }

  .reservation-contact__fields {
    max-width: none;
  }

  .reservation-contact .reservation-field {
    display: block;
    margin-bottom: 24px;
  }

  .reservation-contact .reservation-field label {
    display: block;
    margin-bottom: 6px;
  }

  .reservation-contact input[type="email"],
  .reservation-contact input[type="tel"] {
    width: 100%;
  }

  .reservation-other {
    padding: 28px 16px 32px;
  }

  .reservation-other h2 {
    font-size: 18px;
  }

  .reservation-radio-group {
    gap: 10px 28px;
  }

  .reservation-field--message textarea {
    min-height: 120px;
  }

  .reservation-before {
    margin-top: 36px;
    margin-bottom: 60px;
    padding-bottom: 28px;
  }

  .reservation-before__content {
    flex-direction: column;
    gap: 18px;
    padding: 28px 20px 22px;
  }

  .reservation-before__text h2 {
    text-align: left;
  }

  .reservation-before__illustration {
    flex: none;
    width: 100px;
    align-self: center;
    transform: none;
  }

  .reservation-before__illustration img {
  display: block;
  width: 100px;
  max-width: 100%;
  height: auto;
  }

  .reservation-before .reservation-submit {
    padding: 0 20px;
  }

  .reservation-before .reservation-submit__button {
    width: 100%;
  }

  .participant-field__child-name,
  .participant-field__child-age {
    flex: 0 0 100%;
    max-width: 100%;
  }
  /* 確認画面 */
  .reservation-confirm {
  padding-bottom: 60px;
  }

  .reservation-confirm__header {
  margin-bottom: 32px;
  }

  .reservation-confirm__header h2 {
  font-size: 24px;
  }

  .reservation-confirm__section {
  margin-bottom: 36px;
  }

  .reservation-confirm__section h3 {
  font-size: 20px;
  }

  .reservation-confirm__row {
  grid-template-columns: 1fr;
  gap: 4px;
  padding: 8px 0;
  }

  .reservation-confirm__actions,
  .reservation-confirm__submit-form {
  display: block;
  width: 100%;
  margin: 10px 0 0;
  }

  .reservation-confirm__edit,
  .reservation-confirm__submit {
  width: 100%;
  min-width: 0;
  }
}

.reservation-confirm__actions,
.reservation-confirm__submit-form {
  display: inline-block;
  margin: 12px 12px 0 0;
}

.reservation-confirm__edit,
.reservation-confirm__submit {
  width: 300px;
  max-width: 100%;
  min-width: 0;
  min-height: 56px;
  padding: 12px 24px;
  border-radius: 50px;
  font: inherit;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity .2s ease, transform .2s ease;
}

/* 入力内容を修正する */
.reservation-confirm__edit {
  border: 1px solid #f39a18;
  background: #fff;
  color: #f39a18;
}

/* この内容で申し込む */
.reservation-confirm__submit {
  border: 1px solid #f39a18;
  background: #f39a18;
  color: #fff;
}

.reservation-confirm__edit:hover,
.reservation-confirm__submit:hover {
  opacity: .85;
}

.reservation-confirm__edit:active,
.reservation-confirm__submit:active {
  transform: translateY(1px);
}

/* お申し込み完了画面 */
.reservation-complete {
  padding-bottom: 72px;
}

.reservation-complete__inner {
  padding-top: 8px;
}

.reservation-complete__title {
  font-size: 24px;
  line-height: 1.7;
   letter-spacing: -0.04em;
}

.reservation-complete__text,
.reservation-complete__note {
  line-height: 1.
}

/* ========================================
   CONTACT
======================================== */
/*  CONTACT HERO */

.contact-hero {
  background: var(--bg);
}

.contact-hero__media {
  width: min(1200px, calc(100% - 40px));
  height: 500px;
  margin-inline: auto;
  position: relative;
  overflow: hidden;
  border-radius: 28px;
  background:
    linear-gradient(
      90deg,
      rgba(247, 246, 242, 1) 0%,
      rgba(247, 246, 242, .98) 18%,
      rgba(247, 246, 242, .88) 30%,
      rgba(247, 246, 242, .55) 40%,
      rgba(247, 246, 242, .15) 52%,
      rgba(247, 246, 242, 0) 62%
    ),
    url("../images/contact-hero.webp") center / cover no-repeat;
}

.contact-hero__copy {
  position: absolute;
  left: 70px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
}

.contact-hero h1 {
  margin: 0;
  font-family: "Klee One", cursive;
  font-size: 40px;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: .06em;
  color: #493f35;
}

.contact-hero .section-label {
  margin-top: 4px;
  font-family: var(--font-en);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .12em;
  color: var(--accent-gold);
}

.contact-introduction {
  padding: 48px 0 20px;
  background: var(--bg);
}

.contact-introduction p {
  width: 100%;
  max-width: 760px;
  margin-inline: auto;
  font-size: 16px;
  line-height: 2;
}

/* ========================================
   CONTACT FORM
======================================== */

.contact-form-section {
  padding: 80px 0 120px;
}

.contact-form {
  width: 100%;
  max-width: 760px;
  margin-inline: auto;
}

.contact-form__item {
  margin-bottom: 28px;
}

.contact-form__item label {
  display: block;
  margin-bottom: 8px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
}

.contact-form__item input[type="text"],
.contact-form__item input[type="email"],
.contact-form__item input[type="tel"] {
  display: block;
  width: 100%;
  height: 42px;
  padding: 8px 12px;
  border: 1px solid #d8d4cc;
  border-radius: 6px;
  background: #fff;
  color: var(--text);
  font: inherit;
  font-size: 15px;
  box-sizing: border-box;
  outline: none;
}

.contact-form__item textarea {
  display: block;
  width: 100%;
  min-height: 180px;
  padding: 14px 16px;
  border: 1px solid #d7d1c4;
  border-radius: 6px;
  background: #fff;
  color: var(--text);
  font: inherit;
  font-size: 15px;
  line-height: 1.7;
  resize: vertical;
  box-sizing: border-box;
  outline: none;
}

.contact-form__item input:focus,
.contact-form__item textarea:focus {
  border-color: var(--accent-gold);
}

.contact-form__error {
  margin: 6px 0 0;
  font-size: 13px;
  line-height: 1.6;
  color: #c94b4b;
}

.contact-form__actions {
  margin-top: 40px;
  text-align: center;
}

.contact-form__button {
  width: 300px;
  max-width: 100%;
  min-height: 56px;
  border: 1px solid #f39a18;
  border-radius: 50px;
  background: transparent;
  color: #f39a18;
  font: inherit;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
}

/* 確認画面 */
.contact-confirm,
.contact-confirm__form {
  width: 100%;
  max-width: 760px;
  margin-inline: auto;
}

.contact-confirm__item {
  padding: 24px 0;
  border-bottom: 1px solid #e2ded6;
}

.contact-confirm__item:first-child {
  border-top: 1px solid #e2ded6;
}

.contact-confirm__label {
  margin-bottom: 8px;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.7;
}

.contact-confirm__value {
  font-size: 17px;
  line-height: 2;
}

/* 確認画面：戻るボタン */
.contact-confirm__form .contact-form__back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 16px;
  border: none;
  background: transparent;
  color: #8a8175;
  font: inherit;
  font-size: 14px;
  cursor: pointer;
  transition: color .25s ease;
}

.contact-confirm__form .contact-form__back:hover {
  color: #f39a18;
}

/* ========================================
   CONTACT / SP
======================================== */
@media (max-width: 767px) {

  .contact-hero__media {
    width: 100%;
    height: 500px;
    border-radius: 0;
    background:
      linear-gradient(
        to bottom,
        rgba(247, 246, 242, 0) 0%,
        rgba(247, 246, 242, 0) 42%,
        rgba(247, 246, 242, .15) 52%,
        rgba(247, 246, 242, .55) 65%,
        rgba(247, 246, 242, .88) 78%,
        rgba(247, 246, 242, .98) 90%,
        rgba(247, 246, 242, 1) 100%
      ),
      url("../images/contact-hero-sp.webp") center / cover no-repeat;
  }

  .contact-hero__copy {
    left: 28px;
    right: 28px;
    top: auto;
    bottom: 38px;
    transform: none;
    z-index: 1;
  }

  .contact-hero__copy::before {
    content: "";
    position: absolute;
    z-index: -1;
    top: -35px;
    right: -20px;
    bottom: -30px;
    left: -20px;
    background: rgba(247, 246, 242, .82);
    filter: blur(20px);
    border-radius: 40%;
  }

  .contact-hero h1 {
    font-size: 34px;
    line-height: 1.5;
  }

  .contact-introduction {
  padding-top: 40px;
  }
}

.contact-confirm__message {
  margin: 0 0 24px;
  font-size: 16px;
  line-height: 1.8;
}

.contact-confirm__form .contact-form__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.contact-confirm__form .contact-form__button {
  width: 100%;
  max-width: 300px;
  border-radius: 50px;
}

/* 送信完了画面 */
.contact-complete {
  width: 100%;
  max-width: 760px;
  margin-inline: auto;
  padding: 0;
}

.contact-complete h2 {
  margin: 0 0 30px;
  font-family: "Klee One", cursive;
  font-size: 30px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: .04em;
  color: #493f35;
}

.contact-complete p {
  margin: 0;
  font-size: 17px;
  line-height: 2.1;
}

.contact-complete__link {
  margin-top: 48px;
  text-align: center;
}

.contact-complete__link a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  width: 300px;
  max-width: 100%;
  min-height: 56px;
  padding: 12px 20px;
  border: 1px solid #f39a18;
  border-radius: 50px;
  background: transparent;
  color: #f39a18;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  box-sizing: border-box;
  transition:
    background-color .25s ease,
    border-color .25s ease;
}

.contact-complete__link a span {
  font-size: 18px;
  line-height: 1;
  transition: transform .25s ease;
}

.contact-complete__link a:hover {
  background: rgba(243, 154, 24, .08);
  border-color: #f39a18;
}

.contact-complete__link a:hover span {
  transform: translateX(4px);
}

/* ========================================
   VALUES PAGE
   もぐらの会が大切にしていること
======================================== */

.values-page {
  background: var(--bg);
}


/* ========================================
   HERO
======================================== */

.values-hero {
  background: var(--bg);
}

.values-hero__inner {
  position: relative;
  width: min(1200px, calc(100% - 40px));
  height: 500px;
  margin-inline: auto;
  overflow: hidden;

  /* PC */
  border-radius: 18px;
}

.values-hero__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.values-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(247, 246, 242, 1) 0%,
    rgba(247, 246, 242, .98) 18%,
    rgba(247, 246, 242, .88) 30%,
    rgba(247, 246, 242, .55) 40%,
    rgba(247, 246, 242, .15) 52%,
    rgba(247, 246, 242, 0) 62%
  );
  pointer-events: none;
}

.values-hero__content {
  position: absolute;
  z-index: 1;
  left: 70px;
  top: 50%;
  transform: translateY(-50%);
}

.values-hero__title {
  margin: 0;
  font-family: "Klee One", cursive;
  font-size: 40px;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: .06em;
  color: #493f35;
}

.values-hero__lead {
  margin: 18px 0 0;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.9;
  font-family: var(--font-sans);
}


/* ========================================
   共通
======================================== */

.values-detail {
  background: var(--bg);
}

.values-detail h2,
.values-closing h2 {
  position: relative;
  margin: 0;
  padding-bottom: 18px;

  font-family: var(--font-sans);
  font-size: 32px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .04em;
  color: #493f35;
}

.values-detail h2::after,
.values-closing h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;

  width: 72px;
  height: 1px;
  background: var(--accent-gold);
}

.values-detail__lead {
  margin: 34px 0 0;
  font-family: var(--font-sans);
  font-size: 20px;
  font-weight: 500;
  line-height: 2;
  letter-spacing: .03em;
}

.values-detail__body {
  margin-top: 52px;
  max-width: 540px;
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 2.15;
}

.values-detail__body p {
  margin: 0;
}

.values-detail__body p + p {
  margin-top: 30px;
}

.values-detail__photo {
  margin: 0;
  overflow: hidden;
}



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

/* ========================================
   VALUES：写真のフォルム
   最初のビジュアル案に合わせて
   セクションごとに輪郭を変える
======================================== */
.values-detail--pace .values-detail__photo {
  border-radius:
    34% 10% 30% 14% /
    18% 28% 16% 34%;
}

.values-detail--try .values-detail__photo {
  border-radius:
    12% 34% 14% 30% /
    30% 16% 34% 18%;
}

.values-detail--community .values-detail__photo {
  border-radius:
    30% 12% 36% 16% /
    16% 34% 18% 28%;
}

/* ========================================
   それぞれのペースで
======================================== */

.values-detail--pace {
  padding: 180px 0 0;
}

.values-detail--pace .values-detail__grid {
  max-width: 1200px;
  margin-inline: auto;

  display: grid;
  grid-template-columns: minmax(0, 520px) 550px;
  gap: 70px;

  align-items: start;
}

.values-detail--pace .values-detail__photo {
  width: 550px;
  aspect-ratio: 4 / 5;

  /* 見出しと写真上端をあえて揃えない */
  margin-top: 55px;
}


/* ========================================
   やってみたいを大切に
======================================== */

.values-detail--try {
  padding: 150px 0 0;
}

.values-detail--try .values-detail__grid {
  display: grid;
  grid-template-columns: 520px minmax(0, 520px);

  justify-content: space-between;
  gap: 90px;

  align-items: start;
}

.values-detail--try .values-detail__photo {
  width: 520px;
  aspect-ratio: 4 / 5;

  /* 1枚目より少し低い位置関係を残す */
  margin-top: 30px;
}

.values-detail--try .values-detail__copy {
  padding-top: 100px;
}


/* ========================================
   地域のなかで
======================================== */

.values-detail--community {
  padding: 150px 0 0;
}

.values-detail--community .values-detail__head {
  width: 520px;
  margin-left: 0%;
}

.values-community__layout {
  display: grid;
  grid-template-columns: minmax(0, 500px) 570px;

  justify-content: space-between;
  gap: 80px;

  margin-top: 60px;
  align-items: start;
}

.values-detail--community .values-detail__body {
  margin-top: 40px;
}

.values-detail--community .values-detail__photo {
  width: 570px;
  aspect-ratio: 4 / 5;
}


/* ========================================
   CLOSING
======================================== */
.values-closing {
  padding: 140px 0 130px;
  overflow: hidden;
}


/* ----------------------------------------
   INTRO
---------------------------------------- */

.values-closing__intro {
  width: min(760px, 100%);
  margin: 0 auto;
  text-align: center;
}

.values-closing__title {
  position: relative;

  margin: 0;
  padding-bottom: 18px;

  font-family: var(--font-sans);
  font-size: 30px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .04em;
  color: #493f35;

  text-align: center;
}

/* PCでは見出しを改行しない */
.values-closing__title .values-sp-br {
  display: none;
}

.values-closing__title::after {
  content: "";
  position: absolute;

  left: 50% !important;
  right: auto !important;
  bottom: 0;

  width: 72px;
  height: 1px;

  margin: 0 !important;
  transform: translateX(-50%) !important;

  background: var(--accent-gold);
}

.values-closing__lead {
  margin: 38px 0 0;
  font-family: var(--font-sans);
  font-size: 18px;
  line-height: 2.1;
  text-align: center;
}


/* ----------------------------------------
   WAVE PHOTO
---------------------------------------- */

.values-closing__photo {
  width: min(1200px, calc(100% + 80px));
  height: 470px;

  margin: 45px auto 0;

  overflow: hidden;
  border-radius: 90px 28px 110px 42px;
}

.values-closing__photo img {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;
}


/* ----------------------------------------
   MESSAGE
---------------------------------------- */

.values-closing__message {
  width: min(760px, 100%);
  margin: 35px auto 0;
  font-size: 16px;
  line-height: 2.15;
  text-align: center;
  font-family: var(--font-sans);
}

.values-closing__message p {
  margin: 0;
}

.values-closing__message p + p {
  margin-top: 27px;
}


/* ----------------------------------------
   CTA
---------------------------------------- */

.values-closing__more {
  margin-top: 42px;
  text-align: center;
}

/* ========================================
   TABLET
======================================== */

@media (max-width: 1024px) {

  .values-detail--pace .values-detail__grid,
  .values-detail--try .values-detail__grid,
  .values-community__layout {
    gap: 60px;
  }

  .values-detail--pace .values-detail__grid {
    grid-template-columns: minmax(0, 1fr) 38%;
  }

  .values-detail--try .values-detail__grid {
    grid-template-columns: 38% minmax(0, 1fr);
  }

  .values-community__layout {
    grid-template-columns: minmax(0, 1fr) 38%;
  }

  .values-detail--pace .values-detail__photo,
  .values-detail--try .values-detail__photo,
  .values-detail--community .values-detail__photo {
    width: 100%;
  }
}


/* ========================================
   MOBILE
======================================== */

@media (max-width: 767px) {

  /* HERO */

  .values-hero__inner {
    width: 100%;
    height: 500px;
    border-radius: 0;
  }

  .values-hero__image {
    object-position: 85% center;
  }

  .values-hero__overlay {
    background: linear-gradient(
      to bottom,
      rgba(247, 246, 242, 0) 0%,
      rgba(247, 246, 242, 0) 42%,
      rgba(247, 246, 242, .15) 52%,
      rgba(247, 246, 242, .55) 65%,
      rgba(247, 246, 242, .88) 78%,
      rgba(247, 246, 242, .98) 90%,
      rgba(247, 246, 242, 1) 100%
    );
  }

  .values-hero__content {
    left: 28px;
    right: 28px;
    top: auto;
    bottom: 42px;
    transform: none;
  }

  .values-hero__title {
    font-size: 30px;
    line-height: 1.5;
  }

  .values-hero__lead {
    margin-top: 20px;
    font-size: 15px;
    line-height: 1.9;
  }


  /* 共通 */

  .values-detail h2,
  .values-closing h2 {
    font-size: 26px;
    padding-bottom: 15px;
  }

  .values-detail__lead {
    margin-top: 28px;
    font-size: 17px;
    line-height: 1.9;
  }

  .values-detail__body {
    max-width: none;
    margin-top: 38px;
    font-size: 16px;
    line-height: 2;
  }

  .values-detail__body p {
    font-size: 16px;
  }

  .values-detail__body p + p {
    margin-top: 24px;
  }


  /* 1 */

  .values-detail--pace {
    padding-top: 110px;
  }

  .values-detail--pace .values-detail__grid {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .values-detail--pace .values-detail__photo {
    width: 82%;
    margin: 55px 0 0 auto;
  }


  /* 2 */

  .values-detail--try {
    padding-top: 110px;
  }

  .values-detail--try .values-detail__grid {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .values-detail--try .values-detail__photo {
    order: 2;
    width: 78%;
    margin: 58px auto 0 0;
  }

  .values-detail--try .values-detail__copy {
    order: 1;
    padding-top: 0;
  }


  /* 3 */

  .values-detail--community {
    padding-top: 110px;
  }

  .values-detail--community .values-detail__head {
    width: auto;
    margin-left: 0;
  }

  .values-community__layout {
    display: flex;
    flex-direction: column;
    margin-top: 0;
    gap: 0;
  }

  .values-detail--community .values-detail__body {
    order: 1;
    margin-top: 42px;
  }

  .values-detail--community .values-detail__photo {
    order: 2;
    width: 84%;
    margin: 58px 0 0 auto;
  }


  /* CLOSING */

  .values-closing {
    padding: 110px 0 100px;
  }

  .values-closing__copy {
    width: 100%;
    margin-top: 55px;
  }

  .values-closing h2 {
    text-align: center;
  }

  .values-closing h2::after {
    left: 50%;
    transform: translateX(-50%);
  }

  .values-closing__body {
    margin-top: 55px;
    font-size: 16px;
    line-height: 2;
    text-align: left;
  }

  .values-closing__body p + p {
    margin-top: 24px;
  }

  .values-closing__photo {
    width: calc(100% + 40px);
    max-width: none;
    margin: 65px 0 0 -20px;
    aspect-ratio: 16 / 10;
    border-radius: 0;
  }

  .values-closing__more {
    margin-top: 45px;
  }

  .values-closing__lead {
    font-size: 16px;
  }

  /* スマホでは見出しを改行する */
  .values-closing__title .values-sp-br {
  display: inline;
  }

}

/* ========================================
   JOIN PAGE / 一緒にやってみる
   2026-10-03
======================================== */

.join-page {
  background: var(--bg);
}


/* ========================================
   JOIN / HERO
======================================== */

.join-hero {
  background: var(--bg);
}

.join-hero__inner {
  position: relative;
  width: min(1200px, calc(100% - 40px));
  height: 500px;
  margin-inline: auto;
  overflow: hidden;
  border-radius: 18px;
}

.join-hero__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.join-hero__overlay {
  position: absolute;
  inset: 0;

  background: linear-gradient(
    90deg,
    rgba(247, 246, 242, 1) 0%,
    rgba(247, 246, 242, .98) 18%,
    rgba(247, 246, 242, .88) 30%,
    rgba(247, 246, 242, .55) 40%,
    rgba(247, 246, 242, .15) 52%,
    rgba(247, 246, 242, 0) 62%
  );

  pointer-events: none;
}

.join-hero__content {
  position: absolute;
  z-index: 1;

  left: 70px;
  top: 50%;
  transform: translateY(-50%);
}

.join-hero__title {
  margin: 0;

  font-family: "Klee One", cursive;
  font-size: 40px;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: .06em;

  color: #493f35;
}

.join-hero__lead {
  margin: 18px 0 0;

  font-size: 18px;
  font-weight: 500;
  line-height: 1.9;
}


/* ========================================
   JOIN / HERO - SP
======================================== */

@media (max-width: 767px) {

  .join-hero__inner {
    width: 100%;
    height: 500px;
    border-radius: 0;
  }

  .join-hero__image {
    object-position: center 42%;
  }

  .join-hero__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
    to bottom,
    rgba(247, 246, 242, 0) 0%,
    rgba(247, 246, 242, 0) 42%,
    rgba(247, 246, 242, .15) 52%,
    rgba(247, 246, 242, .55) 65%,
    rgba(247, 246, 242, .88) 78%,
    rgba(247, 246, 242, .98) 90%,
    rgba(247, 246, 242, 1) 100%
  );
  }

  .join-hero__content {
    left: 28px;
    right: 28px;
    top: auto;
    bottom: 10px;
    transform: none;
  }

  .join-hero__title {
    font-size: 28px;
    line-height: 1.5;
    letter-spacing: .02em;
    white-space: nowrap;
  }

  .join-hero__lead {
    margin-top: 20px;
    font-size: 15px;
    line-height: 1.9;
  }

}

/* ========================================
   JOIN PAGE
   Introduction
======================================== */

.join-introduction {
  padding: 100px 0 100px;
}

.join-introduction__inner {
  position: relative;
  min-height: 540px;
}

.join-introduction__copy {
  position: relative;
  z-index: 2;
  width: 52%;
  max-width: 590px;
}

.join-introduction .section-label {
  margin: 4px 0 0;
  font-family: var(--font-en);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .12em;
  color: var(--accent-gold);
}

.join-introduction h2 {
  margin: 0;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: .045em;
  color: var(--text);
}

.join-introduction__body {
  margin-top: 32px;
  max-width: 470px;
  font-size: 18px;
  line-height: 2;
}

.join-introduction__body p {
  margin: 0 0 20px;
}

.join-introduction__body p:last-child {
  margin-bottom: 0;
}

 .join-introduction .section-label {
    margin-top: 2px;
    font-size: 12px;
    letter-spacing: .11em;
  }

/* 写真 */

.join-introduction__photo {
  position: absolute;
  width: 620px;
  right: -30px;
  top: 200px;

  /* VALUESの雰囲気を引き継ぎつつ、同じ形にはしない */
  border-radius: 70px 18px 70px 18px;
}

.join-introduction__photo img {
  display: block;
  width: 100%;
  height: 415px;
  object-fit: cover;
  object-position: center;
}


/* ========================================
   JOIN Introduction / Tablet
======================================== */

@media (max-width: 1000px) {

  .join-introduction__inner {
    min-height: 580px;
  }

  .join-introduction__copy {
    width: 55%;
  }

  .join-introduction__photo {
    width: 54%;
    right: 0;
    top: 210px;
  }

  .join-introduction__photo img {
    height: 360px;
  }

}


/* ========================================
   JOIN Introduction / Mobile
======================================== */

@media (max-width: 767px) {

  .join-introduction {
    padding: 90px 0 50px;
  }

  .join-introduction__inner {
    min-height: 0;
  }

  .join-introduction__copy {
    width: 100%;
    max-width: none;
  }

  .join-introduction h2 {
    margin-bottom: 0;
    font-size: 25px;
    line-height: 1.6;
  }

  .join-introduction__body {
    font-size: 15px;
    line-height: 2;
  }

  .join-introduction__body p {
    margin-bottom: 18px;
  }

  .join-introduction__photo {
    position: relative;
    width: 100%;
    right: auto;
    top: auto;
    margin: 50px 0 0;
    border-radius: 50px 12px 50px 12px;
  }

  .join-introduction__photo img {
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    object-fit: cover;
  }

}

/* ========================================
   JOIN PAGE
   Possibilities / 01
======================================== */

.join-possibilities {
  padding: 100px 0 100px;
}

/* セクション見出し */
.join-possibilities__head {
  margin-bottom: 90px;
}

.join-possibilities__head h2 {
  margin: 0;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: .045em;
  color: var(--text);
}

.join-possibilities__head .section-label {
  margin: 4px 0 0;
  font-family: var(--font-en);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .12em;
  color: var(--accent-gold);
}


/* 01 好きなことを伝える */

.join-possibility--share {
  display: grid;
  grid-template-columns: 370px 1fr;
  column-gap: 50px;
  align-items: center;
}

.join-possibility--share .join-possibility__copy {
  padding-left: 28px;
}

.join-possibility--share .join-possibility__number {
  display: block;
  margin-bottom: 18px;
  font-family: var(--font-serif);
  font-size: 44px;
  font-weight: 400;
  line-height: 1;
  color: var(--accent-gold-dark);
}

.join-possibility--share h3 {
  margin: 0 0 22px;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .035em;
}

.join-possibility--share p {
  margin: 0;
  font-size: 18px;
  line-height: 1.9;
}

.join-possibility--share .join-possibility__photo {
  width: 100%;
  height: 430px;
  margin: 0;
  overflow: hidden;
  border-radius: 18px 70px 18px 70px;
}

.join-possibility--share .join-possibility__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* ========================================
   JOIN PAGE
   Possibilities / 02
======================================== */

.join-possibility--experience {
  display: grid;
  grid-template-columns: 560px 370px;
  column-gap: 70px;
  align-items: center;
  margin-top: 140px;
  padding-left: 40px;
}

.join-possibility--experience .join-possibility__photo {
  width: 560px;
  height: 360px;
  margin: 0;
  overflow: hidden;
  border-radius: 60px 18px 60px 18px;
}

.join-possibility--experience .join-possibility__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.join-possibility--experience .join-possibility__number {
  display: block;
  margin-bottom: 18px;
  font-family: var(--font-serif);
  font-size: 44px;
  font-weight: 400;
  line-height: 1;
  color: var(--accent-gold-dark);
}

.join-possibility--experience h3 {
  margin: 0 0 22px;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .035em;
}

.join-possibility--experience p {
  margin: 0;
  font-size: 18px;
  line-height: 1.9;
}

/* ========================================
   JOIN PAGE
   Possibilities / 03
======================================== */

.join-possibility--planning {
  display: grid;
  grid-template-columns: 370px 560px;
  column-gap: 70px;
  align-items: center;
  margin-top: 150px;
  padding-right: 40px;
}

.join-possibility--planning .join-possibility__copy {
  padding-left: 40px;
}

.join-possibility--planning .join-possibility__number {
  display: block;
  margin-bottom: 18px;
  font-family: var(--font-serif);
  font-size: 44px;
  font-weight: 400;
  line-height: 1;
  color: var(--accent-gold-dark);
}

.join-possibility--planning h3 {
  margin: 0 0 22px;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .035em;
}

.join-possibility--planning p {
  margin: 0;
  font-size: 18px;
  line-height: 1.9;
}

.join-possibility--planning .join-possibility__photo {
  width: 560px;
  height: 340px;
  margin: 0;
  overflow: hidden;
  border-radius: 18px 60px 18px 60px;
}

.join-possibility--planning .join-possibility__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* ========================================
   JOIN PAGE
   Possibilities 
======================================== */

.join-possibilities {
  padding: 140px 0 160px;
}


/* セクション見出し */

.join-possibilities__head {
  margin-bottom: 100px;
}

.join-possibilities__head h2 {
  margin: 0;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: .045em;
  color: var(--text);
}

.join-possibilities__head .section-label {
  margin: 4px 0 0;
  font-family: var(--font-en);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .12em;
  color: var(--accent-gold);
}


/* ========================================
   01〜04 共通
======================================== */

.join-possibility {
  display: grid;
  align-items: center;
}

.join-possibility__number {
  display: block;
  margin-bottom: 14px;
  font-family: var(--font-serif);
  font-size: 34px;
  font-weight: 400;
  line-height: 1;
  color: var(--accent-gold-dark);
}

.join-possibility h3 {
  margin: 0 0 16px;
  font-size: 22px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .035em;
}

.join-possibility p {
  margin: 0;
  font-size: 16px;
  line-height: 1.9;
}

.join-possibility__photo {
  margin: 0;
  overflow: hidden;
}

.join-possibility__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}


/* ========================================
   01 好きなことを伝える
   左上・少し大きめ
======================================== */

.join-possibility--share {
  width: 520px;
  grid-template-columns: 260px 225px;
  column-gap: 35px;
  margin-left: 20px;
}

.join-possibility--share .join-possibility__copy {
  grid-column: 2;
  grid-row: 1;
  padding: 0;
}

.join-possibility--share .join-possibility__photo {
  grid-column: 1;
  grid-row: 1;
  width: 260px;
  height: 220px;
  border-radius: 18px 50px 18px 50px;
}


/* ========================================
   02 経験を活かす
   右上
======================================== */

.join-possibility--experience {
  width: 500px;
  grid-template-columns: 245px 220px;
  column-gap: 35px;
  margin: -210px 20px 0 auto;
  padding: 0;
}

.join-possibility--experience .join-possibility__photo {
  grid-column: 1;
  grid-row: 1;
  width: 245px;
  height: 190px;
  border-radius: 50px 18px 50px 18px;
}

.join-possibility--experience .join-possibility__copy {
  grid-column: 2;
  grid-row: 1;
}


/* ========================================
   03 一緒に企画する
   左下
======================================== */

.join-possibility--planning {
  width: 490px;
  grid-template-columns: 230px 225px;
  column-gap: 35px;
  margin: 115px 0 0 80px;
  padding: 0;
}

.join-possibility--planning .join-possibility__photo {
  grid-column: 1;
  grid-row: 1;
  width: 230px;
  height: 175px;
  border-radius: 18px 45px 18px 45px;
}

.join-possibility--planning .join-possibility__copy {
  grid-column: 2;
  grid-row: 1;
  padding: 0;
}


/* ========================================
   04 小さく始めてみる
   右下・少し大きめ
======================================== */

.join-possibility--small-start {
  width: 525px;
  grid-template-columns: 265px 225px;
  column-gap: 35px;
  margin: -155px 0 0 auto;
  padding: 0;
}

.join-possibility--small-start .join-possibility__photo {
  grid-column: 1;
  grid-row: 1;
  width: 265px;
  height: 225px;
  border-radius: 50px 18px 50px 18px;
}

.join-possibility--small-start .join-possibility__copy {
  grid-column: 2;
  grid-row: 1;
  width: auto;
  padding: 0;
}

/* ========================================
   JOIN PAGE
   Examples
======================================== */

.join-examples {
  position: relative;
  margin-top: 80px;
  padding: 0 40px;
}

.join-examples__head {
  margin-bottom: 20px;
}

.join-examples__head h3 {
  margin: 0;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .035em;
}

/* 6つの例 */
.join-examples__items {
  position: relative;
  display: flex;
  align-items: flex-start;
  width: 100%;
  margin-top: 10px;
}

/* 左右の有機形 */
.join-examples__group {
  position: relative;
  box-sizing: border-box;
  width: 54%;
  min-height: 310px;
  padding: 64px 72px;
}

/* 左 */
.join-examples__group--left {
  z-index: 1;
  background: #eee9dc;

  border-radius:
    34% 66% 55% 45% /
    46% 34% 66% 54%;
}

/* 右 */
.join-examples__group--right {
  z-index: 2;
  margin-top: 24px;
  margin-left: -8%;
  background: #e3e5d6;

  border-radius:
    63% 37% 42% 58% /
    40% 61% 39% 60%;
}

/* 左右の項目位置を調整 */
.join-examples__group--left p {
  transform: translateX(20px);
}

.join-examples__group--right p {
  transform: translateX(40px);
}

/* 丸の中の文字 */
.join-examples__group p {
  position: relative;
  margin: 0;
  padding: 14px 0 14px 18px;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.8;
}

/* 金色の点 */
.join-examples__group p::before {
  content: "";
  position: absolute;
  left: 0;
  top: 25px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--accent-gold);
}

.join-examples__note {
   margin: 58px 0 0;
  text-align: center;

  font-size: 18px;
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: .045em;

  color: var(--text);
}

/* ========================================
   JOIN PAGE
   Process
======================================== */

.join-process {
  padding: 100px 0 100px;
}

.join-process__head {
  margin-bottom: 100px;
}

.join-process__head h2 {
  margin: 0;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: .045em;
  color: var(--text);
}

.join-process__head .section-label {
  margin: 4px 0 0;
  font-family: var(--font-en);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .12em;
  color: var(--accent-gold);
}

/* FLOW 全体 */
.join-process__flow {
  display: grid;
  grid-template-columns: 560px 480px;
  column-gap: 45px;
  align-items: center;
  width: 100%;
}

/* 01〜04 */
.join-process__steps {
  position: relative;
}

/* 番号をつなぐ縦線 */
.join-process__steps::before {
  content: "";
  position: absolute;
  left: 23px;
  top: 24px;
  bottom: 24px;
  width: 1px;
  background: var(--accent-gold);
  opacity: .55;
}

.join-process__step {
  position: relative;
  display: grid;
  grid-template-columns: 48px 125px 1fr;
  column-gap: 18px;
  align-items: center;
  width: 100%;
  margin: 0 0 42px;
}

.join-process__step:last-child {
  margin-bottom: 0;
}

/* 01〜04の丸 */
.join-process__number {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: #eee5c9;

  font-family: var(--font-serif);
  font-size: 17px;
  font-weight: 500;
  line-height: 1;
  color: var(--accent-gold-dark);
}

/* 各ステップの文字 */
.join-process__copy {
  display: contents;
}

.join-process__copy h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .035em;
}

.join-process__copy p {
  margin: 0;
  font-size: 18px;
  line-height: 1.9;
}

/* 以前の蛇行配置を完全に解除 */
.join-process__step--01,
.join-process__step--02,
.join-process__step--03,
.join-process__step--04 {
  margin-left: 0;
  padding: 0;
}

.join-process__step--01,
.join-process__step--02,
.join-process__step--03 {
  margin-bottom: 42px;
}

.join-process__step--04 {
  margin-bottom: 0;
}

/* 右側の写真 */
.join-process__photo {
  width: 480px;
  height: 320px;
  margin: 0;
  overflow: hidden;

  border-radius:
    34% 10% 30% 14% /
    18% 28% 16% 34%;
}

.join-process__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* =========================
   JOIN SUPPORT
========================= */

.join-support {
  position: relative;
  overflow: hidden;
  background: #f1eee6;
}

.join-support .container {
  position: relative;
  min-height: 720px;
  padding-top: 105px;
}

/* テキスト */
.join-support__copy {
  position: relative;
  z-index: 2;
  width: 750px;
}

.join-support__copy h2 {
  margin: 0;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: .045em;
  color: var(--text);
}

.join-support__copy .section-label {
  margin: 5px 0 0;
  font-family: var(--font-en);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .12em;
  color: var(--accent-gold);
}

/* 本文 */
.join-support__body {
  margin-top: 36px;
}

.join-support__body p {
  margin: 0;
  font-size: 18px;
  line-height: 2;
}

.join-support__body p + p {
  margin-top: 22px;
}

/* 人物 */
.join-support__people {
  position: absolute;
  z-index: 1;
  left: 50%;
  bottom: -2px;
  width: 1180px;
  margin: 0;
  transform: translateX(-50%);
}

.join-support__people img {
  display: block;
  width: 100%;
  height: auto;
}

/* =========================
   JOIN CONTACT
========================= */

.join-contact {
  background: var(--bg);
}

.join-contact .container {
  padding-top: 110px;
  padding-bottom: 120px;
}

.join-contact__inner {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}

/* CONTACT */
.join-contact .section-label {
  margin: 0 0 12px;
  font-family: var(--font-en);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .12em;
  color: var(--accent-gold);
}

/* 見出し */
.join-contact h2 {
  margin: 0;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .045em;
  color: var(--text);
}

/* 本文 */
.join-contact__body {
  margin-top: 32px;
}

.join-contact__body p {
  margin: 0;
  font-size: 16px;
  line-height: 2;
  color: var(--text);
}

/* 相談リンク */
.join-contact__link {
   margin-top: 36px;
}

/* ========================================
   JOIN Possibilities / SP
======================================== */

@media (max-width: 767px) {

  .join-possibilities {
    padding: 80px 0 50px;
  }

  .join-possibilities__head {
    margin-bottom: 60px;
  }

  .join-possibilities__head h2 {
    font-size: 25px;
    line-height: 1.55;
  }

  .join-possibilities__items {
    width: 100%;
  }

  /* 4項目共通 */
  .join-possibility--share,
  .join-possibility--experience,
  .join-possibility--planning,
  .join-possibility--small-start {
    display: flex;
    width: 100%;
    margin: 0;
    padding: 0;
    column-gap: 0;
    align-items: flex-start;
  }

  .join-possibility__copy {
    width: 100%;
    padding: 0 !important;
  }

  .join-possibility__number {
    margin-bottom: 12px !important;
    font-size: 34px !important;
  }

  .join-possibility h3 {
    margin-bottom: 16px;
    font-size: 20px;
    line-height: 1.5;
  }

  .join-possibility p {
    font-size: 15px;
    line-height: 1.9;
  }

  .join-possibility__photo {
    overflow: hidden;
  }

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


  /* 01：文字 → 写真／写真を右寄せ */
  .join-possibility--share {
    flex-direction: column;
  }

  .join-possibility--share .join-possibility__photo {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    margin: 32px 0 0 auto;
  }


  /* 02：文字 → 写真／写真を左寄せ */
  .join-possibility--experience {
    flex-direction: column;
    margin-top: 75px;
  }

  .join-possibility--experience .join-possibility__copy {
    order: 1;
  }

  .join-possibility--experience .join-possibility__photo {
    order: 2;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    margin: 32px auto 0 0;
  }


  /* 03：文字 → 写真／写真を右寄せ */
  .join-possibility--planning {
    flex-direction: column;
    margin-top: 75px;
  }

  .join-possibility--planning .join-possibility__copy {
    order: 1;
  }

  .join-possibility--planning .join-possibility__photo {
    order: 2;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    margin: 32px 0 0 auto;
  }


  /* 04：文字 → 写真／写真を左寄せ */
  .join-possibility--small-start {
    flex-direction: column;
    margin-top: 75px;
  }

  .join-possibility--small-start .join-possibility__photo {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    margin: 32px auto 0 0;
  }
}

/* ========================================
   JOIN Examples / SP
======================================== */

@media (max-width: 767px) {

  .join-examples {
    margin-top: 85px;
    padding: 0;
  }

    .join-examples__head {
    margin-bottom: 38px;
    text-align: center;
  }

  .join-examples__head h3 {
    font-size: 21px;
    line-height: 1.5;
  }

  .join-examples__items {
  display: contents;
}

.join-examples__group {
  display: contents;
}

.join-examples__group p {
  width: 94%;
  margin: 0 auto 14px;
  padding: 24px 28px;

  font-size: 15px;
  line-height: 1.9;
  text-align: center;

  background: #f3ecdf;
  border-radius: 48% 52% 46% 54% / 52% 46% 54% 48%;

  transform: none;
  writing-mode: horizontal-tb;
}

.join-examples__group--right p {
  background: #e9eddf;
}

.join-examples__group p::before {
  display: none;
}

.join-examples__group p {
  padding: 28px 26px;
}

/* 少しずつ輪郭を変える */
.join-examples__group p:nth-child(2) {
  width: 90%;
  border-radius: 54% 46% 52% 48% / 45% 55% 47% 53%;
}

.join-examples__group p:nth-child(3) {
  width: 96%;
  border-radius: 46% 54% 48% 52% / 55% 45% 53% 47%;
}

.join-examples__group--right p:nth-child(2) {
  width: 98%;
}

/* 1・4 */
.join-examples__group p {
  border-radius: 48% 52% 45% 55% / 55% 46% 54% 45%;
}

/* 2・5 */
.join-examples__group p:nth-child(2) {
  border-radius: 55% 45% 52% 48% / 44% 56% 47% 53%;
}

/* 3・6 */
.join-examples__group p:nth-child(3) {
  border-radius: 44% 56% 47% 53% / 52% 43% 57% 48%;
}


  .join-examples__group p,
  .join-examples__group--left p,
  .join-examples__group--right p {
    transform: none;
    margin-left: 0;
    margin-right: 0;
    font-size: 15px;
    line-height: 1.9;
    writing-mode: horizontal-tb;
  }

  .join-examples__note {
  max-width: 300px;
  margin: 58px auto 0;
  text-align: center;
}

.join-examples__note p {
  margin: 0;
  font-size: 15px　!important;
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: .04em;
}

.join-examples__note strong {
  display: inline-block;
  margin-bottom: 6px;
  font-size: 18px;
  font-weight: 600;
}

   .join-process {
    padding: 80px 0 90px;
  }

  .join-process__head {
    margin-bottom: 55px;
  }

  .join-process__head h2 {
    font-size: 25px;
    line-height: 1.55;
  }

  .join-process__flow {
    display: block;
    width: 100%;
  }

  .join-process__steps {
    position: relative;
    width: 100%;
    padding: 0;
  }

  .join-process__step {
    position: relative;
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    column-gap: 16px;
    align-items: start;
    width: 100%;
    padding: 0;
    margin-left: 0;
  }

  .join-process__step--01,
  .join-process__step--02,
  .join-process__step--03 {
    margin-bottom: 42px;
  }

  .join-process__step--04 {
    margin-bottom: 0;
  }

  .join-process__number {
    position: relative;
    left: auto;
    top: auto;
    transform: none;
    width: 28px;
    height: 28px;
    margin: 0;
    font-size: 11px;
    z-index: 2;
  }

  .join-process__step--04::after {
    content: "";
    position: absolute;
    left: 14px;
    top: 14px;
    bottom: 0;
    width: 2px;
    background: var(--bg);
    z-index: 0;
  }

  .join-process__copy {
    display: block;
    width: 100%;
    min-width: 0;
    padding: 0;
  }

  .join-process__copy h3 {
    margin: 2px 0 12px;
    font-size: 17px;
    line-height: 1.5;
  }

  .join-process__copy p {
    margin: 0;
    font-size: 15px;
    line-height: 1.9;
  }

  /* 縦のライン */
  .join-process__steps::before {
    left: 14px;
    top: 14px;
    bottom: 28px;
  }

  /* 写真 */
  .join-process__photo {
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    margin: 55px auto 0;
  }

  .join-process__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}

  /* ========================================
   JOIN Support / SP
======================================== */

@media (max-width: 767px) {

  .join-support {
    overflow: hidden;
  }

  .join-support .container {
    min-height: 0;
    padding-top: 80px;
    padding-bottom: 0;
  }

  .join-support__copy {
    position: relative;
    z-index: 2;
    width: 100%;
  }

  .join-support__copy h2 {
    font-size: 25px;
    line-height: 1.55;
  }

  .join-support__body {
    margin-top: 30px;
  }

  .join-support__body p {
    font-size: 15px;
    line-height: 2;
  }

  .join-support__body p + p {
    margin-top: 20px;
  }

  .join-support__people {
    position: relative;
    left: auto;
    bottom: auto;
    width: calc(100% + 32px);
    max-width: none;
    margin: 48px 0 0 -16px;
    transform: none;
  }

  .join-support__people img {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
  }
}
/* ========================================
   JOIN Contact / SP
======================================== */

@media (max-width: 767px) {

  .join-contact .container {
    padding-top: 80px;
    padding-bottom: 90px;
  }

  .join-contact__inner {
    width: 100%;
    max-width: none;
  }

  .join-contact__inner h2 {
    font-size: 25px;
    line-height: 1.55;
  }

  .join-contact__body {
    margin-top: 30px;
    font-size: 15px;
    line-height: 2;
  }

  .join-contact__link {
    margin-top: 36px;
  }
}

/* ========================================
   ACCESS PAGE / 活動する場所
======================================== */

.access-page {
  background: var(--bg);
}


/* ========================================
   ACCESS / HERO
======================================== */

.access-hero {
  background: var(--bg);
}

.access-hero__inner {
  position: relative;
  width: min(1200px, calc(100% - 40px));
  height: 500px;
  margin-inline: auto;
  overflow: hidden;
  border-radius: 18px;
}

.access-hero__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.access-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(247, 246, 242, 1) 0%,
    rgba(247, 246, 242, .98) 18%,
    rgba(247, 246, 242, .88) 30%,
    rgba(247, 246, 242, .55) 40%,
    rgba(247, 246, 242, .15) 52%,
    rgba(247, 246, 242, 0) 62%
  );
  pointer-events: none;
}

.access-hero__content {
  position: absolute;
  z-index: 1;
  left: 70px;
  top: 50%;
  transform: translateY(-50%);
}

.access-hero__title {
  margin: 0;
  font-family: "Klee One", cursive;
  font-size: 40px;
  font-weight: 600;
  line-height: 1.45;
  letter-spacing: .06em;
  color: #493f35;
}

.access-hero__lead {
  margin: 18px 0 0;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.9;
}


/* ========================================
   ACCESS / INTRODUCTION
======================================== */

.access-introduction {
  padding: 110px 0 120px;
}

.access-introduction__copy {
  max-width: 760px;
}

.access-introduction h2 {
  margin: 0;
  font-size: 30px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: .04em;
  color: #493f35;
}

.access-introduction .section-label {
   margin-top: 4px;
  font-family: var(--font-en);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .12em;
  color: var(--accent-gold);
}

.access-introduction__body {
  margin-top: 42px;
}

.access-introduction__body p {
  margin: 0;
  font-size: 17px;
  line-height: 2.15;
}


/* ========================================
   ACCESS / HERO + INTRO - SP
======================================== */

@media (max-width: 767px) {

  .access-hero__inner {
    width: 100%;
    height: 500px;
    border-radius: 0;
  }

  .access-hero__image {
    object-position: center;
  }

  .access-hero__overlay {
    background: linear-gradient(
      to bottom,
      rgba(247,246,242,0) 0%,
      rgba(247,246,242,0) 42%,
      rgba(247,246,242,.15) 52%,
      rgba(247,246,242,.55) 65%,
      rgba(247,246,242,.88) 78%,
      rgba(247,246,242,.98) 90%,
      rgba(247,246,242,1) 100%
    );
  }

  .access-hero__content {
    left: 20px;
    right: 20px;
    top: auto;
    bottom: 42px;
    transform: none;
  }

  .access-hero__title {
    font-size: 28px;
    line-height: 1.5;
  }

  .access-hero__lead {
    margin-top: 14px;
    font-size: 15px;
    line-height: 1.9;
  }

  .access-introduction {
    padding: 85px 0 100px;
  }

  .access-introduction h2 {
    font-size: 24px;
    line-height: 1.65;
  }

  .access-introduction__body {
    margin-top: 34px;
  }

  .access-introduction__body p {
    font-size: 16px;
    line-height: 2;
  }

  .access-introduction .section-label {
  margin-top: 4px;
  font-size: 12px;
  }

}

/* ========================================
   ACCESS / LOCATION
======================================== */

.access-location {
  padding: 20px 0 140px;
}

.access-location__head {
  display: flex;
  align-items: baseline;
  gap: 14px;
  margin-bottom: 55px;
}

.access-location__label {
  order: 2;
  margin: 0;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: .12em;
  color: #b88a35;
}

.access-location__head h2 {
  order: 1;
  margin: 0;
  font-size: 38px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .05em;
  color: #493f35;
}

.access-location__layout {
  display: grid;
  grid-template-columns: minmax(0, 42%) minmax(0, 58%);
  align-items: start;
  gap: 70px;
}


/* 会場情報 */

.access-location__info {
  padding-top: 18px;
}

.access-location__info > h3 {
  margin: 0;
  font-size: 25px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: .04em;
  color: #493f35;
}

.access-location__address {
  margin-top: 24px;
}

.access-location__address p {
  margin: 0;
  font-size: 16px;
  line-height: 2;
}


/* アクセス方法 */

.access-location__access {
  margin-top: 52px;
}

.access-location__access > h3 {
  margin: 0 0 28px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(73, 63, 53, .18);

  font-size: 20px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: .04em;
  color: #493f35;
}

.access-location__route + .access-location__route {
  margin-top: 30px;
}

.access-location__route h4 {
  margin: 0 0 8px;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.7;
  color: #493f35;
}

.access-location__route p {
  margin: 0;
  font-size: 15px;
  line-height: 2;
}


/* 会場写真 */

.access-location__photo {
  width: 100%;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  border-radius: 0 70px 0 70px;
}

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


/* ========================================
   ACCESS / LOCATION - SP
======================================== */

@media (max-width: 767px) {

  .access-location {
    padding: 10px 0 80px;
  }

  .access-location__head {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 38px;
}

.access-location__label {
  order: 2;
  margin: 0;
  font-size: 12px;
}

.access-location__head h2 {
  order: 1;
  margin: 0;
  font-size: 30px;
}

  .access-location__layout {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .access-location__photo {
    order: 1;
    width: 100%;
    margin: 0 0 48px auto;
    aspect-ratio: 4 / 3;
    border-radius: 0 45px 0 45px;
  }

  .access-location__info {
    order: 2;
    width: 100%;
    padding-top: 0;
  }

  .access-location__info > h3 {
    font-size: 22px;
  }

  .access-location__address {
    margin-top: 18px;
  }

  .access-location__address p {
    font-size: 15px;
    line-height: 1.9;
  }

  .access-location__access {
    margin-top: 45px;
  }

  .access-location__access > h3 {
    margin-bottom: 25px;
    font-size: 19px;
  }

  .access-location__route + .access-location__route {
    margin-top: 26px;
  }

  .access-location__route h4 {
    font-size: 16px;
  }

  .access-location__route p {
    font-size: 15px;
    line-height: 1.9;
  }
}

/* ========================================
   ACCESS / MAP
======================================== */

.access-map {
  padding: 0 0 130px;
}

.access-map__head {
  margin-bottom: 36px;
}

.access-map__head h2 {
  margin: 0;
  font-size: 30px;
  font-weight: 600;
  line-height: 1.5;
  color: #493f35;
}

.access-map__head .section-label {
  margin-top: 4px;
  font-family: var(--font-en);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .12em;
  color: var(--accent-gold);
}

.access-map__embed {
  width: 100%;
  height: 460px;
  overflow: hidden;
  border-radius: 0;
}

.access-map__embed iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}


/* ========================================
   ACCESS / MAP - SP
======================================== */

@media (max-width: 767px) {

  .access-map {
    padding: 0 0 100px;
  }

  .access-map__head {
    margin-bottom: 28px;
  }

  .access-map__head h2 {
    font-size: 26px;
  }

  .access-map__head .section-label {
    font-size: 12px;
  }

  .access-map__embed {
    width: 100%;
    height: 380px;
    border-radius: 0;
  }

}
/* ========================================
   ACCESS / INFORMATION
======================================== */

.access-information {
  padding: 0 0 130px;
}

.access-information__head {
  max-width: 900px;
  margin: 0 auto 48px;
}

.access-information__head h2 {
  margin: 0;
  font-size: 30px;
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: .04em;
  color: #493f35;
}

.access-information__items {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 80px;
  max-width: 900px;
  margin-inline: auto;
}

.access-information__item {
  padding-top: 22px;
  border-top: 1px solid var(--accent-gold);
}

.access-information__item h3 {
  margin: 0 0 14px;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.6;
  color: #493f35;
}

.access-information__item p {
  margin: 0;
  font-size: 16px;
  line-height: 2;
}


/* ========================================
   ACCESS / INFORMATION - SP
======================================== */

@media (max-width: 767px) {

  .access-information {
    padding: 0 0 100px;
  }

  .access-information__head {
    margin-bottom: 36px;
  }

  .access-information__head h2 {
    font-size: 26px;
  }

  .access-information__items {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .access-information__item {
    padding-top: 18px;
  }

  .access-information__item h3 {
    font-size: 19px;
    margin-bottom: 10px;
  }

  .access-information__item p {
    font-size: 15px;
    line-height: 1.9;
  }

}

/* ========================================
   ACCESS / CLOSING
======================================== */

.access-closing {
  padding: 100px 0 110px;
  background: var(--kinari);
}

.access-closing__copy {
  max-width: 720px;
  margin-inline: auto;
  text-align: center;
}

.access-closing__copy h2 {
  margin: 0;
  font-size: 30px;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: .04em;
  color: #493f35;
}

.access-closing__body {
  margin-top: 30px;
}

.access-closing__body p {
  margin: 0;
  font-size: 17px;
  line-height: 2.1;
}


/* ========================================
   ACCESS / CLOSING - SP
======================================== */

@media (max-width: 767px) {

  .access-closing {
    padding: 80px 0 85px;
  }

  .access-closing__copy {
    text-align: left;
  }

  .access-closing__copy h2 {
    font-size: 25px;
    line-height: 1.65;
  }

  .access-closing__body {
    margin-top: 25px;
  }

  .access-closing__body p {
    font-size: 15px;
    line-height: 2;
  }
}

/* ========================================
   ACCESS / SP spacing adjustment
======================================== */

@media (max-width: 767px) {

  .access-introduction {
    padding-bottom: 70px;
  }

  .access-location {
    padding-top: 0;
  }

}

/* ========================================
   FAQ｜よくある質問
======================================== */

/* HERO */
.faq-hero {
  background: var(--bg);
}

.faq-hero__media {
  width: min(1200px, calc(100% - 40px));
  height: 500px;
  margin-inline: auto;
  position: relative;
  display: flex;
  align-items: center;
  overflow: hidden;
  border-radius: 28px;

  background-color: #eee9dc;
  background-image: url("../images/faq-hero.webp");
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}

.faq-hero__media::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(247,246,242,1) 0%,
    rgba(247,246,242,.98) 18%,
    rgba(247,246,242,.88) 30%,
    rgba(247,246,242,.55) 40%,
    rgba(247,246,242,.15) 52%,
    rgba(247,246,242,0) 62%
  );
}

.faq-hero__copy {
  position: relative;
  z-index: 1;
  width: min(1200px, calc(100% - 40px));
  margin-inline: auto;
}

.faq-hero__copy h1 {
  margin: 0;
  color: #493f35;
  font-family: "Klee One", cursive;
  font-size: 40px;
  font-weight: 600;
  line-height: 1.45;

  letter-spacing: .06em;}


.faq-hero__lead {
  margin-top: 18px;
  color: var(--text);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.8;
}

/* INTRODUCTION */
.faq-introduction {
  padding: 90px 0 45px;
  text-align: center;
}

.faq-introduction__lead {
  margin: 0 0 20px;
  color: #493f35;
  font-family: var(--font-sans);
  font-size: 24px;
  font-weight: 500;
  line-height: 1.7;
}

.faq-introduction__text {
  margin: 0;
  color: #493f35;
  font-size: 18px;
  line-height: 1.8;
}

/* CATEGORY NAVIGATION */
.faq-nav {
  padding: 0 0 90px;
}

.faq-nav__list {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.faq-nav__list a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 13px 24px;
  border: 1px solid #d8d1c4;
  border-radius: 50px;
  color: #493f35;
  background: transparent;
  font-size: 16px;
  text-decoration: none;
  transition: border-color .25s ease, color .25s ease;
}

.faq-nav__list a:hover {
  border-color: #b18c47;
  color: #b18c47;
}

/* FAQ CONTENT */
.faq-content {
  padding: 0 0 110px;
}

.faq-content > .container {
  max-width: 960px;
}

.faq-group {
  margin-bottom: 85px;
  scroll-margin-top: 100px;
}

.faq-group:last-child {
  margin-bottom: 0;
}

.faq-group__heading {
  display: flex;
  align-items: baseline;
  gap: 18px;
  margin-bottom: 26px;
}

/* FAQカテゴリー：四つ葉アイコン */
.faq-group__symbol {
  display: inline-flex;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
}

.faq-group__symbol svg {
  display: block;
  width: 26px;
  height: 26px;
  fill: none;
  stroke: #b18c47;
  stroke-width: 1.5;
}

.faq-group__heading h2 {
  margin: 0;
  color: #493f35;
  font-family: var(--font-sans);
  font-size: 28px;
  font-weight: 500;
  line-height: 1.5;
}

/* ACCORDION */
.faq-item {
  border-bottom: 1px solid #e2ded6;
}

.faq-item:first-child {
  border-top: 1px solid #e2ded6;
}

.faq-item__question {
  display: flex;
  align-items: center;
  gap: 15px;
  min-height: 84px;
  padding: 22px 10px;
  color: #493f35;
  cursor: pointer;
  list-style: none;
}

.faq-item__question::-webkit-details-marker {
  display: none;
}

.faq-item__q {
  flex: 0 0 auto;
  color: #b18c47;
  font-size: 20px;
  font-weight: 600;
}

.faq-item__question-text {
  flex: 1;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.8;
}

.faq-item__toggle {
  position: relative;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
}

.faq-item__toggle::before,
.faq-item__toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background: #b18c47;
  transform: translate(-50%, -50%);
}

.faq-item__toggle::before {
  width: 14px;
  height: 1px;
}

.faq-item__toggle::after {
  width: 1px;
  height: 14px;
  transition: transform .2s ease;
}

.faq-item[open] .faq-item__toggle::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.faq-item__answer {
  display: flex;
  gap: 15px;
  padding: 0 48px 28px 10px;
}

.faq-item__a {
  flex: 0 0 auto;
  color: #b18c47;
  font-size: 20px;
  font-weight: 600;
}

.faq-item__answer p {
  margin: 0;
  color: #625b51;
  font-size: 18px;
  line-height: 1.8;
}

/* CONTACT */
.faq-contact {
  padding: 90px 20px 110px;
  background: #eee9dc;
  text-align: center;
}

.faq-contact h2 {
  margin: 0 0 22px;
  color: #493f35;
  font-family: var(--font-sans);
  font-size: 28px;
  font-weight: 600;
  line-height: 1.5;
}

.faq-sp-br {
  display: none;
}

.faq-contact p {
  margin: 0;
  color: #493f35;
  font-size: 18px;
  line-height: 1.8;
}

.faq-contact__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  width: 300px;
  max-width: 100%;
  min-height: 56px;
  margin-top: 38px;
  padding: 12px 20px;
  border: 1px solid #f39a18;
  border-radius: 50px;
  color: #f39a18;
  background: transparent;
  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
  box-sizing: border-box;
  transition: background-color .25s ease;
}

.faq-contact__button:hover {
  background: rgba(243,154,24,.08);
}

/* SMARTPHONE */
@media (max-width: 767px) {

  .faq-hero__media {
    width: 100%;
  height: 500px;
  min-height: 0;
  margin: 0;
  padding: 0;
  border-radius: 0;
  position: relative;

  background:
    linear-gradient(
      to bottom,
      rgba(247, 246, 242, 0) 0%,
      rgba(247, 246, 242, 0) 42%,
      rgba(247, 246, 242, .15) 52%,
      rgba(247, 246, 242, .55) 65%,
      rgba(247, 246, 242, .88) 78%,
      rgba(247, 246, 242, .98) 90%,
      rgba(247, 246, 242, 1) 100%
    ),
    url("../images/faq-hero.webp") center top / cover no-repeat;
  }

  .faq-hero__media::before {
    content: none;
  }

  .faq-hero__copy {
    position: absolute;
    left: 28px;
    right: 28px;
    top: auto;
    bottom: 38px;
    width: auto;
    margin: 0;
    transform: none;
    z-index: 1;
  }

  .faq-hero__copy h1 {
    margin: 0;
    font-family: "Klee One", cursive;
    font-size: 34px;
    font-weight: 600;
    line-height: 1.5;
  }

  .faq-hero__lead {
    margin: 0;
    color: #493f35;
    font-size: 17px;
    font-weight: 500;
    line-height: 1.8;
  
    margin-top: 12px;}

  .faq-introduction {
    padding: 65px 0 30px;
  }

  .faq-introduction__lead {
    font-size: 20px;
  }

  .faq-introduction__text {
    font-size: 16px;
  
    line-height: 1.9;}

  .faq-nav {
    padding: 0 0 65px;
  }

  .faq-nav__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .faq-nav__list a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;

    width: 100%;
    min-height: 55px;
    padding: 10px 6px;
    box-sizing: border-box;

    font-size: 13px;
    line-height: 1.5;
    text-align: center;
    white-space: nowrap;
  }

  .faq-content {
    padding-bottom: 80px;
  }

  .faq-group {
    margin-bottom: 65px;
  }

  .faq-group__heading {
    gap: 12px;
    margin-bottom: 20px;
  }

  .faq-group__heading h2 {
    font-size: 24px;
  }

  .faq-item__question {
    gap: 12px;
    min-height: 72px;
    padding: 18px 4px;
  }

  .faq-item__question-text {
    font-size: 16px;
  }

  .faq-item__answer {
    gap: 12px;
    padding: 0 25px 24px 4px;
  }

  .faq-item__answer p {
    font-size: 16px;
  
    line-height: 1.9;}

  .faq-contact {
    padding: 75px 20px 90px;
  }

  .faq-contact h2 {
    margin: 0 0 22px;
    font-family: var(--font-sans);
    font-size: 24px;
    font-weight: 500;
    line-height: 1.5;
  }

  .faq-contact p {
    margin: 0;
    font-size: 16px;
    line-height: 1.9;
  }

  /* スマホだけ改行する */
  @media (max-width: 767px) {
  .faq-sp-br {
    display: block;
  }
}
}
	
	/* ========================================
   STANDARD PAGE / プライバシーポリシー
======================================== */

.standard-page {
  padding: 90px 0 120px;
  background: var(--bg);
}

.standard-page__header,
.standard-page__content {
  max-width: 820px;
  margin-inline: auto;
}

.standard-page__header {
  margin-bottom: 64px;
}

.standard-page__header h1 {
  font-family: "Klee One", cursive;
  font-size: 40px;
  font-weight: 600;
  line-height: 1.5;
  color: #493f35;
}

.standard-page__label {
  margin-top: 6px;
  font-family: var(--font-en);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .12em;
  color: var(--accent-gold);
}

.standard-page__content {
  font-size: 16px;
  line-height: 2;
}

.standard-page__content p {
  margin: 0 0 20px;
  font-size: 16px;
  line-height: 2;
}

.standard-page__content h2 {
  margin: 54px 0 20px;
  font-size: 24px;
  font-weight: 600;
  line-height: 1.6;
}

.standard-page__content h3 {
  margin: 40px 0 16px;
  font-size: 20px;
  font-weight: 600;
  line-height: 1.6;
}

.standard-page__content ul,
.standard-page__content ol {
  margin: 16px 0 28px;
  padding-left: 1.5em;
}

.standard-page__content ul {
  list-style: disc !important;
  padding-left: 1.8em;
}

.standard-page__content ul.wp-block-list > li {
  display: list-item;
  list-style-type: disc;
}

.standard-page__content ol {
  list-style: decimal;
}

.standard-page__content li {
  margin-bottom: 8px;
  line-height: 1.9;
}

.standard-page__content a {
  color: var(--accent-gold-dark);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* スマートフォン */
@media (max-width: 767px) {

  .standard-page {
    padding: 60px 0 90px;
  }

  .standard-page__header {
    margin-bottom: 42px;
  }

  .standard-page__header h1 {
    font-size: 30px;
  }

  .standard-page__label {
    font-size: 12px;
  }

  .standard-page__content h2 {
    margin-top: 42px;
    font-size: 21px;
  }

  .standard-page__content p,
  .standard-page__content li {
    font-size: 15px;
  }
}