@charset "UTF-8";
/* =========================================================
   GOLF（LP）
   ========================================================= */
.page-golf {
  --g-brown: #42210b;
  --g-brown-light: #aa937b;
  --g-gray: #b9b7b3;
  --g-bg: #e6e6e6;
  --g-orange: #ff8300;
  --g-cta-h: 81px;
}
@media (max-width: 540px) {
  .page-golf { --g-cta-h: 69px; }
}

/* ヘッダー（LPは画面上部に重ねる） */
.page-golf .header-spacer { display: none; }
.site-header--dark { background: rgba(0, 0, 0, 0.81); }
.site-header--dark .site-header__logo,
.site-header--dark .gnav__link { color: var(--c-white); }
.site-header--dark .gnav__link { font-family: var(--f-serif); }
.site-header--dark .gnav__cta {
  background: var(--g-orange, #ff8300);
  font-family: var(--f-serif);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.2;
}
.site-header--dark .menu-btn span { background: var(--c-white); }
/* LPはナビ項目が多いため、狭いPC幅では間隔と文字を詰める */
@media (min-width: 841px) and (max-width: 1100px) {
  .site-header--dark .gnav { gap: 14px; }
  .site-header--dark .gnav__link { font-size: 13px; }
}
@media (max-width: 540px) {
  .page-golf { --header-h: 66px; }
  .site-header--dark .site-header__logo { padding-left: 0; font-size: 20px; }
}

/* 共通見出し */
.g-title {
  font-family: var(--f-serif);
  font-size: 30px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--g-brown);
  text-align: center;
}
.g-subtitle {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  font-family: var(--f-serif);
  font-size: 30px;
  font-weight: 600;
  line-height: 1.4;
  color: #000;
}
.g-subtitle::before,
.g-subtitle::after {
  content: "";
  width: 8px;
  height: 8px;
  background: var(--dot) center / contain no-repeat;
}
.g-subtitle.is-sans { font-family: var(--f-sans); font-size: 36px; gap: 10px; }
.g-subtitle.is-sans::before,
.g-subtitle.is-sans::after { width: 10px; height: 10px; }

/* 下線付き見出し（サービス・トレーナー・設備・FAQ・アクセス） */
.g-service .g-title,
.g-trainer .g-title,
.g-equip .g-title,
.g-faq .g-title,
.g-access .g-title {
  position: relative;
  max-width: 900px;
  margin: 0 auto;
  padding-bottom: 10px;
  font-weight: 600;
}
.g-service .g-title::after,
.g-trainer .g-title::after,
.g-equip .g-title::after,
.g-faq .g-title::after,
.g-access .g-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  border-radius: 100%;
  background: var(--g-brown);
}

/* CTAボタン（画像の上に文字） */
.g-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 350px;
  max-width: calc(100% - 40px);
  aspect-ratio: 1666 / 338;
  margin: 80px auto 0;
  background: center / contain no-repeat;
  color: var(--g-brown);
  font-family: var(--f-sans);
  font-size: 20px;
  font-weight: 600;
  transition: opacity .2s, transform .2s;
}
.g-cta:hover { opacity: .85; transform: translateY(-2px); }
.g-cta.is-image { aspect-ratio: auto; }
.g-cta.is-image img { width: 100%; }

/* ---------- ファーストビュー（PC：1920×1080／SP：幅750 のデザインを画面幅に合わせて縮尺） ---------- */
.g-fv {
  --fv-gold: #d5ba82;
  --fv-gold-hi: #e6c686;
  --fv-green: #187c49;
  --fv-green-hover: #006e3b;
  --fv-ink: #0b0d0c;
  --u: min(1px, calc(100vw / 1920));
  position: relative;
  display: flex;
  min-height: calc(1080 * var(--u));
  overflow: hidden;
  background: var(--fv-ink);
  color: #f3f1ea;
  font-family: var(--f-sans);
}
.g-fv__photo { position: absolute; top: 0; right: 0; bottom: 0; left: calc(520 * var(--u)); }
.g-fv__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 10% 50%; }
.g-fv__photo::before,
.g-fv__photo::after { content: ""; position: absolute; inset: 0; pointer-events: none; }
.g-fv__photo::before {
  background:
    linear-gradient(90deg, var(--fv-ink) 0%, rgba(11, 13, 12, .85) 12%, rgba(11, 13, 12, 0) 30%),
    linear-gradient(0deg, rgba(11, 13, 12, .75) 0%, rgba(11, 13, 12, 0) 28%);
}
.g-fv__photo::after { background: rgba(11, 13, 12, .15); }

.g-fv__body {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: calc(720 * var(--u));
  margin-left: calc(96 * var(--u));
  /* ヘッダー（固定）に重ならないよう上に余白。画面が低い場合は高さが伸びる */
  padding: calc(var(--header-h) + 16 * var(--u)) 0 calc(44 * var(--u));
}
.g-fv__en {
  display: flex;
  align-items: center;
  gap: calc(16 * var(--u));
  font-family: "Cormorant", serif;
  font-size: max(calc(22 * var(--u)), 11px);
  font-weight: 600;
  letter-spacing: .28em;
  color: var(--fv-gold);
}
.g-fv__en span { width: calc(48 * var(--u)); height: 1px; background: var(--fv-gold); }
.g-fv__title {
  margin-top: calc(36 * var(--u));
  font-family: "Shippori Mincho", serif;
  font-size: calc(92 * var(--u));
  font-weight: 700;
  line-height: 1.32;
  letter-spacing: .04em;
  text-shadow: 0 2px 24px rgba(0, 0, 0, .5);
}
.g-fv__title > span:not(.u-visually-hidden) { color: var(--fv-gold); }
.g-fv__badges { display: flex; gap: calc(20 * var(--u)); margin-top: calc(44 * var(--u)); }
.g-fv__badges li {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: calc(8 * var(--u));
  width: calc(212 * var(--u));
  aspect-ratio: 1;
  border: 1px solid rgba(213, 186, 130, .7);
  border-radius: 50%;
  background: rgba(11, 13, 12, .55);
  line-height: 1.2;
  white-space: nowrap;
}
.g-fv__badges span { font-size: max(calc(22 * var(--u)), 10px); font-weight: 500; letter-spacing: .08em; color: var(--fv-gold); }
.g-fv__badges strong { font-family: "Shippori Mincho", serif; font-size: calc(40 * var(--u)); font-weight: 700; letter-spacing: .04em; }
.g-fv__badges .is-small span { font-size: max(calc(18 * var(--u)), 9px); letter-spacing: .06em; }
.g-fv__badges .is-small strong { font-size: calc(28 * var(--u)); letter-spacing: 0; }

.g-fv__cta { display: flex; flex-direction: column; width: calc(680 * var(--u)); margin-top: calc(48 * var(--u)); }
.g-fv__campaign {
  display: grid;
  grid-template-columns: auto 1px 1fr;
  align-items: center;
  gap: calc(26 * var(--u));
  padding: calc(24 * var(--u)) calc(32 * var(--u));
  border: 1px solid rgba(213, 186, 130, .8);
  border-bottom: 0;
  background: rgba(11, 13, 12, .72);
}
.g-fv__campaign-name { display: flex; flex-direction: column; gap: calc(6 * var(--u)); font-size: max(calc(19 * var(--u)), 10px); font-weight: 700; letter-spacing: .14em; white-space: nowrap; }
.g-fv__campaign-name span { font-family: "Cormorant", serif; font-size: max(calc(16 * var(--u)), 9px); font-weight: 600; letter-spacing: .3em; color: var(--fv-gold); }
.g-fv__campaign-line { width: 1px; height: calc(64 * var(--u)); background: rgba(213, 186, 130, .6); }
.g-fv__campaign-offer { display: flex; align-items: baseline; gap: calc(10 * var(--u)); white-space: nowrap; }
.g-fv__campaign-offer span { font-size: max(calc(20 * var(--u)), 10px); font-weight: 500; letter-spacing: .08em; }
.g-fv__campaign-offer strong { font-family: "Shippori Mincho", serif; font-size: calc(46 * var(--u)); font-weight: 700; line-height: 1; letter-spacing: .04em; color: var(--fv-gold-hi); }
.g-fv__campaign-note {
  grid-column: 1 / -1;
  margin-top: calc(-8 * var(--u));
  padding-top: calc(14 * var(--u));
  border-top: 1px solid rgba(213, 186, 130, .3);
  font-size: max(calc(17 * var(--u)), 11px);
  font-weight: 500;
  letter-spacing: .08em;
  color: var(--fv-gold);
}
.g-fv__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: calc(96 * var(--u));
  padding: 0 calc(36 * var(--u)) 0 calc(44 * var(--u));
  background: var(--fv-green);
  box-shadow: 0 12px 32px rgba(0, 0, 0, .35);
  color: #fff;
  font-size: calc(26 * var(--u));
  font-weight: 700;
  letter-spacing: .1em;
  transition: background-color .2s;
}
.g-fv__btn:hover { background: var(--fv-green-hover); color: #fff; }
.g-fv__btn span { font-family: "Cormorant", serif; font-size: calc(36 * var(--u)); font-weight: 500; }

/* SP・タブレット：幅750のデザインを基準に縮尺 */
@media (max-width: 840px) {
  .g-fv { --u: min(calc(100vw / 750), .8px); display: block; min-height: 0; padding-bottom: calc(64 * var(--u)); }
  .g-fv__photo { position: relative; left: auto; height: calc(800 * var(--u)); }
  .g-fv__photo img { object-position: 40% 40%; }
  .g-fv__photo::before { background: linear-gradient(0deg, var(--fv-ink) 0%, rgba(11, 13, 12, .85) 22%, rgba(11, 13, 12, 0) 50%); }
  .g-fv__photo::after { background: rgba(11, 13, 12, .1); }
  .g-fv__body { width: auto; max-width: calc(750 * var(--u)); margin: calc(-300 * var(--u)) auto 0; padding: 0 calc(48 * var(--u)); }
  .g-fv__en { gap: calc(14 * var(--u)); font-size: max(calc(24 * var(--u)), 11px); letter-spacing: .26em; }
  .g-fv__en span { width: calc(44 * var(--u)); }
  .g-fv__title { margin-top: calc(24 * var(--u)); font-size: calc(80 * var(--u)); line-height: 1.3; letter-spacing: .03em; text-shadow: 0 2px 24px rgba(0, 0, 0, .6); }
  .g-fv__badges { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(16 * var(--u)); margin-top: calc(40 * var(--u)); }
  .g-fv__badges li { width: auto; gap: calc(6 * var(--u)); }
  .g-fv__badges .is-small span { font-size: max(calc(19 * var(--u)), 9px); letter-spacing: .02em; }
  .g-fv__badges .is-small strong { font-size: calc(27 * var(--u)); }
  .g-fv__cta { width: auto; margin-top: calc(44 * var(--u)); }
  .g-fv__campaign { gap: calc(24 * var(--u)); padding: calc(26 * var(--u)) calc(28 * var(--u)); }
  .g-fv__campaign-name { font-size: max(calc(21 * var(--u)), 10px); letter-spacing: .1em; }
  .g-fv__campaign-name span { font-size: max(calc(17 * var(--u)), 9px); letter-spacing: .24em; }
  .g-fv__campaign-line { height: calc(68 * var(--u)); }
  .g-fv__campaign-offer { flex-direction: column; align-items: flex-start; gap: calc(6 * var(--u)); }
  .g-fv__campaign-offer span { font-size: max(calc(21 * var(--u)), 10px); }
  .g-fv__campaign-offer strong { font-size: calc(50 * var(--u)); }
  .g-fv__campaign-note { margin-top: 0; font-size: max(calc(20 * var(--u)), 11px); letter-spacing: .04em; }
  .g-fv__btn { height: calc(112 * var(--u)); padding: 0 calc(40 * var(--u)) 0 calc(48 * var(--u)); font-size: calc(32 * var(--u)); letter-spacing: .08em; }
  .g-fv__btn span { font-size: calc(44 * var(--u)); }
}

/* ---------- ポイント（PC：1920px／SP：750px のデザインを画面幅に合わせて縮尺） ---------- */
.g-pt {
  --pt-gold: #d5ba82;
  --pt-gold-hi: #e6c686;
  --pt-ink: #0b0d0c;
  --pt-panel: #121514;
  --pt-rule: rgba(213, 186, 130, .25);
  --u: min(1px, calc(100vw / 1920));
  position: relative;
  padding: calc(160 * var(--u)) calc(160 * var(--u)) calc(120 * var(--u));
  background: var(--pt-ink);
  color: #f3f1ea;
  font-family: var(--f-sans);
}
.g-pt::before { content: ""; position: absolute; left: calc(160 * var(--u)); right: calc(160 * var(--u)); top: 0; height: 1px; background: var(--pt-rule); }
.g-pt__head { display: flex; flex-direction: column; align-items: center; gap: calc(28 * var(--u)); text-align: center; }
.g-pt__en { display: flex; align-items: center; gap: calc(20 * var(--u)); font-family: "Cormorant", serif; font-size: max(calc(24 * var(--u)), 11px); font-weight: 600; letter-spacing: .32em; color: var(--pt-gold); }
.g-pt__en span { width: calc(56 * var(--u)); height: 1px; background: var(--pt-gold); }
.g-pt__title { font-family: "Shippori Mincho", serif; font-size: calc(60 * var(--u)); font-weight: 700; line-height: 1.4; letter-spacing: .06em; }
.g-pt__title span { display: inline-block; }   /* 改行は読点の後だけで起きるように */
.g-pt__list { display: flex; flex-direction: column; max-width: 1600px; margin: calc(120 * var(--u)) auto 0; }

.g-pt-item {
  display: grid;
  grid-template-columns: calc(880 * var(--u)) minmax(0, 1fr);
  align-items: center;
  gap: calc(112 * var(--u));
  padding: calc(96 * var(--u)) 0;
  border-top: 1px solid var(--pt-rule);
}
.g-pt-item.is-reverse { grid-template-columns: minmax(0, 1fr) calc(880 * var(--u)); }
.g-pt-item.is-reverse .g-pt-item__media { order: 2; }
.g-pt-item.is-last { border-bottom: 1px solid var(--pt-rule); }
.g-pt-item.is-after-key { border-top: 0; }
.g-pt-item__media { min-width: 0; }
.g-pt-photo { position: relative; aspect-ratio: 3 / 2; background: #1a1d1c; }
.g-pt-photo img,
.g-pt-trainers img { display: block; width: 100%; height: 100%; object-fit: cover; }
.g-pt-trainers { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: calc(16 * var(--u)); }
.g-pt-trainers li { aspect-ratio: 2 / 3; background: #1a1d1c; }
.g-pt-trainers li:nth-child(even) { margin-top: calc(48 * var(--u)); }
.g-pt-item__body { display: flex; flex-direction: column; }
.g-pt-item__num { display: flex; align-items: flex-end; gap: calc(20 * var(--u)); font-family: "Shippori Mincho", serif; font-size: calc(150 * var(--u)); font-weight: 700; line-height: .8; color: var(--pt-gold); }
.g-pt-item__num span { font-family: "Cormorant", serif; font-size: max(calc(22 * var(--u)), 10px); font-weight: 600; line-height: 1; letter-spacing: .3em; }
.g-pt-item__title { margin-top: calc(48 * var(--u)); font-family: "Shippori Mincho", serif; font-size: calc(40 * var(--u)); font-weight: 700; line-height: 1.5; letter-spacing: .04em; text-wrap: pretty; }
.g-pt-item__rule { display: block; width: calc(64 * var(--u)); height: 1px; margin-top: calc(32 * var(--u)); background: var(--pt-gold); }
.g-pt-item__text { margin-top: calc(32 * var(--u)); font-size: max(calc(19 * var(--u)), 14px); line-height: 2.1; letter-spacing: .05em; text-wrap: pretty; }
.g-pt-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  align-self: flex-start;
  width: calc(360 * var(--u));
  min-width: 240px;
  height: max(calc(72 * var(--u)), 48px);
  margin-top: calc(48 * var(--u));
  padding: 0 calc(28 * var(--u)) 0 calc(36 * var(--u));
  border: 1px solid var(--pt-gold);
  color: var(--pt-gold);
  font-size: max(calc(19 * var(--u)), 14px);
  font-weight: 700;
  letter-spacing: .1em;
  transition: background-color .2s, color .2s;
}
.g-pt-btn:hover { background: var(--pt-gold); color: var(--pt-ink); }
.g-pt-btn span { font-family: "Cormorant", serif; font-size: max(calc(30 * var(--u)), 20px); font-weight: 500; }

/* 02 KEY POINT（いちばんの差別化ポイント） */
.g-pt-item.is-key {
  position: relative;
  grid-template-columns: minmax(0, 1fr) calc(960 * var(--u));
  gap: calc(96 * var(--u));
  margin: calc(48 * var(--u)) calc(-64 * var(--u));
  padding: calc(96 * var(--u)) calc(64 * var(--u)) calc(112 * var(--u));
  border: 1px solid var(--pt-gold);
  background: var(--pt-panel);
}
.g-pt-item__key { position: absolute; top: calc(-15 * var(--u)); left: calc(64 * var(--u)); padding: 0 calc(16 * var(--u)); background: var(--pt-ink); font-family: "Cormorant", serif; font-size: max(calc(22 * var(--u)), 11px); font-weight: 600; line-height: 1.4; letter-spacing: .3em; color: var(--pt-gold-hi); }
.g-pt-item.is-key .g-pt-item__media { position: relative; padding-bottom: calc(72 * var(--u)); }
.g-pt-photo.is-sub { position: absolute; left: calc(-48 * var(--u)); bottom: 0; width: calc(340 * var(--u)); aspect-ratio: 4 / 3; border: 1px solid var(--pt-gold); outline: calc(10 * var(--u)) solid var(--pt-panel); background: #f4f4f4; }
.g-pt-photo.is-sub img { object-fit: contain; padding: calc(12 * var(--u)); }
.g-pt-item.is-key .g-pt-item__num { font-size: calc(170 * var(--u)); color: var(--pt-gold-hi); }
.g-pt-item.is-key .g-pt-item__title { font-size: calc(44 * var(--u)); }
.g-pt-item.is-key .g-pt-item__rule { background: var(--pt-gold-hi); }

/* SP・タブレット：幅750のデザインを基準に縮尺 */
@media (max-width: 840px) {
  .g-pt { --u: min(calc(100vw / 750), .8px); padding: calc(128 * var(--u)) calc(48 * var(--u)) calc(96 * var(--u)); }
  .g-pt::before { left: calc(48 * var(--u)); right: calc(48 * var(--u)); }
  .g-pt__head { gap: calc(24 * var(--u)); }
  .g-pt__en { gap: calc(16 * var(--u)); font-size: max(calc(26 * var(--u)), 11px); letter-spacing: .28em; }
  .g-pt__en span { width: calc(40 * var(--u)); }
  .g-pt__title { font-size: calc(52 * var(--u)); line-height: 1.45; letter-spacing: .04em; }
  .g-pt__list { max-width: calc(654 * var(--u)); margin-top: calc(88 * var(--u)); }
  .g-pt-item,
  .g-pt-item.is-reverse { display: flex; flex-direction: column; align-items: stretch; gap: 0; padding: calc(80 * var(--u)) 0; }
  .g-pt-item.is-reverse .g-pt-item__media { order: 0; }
  .g-pt-trainers { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(14 * var(--u)); }
  .g-pt-trainers li { aspect-ratio: 4 / 5; }
  .g-pt-trainers li:nth-child(even) { margin-top: 0; }
  .g-pt-item__body { margin-top: calc(56 * var(--u)); }
  .g-pt-item__num { gap: calc(18 * var(--u)); font-size: calc(130 * var(--u)); }
  .g-pt-item__num span { font-size: max(calc(24 * var(--u)), 10px); }
  .g-pt-item__title { margin-top: calc(40 * var(--u)); font-size: calc(44 * var(--u)); letter-spacing: .03em; }
  .g-pt-item__rule { width: calc(56 * var(--u)); margin-top: calc(28 * var(--u)); }
  .g-pt-item__text { margin-top: calc(28 * var(--u)); font-size: max(calc(28 * var(--u)), 14px); line-height: 1.9; letter-spacing: .04em; }
  .g-pt-btn { align-self: stretch; width: auto; min-width: 0; height: max(calc(104 * var(--u)), 48px); padding: 0 calc(36 * var(--u)) 0 calc(44 * var(--u)); font-size: max(calc(30 * var(--u)), 15px); }
  .g-pt-btn span { font-size: max(calc(42 * var(--u)), 20px); }
  .g-pt-item.is-key { margin: calc(40 * var(--u)) calc(-24 * var(--u)); padding: calc(72 * var(--u)) calc(24 * var(--u)) calc(80 * var(--u)); }
  .g-pt-item__key { top: calc(-17 * var(--u)); left: calc(24 * var(--u)); padding: 0 calc(14 * var(--u)); font-size: max(calc(24 * var(--u)), 11px); }
  .g-pt-item.is-key .g-pt-item__media { padding-bottom: calc(120 * var(--u)); }
  .g-pt-photo.is-sub { left: auto; right: 0; width: calc(300 * var(--u)); outline-width: calc(8 * var(--u)); }
  .g-pt-item.is-key .g-pt-item__num { font-size: calc(150 * var(--u)); }
  .g-pt-item.is-key .g-pt-item__title { font-size: calc(46 * var(--u)); }
}

/* ---------- 料金プラン（PC：1920px／SP：750px のデザインを画面幅に合わせて縮尺） ---------- */
.g-pr { --black: #0b0d0c; --panel: #121514; --gold: #d5ba82; --gold-strong: #e6c686; --text: #f3f1ea; --rule: rgba(213, 186, 130, .25); --mincho: "Shippori Mincho", serif; --en: "Cormorant", serif; --sans: var(--f-sans); }
.g-pr__en { display: flex; align-items: center; gap: calc(20 * var(--u)); font-family: var(--en); font-size: max(calc(24 * var(--u)), 11px); font-weight: 600; letter-spacing: .32em; color: var(--gold); white-space: nowrap; }
.g-pr__en span { display: block; width: calc(56 * var(--u)); height: 1px; background: var(--gold); }
.g-pr h3, .g-pr h4, .g-pr p { margin: 0; }
.g-pr table th { font-weight: 700; }
.g-pr{--u:min(1px, calc(100vw / 1920));position:relative;background:var(--black);color:var(--text);font-family:var(--sans);padding:calc(120 * var(--u)) calc(160 * var(--u))}
.g-pr::before{content:"";position:absolute;left:calc(160 * var(--u));right:calc(160 * var(--u));top:0;height:1px;background:var(--rule)}
.g-pr__head{display:flex;flex-direction:column;align-items:center;gap:calc(20 * var(--u));text-align:center}
.g-pr__title{font-family:var(--mincho);font-weight:700;font-size:calc(60 * var(--u));line-height:1.4;letter-spacing:.06em}
.g-pr__tax{font-size:max(calc(18 * var(--u)), 12px);letter-spacing:.08em;color:var(--gold)}
.g-pr__inner{max-width:calc(1440 * var(--u));margin:calc(72 * var(--u)) auto 0;display:flex;flex-direction:column}
.g-pr-nobr{display:inline-block}
.g-pr-price{font-family:var(--mincho);font-weight:700;line-height:1;white-space:nowrap}
.g-pr-price__yen{font-family:var(--sans);margin-left:calc(4 * var(--u));font-size:.6em}
.g-pr-price.is-gold,.is-unit .g-pr-price{color:var(--gold-strong)}
.g-pr-price--lg{font-size:calc(81 * var(--u))}.g-pr-price--lg .g-pr-price__yen{font-size:calc(29 * var(--u))}
.g-pr-price--xl{font-size:calc(134 * var(--u));color:var(--gold-strong)}.g-pr-price--xl .g-pr-price__yen{font-size:calc(40 * var(--u));margin-left:calc(6 * var(--u))}
.g-pr-price--md{font-size:calc(45 * var(--u))}.g-pr-price--md .g-pr-price__yen{font-size:max(calc(22 * var(--u)), 12px)}

.g-pr-basic{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(24 * var(--u));align-items:stretch}
.g-pr-basic__card{display:flex;flex-direction:column;background:var(--panel);border:1px solid rgba(213,186,130,.35)}
.g-pr-basic__row{flex:1;display:flex;align-items:center;justify-content:space-between;gap:calc(18 * var(--u));padding:calc(33 * var(--u)) calc(42 * var(--u))}
.g-pr-basic__name{font-size:max(calc(27 * var(--u)), 14px);font-weight:700;letter-spacing:.1em}
.g-pr-basic__sub{font-size:max(calc(21 * var(--u)), 12px);font-weight:500;margin-left:calc(6 * var(--u))}
.g-pr-campaign{display:flex;align-items:center;justify-content:center;gap:calc(9 * var(--u));padding:calc(14 * var(--u)) calc(18 * var(--u));background:var(--gold-strong);color:var(--black);font-weight:700;letter-spacing:.06em;white-space:nowrap}
.g-pr-campaign__limit{font-size:max(calc(21 * var(--u)), 12px)}
.g-pr-campaign__text{font-family:var(--mincho);font-size:calc(31 * var(--u));line-height:1.3}
.g-pr-campaign.is-hidden{display:none}

.g-pr-cat{margin-top:calc(96 * var(--u));display:flex;align-items:flex-end;gap:calc(21 * var(--u));padding-bottom:calc(21 * var(--u));border-bottom:1px solid rgba(213,186,130,.35)}
.g-pr-cat__en{padding-bottom:calc(6 * var(--u));font-family:var(--en);font-size:max(calc(27 * var(--u)), 14px);font-weight:600;letter-spacing:.3em;color:var(--gold)}
.g-pr-cat__title{font-family:var(--mincho);font-weight:700;font-size:calc(54 * var(--u));line-height:1.3;letter-spacing:.05em}
.g-pr-cat__title span{font-family:var(--sans);font-size:max(calc(27 * var(--u)), 14px);font-weight:500;margin-left:calc(8 * var(--u))}

.g-pr-sub{margin-top:calc(48 * var(--u));display:flex;align-items:baseline;gap:calc(12 * var(--u))}
.g-pr-sub--ticket{margin-top:calc(66 * var(--u))}
.g-pr-sub__title{font-family:var(--mincho);font-weight:700;font-size:calc(34 * var(--u));letter-spacing:.06em;color:var(--gold-strong)}
.g-pr-sub__title--lg{font-size:calc(40 * var(--u))}
.g-pr-sub__note{font-size:max(calc(21 * var(--u)), 12px);font-weight:500;letter-spacing:.06em}

.g-pr-cards{margin-top:calc(24 * var(--u));display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(24 * var(--u))}
.g-pr-card{position:relative;display:flex;flex-direction:column;padding:calc(48 * var(--u)) calc(48 * var(--u)) calc(42 * var(--u));background:var(--panel);border:1px solid rgba(213,186,130,.5)}
.g-pr-card--rec{border:2px solid var(--gold-strong)}
.g-pr-card__badge{position:absolute;left:calc(64 * var(--u));top:0;transform:translateY(-50%);padding:calc(8 * var(--u)) calc(20 * var(--u));background:var(--gold-strong);color:var(--black);font-size:max(calc(22 * var(--u)), 12px);font-weight:700;letter-spacing:.16em}
.g-pr-card__head{display:flex;align-items:baseline;justify-content:space-between}
.g-pr-card__name{font-family:var(--mincho);font-weight:700;font-size:calc(49 * var(--u));letter-spacing:.04em}
.g-pr-card__count{font-size:max(calc(27 * var(--u)), 14px);font-weight:700;letter-spacing:.1em;color:var(--gold)}
.g-pr-card__unit{margin-top:calc(33 * var(--u));display:flex;flex-direction:column;align-items:flex-end;gap:calc(6 * var(--u))}
.g-pr-card__label{font-size:max(calc(22 * var(--u)), 12px);font-weight:700;letter-spacing:.12em;color:var(--gold)}
.g-pr-card__month{margin-top:calc(27 * var(--u));padding-top:calc(28 * var(--u));border-top:1px solid rgba(213,186,130,.3);display:flex;align-items:baseline;justify-content:space-between;font-size:max(calc(22 * var(--u)), 12px);font-weight:500;letter-spacing:.1em}
.g-pr-note{margin-top:calc(18 * var(--u));font-size:max(calc(20 * var(--u)), 12px);letter-spacing:.05em}

.g-pr-table{margin-top:calc(18 * var(--u));width:100%;border-collapse:collapse;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold)}
.g-pr-table th,.g-pr-table td{padding:calc(20 * var(--u)) calc(36 * var(--u));text-align:right;vertical-align:baseline;border-top:1px solid rgba(213,186,130,.2)}
.g-pr-table th:first-child{text-align:left}
.g-pr-table thead th{padding:calc(14 * var(--u)) calc(36 * var(--u));background:var(--panel);border-top:none;font-size:max(calc(20 * var(--u)), 12px);font-weight:700;letter-spacing:.12em;color:var(--gold)}
.g-pr-table tbody th{font-size:max(calc(27 * var(--u)), 14px);font-weight:700;letter-spacing:.08em}
.g-pr-table td .g-pr-price{font-size:calc(34 * var(--u))}
.g-pr-table td .g-pr-price__yen{font-size:max(calc(20 * var(--u)), 12px)}
.g-pr-table td.is-unit .g-pr-price{font-size:calc(49 * var(--u))}
.g-pr-table td.is-unit .g-pr-price__yen{font-size:max(calc(22 * var(--u)), 12px)}

.g-pr-option{margin-top:calc(96 * var(--u));display:grid;grid-template-columns:calc(420 * var(--u)) minmax(0,1fr);gap:calc(54 * var(--u));padding:calc(42 * var(--u));border:1px solid rgba(213,186,130,.35)}
.g-pr-option__info{display:flex;flex-direction:column;gap:calc(15 * var(--u))}
.g-pr-option__en{font-family:var(--en);font-size:max(calc(22 * var(--u)), 12px);font-weight:600;letter-spacing:.3em;color:var(--gold)}
.g-pr-option__title{font-family:var(--mincho);font-weight:700;font-size:calc(38 * var(--u));line-height:1.4;letter-spacing:.05em}
.g-pr-option__meta{font-size:max(calc(20 * var(--u)), 12px);font-weight:500;letter-spacing:.05em;color:var(--gold)}
.g-pr-option__text{margin-top:calc(6 * var(--u));font-size:max(calc(20 * var(--u)), 12px);line-height:1.9;letter-spacing:.05em}
.g-pr-table--sm{margin-top:0;border:none}
.g-pr-table--sm thead th{padding:0 calc(6 * var(--u)) calc(11 * var(--u));background:none;border-bottom:1px solid rgba(213,186,130,.5)}
.g-pr-table--sm th,.g-pr-table--sm td{padding:calc(15 * var(--u)) calc(6 * var(--u))}
.g-pr-table--sm tbody tr:first-child>*{border-top:none}
.g-pr-table--sm tbody th{font-size:max(calc(22 * var(--u)), 12px)}
.g-pr-table--sm td .g-pr-price{font-size:max(calc(27 * var(--u)), 14px)}
.g-pr-table--sm td .g-pr-price__yen{font-size:max(calc(20 * var(--u)), 12px)}
.g-pr-table--sm td.is-unit .g-pr-price{font-size:calc(34 * var(--u))}
.g-pr-table--sm td.is-unit .g-pr-price__yen{font-size:max(calc(20 * var(--u)), 12px)}
@media (max-width: 840px) {
  .g-pr { --u: min(calc(100vw / 750), .8px); }
  .g-pr__inner { max-width: calc(654 * var(--u)); }
  .g-pr__en { gap: calc(16 * var(--u)); font-size: max(calc(26 * var(--u)), 11px); letter-spacing: .28em; }
  .g-pr__en span { width: calc(40 * var(--u)); }
.g-pr{padding:calc(96 * var(--u)) calc(48 * var(--u)) calc(88 * var(--u))}
.g-pr::before{left:calc(48 * var(--u));right:calc(48 * var(--u))}
.g-pr__head{gap:calc(18 * var(--u))}
.g-pr__title{font-size:calc(52 * var(--u));line-height:1.45;letter-spacing:.04em}
.g-pr__tax{font-size:calc(24 * var(--u));letter-spacing:.06em}
.g-pr__inner{margin-top:calc(60 * var(--u))}
.g-pr-price__yen{margin-left:calc(2 * var(--u))}
.g-pr-price--lg{font-size:calc(81 * var(--u))}.g-pr-price--lg .g-pr-price__yen{font-size:calc(31 * var(--u))}
.g-pr-price--xl{font-size:calc(112 * var(--u))}.g-pr-price--xl .g-pr-price__yen{font-size:calc(40 * var(--u));margin-left:calc(6 * var(--u))}
.g-pr-price--md{font-size:calc(49 * var(--u))}.g-pr-price--md .g-pr-price__yen{font-size:calc(31 * var(--u))}
.g-pr-basic{grid-template-columns:1fr;gap:calc(18 * var(--u))}
.g-pr-basic__row{gap:calc(12 * var(--u));padding:calc(27 * var(--u)) calc(30 * var(--u))}
.g-pr-basic__name{display:flex;flex-direction:column;gap:calc(2 * var(--u));font-size:calc(34 * var(--u));letter-spacing:.06em}
.g-pr-basic__sub{font-size:calc(31 * var(--u));margin-left:0}
.g-pr-campaign{flex-direction:column;gap:calc(3 * var(--u));padding:calc(17 * var(--u)) calc(15 * var(--u));letter-spacing:.04em;text-align:center;white-space:normal}
.g-pr-campaign__limit{font-size:calc(31 * var(--u))}
.g-pr-campaign__text{font-size:calc(45 * var(--u))}
.g-pr-cat{margin-top:calc(84 * var(--u));flex-direction:column;align-items:flex-start;gap:calc(9 * var(--u));padding-bottom:calc(18 * var(--u))}
.g-pr-cat__en{padding-bottom:0}
.g-pr-cat__title{font-size:calc(54 * var(--u));letter-spacing:.04em}
.g-pr-cat__title span{font-size:calc(31 * var(--u))}
.g-pr-sub{margin-top:calc(42 * var(--u));gap:calc(9 * var(--u))}
.g-pr-sub--ticket{margin-top:calc(60 * var(--u))}
.g-pr-sub__title{font-size:calc(40 * var(--u))}
.g-pr-sub__title--lg{font-size:calc(45 * var(--u))}
.g-pr-sub__note{font-size:calc(31 * var(--u));letter-spacing:0}
.g-pr-cards{margin-top:calc(33 * var(--u));grid-template-columns:1fr;gap:calc(33 * var(--u))}
.g-pr-card{padding:calc(36 * var(--u)) calc(33 * var(--u)) calc(30 * var(--u))}
.g-pr-card--rec{padding-top:calc(45 * var(--u))}
.g-pr-card__badge{left:calc(44 * var(--u));font-size:calc(31 * var(--u));letter-spacing:.14em}
.g-pr-card__name{font-size:calc(54 * var(--u))}
.g-pr-card__count{font-size:calc(34 * var(--u));letter-spacing:.08em}
.g-pr-card__unit{margin-top:calc(24 * var(--u));flex-direction:row;align-items:baseline;justify-content:space-between;gap:calc(12 * var(--u))}
.g-pr-card__label{font-size:calc(31 * var(--u));letter-spacing:.08em}
.g-pr-card__month{margin-top:calc(24 * var(--u));padding-top:calc(24 * var(--u));font-size:calc(31 * var(--u));letter-spacing:.08em}
.g-pr-note{font-size:calc(28 * var(--u));line-height:1.7;letter-spacing:0}
.g-pr-table th,.g-pr-table td{padding:calc(18 * var(--u)) calc(15 * var(--u))}
.g-pr-table th:first-child{width:calc(150 * var(--u))}
.g-pr-table thead th{padding:calc(12 * var(--u)) calc(15 * var(--u));font-size:calc(27 * var(--u));letter-spacing:.06em}
.g-pr-table tbody th{font-size:calc(34 * var(--u));letter-spacing:0}
.g-pr-table td .g-pr-price{font-size:calc(38 * var(--u))}
.g-pr-table td .g-pr-price__yen{font-size:calc(27 * var(--u))}
.g-pr-table td.is-unit .g-pr-price{font-size:calc(49 * var(--u))}
.g-pr-table td.is-unit .g-pr-price__yen{font-size:calc(27 * var(--u))}
.g-pr-option{margin-top:calc(84 * var(--u));display:flex;flex-direction:column;gap:calc(24 * var(--u));padding:calc(33 * var(--u)) calc(27 * var(--u)) calc(27 * var(--u))}
.g-pr-option__info{gap:0}
.g-pr-option__en{font-size:calc(25 * var(--u))}
.g-pr-option__title{margin-top:calc(9 * var(--u));font-size:calc(45 * var(--u))}
.g-pr-option__meta{margin-top:calc(6 * var(--u));font-size:calc(31 * var(--u));letter-spacing:0}
.g-pr-option__text{margin-top:calc(15 * var(--u));font-size:calc(31 * var(--u));line-height:1.8;letter-spacing:0}
.g-pr-table--sm th:first-child{width:calc(140 * var(--u))}
.g-pr-table--sm thead th{padding:0 calc(3 * var(--u)) calc(9 * var(--u));font-size:calc(27 * var(--u))}
.g-pr-table--sm th,.g-pr-table--sm td{padding:calc(15 * var(--u)) calc(3 * var(--u))}
.g-pr-table--sm tbody th{font-size:calc(31 * var(--u))}
.g-pr-table--sm td .g-pr-price{font-size:calc(34 * var(--u))}
.g-pr-table--sm td .g-pr-price__yen{font-size:calc(25 * var(--u))}
.g-pr-table--sm td.is-unit .g-pr-price{font-size:calc(40 * var(--u))}
.g-pr-table--sm td.is-unit .g-pr-price__yen{font-size:calc(25 * var(--u))}
}

/* ---------- 料金プラン：明るい背景＋サブスク・回数券の並列比較 ---------- */
.g-pr.is-light{--panel:#fff;--gold:#8a6a2e;--gold-strong:#8a6420;--rule:rgba(138,106,46,.25);--text:#1a1c1b;background:#f3f1ea;color:#1a1c1b}
.g-pr.is-light .g-pr-basic__card,.g-pr.is-light .g-pr-option{border-color:rgba(138,106,46,.35)}
.g-pr.is-light .g-pr-campaign{background:#0b0d0c;color:#e6c686}
.g-pr.is-light .g-pr-cat{border-bottom-color:rgba(138,106,46,.35)}
.g-pr.is-light .g-pr-table th,.g-pr.is-light .g-pr-table td{border-top-color:rgba(138,106,46,.2)}
.g-pr.is-light .g-pr-table--sm thead th{border-bottom-color:rgba(138,106,46,.5)}

.g-pr-compare{margin-top:calc(48 * var(--u));display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(32 * var(--u));align-items:start}
.g-pr-plan{display:flex;flex-direction:column}
.g-pr-plan .g-pr-sub{margin:0 0 calc(18 * var(--u))}
.g-pr-plan .g-pr-sub__title{font-size:calc(36 * var(--u))}
.g-pr-plan .g-pr-sub__note{font-size:max(calc(20 * var(--u)), 12px)}
.g-pr-plist{display:flex;flex-direction:column;background:var(--panel);border:1px solid rgba(138,106,46,.5)}
.g-pr-plan.is-sub .g-pr-plist{border:2px solid var(--gold-strong)}
.g-pr-plist__head,.g-pr-prow{display:grid;grid-template-columns:minmax(0,1fr) calc(170 * var(--u)) calc(200 * var(--u));gap:calc(16 * var(--u));padding:0 calc(32 * var(--u))}
.g-pr-plist__head{padding-top:calc(14 * var(--u));padding-bottom:calc(14 * var(--u));border-bottom:1px solid rgba(138,106,46,.5);font-size:max(calc(19 * var(--u)), 12px);font-weight:700;letter-spacing:.1em;color:var(--gold)}
.g-pr-plist__head span:not(:first-child){text-align:right}
.g-pr-prow{position:relative;align-items:center;min-height:calc(116 * var(--u));border-bottom:1px solid rgba(138,106,46,.2)}
.g-pr-prow:last-child{border-bottom:none}
.g-pr-prow.is-rec{background:#f7f1e3}
.g-pr-prow__name{display:flex;flex-direction:column;gap:calc(4 * var(--u));white-space:nowrap}
.g-pr-prow__title{font-family:var(--mincho);font-weight:700;font-size:max(calc(30 * var(--u)), 15px);line-height:1.2}
.g-pr-prow__meta{display:flex;align-items:center;gap:calc(10 * var(--u))}
.g-pr-prow__count{font-size:max(calc(18 * var(--u)), 12px);font-weight:700;color:var(--gold)}
.g-pr-prow__badge{padding:calc(2 * var(--u)) calc(10 * var(--u));background:#0b0d0c;color:#e6c686;font-size:max(calc(16 * var(--u)), 11px);font-weight:700;letter-spacing:.1em;line-height:1.5}
.g-pr-prow__price,.g-pr-prow__unit{text-align:right}
.g-pr-prow__label{display:none}
.g-pr-price--row{font-size:calc(32 * var(--u))}.g-pr-price--row .g-pr-price__yen{font-size:max(calc(18 * var(--u)), 11px)}
.g-pr-price--unit{font-size:calc(50 * var(--u));color:var(--gold-strong)}.g-pr-price--unit .g-pr-price__yen{font-size:max(calc(22 * var(--u)), 12px)}
.g-pr-plan .g-pr-note{margin-top:calc(16 * var(--u));font-size:max(calc(18 * var(--u)), 12px)}
@media (max-width: 840px) {
  .g-pr-compare{margin-top:calc(42 * var(--u));display:flex;flex-direction:column;align-items:stretch;gap:calc(60 * var(--u))}
  .g-pr-plan .g-pr-sub{margin-bottom:calc(18 * var(--u))}
  .g-pr-plan.is-sub .g-pr-sub{margin-bottom:calc(36 * var(--u))}
  .g-pr-plan .g-pr-sub__title{font-size:calc(45 * var(--u))}
  .g-pr-plan.is-ticket .g-pr-sub__title{font-size:calc(40 * var(--u))}
  .g-pr-plan .g-pr-sub__note{font-size:calc(31 * var(--u))}
  /* サブスク：2枚のカードを横並び */
  .g-pr-plan.is-sub .g-pr-plist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:calc(16 * var(--u));background:none;border:none}
  .g-pr-plan.is-sub .g-pr-plist__head{display:none}
  .g-pr-plan.is-sub .g-pr-prow{min-height:0;display:flex;flex-direction:column;align-items:center;gap:0;padding:calc(40 * var(--u)) calc(16 * var(--u)) calc(24 * var(--u));text-align:center;background:var(--panel);border:1px solid rgba(138,106,46,.5)}
  .g-pr-plan.is-sub .g-pr-prow.is-rec{border:2px solid var(--gold-strong)}
  .g-pr-plan.is-sub .g-pr-prow__name{align-items:center;gap:calc(4 * var(--u))}
  .g-pr-plan.is-sub .g-pr-prow__title{font-size:calc(40 * var(--u));letter-spacing:.02em}
  .g-pr-plan.is-sub .g-pr-prow__count{font-size:calc(28 * var(--u))}
  .g-pr-plan.is-sub .g-pr-prow__badge{position:absolute;left:50%;top:0;transform:translate(-50%,-50%);padding:calc(6 * var(--u)) calc(18 * var(--u));font-size:calc(24 * var(--u));letter-spacing:.12em;white-space:nowrap}
  .g-pr-plan.is-sub .g-pr-prow__unit{order:2;margin-top:calc(16 * var(--u));display:flex;flex-direction:column;align-items:center;gap:calc(4 * var(--u));text-align:center}
  .g-pr-plan.is-sub .g-pr-prow__price{order:3;width:100%;margin-top:calc(18 * var(--u));padding-top:calc(14 * var(--u));border-top:1px solid rgba(138,106,46,.3);display:flex;align-items:baseline;justify-content:center;gap:calc(8 * var(--u));white-space:nowrap}
  .g-pr-plan.is-sub .g-pr-prow__label{display:inline;font-size:calc(24 * var(--u));font-weight:700;letter-spacing:.06em;color:var(--gold)}
  .g-pr-plan.is-sub .g-pr-prow__price .g-pr-prow__label{font-weight:500;letter-spacing:0;color:var(--text)}
  .g-pr-plan.is-sub .g-pr-price--row,.g-pr-plan.is-sub .g-pr-price--unit{font-size:calc(52 * var(--u));color:var(--gold-strong)}
  .g-pr-plan.is-sub .g-pr-price__yen{font-size:calc(24 * var(--u));margin-left:calc(2 * var(--u))}
  .g-pr-plan .g-pr-note{font-size:calc(24 * var(--u));line-height:1.7;letter-spacing:0}
  /* 回数券：表 */
  .g-pr-plan.is-ticket .g-pr-plist{width:100%;background:none;border:none;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold)}
  .g-pr-plan.is-ticket .g-pr-plist__head,.g-pr-plan.is-ticket .g-pr-prow{grid-template-columns:calc(150 * var(--u)) minmax(0,1fr) minmax(0,1fr);gap:calc(9 * var(--u));padding:0 calc(15 * var(--u))}
  .g-pr-plan.is-ticket .g-pr-plist__head{padding-top:calc(12 * var(--u));padding-bottom:calc(12 * var(--u));background:#fff;border-bottom:none;font-size:calc(27 * var(--u));letter-spacing:.06em}
  .g-pr-plan.is-ticket .g-pr-prow{min-height:0;padding-top:calc(18 * var(--u));padding-bottom:calc(18 * var(--u));align-items:baseline;border-bottom:none;border-top:1px solid rgba(138,106,46,.2)}
  .g-pr-plan.is-ticket .g-pr-prow__title{font-family:var(--sans);font-size:calc(34 * var(--u))}
  .g-pr-plan.is-ticket .g-pr-price--row{font-size:calc(38 * var(--u))}
  .g-pr-plan.is-ticket .g-pr-price--unit{font-size:calc(49 * var(--u))}
  .g-pr-plan.is-ticket .g-pr-price__yen{font-size:calc(27 * var(--u));margin-left:calc(2 * var(--u))}
}

/* ---------- サービス ---------- */
.g-service {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 60px 20px 60px;
  background: #4f4a42;
}
.g-service .g-title {
  width: 750px;
  max-width: 100%;
  color: var(--c-white);
  font-family: var(--f-sans);
  font-size: 36px;
  font-weight: 600;
  padding-bottom: 0;
}
.g-service .g-title::after { bottom: -2px; background: var(--g-brown-light); }
.g-service__lead {
  margin-top: 35px;
  color: var(--c-white);
  font-family: var(--f-sans);
  font-size: 20px;
  font-weight: 300;
  text-align: center;
}
.g-service__list {
  display: grid;
  grid-template-columns: repeat(3, 140px);
  column-gap: clamp(20px, 6vw, 90px);
  row-gap: 40px;
  margin-top: 40px;
}
.g-service__list li { display: flex; flex-direction: column; align-items: center; }
.g-service__list img { width: 140px; }
.g-service__list p {
  margin-top: 10px;
  color: #f4e4ce;
  font-family: var(--f-sans);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  white-space: nowrap;
}
@media (max-width: 540px) {
  .g-service { padding: 40px 20px 40px; }
  .g-service .g-title { width: 100%; font-size: 25.86px; }
  .g-service__lead { margin-top: 35px; font-size: 14.37px; }
  .g-service__list { grid-template-columns: repeat(3, 95px); column-gap: 10px; row-gap: 25px; }
  .g-service__list img { width: 95px; }
  .g-service__list p { font-size: 13.125px; white-space: normal; }
}

/* ---------- レッスン ---------- */
.g-lesson { padding-top: 40px; }
.g-lesson__img { display: block; width: 600px; max-width: calc(100% - 40px); margin: 0 auto; }
.g-lesson__bg {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 40px;
  margin-top: 20px;
  padding: 50px 20px 30px;
  background-position: center;
  background-size: cover;
}
.g-lesson__box {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 980px;
  max-width: 100%;
  padding: 20px 20px 20px;
  background: var(--c-white);
}
.g-lesson__catch {
  margin-top: 10px;
  font-family: var(--f-sans);
  font-size: 20px;
  line-height: 1.4;
  color: #000;
  text-align: center;
}
.g-lesson__text {
  width: 705px;
  max-width: 100%;
  margin-top: 21px;
  font-family: var(--f-sans);
  font-size: 20px;
  font-weight: 300;
  line-height: 1.4;
  color: #000;
  text-align: center;
}
.g-lesson .g-cta { width: 350px; margin: -19px 0 0; }
@media (max-width: 540px) {
  .g-lesson { padding-top: 20px; }
  .g-lesson__img { width: calc(100% - 40px); }
  .g-lesson__bg { margin-top: 70px; padding: 0 20px 30px; background-image: none !important; }
  .g-subtitle.is-sans { font-size: 19.7px; }
  .g-lesson__catch { font-size: 15px; }
  .g-lesson__text { width: 221px; font-size: 11.82px; }
  .g-lesson .g-cta { width: 350px; margin-top: -21px; }
}

/* ---------- トレーナー ---------- */
.g-trainer { padding: 103px 20px 83px; }
.g-trainer .g-title {
  width: 750px;
  max-width: 100%;
  font-size: 36px;
  font-weight: 400;
  color: #000;
}
.g-trainer .g-title::after { background: var(--g-brown-light); }
.g-trainer__body {
  position: relative;
  width: 1006px;
  max-width: 100%;
  min-height: 446px;
  margin: 25px auto 0;
}
.g-trainer__photo { position: absolute; top: 0; right: 0; width: 806px; }
.g-trainer__text { position: relative; z-index: 1; padding-top: 77px; }
.g-trainer__text p {
  font-family: var(--f-serif);
  font-size: 35px;
  line-height: 2;
  color: #231815;
}
.g-trainer__text img { width: 500px; margin-top: 50px; }
.g-trainer__more { display: inline-block; transition: opacity .2s, transform .2s; }
.g-trainer__more:hover { opacity: .85; transform: translateY(-2px); }
.g-trainer__more img { display: block; }
@media (max-width: 1060px) {
  .g-trainer__photo { width: 70%; }
}
@media (max-width: 540px) {
  /* 元サイトはSPで文字が画面外にはみ出していたため、縦並びに整理 */
  .g-trainer { padding: 60px 0 40px; }
  .g-trainer .g-title { width: calc(100% - 40px); font-size: 25.86px; }
  .g-trainer__body { display: flex; flex-direction: column; min-height: 0; margin-top: 30px; }
  .g-trainer__photo { position: static; width: 100%; }
  .g-trainer__text { order: 2; padding: 20px 20px 0; text-align: center; }
  .g-trainer__text p { font-size: 24px; }
  .g-trainer__text img { width: 300px; margin-top: 20px; }
}

/* ---------- 設備 ---------- */
.g-equip { padding: 40px 20px 0; }
.g-equip .g-title { font-size: 30px; }
.g-equip__pair {
  display: flex;
  justify-content: center;
  gap: 30px;
  margin-top: 50px;
}
.g-equip__item { display: flex; flex-direction: column; width: 450px; }
.g-equip__head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 21px;
  height: 60px;
  background: var(--g-brown);
  color: var(--c-white);
}
.g-equip__head span { font-family: var(--f-sans); font-size: 20px; font-weight: 500; }
.g-equip__head strong { font-family: var(--f-serif); font-size: 26px; font-weight: 600; }
.g-equip__item .g-equip__head span { font-weight: 400; }
.g-equip__item .g-equip__head strong { font-weight: 400; }
.g-equip__img { display: flex; justify-content: center; }
.g-equip__item .g-equip__img { height: 120px; margin-top: 20px; }
.g-equip__item .g-equip__img img { height: 120px; object-fit: contain; }
.g-equip__text {
  margin-top: 20px;
  padding: 0 10px;
  font-family: var(--f-sans);
  font-size: 20px;
  font-weight: 300;
  line-height: 1.4;
  color: var(--c-text);
}
.g-equip__wide { width: 950px; max-width: 100%; margin: 40px auto 0; }
.g-equip__wide + .g-equip__wide { margin-top: 30px; }
.g-equip__wide .g-equip__text { padding: 0; }
.g-equip__wide .g-equip__img { background: var(--c-white); }
.g-equip__wide .g-equip__img img { width: 100%; }
.g-equip__img.is-split { height: 170px; margin-top: 30px; align-items: center; }
.g-equip__img.is-split img { width: 50%; }
.g-equip__img.is-split span { width: 50%; height: 100%; background: center / cover no-repeat; }
.g-equip__img.is-gray { padding-bottom: 20px; background: var(--c-light); }
.g-equip .g-cta { margin: 60px auto 30px; }

@media (max-width: 840px) {
  .g-equip__pair { flex-direction: column; align-items: center; }
  .g-equip__item { width: 100%; max-width: 450px; }
}
@media (max-width: 540px) {
  .g-equip { padding: 40px 15px 0; }
  .g-equip__pair { gap: 40px; margin-top: 66px; }
  .g-equip__head { gap: 21px; }
  .g-equip__head span { font-size: 14.25px; }
  .g-equip__head strong { font-size: 18px; }
  .g-equip__item .g-equip__head strong { font-size: 26px; }
  .g-equip__text { padding: 0 10px; }
  .g-equip__img.is-split { margin-top: 0; }
  .g-equip__img.is-split img { width: 50%; }
  .g-equip__wide { margin-top: 50px; }
  .g-equip__wide + .g-equip__wide { margin-top: 50px; }
  .g-equip .g-cta { width: 320px; margin: 50px auto 20px; }
}

/* ---------- 体験レッスンの流れ（PC：1920px／SP：750px のデザインを画面幅に合わせて縮尺） ---------- */
.g-fl {
  --fl-gold: #d5ba82;
  --fl-gold-hi: #e6c686;
  --fl-ink: #0b0d0c;
  --fl-panel: #121514;
  --fl-rule: rgba(213, 186, 130, .25);
  --u: min(1px, calc(100vw / 1920));
  position: relative;
  padding: calc(160 * var(--u));
  background: var(--fl-ink);
  color: #f3f1ea;
  font-family: var(--f-sans);
}
.g-fl::before { content: ""; position: absolute; top: 0; left: calc(160 * var(--u)); right: calc(160 * var(--u)); height: 1px; background: var(--fl-rule); }
.g-fl__head { display: flex; flex-direction: column; align-items: center; gap: calc(28 * var(--u)); text-align: center; }
.g-fl__en { display: flex; align-items: center; gap: calc(20 * var(--u)); font-family: "Cormorant", serif; font-size: max(calc(24 * var(--u)), 11px); font-weight: 600; letter-spacing: .32em; color: var(--fl-gold); white-space: nowrap; }
.g-fl__en span { width: calc(56 * var(--u)); height: 1px; background: var(--fl-gold); }
.g-fl__title { font-family: "Shippori Mincho", serif; font-size: calc(60 * var(--u)); font-weight: 700; line-height: 1.4; letter-spacing: .06em; }
.g-fl__list { position: relative; display: flex; flex-direction: column; max-width: calc(1440 * var(--u)); margin: calc(112 * var(--u)) auto 0; }
.g-fl__line { position: absolute; top: calc(64 * var(--u)); bottom: calc(120 * var(--u)); left: calc(100 * var(--u)); z-index: 1; width: 1px; background: var(--fl-gold); }
.g-fl__group { margin: 0; padding: 0; list-style: none; }
.g-fl-step { position: relative; display: grid; grid-template-columns: calc(200 * var(--u)) calc(460 * var(--u)) minmax(0, 1fr); align-items: start; column-gap: calc(64 * var(--u)); padding: calc(44 * var(--u)) 0; }
.g-fl-step__num { position: relative; z-index: 2; justify-self: center; padding: calc(14 * var(--u)) 0; background: var(--fl-ink); font-family: "Shippori Mincho", serif; font-size: calc(88 * var(--u)); font-weight: 700; line-height: 1; color: var(--fl-gold); }
.g-fl-step__title { padding-top: calc(24 * var(--u)); font-family: "Shippori Mincho", serif; font-size: calc(38 * var(--u)); font-weight: 700; line-height: 1.5; letter-spacing: .04em; }
.g-fl-step__body { display: flex; flex-direction: column; gap: calc(20 * var(--u)); padding-top: calc(30 * var(--u)); }
.g-fl-step__text { font-size: max(calc(19 * var(--u)), 14px); line-height: 2; letter-spacing: .05em; text-wrap: pretty; }
.g-fl-step__pay { display: flex; align-items: baseline; gap: calc(16 * var(--u)); padding-top: calc(20 * var(--u)); border-top: 1px solid rgba(213, 186, 130, .2); font-size: max(calc(18 * var(--u)), 13px); line-height: 1.8; letter-spacing: .04em; }
.g-fl-step__pay span:first-child { flex: none; color: var(--fl-gold); font-weight: 700; white-space: nowrap; }

/* 体験レッスン50分の枠（03〜06） */
.g-fl__lesson { position: relative; margin: calc(40 * var(--u)) calc(-56 * var(--u)); padding: calc(88 * var(--u)) calc(56 * var(--u)) calc(56 * var(--u)); border: 1px solid var(--fl-gold); background: var(--fl-panel); }
.g-fl__lesson-label { position: absolute; top: -1px; left: calc(340 * var(--u)); z-index: 3; display: flex; align-items: center; gap: calc(24 * var(--u)); padding: 0 calc(28 * var(--u)); background: var(--fl-ink); transform: translateY(-50%); white-space: nowrap; }
.g-fl__lesson-en { font-family: "Cormorant", serif; font-size: max(calc(22 * var(--u)), 10px); font-weight: 600; letter-spacing: .3em; color: var(--fl-gold-hi); }
.g-fl__lesson-ja { display: flex; align-items: baseline; gap: calc(12 * var(--u)); font-size: max(calc(22 * var(--u)), 12px); font-weight: 700; letter-spacing: .12em; }
.g-fl__lesson-min { font-family: "Shippori Mincho", serif; font-size: calc(52 * var(--u)); font-weight: 700; line-height: 1; letter-spacing: 0; color: var(--fl-gold-hi); }
.g-fl-step.is-in .g-fl-step__num { background: var(--fl-panel); color: var(--fl-gold-hi); }
.g-fl-step.is-in + .g-fl-step.is-in { border-top: 1px solid rgba(213, 186, 130, .2); }
.g-fl__lesson .g-fl-step:first-child { padding-top: calc(28 * var(--u)); }
.g-fl__lesson .g-fl-step:last-child { padding-bottom: calc(16 * var(--u)); }

/* キャンペーン帯（期間外は出力しない） */
.g-fl-campaign { position: relative; z-index: 3; display: flex; align-items: center; gap: calc(16 * var(--u)); margin-top: calc(8 * var(--u)); padding: calc(20 * var(--u)) calc(28 * var(--u)); background: var(--fl-gold-hi); color: var(--fl-ink); font-weight: 700; letter-spacing: .06em; }
.g-fl-campaign__limit { font-size: max(calc(19 * var(--u)), 13px); white-space: nowrap; }
.g-fl-campaign__text { font-family: "Shippori Mincho", serif; font-size: calc(28 * var(--u)); line-height: 1.3; }

.g-fl__cta { display: flex; justify-content: center; margin-top: calc(96 * var(--u)); }
.g-fl__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: calc(560 * var(--u));
  min-width: 280px;
  height: max(calc(96 * var(--u)), 56px);
  padding: 0 calc(36 * var(--u)) 0 calc(44 * var(--u));
  background: #187c49;
  box-shadow: 0 12px 32px rgba(0, 0, 0, .35);
  color: #fff;
  font-size: max(calc(26 * var(--u)), 16px);
  font-weight: 700;
  letter-spacing: .1em;
  transition: background-color .2s;
}
.g-fl__btn:hover { background: #006e3b; color: #fff; }
.g-fl__btn span { font-family: "Cormorant", serif; font-size: max(calc(36 * var(--u)), 22px); font-weight: 500; }

/* SP・タブレット：幅750のデザインを基準に縮尺 */
@media (max-width: 840px) {
  .g-fl { --u: min(calc(100vw / 750), .8px); padding: calc(128 * var(--u)) calc(48 * var(--u)) calc(112 * var(--u)); }
  .g-fl::before { left: calc(48 * var(--u)); right: calc(48 * var(--u)); }
  .g-fl__head { gap: calc(24 * var(--u)); }
  .g-fl__en { gap: calc(16 * var(--u)); font-size: max(calc(26 * var(--u)), 11px); letter-spacing: .28em; }
  .g-fl__en span { width: calc(40 * var(--u)); }
  .g-fl__title { font-size: calc(52 * var(--u)); line-height: 1.45; letter-spacing: .04em; }
  .g-fl__list { max-width: calc(654 * var(--u)); margin-top: calc(88 * var(--u)); }
  .g-fl__line { top: calc(48 * var(--u)); bottom: calc(200 * var(--u)); left: calc(52 * var(--u)); }
  .g-fl-step { grid-template-columns: calc(104 * var(--u)) minmax(0, 1fr); column-gap: calc(28 * var(--u)); row-gap: calc(16 * var(--u)); padding: calc(36 * var(--u)) 0; }
  .g-fl-step__num { grid-row: span 2; padding: calc(10 * var(--u)) 0; font-size: calc(72 * var(--u)); }
  .g-fl-step__title { padding-top: calc(14 * var(--u)); font-size: calc(42 * var(--u)); line-height: 1.45; letter-spacing: .03em; }
  .g-fl-step__body { grid-column: 2; gap: calc(16 * var(--u)); padding-top: 0; }
  .g-fl-step__text { font-size: max(calc(28 * var(--u)), 14px); line-height: 1.85; letter-spacing: .03em; }
  .g-fl-step__pay { flex-direction: column; gap: calc(4 * var(--u)); margin-top: calc(8 * var(--u)); font-size: max(calc(28 * var(--u)), 14px); line-height: 1.7; letter-spacing: .03em; }
  .g-fl__lesson { margin: calc(48 * var(--u)) calc(-24 * var(--u)); padding: calc(72 * var(--u)) calc(24 * var(--u)) calc(32 * var(--u)); }
  .g-fl__lesson-label { left: 50%; gap: calc(20 * var(--u)); padding: 0 calc(24 * var(--u)); transform: translate(-50%, -50%); }
  .g-fl__lesson-en { font-size: max(calc(22 * var(--u)), 10px); letter-spacing: .26em; }
  .g-fl__lesson-ja { gap: calc(10 * var(--u)); font-size: max(calc(26 * var(--u)), 12px); letter-spacing: .1em; }
  .g-fl__lesson-min { font-size: calc(56 * var(--u)); }
  .g-fl-step.is-in + .g-fl-step.is-in { border-top: 0; }
  .g-fl__lesson .g-fl-step:first-child { padding-top: calc(20 * var(--u)); }
  .g-fl__lesson .g-fl-step:last-child { padding-bottom: calc(36 * var(--u)); }
  .g-fl-campaign { flex-direction: column; align-items: center; gap: calc(6 * var(--u)); margin: calc(8 * var(--u)) 0 0 calc(-132 * var(--u)); padding: calc(24 * var(--u)) calc(20 * var(--u)); text-align: center; letter-spacing: .04em; }
  .g-fl-campaign__limit { font-size: max(calc(28 * var(--u)), 14px); }
  .g-fl-campaign__text { font-size: calc(40 * var(--u)); line-height: 1.35; }
  .g-fl__cta { display: block; max-width: calc(654 * var(--u)); margin: calc(72 * var(--u)) auto 0; }
  .g-fl__btn { width: auto; min-width: 0; height: max(calc(112 * var(--u)), 56px); padding: 0 calc(40 * var(--u)) 0 calc(48 * var(--u)); font-size: max(calc(32 * var(--u)), 16px); letter-spacing: .08em; }
  .g-fl__btn span { font-size: max(calc(44 * var(--u)), 22px); }
}

/* ---------- よくあるご質問 ---------- */
.g-faq { padding: 50px 20px 80px; background: var(--g-bg); }
.g-faq__list {
  display: flex;
  flex-direction: column;
  gap: 31px;
  width: 800px;
  max-width: 100%;
  margin: 20px auto 0;
}
.g-faq__item { overflow: hidden; border-radius: 4px; background: var(--c-white); }
.g-faq__item dt,
.g-faq__item dd {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0;
  padding: 24px;
  font-family: var(--f-sans);
  font-size: 18px;
  line-height: 1.4;
  letter-spacing: 0.05em;
  color: var(--c-text);
}
.g-faq__item dt { min-height: 76px; background: var(--g-gray); }
.g-faq__item dd { padding-bottom: 26px; }
.g-faq__q, .g-faq__a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 28px;
  height: 28px;
  border: 1px solid rgba(51, 51, 51, .5);
  border-radius: 2px;
  font-size: 16px;
  letter-spacing: 0;
}
.g-faq__q { background: var(--c-text); color: var(--c-white); }
@media (max-width: 540px) {
  .g-faq { padding: 30px 32px 30px; }
  .g-title { font-size: 21.55px; }
  .g-faq__list { gap: 18px; margin-top: 35px; }
  .g-faq__item dt, .g-faq__item dd { padding: 20px 16px 20px 16px; gap: 16px; font-size: 14px; }
  .g-faq__item dt { min-height: 60px; }
}

/* ---------- アクセス ---------- */
.g-access { padding: 96px 20px 91px; }
.g-access__box {
  width: 800px;
  max-width: 100%;
  margin: 20px auto 0;
  padding: 33px;
  border: 1px solid #c3c3c3;
  border-radius: 4px;
  font-family: var(--f-sans);
  color: var(--c-text);
}
.g-access__box h3 { font-size: 20px; font-weight: 700; line-height: 1.4; }
.g-access__route { margin: 8px 0 0 19px; font-size: 16px; line-height: 1.4; }
.g-access__box dl { margin-top: 16px; }
.g-access__box dl div { display: flex; align-items: flex-start; gap: 15px; margin-top: 4px; }
.g-access__box dt {
  flex: 0 0 100px;
  padding: 4px 0;
  background: var(--c-white);
  font-size: 16px;
  text-align: center;
}
.g-access__box dd { margin: 0; padding-top: 4px; font-size: 16px; line-height: 1.4; }
.g-access__map { display: block; width: 100%; height: 400px; margin-top: 24px; border: 0; }
@media (max-width: 540px) {
  .g-access { padding: 20px 20px 40px; }
  .g-access__box { margin-top: 40px; padding: 25px; }
  .g-access__box h3 { font-size: 16px; }
  .g-access__route { font-size: 14px; }
  .g-access__box dt { flex-basis: 90px; font-size: 14px; }
  .g-access__box dd { font-size: 14px; }
  .g-access__map { height: 300px; }
}

/* ---------- 予約（TimeRex） ---------- */
.g-reserve { padding: 20px 0; min-height: 300px; }
@media (max-width: 540px) {
  .g-reserve { padding: 10px 20px; }
}

/* ---------- その他のお問い合わせ ---------- */
.g-contact {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 30px 20px 30px;
  background: var(--c-light);
}
.g-contact__title {
  font-family: var(--f-sans);
  font-size: 40px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--c-text);
}
.g-contact .contact__errors { margin-top: 20px; }
.g-contact__form {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 600px;
  max-width: 100%;
  margin-top: 40px;
  font-family: var(--f-sans);
  color: var(--c-text);
}
.g-contact__form label { display: flex; flex-direction: column; gap: 10px; }
.g-contact__form label > span { font-size: 16px; font-weight: 700; }
.g-contact__form em { color: #ff5035; font-style: normal; margin-left: 5px; }
.g-contact__form input[type=text],
.g-contact__form input[type=email],
.g-contact__form input[type=tel],
.g-contact__form textarea {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--c-light);
  border-radius: 4px;
  background: var(--c-white);
  font-size: 16px;
}
.g-contact__form input[type=text],
.g-contact__form input[type=email],
.g-contact__form input[type=tel] { height: 50px; }
.g-contact__form textarea { height: 160px; resize: vertical; }
.g-contact__form .g-contact__agree { flex-direction: row; align-items: center; gap: 10px; }
.g-contact__agree span { font-size: 16px; font-weight: 400 !important; }
.g-contact__agree a { text-decoration: underline; }
.g-contact__form button {
  height: 50px;
  border: 0;
  border-radius: 4px;
  background: var(--c-text);
  color: var(--c-white);
  font-size: 18px;
  font-weight: 700;
  transition: opacity .2s;
}
.g-contact__form button:hover { opacity: .85; }
@media (max-width: 540px) {
  .g-contact { padding: 20px 20px 30px; background: none; }
  .g-contact__title { font-size: 28.7px; }
}

/* ---------- 画面下部固定CTA ---------- */
.g-fixed-cta {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 90;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  height: var(--g-cta-h);
  background: var(--g-orange);
  color: var(--c-white);
  font-family: var(--f-sans);
  transition: opacity .2s;
}
.g-fixed-cta:hover { opacity: .9; }
/* FVのある画面：FVの予約ボタンが画面上に消えてから表示（main.js） */
.g-fixed-cta { transition: opacity .2s, transform .3s ease, visibility .3s; }
.has-fv-cta .g-fixed-cta:not(.is-shown) { transform: translateY(100%); visibility: hidden; pointer-events: none; }
.g-fixed-cta__text { display: flex; flex-direction: column; align-items: center; line-height: 1.4; }
.g-fixed-cta__text span { font-size: 20px; font-weight: 600; }
.g-fixed-cta__text strong { font-size: 22px; font-weight: 500; }
.g-fixed-cta__arrow {
  position: relative;
  width: 50px;
  height: 50px;
  border: 1px solid var(--c-white);
  border-radius: 50%;
}
.g-fixed-cta__arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 45%;
  width: 12px;
  height: 12px;
  border-top: 2px solid var(--c-white);
  border-right: 2px solid var(--c-white);
  transform: translate(-50%, -50%) rotate(45deg);
}
@media (max-width: 540px) {
  .g-fixed-cta { gap: 19px; }
  .g-fixed-cta__text span { font-size: 15px; }
  .g-fixed-cta__text strong { font-size: 18.75px; }
  .g-fixed-cta__arrow { width: 45px; height: 45px; }
}

/* ---------- LPフッター ---------- */
.lp-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 96px 20px calc(var(--g-cta-h, 0px) + 34px);
  background: var(--c-dark);
  color: var(--c-white);
  font-family: var(--f-sans);
  font-size: 20px;
  line-height: 1.4;
  letter-spacing: 0.02em;
}
.lp-footer__inner { display: flex; gap: 30px; width: 734px; max-width: 100%; }
.lp-footer__col { flex: 1; }
.lp-footer__name { display: inline-block; font-size: 20px; margin-bottom: 8px; }
.lp-footer a:hover { opacity: .7; }
.lp-footer__sns {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin-top: 40px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .15);
}
.lp-footer__copy {
  margin-top: 54px;
  font-family: "Montserrat", sans-serif;
  font-size: 12px;
  color: rgba(255, 255, 255, .5);
}
.lp-footer__copy small { font-size: inherit; }
.lp-footer__privacy { margin-top: 8px; font-size: 12px; color: rgba(255, 255, 255, .5); }
@media (max-width: 540px) {
  .lp-footer { padding-top: 40px; text-align: center; }
  .lp-footer__inner { flex-direction: column; gap: 0; }
  .lp-footer__sns { width: 32px; height: 32px; margin-top: 10px; }
  .lp-footer__copy { margin-top: 5px; }
}

/* =========================================================
   GOLF トレーナー紹介（/golf-trainers）
   ========================================================= */
.gt { padding-top: 100px; }
.gt__title {
  position: relative;
  width: 750px;
  max-width: calc(100% - 40px);
  margin: 0 auto 125px;
  padding-bottom: 10px;
  font-size: 36px;
  font-weight: 400;
  color: #000;
}
.gt__title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  border-radius: 100%;
  background: var(--g-brown-light);
}
.gt-item + .gt-item { padding-top: 100px; }
.gt-item__block {
  width: 1079px;
  max-width: 100%;
  min-height: 814px;
  padding: 0 0 69px 174px;
  background: #4f4a42;
  color: var(--c-white);
  font-family: var(--f-serif);
}
.gt-item.is-light .gt-item__block {
  margin-left: auto;
  padding-left: 50px;
  background: #e6e5e3;
  color: #000;
}
.gt-item__top { display: flex; gap: 20px; transform: translateY(-30px); margin-bottom: -30px; }
.gt-item__photo { flex: 0 0 425px; width: 425px; }
.gt-item__info { flex: 0 1 390px; }
.gt-item__name {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding: 62px 0 11px;
  border-bottom: 1px solid currentColor;
  font-size: 35px;
  font-weight: 400;
  line-height: 1.4;
}
.gt-item__name span { font-size: 20px; }
.gt-item__profile { display: table; margin: 92px auto 0; font-size: 20px; line-height: 1.4; }
.gt-item__bottom { display: flex; align-items: flex-start; gap: 60px; margin-top: 70px; }
.gt-item__message { flex: 0 1 390px; margin: 35px 0 0 20px; font-size: 20px; line-height: 1.4; }
.gt-item__tag {
  display: inline-block;
  padding: 10px 25px;
  background: #000;
  color: var(--c-white);
  font-family: var(--f-sans);
  font-size: 20px;
}
.gt-item__message p:not(.gt-item__tag) { margin-top: 20px; }
.gt-item__sub { flex: 0 0 393px; width: 393px; }

@media (max-width: 1100px) {
  .gt-item__block, .gt-item.is-light .gt-item__block { width: 100%; padding: 0 30px 50px; }
  .gt-item__photo { flex-basis: 40%; width: 40%; }
  .gt-item__sub { flex-basis: 40%; width: 40%; }
}
@media (max-width: 840px) {
  .gt-item__top, .gt-item__bottom { flex-direction: column; align-items: center; }
  .gt-item__info, .gt-item__message { flex: none; width: 100%; max-width: 390px; margin-left: 0; }
}
@media (max-width: 540px) {
  .gt__title { width: auto; margin-bottom: 136px; padding-bottom: 0; font-size: 25.86px; }
  .gt__title::after { display: none; }
  .gt-item__block, .gt-item.is-light .gt-item__block { padding: 0 70px 40px; }
  .gt-item__top { gap: 31px; transform: translateY(-60px); margin-bottom: -60px; }
  .gt-item__photo { flex: none; width: 275px; max-width: none; }
  .gt-item__info { max-width: none; }
  .gt-item__name { flex-wrap: wrap; padding: 0 0 11px; font-size: 35px; }
  .gt-item__profile { display: block; margin-top: 20px; }
  .gt-item__bottom { gap: 40px; margin-top: 30px; }
  .gt-item__message { max-width: none; margin-top: 0; }
  .gt-item__sub { flex: none; width: 255px; max-width: none; }
}

.gt-trial {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 90px 20px 20px;
  font-family: var(--f-serif);
  color: var(--c-text);
  text-align: center;
}
.gt-trial__title { font-size: 30px; font-weight: 700; line-height: 1.4; }
.gt-trial__title strong { color: #ff9b00; font-weight: 900; }
.gt-trial img { width: 800px; max-width: 100%; margin-top: 60px; }
.gt-trial p { width: 700px; max-width: 100%; margin-top: 30px; font-size: 20px; font-weight: 600; line-height: 1.4; }
@media (max-width: 540px) {
  .gt-trial { padding: 40px 30px 30px; }
  .gt-trial img { margin-top: 40px; }
}

/* =========================================================
   /golf-campaign（広告LP）… /golf との差分のみ
   ========================================================= */

.page-golf-campaign .g-fixed-cta { background: rgba(255, 131, 0, .9); }


/* ---------- /golf-campaign-thanks（予約完了） ---------- */
.gc-thanks {
  position: relative;
  min-height: 100vh;
  padding: 120px 20px 80px;
  background: var(--bg-pc) center / cover no-repeat;
}
.gc-thanks::before { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .5); }
.gc-thanks__panel {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
  width: 600px;
  max-width: 100%;
  margin: 0 auto;
  padding: 30px;
  background: rgba(255, 255, 255, .9);
  font-family: var(--f-sans);
  color: #333;
  text-align: center;
}
.gc-thanks__title { font-family: var(--f-serif); font-size: 35px; font-weight: 500; line-height: 1.4; }
.gc-thanks__text { font-size: 20px; line-height: 1.6; }
.gc-thanks__contact div { display: flex; justify-content: center; font-size: 20px; line-height: 1.8; }
.gc-thanks__contact dd { margin: 0; }
.gc-thanks__contact a { font-weight: 600; color: #8c7543; word-break: break-all; }
.gc-thanks__contact a:hover { text-decoration: underline; }
.gc-thanks__back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 210px;
  min-height: 48px;
  padding: 10px 25px;
  border-radius: 3px;
  background: #8c7543;
  color: #fff;
  font-size: 20px;
  font-weight: 600;
  transition: opacity .2s;
}
.gc-thanks__back:hover { opacity: .85; }
@media (max-width: 540px) {
  .gc-thanks { padding: 100px 15px 60px; background-image: var(--bg-sp); }
  .gc-thanks__panel { padding: 30px 15px; }
  .gc-thanks__title { font-size: 24px; }
  .gc-thanks__text, .gc-thanks__contact div { font-size: 16px; }
  .gc-thanks__contact div { flex-wrap: wrap; }
  .gc-thanks__back { font-size: 16px; }
}

/* =========================================================
   LP追加セクション：お悩み／比較表／トレーナー（LP用）／館内の様子
   PC 1920px・SP 750px を画面幅に合わせて縮尺
   ========================================================= */
.g-lp {
  --u: min(1px, calc(100vw / 1920));
  --pt-gold: #d5ba82; --pt-gold-hi: #e6c686; --pt-ink: #0b0d0c; --pt-panel: #121514; --pt-rule: rgba(213, 186, 130, .25);
  position: relative;
  padding: calc(140 * var(--u)) calc(160 * var(--u));
  background: var(--pt-ink);
  color: #f3f1ea;
  font-family: var(--f-sans);
}
.g-lp::before { content: ""; position: absolute; left: calc(160 * var(--u)); right: calc(160 * var(--u)); top: 0; height: 1px; background: var(--pt-rule); }
.g-lp__head { display: flex; flex-direction: column; align-items: center; gap: calc(24 * var(--u)); text-align: center; }
.g-lp__en { display: flex; align-items: center; gap: calc(20 * var(--u)); font-family: "Cormorant", serif; font-size: max(calc(24 * var(--u)), 11px); font-weight: 600; letter-spacing: .32em; color: var(--pt-gold); }
.g-lp__en span { width: calc(56 * var(--u)); height: 1px; background: var(--pt-gold); }
.g-lp__title { font-family: "Shippori Mincho", serif; font-size: calc(56 * var(--u)); font-weight: 700; line-height: 1.4; letter-spacing: .06em; }
.g-lp__title span { display: inline-block; }
.g-lp__lead { font-size: max(calc(22 * var(--u)), 13px); line-height: 1.8; letter-spacing: .06em; color: rgba(243, 241, 234, .8); }

/* お悩み（明るい背景・やわらかいカード） */
.g-wr { --pt-gold: #8a6a2e; --pt-gold-hi: #8a6420; --pt-rule: rgba(138, 106, 46, .25); background: #faf8f3; color: #2b2723; }
.g-wr::before { display: none; }
.g-wr .g-lp__en span { background: var(--pt-gold); }
.g-wr__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(22 * var(--u)); max-width: calc(1320 * var(--u)); margin: calc(64 * var(--u)) auto 0; padding: 0; list-style: none; }
.g-wr__list li { display: flex; flex-direction: column; align-items: center; gap: calc(16 * var(--u)); padding: calc(34 * var(--u)) calc(28 * var(--u)) calc(30 * var(--u)); background: #fff; border-radius: calc(16 * var(--u)); box-shadow: 0 calc(6 * var(--u)) calc(24 * var(--u)) rgba(60, 45, 20, .08); text-align: center; }
.g-wr__list p { font-size: max(calc(22 * var(--u)), 14px); line-height: 1.7; letter-spacing: .02em; text-wrap: pretty; }
.g-wr__list strong { font-weight: 700; color: #2b2723; background: linear-gradient(transparent 62%, rgba(214, 186, 120, .45) 62%); }
.g-wr__check { position: relative; flex: none; width: max(calc(44 * var(--u)), 26px); height: max(calc(44 * var(--u)), 26px); border-radius: 50%; background: #c9a35b; }
.g-wr__check::after { content: ""; position: absolute; left: 37%; top: 22%; width: 24%; height: 42%; border: solid #fff; border-width: 0 3px 3px 0; transform: rotate(45deg); }
.g-wr__answer { display: flex; flex-direction: column; align-items: center; gap: calc(18 * var(--u)); max-width: calc(1320 * var(--u)); margin: calc(56 * var(--u)) auto 0; padding: calc(44 * var(--u)) calc(40 * var(--u)); background: #f1e9d8; border-radius: calc(16 * var(--u)); text-align: center; }
.g-wr__arrow { width: 0; height: 0; margin-top: calc(-74 * var(--u)); border-left: calc(30 * var(--u)) solid transparent; border-right: calc(30 * var(--u)) solid transparent; border-top: calc(24 * var(--u)) solid #c9a35b; }
.g-wr__lead { font-family: "Shippori Mincho", serif; font-size: calc(38 * var(--u)); font-weight: 700; line-height: 1.6; letter-spacing: .04em; }
.g-wr__lead span { display: inline-block; }
.g-wr__lead em { font-style: normal; color: #8a6420; background: linear-gradient(transparent 65%, rgba(214, 186, 120, .5) 65%); }
.g-wr__text { font-size: max(calc(21 * var(--u)), 13px); line-height: 1.9; letter-spacing: .04em; color: #4a443d; }

/* 比較表（明るい背景） */
.g-cp { --pt-gold: #8a6a2e; --pt-gold-hi: #8a6420; --pt-rule: rgba(138, 106, 46, .25); background: #f3f1ea; color: #1a1c1b; }
.g-cp .g-lp__en span { background: var(--pt-gold); }
.g-cp__wrap { max-width: calc(1200 * var(--u)); margin: calc(64 * var(--u)) auto 0; }
.g-cp__table { width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; }
.g-cp__table th, .g-cp__table td { padding: calc(24 * var(--u)) calc(24 * var(--u)); border-bottom: 1px solid rgba(138, 106, 46, .2); font-size: max(calc(21 * var(--u)), 12px); line-height: 1.6; vertical-align: middle; }
.g-cp__table thead th { padding: calc(20 * var(--u)) calc(16 * var(--u)); border-bottom: none; font-size: max(calc(22 * var(--u)), 12px); font-weight: 700; letter-spacing: .06em; text-align: center; }
.g-cp__table thead th:first-child { width: calc(250 * var(--u)); }
.g-cp__table thead th.is-other { background: #dcd6ca; color: #4a4741; }
.g-cp__table thead th.is-ours { background: #0b0d0c; color: #e6c686; font-family: "Cormorant", serif; font-size: max(calc(30 * var(--u)), 15px); font-weight: 600; letter-spacing: .12em; }
.g-cp__table tbody th { font-weight: 700; letter-spacing: .04em; text-align: left; word-break: keep-all; overflow-wrap: anywhere; }
.g-cp__table td.is-other { background: #ebe7de; color: #6b665f; text-align: center; }
.g-cp__table td.is-ours { position: relative; background: #fff; text-align: left; padding-left: calc(64 * var(--u)); box-shadow: inset 2px 0 0 #8a6420, inset -2px 0 0 #8a6420; }
.g-cp__table tbody tr:last-child td.is-ours { box-shadow: inset 2px 0 0 #8a6420, inset -2px 0 0 #8a6420, inset 0 -2px 0 #8a6420; }
.g-cp__table td.is-ours strong { font-weight: 700; color: #8a6420; }
.g-cp__mark { position: absolute; left: calc(24 * var(--u)); top: 50%; width: max(calc(24 * var(--u)), 13px); height: max(calc(24 * var(--u)), 13px); border: 3px solid #8a6420; border-radius: 50%; transform: translateY(-50%); }
.g-cp__note { max-width: calc(1200 * var(--u)); margin: calc(20 * var(--u)) auto 0; font-size: max(calc(17 * var(--u)), 11px); color: #6b665f; }

/* トレーナー（LP用・明るい背景） */
.g-tr { --pt-gold: #8a6a2e; --pt-gold-hi: #8a6420; --pt-ink: #ffffff; --pt-panel: #ffffff; --pt-rule: rgba(138, 106, 46, .25); background: #f3f1ea; color: #1a1c1b; }
.g-tr .g-lp__en span { background: var(--pt-gold); }
.g-tr__card { box-shadow: 0 calc(6 * var(--u)) calc(24 * var(--u)) rgba(60, 45, 20, .06); }
.g-tr .g-pt-btn:hover { background: var(--pt-gold); color: #fff; }
.g-tr__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: calc(24 * var(--u)); max-width: calc(1440 * var(--u)); margin: calc(64 * var(--u)) auto 0; padding: 0; list-style: none; }
.g-tr__card { display: flex; flex-direction: column; background: var(--pt-panel); border: 1px solid var(--pt-rule); }
.g-tr__photo { aspect-ratio: 4 / 5; overflow: hidden; background: #e9e4da; }
.g-tr__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.g-tr__body { display: flex; flex-direction: column; padding: calc(24 * var(--u)) calc(26 * var(--u)) calc(30 * var(--u)); }
.g-tr__en { font-family: "Cormorant", serif; font-size: max(calc(18 * var(--u)), 11px); font-weight: 600; letter-spacing: .2em; color: var(--pt-gold); }
.g-tr__name { margin-top: calc(4 * var(--u)); font-family: "Shippori Mincho", serif; font-size: max(calc(32 * var(--u)), 17px); font-weight: 700; letter-spacing: .08em; }
.g-tr__stats { display: flex; gap: calc(12 * var(--u)); margin: calc(16 * var(--u)) 0 0; }
.g-tr__stats div { flex: 1; padding: calc(10 * var(--u)) calc(12 * var(--u)); border: 1px solid var(--pt-rule); text-align: center; }
.g-tr__stats dt { font-size: max(calc(14 * var(--u)), 10px); letter-spacing: .06em; color: var(--pt-gold); }
.g-tr__stats dd { margin: calc(2 * var(--u)) 0 0; font-family: "Montserrat", var(--f-sans); font-size: max(calc(30 * var(--u)), 16px); font-weight: 700; line-height: 1.2; }
.g-tr__stats small { margin-left: 2px; font-size: .5em; font-weight: 600; }
.g-tr__catch { margin-top: calc(16 * var(--u)); font-size: max(calc(17 * var(--u)), 12px); line-height: 1.75; color: #4a443d; }
.g-tr .g-tr__more { width: calc(440 * var(--u)); min-width: 280px; margin: calc(56 * var(--u)) auto 0; }

/* 館内の様子 */
.g-gl { background: #121514; }
.g-gl__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(16 * var(--u)); max-width: calc(1440 * var(--u)); margin: calc(64 * var(--u)) auto 0; padding: 0; list-style: none; }
.g-gl__item { position: relative; display: block; width: 100%; aspect-ratio: 4 / 3; padding: 0; overflow: hidden; border: 0; background: #1a1d1c; cursor: zoom-in; }
.g-gl__item img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.g-gl__item:hover img { transform: scale(1.04); }
.g-gl__label { position: absolute; left: 0; right: 0; bottom: 0; padding: calc(40 * var(--u)) calc(20 * var(--u)) calc(14 * var(--u)); background: linear-gradient(0deg, rgba(0, 0, 0, .7), rgba(0, 0, 0, 0)); color: #fff; font-size: max(calc(19 * var(--u)), 12px); font-weight: 700; letter-spacing: .08em; text-align: left; }

@media (max-width: 840px) {
  .g-lp { --u: min(calc(100vw / 750), .8px); padding: calc(110 * var(--u)) calc(40 * var(--u)); }
  .g-lp::before { left: calc(40 * var(--u)); right: calc(40 * var(--u)); }
  .g-lp__head { gap: calc(18 * var(--u)); }
  .g-lp__en { gap: calc(16 * var(--u)); font-size: max(calc(26 * var(--u)), 11px); letter-spacing: .28em; }
  .g-lp__en span { width: calc(40 * var(--u)); }
  .g-lp__title { font-size: calc(50 * var(--u)); line-height: 1.45; letter-spacing: .04em; }
  .g-lp__lead { font-size: calc(26 * var(--u)); }

  .g-wr__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(16 * var(--u)); margin-top: calc(50 * var(--u)); }
  .g-wr__list li { gap: calc(12 * var(--u)); padding: calc(28 * var(--u)) calc(18 * var(--u)) calc(24 * var(--u)); border-radius: calc(16 * var(--u)); }
  .g-wr__list p { font-size: calc(24 * var(--u)); line-height: 1.6; letter-spacing: 0; }
  .g-wr__check { width: calc(44 * var(--u)); height: calc(44 * var(--u)); }
  .g-wr__answer { gap: calc(16 * var(--u)); margin-top: calc(56 * var(--u)); padding: calc(44 * var(--u)) calc(30 * var(--u)) calc(36 * var(--u)); }
  .g-wr__arrow { margin-top: calc(-68 * var(--u)); }
  .g-wr__lead { font-size: calc(36 * var(--u)); }
  .g-wr__text { font-size: calc(25 * var(--u)); text-align: left; }

  .g-cp__wrap { margin-top: calc(50 * var(--u)); }
  .g-cp__table th, .g-cp__table td { padding: calc(20 * var(--u)) calc(12 * var(--u)); font-size: calc(23 * var(--u)); line-height: 1.5; }
  .g-cp__table thead th { padding: calc(16 * var(--u)) calc(8 * var(--u)); font-size: calc(23 * var(--u)); letter-spacing: 0; }
  .g-cp__table thead th:first-child { width: calc(160 * var(--u)); }
  .g-cp__table tbody th { font-size: calc(22 * var(--u)); letter-spacing: 0; }
  .g-cp__table thead th.is-ours { font-size: calc(28 * var(--u)); letter-spacing: .04em; }
  .g-cp__table td.is-ours { padding-left: calc(44 * var(--u)); }
  .g-cp__mark { left: calc(12 * var(--u)); width: calc(22 * var(--u)); height: calc(22 * var(--u)); border-width: 2px; }
  .g-cp__note { font-size: calc(21 * var(--u)); }

  .g-tr__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(20 * var(--u)); margin-top: calc(50 * var(--u)); }
  .g-tr__body { padding: calc(20 * var(--u)) calc(18 * var(--u)) calc(24 * var(--u)); }
  .g-tr__en { font-size: calc(20 * var(--u)); letter-spacing: .12em; }
  .g-tr__name { font-size: calc(34 * var(--u)); }
  .g-tr__stats { gap: calc(8 * var(--u)); margin-top: calc(14 * var(--u)); }
  .g-tr__stats div { padding: calc(8 * var(--u)) calc(4 * var(--u)); }
  .g-tr__stats dt { font-size: calc(18 * var(--u)); letter-spacing: 0; }
  .g-tr__stats dd { font-size: calc(34 * var(--u)); }
  .g-tr__catch { margin-top: calc(14 * var(--u)); font-size: calc(22 * var(--u)); line-height: 1.7; }
  .g-tr .g-tr__more { width: 100%; min-width: 0; margin-top: calc(50 * var(--u)); }

  .g-gl__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(12 * var(--u)); margin-top: calc(50 * var(--u)); }
  .g-gl__label { padding: calc(36 * var(--u)) calc(14 * var(--u)) calc(10 * var(--u)); font-size: calc(22 * var(--u)); }
}

/* =========================================================
   試験：ゴルフLPの明朝体をシンプルなゴシックに置き換え
   （/golf・/golf-campaign・/golf-trainers。このブロックを消せば元の明朝体に戻る）
   ロゴ（ACT BELLEZZA）はブランド表記のため対象外
   ========================================================= */
body.page-golf { --f-serif: var(--f-sans); }
.page-golf .g-pr { --mincho: var(--f-sans); --en: "Montserrat", sans-serif; }
/* 日本語の見出し・本文 */
.page-golf :is(.g-fv__title, .g-fv__badges strong, .g-fv__campaign-offer strong,
  .g-pt__title, .g-pt-item__title, .g-title, .g-subtitle, .g-trainer__text p, .g-equip__head strong,
  .g-fl__title, .g-fl-step__title, .g-fl-campaign__text,
  .g-pr__title, .g-pr-cat__title, .g-pr-sub__title, .g-pr-card__name, .g-pr-prow__title, .g-pr-campaign__text, .g-pr-option__title,
  .gc-thanks__title, .gt-item__block, .gt-trial,
  .g-lp__title, .g-wr__lead, .g-tr__name,
  .site-header--dark .gnav__link, .site-header--dark .gnav__cta) { font-family: var(--f-sans); }
/* 数字（番号・金額）は英字ゴシックで */
.page-golf :is(.g-pt-item__num, .g-fl-step__num, .g-fl__lesson-min, .g-pr-price) { font-family: "Montserrat", var(--f-sans); }
/* 英字ラベル */
.page-golf :is(.g-fv__en, .g-fv__campaign-name span, .g-fv__btn span,
  .g-pt__en, .g-pt-item__key, .g-pt-item__num span, .g-pt-btn span,
  .g-fl__en, .g-fl__lesson-en, .g-fl__btn span,
  .g-pr__en, .g-pr-cat__en, .g-pr-option__en,
  .g-lp__en, .g-tr__en, .g-cp__table thead th.is-ours, .g-eq__label, .g-ac__name) { font-family: "Montserrat", sans-serif; }

/* ---------- 料金プラン：月額（総額）と1回あたりの金額を同じ大きさに（小さい方に合わせる） ---------- */
.g-pr-plist__head,.g-pr-prow{grid-template-columns:minmax(0,1fr) calc(185 * var(--u)) calc(185 * var(--u))}
.g-pr-price--unit{font-size:calc(32 * var(--u))}
.g-pr-price--unit .g-pr-price__yen{font-size:max(calc(18 * var(--u)), 11px)}
.g-pr-table--sm td.is-unit .g-pr-price{font-size:max(calc(27 * var(--u)), 14px)}
@media (max-width: 840px) {
  .g-pr-plan.is-ticket .g-pr-price--unit{font-size:calc(38 * var(--u))}
  .g-pr-table--sm td.is-unit .g-pr-price{font-size:calc(34 * var(--u))}
  .g-pr-table--sm td.is-unit .g-pr-price__yen{font-size:calc(25 * var(--u))}
  /* サブスクのカード：月額を上、1回あたりを下に */
  .g-pr-plan.is-sub .g-pr-prow__price{order:2;margin-top:calc(16 * var(--u));padding-top:0;border-top:none}
  .g-pr-plan.is-sub .g-pr-prow__unit{order:3;width:100%;margin-top:calc(18 * var(--u));padding-top:calc(14 * var(--u));border-top:1px solid rgba(138,106,46,.3);flex-direction:row;align-items:baseline;justify-content:center;gap:calc(8 * var(--u));white-space:nowrap}
  .g-pr-plan.is-sub .g-pr-prow__price .g-pr-prow__label{font-weight:700;letter-spacing:.06em;color:var(--gold)}
  .g-pr-plan.is-sub .g-pr-price--row{color:var(--text)}
}

/* ---------- よくあるご質問（LP全体のデザインに合わせる） ---------- */
.g-lp.g-faq { --pt-gold: #8a6a2e; --pt-gold-hi: #8a6420; --pt-rule: rgba(138, 106, 46, .25); background: #f3f1ea; color: #2b2723; }
.g-lp.g-faq .g-lp__en span { background: var(--pt-gold); }
.g-lp.g-faq .g-faq__list { display: flex; flex-direction: column; gap: calc(16 * var(--u)); width: auto; max-width: calc(1100 * var(--u)); margin: calc(64 * var(--u)) auto 0; }
.g-lp.g-faq .g-faq__item { overflow: hidden; border-radius: calc(14 * var(--u)); background: #fff; box-shadow: 0 calc(6 * var(--u)) calc(24 * var(--u)) rgba(60, 45, 20, .06); }
.g-lp.g-faq .g-faq__item dt,
.g-lp.g-faq .g-faq__item dd { display: flex; align-items: flex-start; gap: calc(20 * var(--u)); min-height: 0; margin: 0; padding: calc(26 * var(--u)) calc(36 * var(--u)); background: none; font-size: max(calc(20 * var(--u)), 14px); line-height: 1.75; letter-spacing: .03em; }
.g-lp.g-faq .g-faq__item dt { font-weight: 700; }
.g-lp.g-faq .g-faq__item dd { position: relative; padding-top: calc(22 * var(--u)); color: #4a443d; }
.g-lp.g-faq .g-faq__item dd::before { content: ""; position: absolute; top: 0; left: calc(36 * var(--u)); right: calc(36 * var(--u)); border-top: 1px dashed rgba(138, 106, 46, .35); }
.g-lp.g-faq .g-faq__q,
.g-lp.g-faq .g-faq__a { display: flex; flex: none; align-items: center; justify-content: center; width: max(calc(40 * var(--u)), 26px); height: max(calc(40 * var(--u)), 26px); margin-top: -1px; border-radius: 50%; font-family: "Montserrat", var(--f-sans); font-size: max(calc(19 * var(--u)), 13px); font-weight: 700; line-height: 1; }
.g-lp.g-faq .g-faq__q { background: #c9a35b; color: #fff; }
.g-lp.g-faq .g-faq__a { border: 1px solid #c9a35b; background: #fff; color: #8a6420; }
@media (max-width: 840px) {
  .g-lp.g-faq .g-faq__list { gap: calc(16 * var(--u)); margin-top: calc(50 * var(--u)); }
  .g-lp.g-faq .g-faq__item { border-radius: calc(16 * var(--u)); }
  .g-lp.g-faq .g-faq__item dt,
  .g-lp.g-faq .g-faq__item dd { gap: calc(18 * var(--u)); padding: calc(26 * var(--u)) calc(26 * var(--u)); font-size: calc(26 * var(--u)); line-height: 1.7; }
  .g-lp.g-faq .g-faq__item dd::before { left: calc(26 * var(--u)); right: calc(26 * var(--u)); }
  .g-lp.g-faq .g-faq__q,
  .g-lp.g-faq .g-faq__a { width: calc(46 * var(--u)); height: calc(46 * var(--u)); font-size: calc(22 * var(--u)); }
}

/* ---------- 設備（LP全体のデザインに合わせる・白背景） ---------- */
.g-lp.g-eq { --pt-gold: #8a6a2e; --pt-gold-hi: #8a6420; --pt-ink: #ffffff; --pt-rule: rgba(138, 106, 46, .25); background: #fff; color: #1a1c1b; }
.g-eq .g-lp__en span { background: var(--pt-gold); }
.g-eq__label { display: inline-block; align-self: flex-start; padding: calc(6 * var(--u)) calc(14 * var(--u)); background: #0b0d0c; color: #e6c686; font-family: "Cormorant", serif; font-size: max(calc(17 * var(--u)), 11px); font-weight: 600; letter-spacing: .2em; }
.g-eq__cat { font-size: max(calc(17 * var(--u)), 12px); font-weight: 700; letter-spacing: .08em; color: var(--pt-gold); }
.g-eq__name { font-family: "Montserrat", var(--f-sans); font-size: max(calc(30 * var(--u)), 17px); font-weight: 700; line-height: 1.3; letter-spacing: .02em; }
.g-eq__text { font-size: max(calc(18 * var(--u)), 13px); line-height: 1.85; letter-spacing: .03em; color: #4a443d; }
/* キーとなる設備（スイングカタリスト） */
.g-eq-key { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: calc(56 * var(--u)); align-items: center; max-width: calc(1320 * var(--u)); margin: calc(64 * var(--u)) auto 0; padding: calc(40 * var(--u)); background: #f3f1ea; border-radius: calc(16 * var(--u)); }
.g-eq-key__media { position: relative; }
.g-eq-key__media > img:first-child { display: block; width: 100%; height: auto; border-radius: calc(10 * var(--u)); }
.g-eq-key__plate { position: absolute; right: calc(-24 * var(--u)); bottom: calc(-28 * var(--u)); width: 46%; height: auto; filter: drop-shadow(0 calc(8 * var(--u)) calc(14 * var(--u)) rgba(0, 0, 0, .25)); }
.g-eq-key__body { display: flex; flex-direction: column; gap: calc(12 * var(--u)); }
.g-eq-key__body .g-eq__name { font-size: max(calc(40 * var(--u)), 20px); }
.g-eq-key__body .g-eq__text { margin-top: calc(6 * var(--u)); }
/* その他の設備 */
.g-eq__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(24 * var(--u)); max-width: calc(1320 * var(--u)); margin: calc(32 * var(--u)) auto 0; padding: 0; list-style: none; }
.g-eq-card { display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid rgba(138, 106, 46, .22); border-radius: calc(16 * var(--u)); }
.g-eq-card__media { display: flex; align-items: center; justify-content: center; background: #f3f1ea; }
.g-eq-card__media.is-product { height: calc(240 * var(--u)); padding: calc(24 * var(--u)); }
.g-eq-card__media.is-product img { width: auto; max-width: 70%; height: 100%; object-fit: contain; }
.g-eq-card__media.is-photo { aspect-ratio: 2000 / 584; }
.g-eq-card__media.is-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.g-eq-card__body { display: flex; flex-direction: column; gap: calc(8 * var(--u)); padding: calc(26 * var(--u)) calc(30 * var(--u)) calc(30 * var(--u)); }
.g-eq-card__body .g-eq__text { margin-top: calc(4 * var(--u)); }
.g-eq .g-eq__cta { width: calc(440 * var(--u)); min-width: 280px; margin: calc(56 * var(--u)) auto 0; }
.g-eq .g-eq__cta:hover { background: var(--pt-gold); color: #fff; }
/* 黒が続く「4つの理由」と「体験の流れ」の境目をわかりやすく */
section.g-fl { --fl-ink: #141816; --fl-panel: #1b201d; }
/* よくある質問：直前の比較表（生成り）と区別するため少し明るく */
.g-lp.g-faq { background: #faf8f3; }
@media (max-width: 840px) {
  .g-eq-key { grid-template-columns: 1fr; gap: calc(44 * var(--u)); margin-top: calc(50 * var(--u)); padding: calc(28 * var(--u)) calc(28 * var(--u)) calc(36 * var(--u)); border-radius: calc(20 * var(--u)); }
  .g-eq-key__plate { right: calc(-12 * var(--u)); bottom: calc(-26 * var(--u)); }
  .g-eq-key__body { gap: calc(10 * var(--u)); }
  .g-eq__label { font-size: calc(20 * var(--u)); padding: calc(6 * var(--u)) calc(14 * var(--u)); }
  .g-eq__cat { font-size: calc(23 * var(--u)); }
  .g-eq__name { font-size: calc(36 * var(--u)); }
  .g-eq-key__body .g-eq__name { font-size: calc(42 * var(--u)); }
  .g-eq__text { font-size: calc(25 * var(--u)); line-height: 1.8; }
  .g-eq__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(20 * var(--u)); margin-top: calc(28 * var(--u)); }
  .g-eq-card { border-radius: calc(20 * var(--u)); }
  .g-eq-card.is-photo { grid-column: 1 / -1; }
  .g-eq-card__media.is-product { height: calc(200 * var(--u)); padding: calc(20 * var(--u)); }
  .g-eq-card__media.is-product img { max-width: 80%; }
  .g-eq-card__body { gap: calc(8 * var(--u)); padding: calc(24 * var(--u)) calc(24 * var(--u)) calc(28 * var(--u)); }
  .g-eq .g-eq__cta { width: 100%; min-width: 0; margin-top: calc(50 * var(--u)); }
}
/* 設備：計測・データの印象を出すため、方眼の背景と角のあるカードで他セクションと差をつける */
.g-lp.g-eq {
  background-color: #f1f2ef;
  background-image:
    linear-gradient(rgba(26, 28, 27, .05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(26, 28, 27, .05) 1px, transparent 1px);
  background-size: calc(48 * var(--u)) calc(48 * var(--u));
}
.g-eq-key { position: relative; border-radius: 0; background: #fff; border: 1px solid rgba(26, 28, 27, .12); box-shadow: inset calc(6 * var(--u)) 0 0 #c9a35b; }
.g-eq-key__media > img:first-child { border-radius: 0; }
.g-eq__label { display: inline-flex; align-items: center; gap: calc(12 * var(--u)); }
.g-eq__label span { padding-left: calc(12 * var(--u)); border-left: 1px solid rgba(230, 198, 134, .5); font-family: "Montserrat", var(--f-sans); }
.g-eq-card { position: relative; border-radius: 0; border: 1px solid rgba(26, 28, 27, .12); border-top: 3px solid #c9a35b; }
.g-eq-card__media { background: #f7f7f5; }
.g-eq__num { position: absolute; top: calc(14 * var(--u)); left: calc(18 * var(--u)); padding: calc(2 * var(--u)) calc(10 * var(--u)); background: #1a1c1b; color: #e6c686; font-family: "Montserrat", var(--f-sans); font-size: max(calc(15 * var(--u)), 11px); font-weight: 700; letter-spacing: .08em; }
.g-eq__name { text-transform: none; }
@media (max-width: 840px) {
  .g-lp.g-eq { background-size: calc(40 * var(--u)) calc(40 * var(--u)); }
  .g-eq-key { border-radius: 0; box-shadow: inset 0 calc(6 * var(--u)) 0 #c9a35b; }
  .g-eq-card { border-radius: 0; }
  .g-eq__num { top: calc(12 * var(--u)); left: calc(12 * var(--u)); font-size: calc(19 * var(--u)); }
}

/* ---------- 予約ボタンの統一（緑。ヘッダーと画面下の追従帯はオレンジのまま）・セクション内の予約ボタン ---------- */
.g-cta2 { display: flex; flex-wrap: wrap; justify-content: center; gap: calc(16 * var(--u)) calc(20 * var(--u)); margin: calc(56 * var(--u)) auto 0; }
.g-cta2__btn,
.g-cta2__line { display: flex; align-items: center; justify-content: space-between; gap: calc(24 * var(--u)); width: calc(480 * var(--u)); min-width: 280px; height: max(calc(88 * var(--u)), 56px); padding: 0 calc(32 * var(--u)) 0 calc(40 * var(--u)); color: #fff; font-family: var(--f-sans); font-size: max(calc(24 * var(--u)), 16px); font-weight: 700; letter-spacing: .08em; transition: background-color .2s; }
.g-cta2__btn { background: #187c49; box-shadow: 0 calc(10 * var(--u)) calc(28 * var(--u)) rgba(0, 0, 0, .18); }
.g-cta2__btn:hover { background: #006e3b; color: #fff; }
.g-cta2__line { background: #fff; border: 2px solid #06c755; color: #06a046; }
.g-cta2__line:hover { background: #06c755; color: #fff; }
.g-cta2 span { font-family: "Montserrat", var(--f-sans); font-size: 1.2em; font-weight: 500; }
.g-pr .g-cta2 { margin-top: calc(64 * var(--u)); }
@media (max-width: 840px) {
  .g-cta2 { flex-direction: column; align-items: stretch; gap: calc(16 * var(--u)); margin-top: calc(50 * var(--u)); }
  .g-cta2__btn, .g-cta2__line { width: 100%; min-width: 0; height: max(calc(108 * var(--u)), 56px); padding: 0 calc(36 * var(--u)) 0 calc(44 * var(--u)); font-size: max(calc(30 * var(--u)), 16px); }
}

/* ---------- サービス（暗い背景・アイコン） ---------- */
.g-lp.g-sv { background: #121514; }
.g-sv__list { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: calc(24 * var(--u)); max-width: calc(1320 * var(--u)); margin: calc(64 * var(--u)) auto 0; padding: 0; list-style: none; }
.g-sv__list li { display: flex; flex-direction: column; align-items: center; gap: calc(16 * var(--u)); padding: calc(28 * var(--u)) calc(12 * var(--u)) calc(24 * var(--u)); border: 1px solid var(--pt-rule); border-radius: calc(12 * var(--u)); background: rgba(255, 255, 255, .03); }
.g-sv__list img { display: block; width: 80%; max-width: 140px; height: auto; aspect-ratio: 1; }
.g-sv__list p { font-size: max(calc(18 * var(--u)), 12px); font-weight: 700; line-height: 1.5; letter-spacing: .04em; text-align: center; }
@media (max-width: 840px) {
  .g-sv__list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(16 * var(--u)); margin-top: calc(50 * var(--u)); }
  .g-sv__list li { gap: calc(12 * var(--u)); padding: calc(24 * var(--u)) calc(8 * var(--u)); border-radius: calc(16 * var(--u)); }
  .g-sv__list p { font-size: calc(22 * var(--u)); }
}

/* ---------- 店舗情報・アクセス（明るい背景） ---------- */
.g-lp.g-ac { --pt-gold: #8a6a2e; --pt-gold-hi: #8a6420; --pt-rule: rgba(138, 106, 46, .25); background: #f3f1ea; color: #1a1c1b; }
.g-ac .g-lp__en span { background: var(--pt-gold); }
.g-ac__body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); max-width: calc(1320 * var(--u)); margin: calc(64 * var(--u)) auto 0; overflow: hidden; background: #fff; border-radius: calc(16 * var(--u)); box-shadow: 0 calc(6 * var(--u)) calc(24 * var(--u)) rgba(60, 45, 20, .06); }
.g-ac__info { padding: calc(48 * var(--u)) calc(48 * var(--u)); }
.g-ac__name { font-family: "Cormorant", serif; font-size: max(calc(34 * var(--u)), 20px); font-weight: 600; letter-spacing: .12em; }
.g-ac__route { display: flex; flex-direction: column; gap: calc(8 * var(--u)); margin: calc(20 * var(--u)) 0 0; padding: 0; list-style: none; }
.g-ac__route li { position: relative; padding-left: calc(30 * var(--u)); font-size: max(calc(19 * var(--u)), 14px); font-weight: 700; }
.g-ac__route li::before { content: ""; position: absolute; left: 0; top: .5em; width: calc(14 * var(--u)); height: calc(14 * var(--u)); min-width: 9px; min-height: 9px; border-radius: 50%; background: #c9a35b; }
.g-ac__dl { margin: calc(28 * var(--u)) 0 0; border-top: 1px solid rgba(138, 106, 46, .2); }
.g-ac__dl div { display: grid; grid-template-columns: calc(130 * var(--u)) minmax(0, 1fr); gap: calc(16 * var(--u)); padding: calc(16 * var(--u)) 0; border-bottom: 1px solid rgba(138, 106, 46, .2); }
.g-ac__dl dt { font-size: max(calc(16 * var(--u)), 12px); font-weight: 700; color: var(--pt-gold); }
.g-ac__dl dd { margin: 0; font-size: max(calc(17 * var(--u)), 13px); line-height: 1.7; color: #4a443d; }
.g-ac__dl a { color: #1a1c1b; font-weight: 700; text-decoration: underline; }
.g-ac__map { display: block; width: 100%; height: 100%; min-height: calc(460 * var(--u)); border: 0; }
@media (max-width: 840px) {
  .g-ac__body { grid-template-columns: 1fr; margin-top: calc(50 * var(--u)); border-radius: calc(20 * var(--u)); }
  .g-ac__info { padding: calc(40 * var(--u)) calc(36 * var(--u)); }
  .g-ac__name { font-size: calc(40 * var(--u)); }
  .g-ac__route li { padding-left: calc(30 * var(--u)); font-size: calc(26 * var(--u)); }
  .g-ac__route li::before { width: calc(16 * var(--u)); height: calc(16 * var(--u)); }
  .g-ac__dl div { grid-template-columns: calc(140 * var(--u)) minmax(0, 1fr); gap: calc(12 * var(--u)); padding: calc(18 * var(--u)) 0; }
  .g-ac__dl dt { font-size: calc(23 * var(--u)); }
  .g-ac__dl dd { font-size: calc(24 * var(--u)); }
  .g-ac__map { min-height: calc(520 * var(--u)); }
}

/* ---------- 固定の予約ボタン：予約セクションが見えている間はフェードで隠す（main.js） ---------- */
.g-fixed-cta { transition: opacity .3s ease, transform .3s ease, visibility .3s; }
.g-fixed-cta.is-hidden-by-reserve { opacity: 0; visibility: hidden; pointer-events: none; }

/* ---------- アンカー移動時の着地位置：固定ヘッダーの高さ＋16pxの余白 ---------- */
/* ゴルフLPのヘッダーはスマホでも66pxあるため、ページ全体の値（common.cssでは540px以下で40px）を上書き */
@media (max-width: 540px) {
  :root { --header-h: 66px; }
}
html { scroll-padding-top: calc(var(--header-h) + 16px); }

/* ---------- ヘッダー：スマホ・タブレットでロゴとメニューボタンの左右余白を本文と揃える（20px） ---------- */
@media (max-width: 840px) {
  .site-header--dark .site-header__logo { padding-left: 20px; }
  .site-header--dark .menu-btn { margin-right: 10px; }   /* ボタン内の線の右端が画面端から20pxになる位置 */
}

/* SP：画面下部固定CTAの高さを縮小し、文言を「体験を今すぐ予約！」の1行に（69px→52px、タップ領域は確保） */
@media (max-width: 540px) {
  .page-golf { --g-cta-h: 52px; }
  .g-fixed-cta { gap: 14px; }
  .g-fixed-cta__text span { font-size: 16px; font-weight: 600; letter-spacing: .04em; }
  .g-fixed-cta__text strong { display: none; }
  .g-fixed-cta__arrow { width: 32px; height: 32px; }
  .g-fixed-cta__arrow::after { width: 8px; height: 8px; border-width: 1.5px; }
}

/* ---------- FV右下：導入計測機器のロゴ（PCのみ表示） ---------- */
.g-fv__equip {
  position: absolute;
  right: calc(56 * var(--u));
  bottom: calc(44 * var(--u));
  z-index: 1;
}
.g-fv__equip-list {
  display: flex; align-items: center;
  padding: calc(26 * var(--u)) 0;
  background: rgba(11, 13, 12, .78);
  border: 1px solid rgba(213, 186, 130, .55);
  box-shadow: 0 calc(12 * var(--u)) calc(40 * var(--u)) rgba(0, 0, 0, .45);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.g-fv__equip-list li { display: flex; align-items: center; padding: 0 calc(40 * var(--u)); }
.g-fv__equip-list li + li { border-left: 1px solid rgba(213, 186, 130, .35); }
.g-fv__equip-list img { display: block; width: auto; }
.g-fv__equip-list .is-trackman img { height: calc(30 * var(--u)); }
.g-fv__equip-list .is-gcquad img   { height: calc(48 * var(--u)); }
.g-fv__equip-list .is-sc img       { height: calc(42 * var(--u)); }
@media (max-width: 840px) {
  .g-fv__equip { display: none; }
}
