/* SUGATA — Figma node 1121:3868 (SUGATA_ver02), HTML/CSS implementation */

:root {
  --color-bg: #fbfbf9;
  --color-primary: #d4a786;
  --color-primary-dark: #cf8e5f;
  --color-mute: #9e9e9e;
  --color-text: #454925;
  --color-news-title: #dab092;
  --color-white: #ffffff;
  --color-contact: #ebac7f;
  --color-line: #a5cc9c;
  --color-campaign: #f6c6a3;
  --color-caption: #d8ab8b;
  --font-zen: "Zen Maru Gothic", sans-serif;
  --font-noto: "Noto Sans JP", sans-serif;
  --font-roboto: "Roboto", sans-serif;
  --font-taprom: "Taprom", serif;
  --page-max: 100%;
  --content-max: 912px;
  --content-max-program: 1008px;
  --radius-lg: 30px;
  --radius-md: 25px;
  --radius-sm: 16px;
  --header-h: 111px;
  --header-logo-height: 73px;
  --content-pad-x: clamp(16px, 4vw, 32px);
  --content-pad-x-left: calc(var(--content-pad-x) + 30px);
}

@media (max-width: 767px) {
  :root {
    --content-pad-x: clamp(14px, 3.8vw, 26px);
  }
}

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

html {
  scroll-behavior: auto;
  scroll-padding-top: calc(var(--header-h) + env(safe-area-inset-top, 0px) - 10px);
}

body {
  margin: 0;
  font-family: var(--font-noto), sans-serif;
  background: var(--color-bg);
  color: var(--color-primary);
  line-height: 1.6;
}

.fade-in-up {
  opacity: 0;
  transition: opacity 0.45s ease;
}

.fade-in-up.is-visible {
  opacity: 1;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (prefers-reduced-motion: reduce) {
  .fade-in-up {
    opacity: 1;
    transform: none;
    transition: none;
    will-change: auto;
  }
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: inherit;
}

.page {
  width: 100%;
  max-width: none;
  margin: 0;
  position: relative;
  padding-top: calc(var(--header-h) + env(safe-area-inset-top, 0px) - 10px);
  background: var(--color-bg);
  overflow-x: hidden;
}

/* 固定ページテンプレート「トップページ」はフロントページ同様に上余白なし */
body.page-template-page-home-php {
  padding-top: 0;
}

@media (min-width: 1100px) {
  html {
    scroll-padding-top: calc(var(--header-h) + env(safe-area-inset-top, 0px) - 20px);
  }

  .page {
    padding-top: calc(var(--header-h) + env(safe-area-inset-top, 0px) - 20px);
  }

  body.page-template-page-home-php {
    padding-top: 0;
  }
}

@supports (overflow: clip) {
  .page {
    overflow-x: clip;
  }
}

/* 本文ブロック：横幅を一定に保ち中央寄せ */
.content-wrap {
  max-width: var(--content-max);
  width: 100%;
  margin-inline: auto;
  padding-left: var(--content-pad-x-left);
  padding-right: var(--content-pad-x);
  box-sizing: border-box;
}

.content-wrap--program {
  max-width: var(--content-max-program);
}

.hero-section__content {
  max-width: var(--content-max);
  width: 100%;
  margin-inline: auto;
  padding-left: var(--content-pad-x-left);
  padding-right: var(--content-pad-x);
  box-sizing: border-box;
}

/* ——— Header ——— */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  padding-top: env(safe-area-inset-top, 0px);
  background: var(--color-white);
  isolation: isolate;
  overflow: visible;
}

.site-header__subbar {
  display: none;
}

@media (min-width: 1100px) {
  .site-header__subbar {
    display: block;
    position: absolute;
    /* 高さ最小・被り回避（右上に“貼り付く”） */
    top: env(safe-area-inset-top, 0px);
    /* 右上のお問い合わせボタン（.btn-contact）と被らないよう左へ退避 */
    right: 128px;
    z-index: 60;
    height: auto;
    box-sizing: border-box;
    /* 右上に“貼り付く”サブメニュー（帯ではなく塊） */
    background: transparent;
    border-bottom: none;
  }
}

@media (min-width: 1300px) {
  /* 横幅が広い時はもう少し右へ戻す */
  .site-header__subbar {
    right: 156px;
  }
}

.site-subnav {
  max-width: none;
  margin: 0;
  padding: 0;
  height: auto;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  box-sizing: border-box;
}

/* お問い合わせボタン上の余白に影響しないよう、ここでは余白を作らない */

.site-subnav__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 0 8px;
  background: color-mix(in srgb, var(--color-primary) 6%, white);
  /* 上は角丸なし、下だけ角丸 */
  border-radius: 0 0 16px 16px;
  padding: 4px 12px;
  /* 上のボーダーは無し（左右＋下のみ） */
  box-shadow:
    inset 1px 0 0 rgba(69, 73, 37, 0.09),
    inset -1px 0 0 rgba(69, 73, 37, 0.09),
    inset 0 -1px 0 rgba(69, 73, 37, 0.09);
}

.site-subnav__list a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 6px;
  font-family: var(--font-noto), sans-serif;
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.06em;
  color: color-mix(in srgb, var(--color-text) 58%, white);
  text-decoration: none;
  opacity: 1;
}

.site-subnav__list a:hover {
  color: var(--color-text);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.site-header__inner {
  width: 100%;
  max-width: none;
  margin: 0 auto;
  padding: 10px clamp(12px, 3vw, 24px) 6px calc(clamp(12px, 3vw, 24px) + 15px);
  display: flex;
  align-items: flex-start;
  gap: 16px;
  min-height: calc(var(--header-h) - 20px);
  overflow: visible;
}

@media (min-width: 1100px) {
  .site-header__inner {
    padding-right: 0;
    gap: 12px;
  }
}

.site-logo {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  line-height: 0;
  overflow: visible;
  margin-block: 0;
}

.site-logo img {
  width: auto;
  height: var(--header-logo-height);
  max-height: var(--header-logo-height);
  object-fit: contain;
  object-position: left center;
}

@media (min-width: 900px) {
  :root {
    --header-h: 119px;
  }
}

/* secondary は絶対配置でレイアウトに影響させない */

.site-nav {
  flex: 1;
  min-width: 0;
}

@media (min-width: 1100px) {
  .site-nav {
    margin-left: 8px;
    display: flex;
    align-items: center;
    min-height: var(--header-logo-height);
  }
}

.site-nav__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: none;
  flex-wrap: wrap;
  gap: 0 3px;
  justify-content: flex-start;
  align-items: center;
}

.site-nav__secondary-wrap {
  display: none;
}

@media (min-width: 1100px) {
  .site-nav__list {
    display: flex;
  }
}

.site-nav a {
  display: block;
  padding: 12px 8px;
  font-family: var(--font-noto), sans-serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 1;
  color: var(--color-mute);
  text-decoration: none;
  white-space: nowrap;
}

.site-nav a:hover {
  color: var(--color-primary);
}

.btn-contact {
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  min-width: 100px;
  padding: 14px 16px 8px 14px;
  background: var(--color-contact);
  color: var(--color-white);
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.05em;
  text-decoration: none;
  text-align: center;
  line-height: 1.25;
  border-radius: 0 0 0 25px;
  align-self: flex-start;
  flex-shrink: 0;
  box-sizing: border-box;
  transition:
    background 0.4s cubic-bezier(0.33, 1, 0.68, 1),
    color 0.4s cubic-bezier(0.33, 1, 0.68, 1),
    box-shadow 0.4s cubic-bezier(0.33, 1, 0.68, 1),
    transform 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.btn-contact:hover,
.btn-contact:focus-visible {
  background: var(--color-white);
  color: var(--color-contact);
  box-shadow: inset 0 0 0 2px var(--color-contact);
  transform: translateY(-2px);
}

.btn-contact:focus-visible {
  outline: 2px solid var(--color-contact);
  outline-offset: 3px;
}

.btn-contact:hover .btn-contact__icon,
.btn-contact:focus-visible .btn-contact__icon {
  filter: brightness(0) saturate(100%) invert(72%) sepia(41%) saturate(394%) hue-rotate(322deg)
    brightness(103%) contrast(94%);
}

.btn-contact__icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  object-fit: contain;
  filter: brightness(0) invert(1);
  transition: filter 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

@media (min-width: 1100px) {
  .btn-contact {
    display: flex;
    margin-left: auto;
    /* .site-header__inner の padding-top: 10px だけボタン上に乗るのを打ち消す */
    margin-top: -10px;
    height: 86px;
    min-height: 86px;
    max-height: 86px;
    padding: 14px 16px 8px 14px;
    gap: 8px;
  }
}

.menu-toggle {
  margin-left: auto;
  background: none;
  border: 0;
  padding: 8px;
  cursor: pointer;
  line-height: 0;
  color: inherit;
}

.menu-toggle__icon {
  display: none;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 5px;
  width: 26px;
  height: 18px;
}

.menu-toggle__bar {
  display: block;
  height: 2px;
  border-radius: 1px;
  background: var(--color-white);
  transition: transform 0.25s ease, opacity 0.2s ease;
  transform-origin: center;
}

@media (min-width: 1100px) {
  .menu-toggle {
    display: none;
  }
}

@media (max-width: 1099px) {
  :root {
    --header-h: 70px;
    --header-logo-height: 56px;
  }

  .site-header {
    background: var(--color-white);
  }

  .site-header__inner {
    position: relative;
    min-height: var(--header-h);
    height: var(--header-h);
    align-items: center;
    padding: 0 clamp(12px, 3vw, 20px) 0 clamp(12px, 3vw, 20px);
    background: var(--color-white);
    border-radius: 0;
    box-shadow: 0 1px 0 rgba(212, 167, 134, 0.12);
  }

  .menu-toggle {
    position: absolute;
    top: 0;
    right: 0;
    margin-left: 0;
    width: var(--header-h);
    height: var(--header-h);
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-primary);
    border-radius: 0 0 0 20px;
    z-index: 3;
    box-sizing: border-box;
  }

  .menu-toggle__icon {
    display: flex;
  }

  body.nav-open .menu-toggle__bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

  body.nav-open .menu-toggle__bar:nth-child(2) {
    opacity: 0;
    transform: scaleX(0);
  }

  body.nav-open .menu-toggle__bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  .site-header__backdrop {
    display: none;
    position: fixed;
    left: 0;
    right: 0;
    top: calc(var(--header-h) + env(safe-area-inset-top, 0px));
    bottom: 0;
    background: rgba(38, 34, 28, 0.28);
    z-index: 41;
    cursor: pointer;
  }

  body.nav-open .site-header__backdrop {
    display: block;
  }

  body.nav-open {
    overflow: hidden;
  }
}

@media (max-width: 1099px) and (prefers-reduced-motion: reduce) {
  .menu-toggle__bar {
    transition: none;
  }
}

/* モバイルメニュー用のお問い合わせCTA（PCでは出さない） */
.site-nav__mobile-contact {
  display: none;
}

/* ヘッダー内では常に非表示（nav-open 時だけ下で出す） */
.site-header__inner .site-nav__mobile-contact {
  display: none !important;
}

@media (max-width: 1099px) {
  .site-nav__mobile-contact {
    display: none;
  }

  body.nav-open .site-nav {
    position: fixed;
    left: 0;
    right: 0;
    top: calc(var(--header-h) + env(safe-area-inset-top, 0px));
    bottom: 0;
    z-index: 42;
    display: flex;
    flex-direction: column;
    background: var(--color-bg);
    overflow: hidden;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.08);
  }

  body.nav-open .site-nav__list {
    display: flex;
    position: static;
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
    flex: 1 1 auto;
    min-height: 0;
    flex-direction: column;
    align-items: stretch;
    flex-wrap: nowrap;
    gap: 0;
    padding: 8px 0 12px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    background: var(--color-bg);
    box-shadow: none;
    z-index: auto;
  }

  body.nav-open .site-nav__mobile-contact {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-shrink: 0;
    align-self: stretch;
    margin: 10px 16px calc(12px + env(safe-area-inset-bottom, 0px));
    padding: 14px 20px;
    min-height: 48px;
    box-sizing: border-box;
    border-radius: 999px;
    background: var(--color-contact);
    color: var(--color-white);
    font-family: var(--font-zen), sans-serif;
    font-weight: 700;
    font-size: 15px;
    letter-spacing: 0.08em;
    text-decoration: none;
    border: 0;
    box-shadow: 0 4px 18px rgba(235, 172, 127, 0.4);
    transition:
      background 0.2s ease,
      transform 0.2s ease,
      box-shadow 0.2s ease;
  }

  body.nav-open .site-header__inner .site-nav__mobile-contact {
    display: flex !important;
  }

  body.nav-open .site-nav__mobile-contact:hover,
  body.nav-open .site-nav__mobile-contact:focus-visible {
    background: color-mix(in srgb, var(--color-contact) 86%, #3a2a1a);
    color: var(--color-white);
    transform: translateY(-1px);
    box-shadow: 0 6px 22px rgba(235, 172, 127, 0.45);
  }

  body.nav-open .site-nav__mobile-contact:focus-visible {
    outline: 2px solid var(--color-primary-dark);
    outline-offset: 2px;
  }

  .site-nav__mobile-contact__icon {
    width: 20px;
    height: 20px;
    object-fit: contain;
    filter: brightness(0) invert(1);
    flex-shrink: 0;
  }

  body.nav-open .site-nav a {
    padding: 16px 20px;
    font-size: 15px;
    line-height: 1.35;
    white-space: normal;
    border-bottom: 1px solid rgba(212, 167, 134, 0.18);
  }

  body.nav-open .site-nav li:last-child a {
    border-bottom: 0;
  }

  body.nav-open .site-nav__secondary-wrap {
    display: block;
    padding: 14px 20px 24px;
    background: color-mix(in srgb, var(--color-primary) 3%, var(--color-bg));
    border-top: 1px solid rgba(212, 167, 134, 0.18);
  }

  body.nav-open .site-nav__secondary-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px 12px;
  }

  body.nav-open .site-nav__secondary-list a {
    padding: 10px 12px;
    border: 1px solid rgba(212, 167, 134, 0.14);
    border-radius: 10px;
    background: var(--color-white);
    font-weight: 500;
    font-size: 13px;
    color: color-mix(in srgb, var(--color-text) 60%, white);
    text-decoration: none;
    text-align: center;
  }

  body.nav-open .site-nav__secondary-list a:hover,
  body.nav-open .site-nav__secondary-list a:focus-visible {
    color: var(--color-text);
  }
}

@media (min-width: 1100px) {
  body.nav-open .site-nav {
    position: static;
    display: block;
    overflow: visible;
    box-shadow: none;
    flex-direction: unset;
    background: transparent;
  }

  body.nav-open .site-nav__list {
    display: flex;
    position: static;
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
    flex: none;
    min-height: 0;
    flex-direction: row;
    flex-wrap: wrap;
    padding: 0;
    overflow: visible;
    box-shadow: none;
    gap: 0 3px;
  }

  .site-nav__mobile-contact {
    display: none !important;
  }

  .site-header__backdrop {
    display: none !important;
  }

  .site-nav__secondary-wrap {
    display: none !important;
  }
}

/* ——— Hero ——— */
.hero-section {
  position: relative;
  padding: 0 0 32px;
}

.hero-visual {
  position: relative;
  width: calc(100% - 15px);
  border-radius: var(--radius-md) 0 0 var(--radius-md);
  overflow: hidden;
  margin: 0 0 0 15px;
}

.hero-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  border-radius: inherit;
  background: rgba(255, 255, 255, 0.3);
}

@media (min-width: 768px) {
  .hero-visual {
    margin-left: calc(clamp(0px, 2vw, 24px) + 15px);
    width: calc(100% - clamp(0px, 2vw, 24px) - 15px);
    max-width: none;
  }
}

.hero-visual__video,
.hero-visual__fallback {
  width: 100%;
  display: block;
  min-height: 280px;
  object-fit: cover;
}

.hero-visual__video {
  aspect-ratio: 1251 / 720;
  max-height: min(76vh, 720px);
}

.hero-visual__fallback {
  display: none;
  height: auto;
}

.hero-visual__fallback.hero-visual__fallback--visible {
  display: block;
  aspect-ratio: 1251 / 720;
}

@media (prefers-reduced-motion: reduce) {
  .hero-visual__video {
    display: none;
  }

  .hero-visual__fallback {
    display: block;
    aspect-ratio: 1251 / 720;
  }
}

.hero-news {
  position: relative;
  margin-top: -80px;
  margin-bottom: 0;
  margin-inline: 10px;
  width: calc(100% - 20px);
  max-width: none;
  background: var(--color-white);
  border-radius: var(--radius-lg);
  padding: 32px 36px 40px;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.06);
  z-index: 2;
}

@media (max-width: 767px) {
  .hero-visual {
    margin-left: 0;
    width: 100%;
    border-radius: 0;
  }

  .hero-visual::after {
    border-radius: 0;
  }

  .hero-visual__video {
    /* SPは縦長すぎるので正方形寄りに */
    aspect-ratio: 1 / 1;
    max-height: none;
  }

  .hero-visual__fallback.hero-visual__fallback--visible {
    aspect-ratio: 1 / 1;
    max-height: none;
  }

  .hero-section__content {
    padding-left: var(--content-pad-x);
  }

  .hero-news {
    margin-top: -56px;
    margin-inline: 10px;
    width: calc(100% - 20px);
    max-width: none;
    padding: 24px var(--content-pad-x) 28px;
    border-radius: 20px;
  }

  .hero-news__head {
    margin-bottom: 0;
    text-align: center;
    width: 100%;
  }

  .hero-news__title,
  .hero-news__en {
    text-align: center;
  }

}

@media (max-width: 767px) and (prefers-reduced-motion: reduce) {
  .hero-visual__fallback {
    aspect-ratio: 1 / 1;
  }
}

.hero-news__grid {
  display: grid;
  gap: 16px;
}

@media (max-width: 899px) {
  .hero-news__grid {
    display: flex;
    flex-direction: column;
  }

  .hero-news__left {
    display: contents;
  }

  .hero-news__head {
    order: 1;
  }

  .hero-news__right {
    order: 2;
  }

  .hero-news__more {
    order: 3;
  }
}

@media (min-width: 900px) {
  .hero-news__grid {
    grid-template-columns: 220px 1fr;
    gap: clamp(24px, 4vw, 40px);
    align-items: stretch;
  }
}

.hero-news__left {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.hero-news__right {
  min-width: 0;
}

.hero-news__head {
  margin-bottom: 20px;
}

.hero-news__title {
  margin: 0;
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(22px, 3.2vw, 28px);
  letter-spacing: 0.05em;
  color: var(--color-news-title);
  line-height: 1.2;
}

.hero-news__en {
  margin: 0;
  margin-top: calc(-0.15em + 4px);
  font-family: var(--font-zen), sans-serif;
  font-weight: 500;
  font-size: clamp(11px, 1.85vw, 13px);
  line-height: 1.2;
  color: var(--color-news-title);
}

.hero-news__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.hero-news__list li {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
  align-items: start;
  margin-bottom: 0;
  padding-bottom: 22px;
  font-size: 14px;
}

.hero-news__list li:last-child {
  padding-bottom: 0;
}

.hero-news__list time {
  font-family: var(--font-noto), sans-serif;
  color: #333;
  font-size: 13px;
}

.hero-news__list span,
.hero-news__list a {
  color: #333;
  text-decoration: none;
}

.hero-news__list a {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.hero-news__more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 0;
  font-family: var(--font-noto), sans-serif;
  font-weight: 500;
  font-size: 15px;
  letter-spacing: 0.03em;
  color: var(--color-primary);
  text-decoration: none;
}

@media (min-width: 900px) {
  .hero-news__left {
    align-self: stretch;
    min-height: 100%;
  }

  .hero-news__more {
    margin-top: auto;
  }
}

@media (max-width: 899px) and (min-width: 768px) {
  .hero-news__more {
    margin-top: 8px;
  }
}

@media (max-width: 767px) {
  .hero-news__more {
    margin-top: 4px;
    margin-left: auto;
    margin-right: auto;
  }
}

.hero-news__more:hover {
  opacity: 0.85;
}

.hero-news__more .icon-arrow {
  color: var(--color-primary);
  flex-shrink: 0;
}

.icon-arrow {
  flex-shrink: 0;
}

.outline-btn__label {
  display: inline-block;
  transform: translateY(-0.07em);
}

.outline-btn__arrow {
  margin-left: auto;
  flex-shrink: 0;
  display: block;
  width: auto;
  max-width: 28px;
  height: 9px;
  object-fit: contain;
  transition: filter 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.outline-btn:hover .outline-btn__arrow,
.outline-btn:focus-visible .outline-btn__arrow {
  filter: brightness(0) invert(1);
}

.hero-campaign-row {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 12px;
  margin-top: clamp(36px, 5vw, 56px);
  margin-bottom: 60px;
  justify-content: center;
  padding: 0;
  box-sizing: border-box;
}

.campaign-bar {
  flex: 1 1 280px;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 16px 24px;
  border: 0;
  border-radius: 55px;
  background: var(--color-campaign);
  min-height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  font-family: var(--font-zen), sans-serif;
  font-weight: 500;
  font-size: clamp(20px, 3vw, 32px);
  letter-spacing: 0.05em;
  line-height: 1.2;
  color: var(--color-white);
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.25s ease, filter 0.25s ease;
}

.campaign-bar:hover {
  filter: brightness(0.96);
}

.campaign-bar:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
}

.hero-side-cta {
  display: none;
}

/* スマホ/タブレット: 右下に小さく追従表示（固定ページCTAのみ） */
@media (max-width: 1099px) {
  /* reCAPTCHA のバッジ（右下）が追従CTAと被るため、SPでは非表示にする */
  .grecaptcha-badge {
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  .hero-side-cta.hero-side-cta--fixed-page {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 9px;
    padding: 12px 14px;
    border-radius: 999px;
    position: fixed;
    right: 12px;
    z-index: 60;
    background: rgba(255, 255, 255, 1);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.14);
    font-family: var(--font-zen), sans-serif;
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.05em;
    text-decoration: none;
    line-height: 1;
    transition:
      background-color 0.25s ease,
      box-shadow 0.25s ease;
  }

  /* スクロール中: 非表示にせず、白地と影だけ少し薄めて邪魔になりにくくする */
  body.is-scrolling .hero-side-cta.hero-side-cta--fixed-page {
    background: rgba(255, 255, 255, 0.76);
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.1);
  }

  .hero-side-cta--fixed-page.hero-side-cta--first {
    bottom: calc(12px + 44px + 10px + env(safe-area-inset-bottom, 0px));
    color: #1E9C94;
    box-shadow:
      0 10px 28px rgba(0, 0, 0, 0.14),
      inset 0 0 0 1px color-mix(in srgb, #1E9C94 55%, transparent);
  }

  .hero-side-cta--fixed-page.hero-side-cta--first:hover,
  .hero-side-cta--fixed-page.hero-side-cta--first:focus-visible {
    color: #1E9C94;
    box-shadow:
      0 10px 28px rgba(0, 0, 0, 0.14),
      inset 0 0 0 1px color-mix(in srgb, #1E9C94 70%, transparent);
  }

  .hero-side-cta--fixed-page.hero-side-cta--trial {
    bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    color: var(--color-primary);
  }

  .hero-side-cta--fixed-page.hero-side-cta--line {
    bottom: calc(12px + (44px + 10px) * 2 + env(safe-area-inset-bottom, 0px));
  }

  .hero-side-cta--fixed-page .hero-side-cta__trial-icon,
  .hero-side-cta--fixed-page .hero-side-cta__icon,
  .hero-side-cta--fixed-page .hero-side-cta__beginner-icon {
    width: 20px;
    height: 20px;
  }

  /* 追従「体験予約」：アイコンをラベルと同系のプライマリ（サンドオレンジ）に */
  .hero-side-cta--fixed-page.hero-side-cta--trial .hero-side-cta__trial-icon {
    filter: brightness(0) saturate(100%) invert(72%) sepia(31%) saturate(388%) hue-rotate(352deg) brightness(95%) contrast(92%);
  }

  .hero-side-cta--fixed-page.hero-side-cta--first picture {
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
  }

  .hero-side-cta--fixed-page .hero-side-cta__icon {
    font-size: 20px;
    width: auto;
    height: auto;
  }

  /* トップ（ヒーロー内CTAがあるページ）: SPは追従CTAを正とし、ヒーロー内の重複CTAを隠す */
  body.home .hero-section > .hero-side-cta,
  body.front-page .hero-section > .hero-side-cta,
  body.page-template-page-home-php .hero-section > .hero-side-cta {
    display: none !important;
  }

  /* トップの「はじめての方へ」は従来どおりオレンジ系（下層の teal 上書きを打ち消す） */
  body.home .hero-side-cta--fixed-page.hero-side-cta--first,
  body.front-page .hero-side-cta--fixed-page.hero-side-cta--first,
  body.page-template-page-home-php .hero-side-cta--fixed-page.hero-side-cta--first {
    color: var(--color-primary-dark);
    box-shadow:
      0 10px 28px rgba(0, 0, 0, 0.14),
      inset 0 0 0 1px color-mix(in srgb, var(--color-primary) 45%, transparent);
  }

  body.home .hero-side-cta--fixed-page.hero-side-cta--first:hover,
  body.home .hero-side-cta--fixed-page.hero-side-cta--first:focus-visible,
  body.front-page .hero-side-cta--fixed-page.hero-side-cta--first:hover,
  body.front-page .hero-side-cta--fixed-page.hero-side-cta--first:focus-visible,
  body.page-template-page-home-php .hero-side-cta--fixed-page.hero-side-cta--first:hover,
  body.page-template-page-home-php .hero-side-cta--fixed-page.hero-side-cta--first:focus-visible {
    color: var(--color-primary-dark);
    box-shadow:
      0 10px 28px rgba(0, 0, 0, 0.14),
      inset 0 0 0 1px color-mix(in srgb, var(--color-primary) 70%, transparent);
  }
}

@media (min-width: 1100px) {
  .hero-side-cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    width: 132px;
    padding: 12px 10px;
    color: var(--color-white);
    font-family: var(--font-zen), sans-serif;
    font-weight: 500;
    font-size: 12px;
    letter-spacing: 0.05em;
    text-decoration: none;
    border-radius: 18px 0 0 18px;
    position: fixed;
    right: 0;
    z-index: 45;
    transition:
      background 0.4s cubic-bezier(0.33, 1, 0.68, 1),
      color 0.4s cubic-bezier(0.33, 1, 0.68, 1),
      box-shadow 0.4s cubic-bezier(0.33, 1, 0.68, 1),
      width 0.4s cubic-bezier(0.33, 1, 0.68, 1),
      opacity 0.25s ease;
    will-change: opacity;
  }

  /* スクロール中は右側追従CTAを隠してコンテンツ邪魔を減らす */
  body.is-scrolling .hero-side-cta {
    opacity: 0;
    transform: none;
    pointer-events: none;
  }

  .hero-side-cta--trial:hover,
  .hero-side-cta--trial:focus-visible {
    background: var(--color-white);
    color: var(--color-contact);
    box-shadow: inset 0 0 0 2px var(--color-contact);
    width: 118px;
  }

  .hero-side-cta--trial:focus-visible {
    outline: 2px solid var(--color-contact);
    outline-offset: 2px;
  }

  .hero-side-cta--trial:hover .hero-side-cta__trial-icon,
  .hero-side-cta--trial:focus-visible .hero-side-cta__trial-icon {
    filter: brightness(0) saturate(100%) invert(72%) sepia(41%) saturate(394%) hue-rotate(322deg)
      brightness(103%) contrast(94%);
  }

  .hero-side-cta--line:hover,
  .hero-side-cta--line:focus-visible {
    background: var(--color-white);
    color: var(--color-line);
    box-shadow: inset 0 0 0 2px var(--color-line);
    width: 146px;
  }

  .hero-side-cta--line:focus-visible {
    outline: 2px solid var(--color-line);
    outline-offset: 2px;
  }

  .hero-side-cta--first:hover,
  .hero-side-cta--first:focus-visible {
    background: color-mix(in srgb, var(--color-primary) 12%, white);
    color: var(--color-primary-dark);
    box-shadow:
      inset 2px 0 0 var(--color-primary),
      inset 0 2px 0 var(--color-primary),
      inset 0 -2px 0 var(--color-primary);
    width: 142px;
  }

  .hero-side-cta--first:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
  }

  /* PC追従バナー（下層ページ）: 「はじめての方へ」だけ別カラー（hoverは通常ルールより後ろで上書き） */
  .hero-side-cta--fixed-page.hero-side-cta--first:hover,
  .hero-side-cta--fixed-page.hero-side-cta--first:focus-visible {
    background: color-mix(in srgb, #1E9C94 12%, white);
    color: #1E9C94;
    box-shadow:
      inset 2px 0 0 #1E9C94,
      inset 0 2px 0 #1E9C94,
      inset 0 -2px 0 #1E9C94;
  }

  .hero-side-cta--fixed-page.hero-side-cta--first:focus-visible {
    outline: 2px solid #1E9C94;
  }

  /* 体験予約の直下に 15px あけて LINE */
  .hero-side-cta--first {
    background: var(--color-white);
    color: var(--color-primary-dark);
    /* 右端の線が出ないよう、枠線は左＋上下のみ（Figma: プライマリサンドのライン） */
    box-shadow:
      inset 2px 0 0 var(--color-primary),
      inset 0 2px 0 var(--color-primary),
      inset 0 -2px 0 var(--color-primary);
    top: 440px;
    width: 126px;
  }

  /* PC追従バナー（下層ページ）: 「はじめての方へ」だけ別カラー */
  .hero-side-cta--fixed-page.hero-side-cta--first {
    color: #1E9C94;
    box-shadow:
      inset 2px 0 0 #1E9C94,
      inset 0 2px 0 #1E9C94,
      inset 0 -2px 0 #1E9C94;
  }

  /* トップPC: 追従CTAを出していないため、ヒーロー横「はじめての方へ」を下層追従と同じ teal に */
  body.home .hero-section > .hero-side-cta--first,
  body.front-page .hero-section > .hero-side-cta--first,
  body.page-template-page-home-php .hero-section > .hero-side-cta--first {
    color: #1E9C94;
    box-shadow:
      inset 2px 0 0 #1E9C94,
      inset 0 2px 0 #1E9C94,
      inset 0 -2px 0 #1E9C94;
  }

  body.home .hero-section > .hero-side-cta--first:hover,
  body.home .hero-section > .hero-side-cta--first:focus-visible,
  body.front-page .hero-section > .hero-side-cta--first:hover,
  body.front-page .hero-section > .hero-side-cta--first:focus-visible,
  body.page-template-page-home-php .hero-section > .hero-side-cta--first:hover,
  body.page-template-page-home-php .hero-section > .hero-side-cta--first:focus-visible {
    background: color-mix(in srgb, #1E9C94 12%, white);
    color: #1E9C94;
    box-shadow:
      inset 2px 0 0 #1E9C94,
      inset 0 2px 0 #1E9C94,
      inset 0 -2px 0 #1E9C94;
  }

  body.home .hero-section > .hero-side-cta--first:focus-visible,
  body.front-page .hero-section > .hero-side-cta--first:focus-visible,
  body.page-template-page-home-php .hero-section > .hero-side-cta--first:focus-visible {
    outline: 2px solid #1E9C94;
  }

  .hero-side-cta--trial {
    background: var(--color-contact);
    /* 「初めての方へ」の下だけ少し広めに */ 
    top: calc(440px + 12px + 24px + 5px + 1.4em + 12px + 14px);
    width: 108px;
  }

  .hero-side-cta--line {
    background: var(--color-line);
    top: calc(440px + (12px + 24px + 5px + 1.4em + 12px) + 14px + (12px + 24px + 5px + 1.4em + 12px) + 10px);
  }

  .hero-side-cta--line .hero-side-cta__icon {
    font-size: 24px;
    line-height: 1;
    color: inherit;
    transition: color 0.4s cubic-bezier(0.33, 1, 0.68, 1);
  }

  .hero-side-cta__trial-icon {
    width: 24px;
    height: 24px;
    object-fit: contain;
    transition: filter 0.4s cubic-bezier(0.33, 1, 0.68, 1);
  }

  .hero-side-cta--trial .hero-side-cta__trial-icon {
    filter: brightness(0) invert(1);
  }

  .hero-side-cta__beginner-icon {
    width: 24px;
    height: 24px;
    display: block;
    object-fit: contain;
  }

  .hero-side-cta__label {
    writing-mode: horizontal-tb;
    text-align: center;
  }

  .hero-side-cta--fixed-page.hero-side-cta--trial {
    /* 「初めての方へ」の下だけ少し広めに */
    top: calc(200px + 12px + 24px + 5px + 1.4em + 12px + 14px);
  }

  .hero-side-cta--fixed-page.hero-side-cta--line {
    top: calc(200px + (12px + 24px + 5px + 1.4em + 12px) + 14px + (12px + 24px + 5px + 1.4em + 12px) + 10px);
  }

  .hero-side-cta--fixed-page.hero-side-cta--first {
    top: 200px;
  }

  /* トップ（ヒーロー内CTAがあるページ）: PCはヒーロー内CTAを正とし、追従CTAは出さない */
  body.home .hero-side-cta.hero-side-cta--fixed-page,
  body.front-page .hero-side-cta.hero-side-cta--fixed-page,
  body.page-template-page-home-php .hero-side-cta.hero-side-cta--fixed-page {
    display: none !important;
  }
}

/* ——— Intro headline（縦書き2列・Figma 1121:3915周辺相当） ——— */
.intro-headline--vertical {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  padding: clamp(32px, 6vw, 56px) 0 8px;
  width: 100%;
  box-sizing: border-box;
}

.intro-headline__cols {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  align-items: flex-start;
  gap: clamp(0.9rem, 3.4vw, 2.35rem);
  width: 100%;
  box-sizing: border-box;
}

.intro-headline__col {
  margin: 0;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(18px, 2.55vw, 28px);
  line-height: 1.75;
  letter-spacing: 0.28em;
  color: var(--color-primary);
  font-feature-settings: "vkna", "vrt2";
  min-height: 8em;
}

/* SUGATA + で始まる：縦組2カラム（flex は vertical-rl 下で縦積みになりやすいので grid で横並び固定） */
.intro-headline__col--with-brand {
  display: inline-grid;
  grid-template-columns: max-content max-content;
  column-gap: 0.35em;
  align-items: start;
  justify-items: start;
  width: max-content;
  max-width: 100%;
}

.intro-headline__trail {
  line-height: inherit;
  letter-spacing: inherit;
  white-space: nowrap;
}

.intro-headline__brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  line-height: 1;
  letter-spacing: 0;
  writing-mode: horizontal-tb;
  text-orientation: initial;
}

.intro-headline__col--with-brand .intro-headline__brand {
  transform: translateX(-15px);
}

.story-block__intro .intro-headline__col--with-brand .intro-headline__brand {
  transform: translateX(-14px);
}

.intro-headline__brand-letter {
  display: block;
  line-height: 1;
}

.intro-headline__brand-letter--g {
  margin-top: -0.05em;
  margin-bottom: -0.05em;
}

.intro-tagline-bottom {
  text-align: center;
  font-family: var(--font-zen), sans-serif;
  font-weight: 500;
  font-size: clamp(22px, 3vw, 30px);
  letter-spacing: 0.05em;
  margin: clamp(16px, 3vw, 28px) 0 48px;
  padding: 0;
  color: var(--color-primary);
}

.story-sugata-is .intro-tagline-bottom {
  margin: 0 0 clamp(16px, 3vw, 28px);
  width: 100%;
}

/* ——— Story ——— */
.story-section {
  padding: 0 0 80px;
  width: 100%;
  box-sizing: border-box;
}

.story-block--lead {
  margin-bottom: 24px;
}

.story-block__media-col {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  min-width: 0;
}

@media (min-width: 900px) {
  .story-block--lead {
    display: grid;
    grid-template-columns: minmax(260px, 460px) 1fr;
    gap: clamp(24px, 4vw, 40px);
    align-items: stretch;
  }

  .story-block--lead > .story-block__media-col {
    grid-column: 1;
  }

  .story-block--lead > .story-block__intro {
    grid-column: 2;
  }
}

/* top_img_01 右横の縦書きキャッチ */
.story-block__intro.intro-headline--vertical {
  padding: clamp(24px, 4vw, 32px) 0 0;
}

@media (min-width: 900px) {
  .story-block__intro.intro-headline--vertical {
    padding: 0;
    min-height: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
  }

  .story-block__intro .intro-headline__cols {
    margin-inline-start: clamp(16px, 4vw, 40px);
    flex: 1;
    min-height: 0;
    align-items: flex-start;
    gap: clamp(0.45rem, 1.45vw, 1.05rem);
  }

  .story-block__intro .intro-headline__col:not(.intro-headline__col--with-brand) {
    align-self: flex-end;
    transform: translateX(10px);
  }

  .story-block__intro .intro-headline__trail {
    transform: none;
  }
}

.story-block__media--01 {
  max-width: 460px;
  width: min(100%, 460px);
  margin-inline: auto;
}

.story-block__media--01 img {
  width: 100%;
  border-radius: 20px;
  object-fit: cover;
}

@media (max-width: 767px) {
  .story-block--lead {
    display: grid;
    grid-template-columns: minmax(0, 72fr) minmax(0, 28fr);
    gap: 10px 12px;
    align-items: start;
  }

  .story-block__media-col {
    align-self: start;
  }

  .story-block__media--01 {
    max-width: none;
    width: 100%;
    margin-inline: 0;
  }

  .story-block__intro.intro-headline--vertical {
    padding: 2px 0 0;
    min-width: 0;
    width: 100%;
  }

  .story-block__intro .intro-headline__cols {
    flex-wrap: nowrap;
    justify-content: center;
    gap: clamp(0.25rem, 1.5vw, 0.65rem);
    align-items: flex-start;
    width: 100%;
    min-width: 0;
  }

  .story-block__intro .intro-headline__col {
    font-size: clamp(15px, 4.85vw, 22px);
    min-height: auto;
    letter-spacing: 0.1em;
    flex-shrink: 0;
  }

  .story-block__intro .intro-headline__col--with-brand {
    max-width: none;
  }

  /* SPでは左に寄りやすいので少し戻す */
  .story-block__intro .intro-headline__col--with-brand .intro-headline__brand {
    transform: translateX(-11px);
  }
}

/* さらに狭い幅ではレンダリング差で左に寄るので微調整 */
@media (max-width: 410px) {
  .story-block__intro .intro-headline__col--with-brand .intro-headline__brand {
    transform: translateX(-10px);
  }
}

@media (max-width: 380px) {
  .story-block__intro .intro-headline__col--with-brand .intro-headline__brand {
    transform: translateX(-8px);
  }
}

/* 768–899px：縦書きがカラム落ちしないよう、2カラム維持 */
@media (min-width: 768px) and (max-width: 899px) {
  .story-block--lead {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 320px);
    gap: clamp(16px, 3.2vw, 28px);
    align-items: stretch;
  }

  .story-block--lead > .story-block__media-col {
    grid-column: 1;
  }

  .story-block--lead > .story-block__intro {
    grid-column: 2;
  }

  .story-block__intro.intro-headline--vertical {
    padding: 0;
    height: 100%;
    display: flex;
    flex-direction: column;
  }

  .story-block__intro .intro-headline__cols {
    margin-inline-start: clamp(8px, 2vw, 16px);
    flex: 1;
    min-height: 0;
    align-items: flex-start;
    gap: clamp(0.35rem, 1.2vw, 0.85rem);
  }
}

.story-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(12px, 3.5vw, 40px);
  align-items: center;
  margin-bottom: 48px;
}

.story-split__media {
  max-width: none;
  width: 100%;
  margin-inline: 0;
  min-width: 0;
}

.story-split__caption {
  min-width: 0;
}

.story-split__media img {
  width: 100%;
  border-radius: 20px;
  object-fit: cover;
}

.story-split__caption p {
  margin: 0;
  font-family: var(--font-noto), sans-serif;
  font-weight: 500;
  font-size: clamp(12px, 2.8vw, 17px);
  letter-spacing: 0.12em;
  color: var(--color-caption);
  line-height: 1.75;
}

.story-lead {
  text-align: center;
  max-width: none;
  width: 100%;
  padding: 0;
  box-sizing: border-box;
  margin: 0 auto 56px;
  font-family: var(--font-noto), sans-serif;
  font-weight: 500;
  font-size: clamp(12px, 1.65vw, 16px);
  letter-spacing: 0.22em;
  color: var(--color-primary);
  line-height: 2;
}

@media (min-width: 900px) {
  .story-lead {
    font-size: clamp(14px, 1.85vw, 18px);
    letter-spacing: 0.24em;
  }
}

.story-lead p {
  margin: 0 0 0.2em;
}

.story-lead--section-center {
  margin: 100px 0;
  text-align: center;
  padding-inline-end: 0.3em;
  box-sizing: border-box;
}

.story-grid {
  display: flex;
  flex-direction: column;
  gap: 48px;
  margin-bottom: 64px;
}

.story-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(10px, 3vw, 24px);
  align-items: center;
}

.story-card__text {
  min-width: 0;
}

.story-card--text-first .story-card__text {
  padding-right: clamp(8px, 3vw, 32px);
  padding-left: 0;
}

.story-card__media img {
  border-radius: var(--radius-sm);
  width: 100%;
  object-fit: cover;
}

.story-card__text p {
  margin: 0;
  font-family: var(--font-noto), sans-serif;
  font-weight: 500;
  font-size: clamp(12px, 2.8vw, 17px);
  letter-spacing: 0.12em;
  line-height: 1.75;
  color: var(--color-primary);
}

.story-card__nobr {
  white-space: nowrap;
}

.story-card__text--right {
  padding-left: clamp(8px, 3vw, 32px);
}

.story-card__text--left {
  padding-right: clamp(8px, 3vw, 32px);
}

.story-card__media {
  min-width: 0;
}

@media (max-width: 767px) {
  .story-card__nobr {
    white-space: normal;
  }
}

.story-sugata-is {
  text-align: center;
  position: relative;
  padding: 32px 0;
}

.story-sugata-is__btn {
  display: inline-flex;
  flex-direction: column;
  align-items: stretch;
  width: fit-content;
  max-width: 100%;
  margin-inline: auto;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  box-sizing: border-box;
}

.story-sugata-is__btn:hover {
  opacity: 0.88;
}

.story-sugata-is__btn:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 6px;
  border-radius: 2px;
}

.story-sugata-is__title-row {
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  justify-content: center;
  gap: 10px;
  margin-bottom: 12px;
}

.story-sugata-is__label {
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(24px, 3vw, 30px);
  letter-spacing: 0.05em;
  line-height: 1;
  margin: 0;
}

.story-sugata-is__arrow {
  display: block;
  width: 39px;
  height: auto;
  flex-shrink: 0;
}

.story-sugata-is__rule {
  width: 100%;
  height: 3px;
  margin: 0;
  border: 0;
  background: var(--color-primary);
  opacity: 0.85;
}

/* ——— Sections common ——— */
.section {
  padding: 64px 0 80px;
  width: 100%;
  box-sizing: border-box;
}

.section__kicker {
  text-align: center;
  font-family: var(--font-zen), sans-serif;
  font-weight: 500;
  font-size: 20px;
  margin: 0 0 48px;
  color: var(--color-primary);
}

.section__title {
  text-align: center;
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(28px, 4vw, 36px);
  letter-spacing: 0.05em;
  margin: 0 0 8px;
  color: var(--color-primary);
}

.section__title--program a {
  color: inherit;
  text-decoration: none;
}

.section__title--program a:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
  border-radius: 2px;
}

.section__title--program-row {
  display: inline;
}

/* ——— Classes ——— */
.classes-section {
  --class-block-photo-max: 457px;
}

.classes-section .class-feature {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 0;
  margin-bottom: 48px;
  /* class-page 用の .class-feature（白背景カード）定義が後段にあるため、トップのクラス紹介では無効化 */
  padding: 0;
  border-radius: 0;
  background: transparent;
}

/* Long English strings stay wide in layout when rotated; cap width so the label sits ~15px from the photo like Yoga. */
.classes-section .class-feature__side-label {
  margin-inline-end: 15px;
  width: 1.5em;
  min-width: 1.5em;
  max-width: 1.5em;
  justify-content: center;
  overflow: visible;
}

.class-feature__side-label {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-height: 120px;
  padding: 0;
  flex: 0 0 auto;
  width: max-content;
  max-width: 100%;
}

.class-feature__side-label span {
  font-family: var(--font-taprom), serif;
  font-size: 24px;
  color: var(--color-primary);
  transform: rotate(90deg);
  white-space: nowrap;
}

.classes-section .class-feature__body,
.class-row__content {
  min-width: 0;
}

@media (max-width: 767px) {
  /* SP: 横ラベルで幅が潰れて画像が見えなくなるのを防ぐ（縦積み） */
  .classes-section .class-feature,
  .classes-section .class-row {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    margin-bottom: 32px;
  }

  .classes-section .class-feature__side-label,
  .class-row__side-label {
    margin: 0;
    width: auto;
    min-width: 0;
    max-width: none;
    min-height: 0;
    justify-content: flex-start;
  }

  .class-feature__side-label span,
  .class-row__side-label span {
    transform: none;
    font-size: 20px;
    line-height: 1.2;
  }

  .class-feature__body,
  .class-row__content {
    max-width: none;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .class-feature__photo,
  .class-row__photo {
    max-width: none;
  }

  /* 画像の高さが確保されずテキストが重なって見えるケースを防ぐ */
  .class-feature__photo img,
  .class-row__photo img {
    display: block;
  }

  .class-feature__photo,
  .class-row__photo {
    aspect-ratio: 3 / 2;
    background: rgba(0, 0, 0, 0.03);
  }

  .class-feature__photo img,
  .class-row__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .class-feature__text,
  .class-row__text {
    margin-top: 0;
    position: static;
  }
}

.class-feature__body {
  display: grid;
  gap: 20px;
  width: 100%;
  max-width: min(100%, var(--class-block-photo-max));
  min-width: 0;
  flex: 0 1 var(--class-block-photo-max);
}

.class-feature__text {
  min-width: 0;
}

.class-feature__photo {
  border-radius: 22px;
  overflow: hidden;
  margin-bottom: 0;
  max-width: var(--class-block-photo-max);
}

.class-feature__photo img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

.class-feature__name {
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(20px, 2.4vw, 24px);
  letter-spacing: 0.05em;
  margin: 0 0 12px;
}

.class-feature__desc {
  font-family: var(--font-zen), sans-serif;
  font-weight: 500;
  font-size: clamp(14px, 1.65vw, 16px);
  letter-spacing: 0.05em;
  line-height: 1.6;
  margin: 0;
  max-width: 520px;
  color: var(--color-primary);
}

.class-row {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: 0;
  justify-content: flex-start;
  margin-bottom: 48px;
}

@media (min-width: 900px) {
  .classes-section .class-row:not(.class-row--reverse) {
    justify-content: flex-end;
  }
}

.class-row__side-label {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-height: 80px;
  padding: 0;
  flex: 0 0 auto;
  width: max-content;
  max-width: 100%;
  margin-inline-end: 15px;
}

.class-row__side-label span {
  font-family: var(--font-taprom), serif;
  font-size: 24px;
  color: var(--color-primary);
  white-space: nowrap;
}

@media (min-width: 768px) {
  .class-row__side-label span {
    transform: rotate(90deg);
  }
}

.class-row__content {
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr;
  width: 100%;
  max-width: min(100%, var(--class-block-photo-max));
  min-width: 0;
  flex: 0 1 var(--class-block-photo-max);
  margin-inline: 0;
}

.class-row__photo {
  border-radius: var(--radius-sm);
  overflow: hidden;
  max-width: var(--class-block-photo-max);
}

.class-row__photo img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

.class-row__text h3 {
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(20px, 2.4vw, 24px);
  letter-spacing: 0.05em;
  margin: 0 0 12px;
}

.class-row__text p {
  margin: 0;
  font-family: var(--font-zen), sans-serif;
  font-weight: 500;
  font-size: clamp(14px, 1.65vw, 16px);
  letter-spacing: 0.05em;
  line-height: 1.6;
}

.outline-btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  justify-content: flex-start;
  text-align: left;
  line-height: 1.2;
  min-height: 59px;
  padding: 8px 28px;
  border: 1px solid var(--color-primary);
  border-radius: 4px;
  background: var(--color-white);
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(19px, 2.65vw, 26px);
  letter-spacing: 0.05em;
  color: var(--color-primary);
  text-decoration: none;
  transition:
    background 0.4s cubic-bezier(0.33, 1, 0.68, 1),
    color 0.4s cubic-bezier(0.33, 1, 0.68, 1),
    border-color 0.4s cubic-bezier(0.33, 1, 0.68, 1),
    transform 0.4s cubic-bezier(0.33, 1, 0.68, 1);
}

.outline-btn:hover,
.outline-btn:focus-visible {
  background: var(--color-primary);
  color: var(--color-white);
  border-color: var(--color-primary);
  transform: translateY(-2px);
}

.outline-btn:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
}

.outline-btn--center {
  margin: 32px auto 0;
  display: flex;
  align-items: center;
  max-width: 368px;
  width: 100%;
}

/* ——— Private ——— */
.private-split {
  display: grid;
  gap: 32px;
  align-items: start;
  margin-bottom: 24px;
}

@media (min-width: 900px) {
  .private-split {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
}

.private-split__lead {
  max-width: none;
}

.private-split__copy p {
  margin: 0 0 0.6em;
  font-family: var(--font-noto), sans-serif;
  font-weight: 500;
  font-size: 16px;
  letter-spacing: 0.2em;
  line-height: 2;
  color: var(--color-primary);
}

.private-split__spacer {
  height: 0.5em;
}

.private-split__media img {
  width: 100%;
  border-radius: 20px;
  object-fit: cover;
}

@media (min-width: 900px) {
  .private-split__media {
    min-width: 0;
  }

  .private-split__media img {
    width: 100%;
    max-width: none;
  }
}

/* ——— Program calendar ——— */
.program-calendar__scroll {
  overflow: visible;
}

.program-calendar__scroll-inner {
  width: 100%;
  min-width: 0;
}

.program-calendar__week {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 8px;
  margin-bottom: 16px;
  text-align: center;
  font-family: var(--font-roboto), sans-serif;
  font-weight: 500;
  font-size: 16px;
  color: var(--color-primary);
  width: 100%;
  max-width: none;
  margin-left: auto;
  margin-right: auto;
}

.program-calendar__grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 12px;
  width: 100%;
  max-width: none;
  margin: 0 auto 24px;
}

.program-calendar__day {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}

.program-calendar__scroll-hint {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 12px 0 0;
  padding: 0;
  font-family: var(--font-noto), sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--color-mute);
  opacity: 1;
  max-height: 4em;
  transition:
    opacity 0.35s ease,
    max-height 0.35s ease,
    margin 0.35s ease;
}

.program-calendar__scroll-hint-gesture {
  position: relative;
  display: block;
  width: 56px;
  height: 28px;
  flex-shrink: 0;
  border-radius: 14px;
  border: 1px dashed rgba(212, 167, 134, 0.55);
  background: rgba(251, 251, 249, 0.9);
}

.program-calendar__scroll-hint-cursor {
  position: absolute;
  left: 10px;
  top: 50%;
  width: 11px;
  height: 11px;
  margin-top: -5px;
  border-radius: 50%;
  background: var(--color-primary);
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.95);
  animation: program-calendar-scroll-hint 1.65s ease-in-out infinite;
}

.program-calendar__scroll-hint-label {
  line-height: 1.3;
}

@keyframes program-calendar-scroll-hint {
  0%,
  100% {
    transform: translateX(0);
    opacity: 1;
  }

  45% {
    transform: translateX(22px);
    opacity: 0.92;
  }

  50% {
    transform: translateX(22px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .program-calendar__scroll-hint-cursor {
    animation: none;
  }
}

.instructor-card {
  position: relative;
  border: 1px solid var(--color-primary);
  border-radius: 10px;
  background: var(--color-white);
  padding: 10px 6px 38px;
  text-align: center;
  min-width: 0;
  min-height: 142px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.instructor-card[data-instructor-modal-open] {
  cursor: pointer;
}

.instructor-card[data-instructor-modal-open]:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--color-primary) 55%, transparent);
  outline-offset: 3px;
}

.instructor-card__avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
  margin-bottom: 5px;
}

.instructor-card__name {
  margin: 0;
  font-family: var(--font-roboto), var(--font-noto), sans-serif;
  font-weight: 500;
  font-size: 12px;
  color: var(--color-primary);
}

.instructor-card__time {
  margin: 2px 0 0;
  font-family: var(--font-roboto), sans-serif;
  font-size: 12px;
  color: var(--color-primary);
}

.instructor-card__tag {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  margin: 0;
  padding: 4px 2px;
  background: var(--color-primary);
  color: var(--color-white);
  font-family: var(--font-roboto), var(--font-noto), sans-serif;
  font-size: 9px;
  line-height: 1.2;
  border-radius: 0 0 10px 10px;
}

.instructor-card__tag-text--condensed {
  display: inline-block;
  transform: scaleX(0.82);
  transform-origin: center;
}

@media (max-width: 899px) {
  .section {
    padding: 48px 0 64px;
  }

  .content-wrap--program {
    max-width: none;
    padding-left: var(--content-pad-x);
    padding-right: var(--content-pad-x);
  }

  .section__title--program {
    font-size: clamp(22px, 5.6vw, 26px);
    letter-spacing: 0.05em;
    line-height: 1.45;
  }

  .section__title--program-row {
    display: block;
  }

  .section__title--program-row + .section__title--program-row {
    margin-top: 0.12em;
  }

  .program-calendar__scroll {
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
    margin-left: calc(-1 * var(--content-pad-x));
    margin-right: calc(-1 * var(--content-pad-x));
    margin-bottom: 24px;
    padding-left: var(--content-pad-x);
    padding-right: var(--content-pad-x);
    padding-bottom: 6px;
  }

  .program-calendar__scroll-inner {
    width: max-content;
    min-width: 700px;
  }

  .program-calendar__week {
    font-size: 13px;
    font-weight: 700;
    gap: 4px;
    margin-bottom: 12px;
    grid-template-columns: repeat(7, minmax(80px, 1fr));
    width: 100%;
    min-width: 0;
  }

  .program-calendar__grid {
    grid-template-columns: repeat(7, minmax(80px, 1fr));
    gap: 8px;
    width: 100%;
    margin-bottom: 0;
    min-width: 0;
  }

  .program-calendar__scroll-hint {
    display: flex;
  }

  .program-calendar:has(.program-calendar__scroll--has-interacted) .program-calendar__scroll-hint {
    opacity: 0;
    max-height: 0;
    margin-top: 0;
    margin-bottom: 0;
    overflow: hidden;
    pointer-events: none;
    transition:
      opacity 0.35s ease,
      max-height 0.35s ease,
      margin 0.35s ease;
  }

  .instructor-card {
    min-height: 126px;
    padding: 9px 4px 34px;
  }

  .instructor-card__avatar {
    width: 32px;
    height: 32px;
    margin-bottom: 5px;
  }

  .instructor-card__name {
    font-size: 10px;
  }

  .instructor-card__time {
    font-size: 10px;
  }

  .instructor-card__tag {
    font-size: 10px;
    padding: 5px 2px;
  }
}

/* ——— Access ——— */
.access-locations {
  display: flex;
  flex-direction: column;
  gap: 64px;
}

.access-block {
  display: grid;
  gap: 20px;
}

@media (min-width: 900px) {
  .access-block {
    grid-template-columns: minmax(0, 380px) minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: start;
    column-gap: 28px;
    row-gap: 20px;
  }

  .access-block__copy {
    grid-column: 1;
    grid-row: 1;
  }

  .access-block__photo {
    grid-column: 1;
    grid-row: 2;
  }
}

.access-block__copy h3 {
  margin: 0 0 8px;
  font-family: var(--font-noto), sans-serif;
  font-weight: 500;
  font-size: 20px;
  letter-spacing: 0.2em;
}

.access-block__copy p {
  margin: 0 0 6px;
  font-family: var(--font-noto), sans-serif;
  font-weight: 500;
  font-size: 16px;
  letter-spacing: 0.2em;
  line-height: 2.2;
}

.access-block__copy a {
  text-decoration: underline;
}

.access-block__photo img {
  border-radius: var(--radius-sm);
  width: 100%;
  max-width: 321px;
}

.access-block__map {
  position: relative;
  width: 100%;
  min-height: 0;
  border-radius: 20px;
  overflow: hidden;
  background: rgba(0, 0, 0, 0.04);
}

@media (max-width: 899px) {
  .access-block__map {
    height: clamp(240px, 50vw, 560px);
    max-height: min(560px, 92vw);
  }
}

@media (min-width: 900px) {
  .access-block__map {
    grid-column: 2;
    grid-row: 1 / -1;
    align-self: stretch;
    height: auto;
    min-height: clamp(320px, 42vh, 560px);
    max-height: none;
  }
}

.access-block__map-embed {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 280px;
  border: 0;
}

/* ——— Trial CTA ——— */
.trial-cta {
  position: relative;
  min-height: 420px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 80px var(--content-pad-x);
  margin-top: 32px;
}

.trial-cta__bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.trial-cta__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}

.trial-cta__overlay {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.92);
}

/* ——— Trial modal ——— */
.trial-modal {
  display: none;
}

.trial-modal.is-open {
  display: block;
  position: fixed;
  inset: 0;
  z-index: 200;
}

.trial-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.86);
  backdrop-filter: blur(2px);
}

.trial-modal__dialog {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(92vw, 560px);
  background: var(--color-white);
  border-radius: 18px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.12);
  padding: clamp(18px, 3.6vw, 28px);
  box-sizing: border-box;
  color: var(--color-text);
}

.trial-modal__close {
  position: absolute;
  right: 10px;
  top: 8px;
  width: 40px;
  height: 40px;
  border: none;
  background: transparent;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  color: rgba(69, 73, 37, 0.75);
}

.trial-modal__close:hover,
.trial-modal__close:focus-visible {
  color: var(--color-text);
}

.trial-modal__kicker {
  margin: 0 0 6px;
  font-family: var(--font-taprom), serif;
  font-size: 18px;
  color: var(--color-primary-dark);
}

.trial-modal__title {
  margin: 0 0 10px;
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(22px, 3vw, 26px);
  letter-spacing: 0.08em;
  color: var(--color-primary);
}

.trial-modal__text {
  margin: 0 0 18px;
  font-family: var(--font-noto), sans-serif;
  font-size: 14px;
  line-height: 1.7;
  letter-spacing: 0.06em;
  color: rgba(69, 73, 37, 0.78);
}

.trial-modal__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.trial-modal__primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 44px;
  padding: 0.5rem 1.25rem;
  border-radius: 10px;
  background: var(--color-contact);
  color: var(--color-white);
  text-decoration: none;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.trial-modal__primary:hover,
.trial-modal__primary:focus-visible {
  background: color-mix(in srgb, var(--color-contact) 88%, black);
}


.trial-cta__inner {
  position: relative;
  z-index: 1;
  max-width: var(--content-max);
  width: 100%;
  margin-inline: auto;
  padding-left: var(--content-pad-x-left);
  padding-right: var(--content-pad-x);
  box-sizing: border-box;
}

.trial-cta__en {
  font-family: var(--font-taprom), serif;
  font-size: clamp(22px, 3vw, 26px);
  color: var(--color-primary-dark);
  margin: 0 0 16px;
}

.trial-cta__title {
  margin: 0 0 8px;
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(28px, 4vw, 36px);
  letter-spacing: 0.14em;
  color: var(--color-primary-dark);
}

.trial-cta__note {
  margin: 0 0 28px;
  font-family: var(--font-zen), sans-serif;
  font-weight: 500;
  font-size: 17px;
  letter-spacing: 0.2em;
  line-height: 2.2;
  color: var(--color-primary-dark);
}

.trial-cta .outline-btn {
  font-size: clamp(17px, 2.35vw, 22px);
}

@media (max-width: 767px) {
  .trial-cta__inner {
    padding-left: var(--content-pad-x);
    padding-right: var(--content-pad-x);
  }

  .trial-cta__note {
    font-size: 15px;
  }

  .trial-cta__note .trial-cta__note-line {
    display: block;
  }

  .trial-cta__note .trial-cta__note-line + .trial-cta__note-line {
    margin-top: 0.35em;
  }

  .content-wrap:has(.access-section) {
    padding-left: var(--content-pad-x);
    padding-right: var(--content-pad-x);
  }

  .content-wrap:has(.classes-section) {
    padding-left: var(--content-pad-x);
    padding-right: var(--content-pad-x);
  }
}

/* ——— Footer ——— */
.site-footer {
  position: relative;
  padding-bottom: 0;
}

.site-footer__panel {
  background: var(--color-primary);
  padding: 40px 0 32px;
  width: 100%;
  box-sizing: border-box;
}

.site-footer__social {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 20px 28px;
  max-width: var(--content-max);
  width: 100%;
  margin: 0 auto;
  padding: 24px var(--content-pad-x) 0 var(--content-pad-x-left);
  box-sizing: border-box;
}

.site-footer__social a {
  display: inline-flex;
  color: var(--color-white);
  opacity: 0.95;
}

.site-footer__social a:hover {
  opacity: 1;
}

.site-footer__row {
  max-width: var(--content-max);
  width: 100%;
  margin: 0 auto;
  padding: 0 0 24px;
  box-sizing: border-box;
  border-bottom: 1px solid rgba(255, 255, 255, 0.15);
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 28px 40px;
}

.site-footer__logo-wrap {
  display: flex;
  justify-content: flex-start;
  flex-shrink: 0;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

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

.site-footer__social .social-instagram__glyph {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

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

.site-footer__bottom-inner {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px 24px;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  border-top: none;
}

.footer-nav {
  flex: 1;
  min-width: 200px;
}

.footer-nav--primary {
  flex: 1;
  min-width: 200px;
}

.footer-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
}

.footer-nav a {
  display: block;
  padding: 8px;
  font-family: var(--font-noto), sans-serif;
  font-weight: 500;
  font-size: 14px;
  color: var(--color-white);
  text-decoration: none;
}

.footer-nav a:hover {
  text-decoration: underline;
}

@media (max-width: 767px) {
  .footer-nav {
    display: none;
  }

  .site-footer__social {
    padding-left: var(--content-pad-x);
    padding-right: var(--content-pad-x);
  }

  .site-footer__row {
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }

  .site-footer__logo-wrap {
    width: 100%;
    justify-content: center;
  }

  .site-footer__bottom-inner {
    width: 100%;
  }
}

.site-footer__copy {
  text-align: center;
  font-family: var(--font-roboto), sans-serif;
  font-size: 14px;
  line-height: 1.4;
  color: var(--color-primary-dark);
  margin: 0;
  padding: 12px var(--content-pad-x) calc(16px + env(safe-area-inset-bottom, 0px));
  opacity: 1;
}

@media (max-width: 767px) {
  .site-footer__copy {
    padding: 6px var(--content-pad-x) calc(8px + env(safe-area-inset-bottom, 0px));
  }
}

/* ——— SUGATAとは（sugata-is.html / Figma 1121:4121） ——— */
.site-footer__logo-link {
  display: inline-flex;
  line-height: 0;
}

.site-nav a[aria-current="page"] {
  color: var(--color-primary);
}

.sugata-is {
  padding-top: clamp(40px, 10vw, 100px);
  padding-bottom: clamp(40px, 6vw, 80px);
}

.sugata-is__header-block {
  text-align: center;
  margin-bottom: clamp(20px, 4vw, 36px);
}

.sugata-is__title {
  margin: 0 0 8px;
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(28px, 4.5vw, 35px);
  letter-spacing: 0.14em;
  line-height: 1.2;
  color: var(--color-news-title);
}

.sugata-is__title-en {
  margin: 0;
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(17px, 2.2vw, 20px);
  line-height: 1.2;
  color: var(--color-news-title);
}

.sugata-is__lead {
  margin: 0 auto clamp(28px, 5vw, 48px);
  max-width: 52rem;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(18px, 2.2vw, 24px);
  line-height: 2.2;
  letter-spacing: 0.31em;
  text-align: center;
  color: var(--color-primary);
}

.sugata-is__spbr {
  display: none;
}

@media (max-width: 767px) {
  .sugata-is__spbr {
    display: inline;
  }
}

@media (max-width: 480px) {
  /* 末尾1文字だけの折返しを避けるため、SPで詰める */
  .sugata-is__lead {
    font-size: 16px;
    line-height: 2.05;
    letter-spacing: 0.22em;
  }

  .sugata-is__text-block p {
    font-size: 14px;
    line-height: 2.05;
    letter-spacing: 0.06em;
  }
}

.sugata-is__text-block {
  margin: 0 auto clamp(28px, 4vw, 40px);
  max-width: 61rem;
  text-align: center;
}

.sugata-is__text-block p {
  margin: 0;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(15px, 1.9vw, 18px);
  line-height: 2.2;
  letter-spacing: 0.09em;
  color: var(--color-primary);
}

.sugata-is__text-block--closing {
  margin-bottom: clamp(36px, 6vw, 56px);
}

.sugata-is__figure {
  margin: 0 auto;
  max-width: 809px;
}

.sugata-is__figure-inner {
  position: relative;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: rgba(0, 0, 0, 0.04);
}

.sugata-is__video {
  display: block;
  width: 100%;
  aspect-ratio: 809 / 544;
  max-height: min(70vh, 560px);
  object-fit: cover;
}

.sugata-is__video::-webkit-media-controls-panel {
  background: linear-gradient(to top, rgba(0, 0, 0, 0.65), transparent);
}

.sugata-is__play-btn {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 3;
  width: 72px;
  height: 72px;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.94);
  color: var(--color-primary);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.14);
  transform: translate(-50%, -50%);
  transition:
    opacity 0.3s ease,
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.sugata-is__play-btn:hover {
  box-shadow: 0 6px 28px rgba(0, 0, 0, 0.18);
  transform: translate(-50%, -50%) scale(1.06);
}

.sugata-is__play-btn:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
}

.sugata-is__play-btn__icon {
  margin-left: 4px;
}

.sugata-is__figure-inner.is-playing .sugata-is__play-btn {
  opacity: 0;
  pointer-events: none;
}

.sugata-is__figure-inner:has(.sugata-is__video-fallback.sugata-is__video-fallback--visible) .sugata-is__play-btn {
  display: none;
}

.sugata-is__video-fallback {
  display: none;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.sugata-is__video-fallback.sugata-is__video-fallback--visible {
  display: block;
  aspect-ratio: 809 / 544;
  max-height: min(70vh, 560px);
  object-fit: cover;
}

@media (prefers-reduced-motion: reduce) {
  .sugata-is__video {
    display: none;
  }

  .sugata-is__video-fallback {
    display: block;
    aspect-ratio: 809 / 544;
    max-height: min(70vh, 560px);
    object-fit: cover;
  }

  .sugata-is__play-btn {
    display: none;
  }
}

.trial-cta__note--sugata-is {
  letter-spacing: 0.2em;
}

@media (max-width: 767px) {
  .sugata-is.content-wrap {
    padding-left: var(--content-pad-x);
    padding-right: var(--content-pad-x);
  }

  .sugata-is__lead {
    letter-spacing: 0.18em;
  }
}

/* 375付近: 字間・行長で意図しない折返しが出やすいため一段小さく */
@media (max-width: 400px) {
  .sugata-is__lead {
    font-size: 15px;
    line-height: 2;
    letter-spacing: 0.12em;
  }

  .sugata-is__text-block p {
    font-size: 13px;
    line-height: 2;
    letter-spacing: 0.035em;
  }
}

@media (prefers-reduced-motion: reduce) {
  .btn-contact,
  .btn-contact__icon,
  .outline-btn,
  .outline-btn__arrow {
    transition-duration: 0.01ms !important;
  }

  .btn-contact:hover,
  .btn-contact:focus-visible,
  .outline-btn:hover,
  .outline-btn:focus-visible {
    transform: none;
  }
}

@media (min-width: 1100px) and (prefers-reduced-motion: reduce) {
  .hero-side-cta {
    transition-duration: 0.01ms !important;
  }

  .hero-side-cta__icon,
  .hero-side-cta__trial-icon {
    transition-duration: 0.01ms !important;
  }

  .hero-side-cta--trial:hover,
  .hero-side-cta--trial:focus-visible {
    width: 126px;
  }

  .hero-side-cta--line:hover,
  .hero-side-cta--line:focus-visible {
    width: 156px;
  }
}

/* ——— 料金（price.html / Figma 1121:4197） ——— */
.price-page {
  padding-top: clamp(40px, 10vw, 100px);
  padding-bottom: clamp(48px, 8vw, 88px);
  max-width: var(--content-max);
  margin-left: auto;
  margin-right: auto;
}

.price-page__header {
  text-align: center;
  margin-bottom: clamp(16px, 3vw, 28px);
}

.price-page__title {
  margin: 0 0 8px;
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(28px, 4.5vw, 35px);
  letter-spacing: 0.14em;
  line-height: 1.2;
  color: var(--color-news-title);
}

.price-page__title-en {
  margin: 0;
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(17px, 2.2vw, 20px);
  line-height: 1.2;
  color: var(--color-news-title);
}

.price-page__lead {
  margin: 0 0 clamp(44px, 7vw, 72px);
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(15px, 1.85vw, 18px);
  line-height: 2.1;
  letter-spacing: 0.12em;
  text-align: left;
  color: var(--color-primary);
}

.price-page__lead-class-link {
  color: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.price-page__lead-class-link:hover,
.price-page__lead-class-link:focus-visible {
  opacity: 0.88;
}

.price-page__lead-class-link:focus-visible {
  outline: 2px solid var(--color-primary-dark);
  outline-offset: 2px;
  border-radius: 2px;
}

.price-plan {
  margin-bottom: clamp(48px, 8vw, 88px);
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(69, 73, 37, 0.08);
}

.price-plan__head {
  padding: clamp(14px, 2.5vw, 20px) clamp(16px, 3vw, 28px);
  text-align: center;
}

.price-plan__head--member {
  background: #e2c4a6;
}

.price-plan__head--friend {
  background: #72c6d1;
}

.price-plan__head--storage {
  background: #e2c4a6;
}

.price-plan__name {
  margin: 0 0 6px;
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(22px, 3.2vw, 28px);
  letter-spacing: 0.12em;
  color: var(--color-primary);
}

.price-plan__head.price-plan__head--member .price-plan__name,
.price-plan__head.price-plan__head--member .price-plan__sub {
  color: #fff;
}

.price-plan__head.price-plan__head--member .price-plan__sub {
  opacity: 1;
}

.price-plan__head--friend .price-plan__name,
.price-plan__head--storage .price-plan__name {
  color: #fff;
}

.price-plan__sub {
  margin: 0;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(13px, 1.5vw, 15px);
  letter-spacing: 0.08em;
  color: var(--color-primary);
  opacity: 0.92;
}

.price-plan__head--friend .price-plan__sub,
.price-plan__head--storage .price-plan__sub {
  color: #fff;
  opacity: 1;
}

.price-plan__body {
  padding: clamp(18px, 3vw, 28px) clamp(12px, 2.5vw, 24px) clamp(22px, 3.5vw, 32px);
}

.price-plan__body--member {
  background: #f7f2ec;
}

.price-plan__body--friend {
  background: #ebfafb;
}

.price-plan__body--storage {
  background: #f7f2ec;
}

.price-plan__desc {
  margin: 0 auto clamp(18px, 3vw, 24px);
  max-width: 46rem;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(14px, 1.65vw, 16px);
  line-height: 2;
  letter-spacing: 0.08em;
  text-align: center;
  color: var(--color-primary);
}

.price-plan__desc--friend {
  color: #4a9aaa;
}

@media (max-width: 767px) {
  .price-plan__body--member .price-plan__desc,
  .price-plan__body--friend .price-plan__desc {
    text-align: left;
  }

  .price-plan__body--member .price-plan__desc br,
  .price-plan__body--friend .price-plan__desc br {
    display: none;
  }

  .price-plan__body--member .price-table th br,
  .price-plan__body--friend .price-table th br {
    display: none;
  }

  .price-plan__body--friend .price-page__fine-print--paddle {
    text-align: left;
  }
}

.price-table-scroll-wrap {
  position: relative;
}

.price-table-scroll {
  overflow-x: auto;
  margin: 0;
  -webkit-overflow-scrolling: touch;
}

.price-table-scroll:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

/* 横スクロール可能なとき：カレンダーと同系のヒントアニメーション */
.price-table-scroll-hint {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: clamp(8px, 1.5vw, 12px) 0 0;
  padding: 0;
  font-family: var(--font-noto), sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--color-mute);
  opacity: 1;
  max-height: 4em;
  transition:
    opacity 0.35s ease,
    max-height 0.35s ease,
    margin 0.35s ease;
}

.price-table-scroll-wrap--can-scroll .price-table-scroll-hint {
  display: flex;
}

.price-table-scroll-hint-gesture {
  position: relative;
  display: block;
  width: 56px;
  height: 28px;
  flex-shrink: 0;
  border-radius: 14px;
  border: 1px dashed rgba(212, 167, 134, 0.55);
  background: rgba(251, 251, 249, 0.9);
}

.price-table-scroll-hint-cursor {
  position: absolute;
  left: 10px;
  top: 50%;
  width: 11px;
  height: 11px;
  margin-top: -5px;
  border-radius: 50%;
  background: var(--color-primary);
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.95);
  animation: program-calendar-scroll-hint 1.65s ease-in-out infinite;
}

.price-table-scroll-hint-label {
  line-height: 1.3;
}

.price-table-scroll-wrap--has-interacted .price-table-scroll-hint {
  opacity: 0;
  max-height: 0;
  margin-top: 0;
  margin-bottom: 0;
  overflow: hidden;
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  .price-table-scroll-hint-cursor {
    animation: none;
  }
}

.price-table {
  width: 100%;
  min-width: 520px;
  border-collapse: collapse;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(13px, 1.5vw, 15px);
  letter-spacing: 0.06em;
  text-align: center;
  color: var(--color-primary);
}

/* LIFE MEMBER：行ラベル列＋3プラン列を均等幅（STUDIO が潰れないように） */
.price-table--member {
  table-layout: fixed;
  color: color-mix(in srgb, var(--color-primary) 70%, white);
}

.price-table--member col.price-table__col--corner {
  width: 11%;
}

.price-table--member col.price-table__col--plan {
  width: 29.666%;
}

.price-table--member th,
.price-table--member td {
  word-break: keep-all;
  overflow-wrap: break-word;
}

.price-table th,
.price-table td {
  padding: clamp(10px, 2vw, 14px) 10px;
  vertical-align: middle;
  border: 1px solid rgba(69, 73, 37, 0.12);
}

.price-table__corner {
  background: #f5e8dc;
}

/* LIFE MEMBER 以外の角セルは従来どおり固定幅（艇庫表は未使用） */
.price-table--friend .price-table__corner {
  width: 4.5rem;
}

.price-table__corner--friend {
  background: #d8eef2;
}

.price-table--member tbody th[scope="row"] {
  background: #f5e8dc;
  text-align: center;
  line-height: 1.35;
  font-size: clamp(12px, 1.4vw, 14px);
  color: color-mix(in srgb, var(--color-primary) 62%, #9e948c);
}

/* LIFE MEMBER：各プラン列のボディ背景（ベース色の約20%相当＝白との color-mix） */
.price-table--member tbody td:nth-child(2) {
  /* LIFE ALL：最上級プラン・明るいオレンジのティント */
  background: color-mix(in srgb, #f0a332 24%, white);
}

.price-table--member tbody td:nth-child(3) {
  /* LIFE STUDIO：サンド系は ALL より抑えめのトーン */
  background: color-mix(in srgb, #d4ad90 17%, white);
}

.price-table--member tbody td:nth-child(4) {
  /* LIFE 4：エントリー向けに ALL より落ち着いたティール（ベース #5f9395） */
  background: color-mix(in srgb, #5f9395 18%, white);
}

.price-table--friend tbody th[scope="row"] {
  background: #d8eef2;
  text-align: center;
  line-height: 1.35;
  font-size: clamp(12px, 1.4vw, 14px);
}

.price-table--friend tbody td:nth-child(2),
.price-table--friend tbody td:nth-child(3) {
  background: #fff;
}

/* thead：th は table-cell のまま（flex を付けると列レイアウトが崩れるため内側で縦並び） */
.price-table--member thead th {
  vertical-align: top;
}

.price-table--member .price-table__col-head--all,
.price-table--member .price-table__col-head--studio,
.price-table--member .price-table__col-head--four {
  text-align: center;
  padding: clamp(10px, 1.5vw, 14px) 8px;
  font-size: clamp(13px, 1.6vw, 16px);
}

.price-table--member .price-table__col-head-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: clamp(6px, 1vw, 8px);
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
}

.price-table--member .price-table__col-head--all {
  background: #f0a332;
  letter-spacing: 0.06em;
  box-shadow: inset 0 -4px 0 rgba(255, 255, 255, 0.22);
}

.price-table--member .price-table__col-head--studio {
  background: #d4ad90;
}

.price-table--member .price-table__col-head--four {
  background: #5f9395;
}

.price-table__col-head-name {
  color: #fff;
  line-height: 1.25;
}

.price-table__head-pill {
  display: inline-block;
  margin: 0;
  padding: 5px 12px;
  max-width: 100%;
  box-sizing: border-box;
  background: #fff;
  border-radius: 999px;
  font-size: clamp(10px, 1.15vw, 12px);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.35;
  text-align: center;
}

.price-table__head-pill--all {
  color: #f0a332;
}

.price-table__head-pill--studio {
  color: #d4ad90;
}

.price-table__head-pill--four {
  color: #5f9395;
}

.price-table--friend .price-table__col-head--drop {
  background: #5eacce;
  color: #fff;
  min-width: 11rem;
  font-size: clamp(13px, 1.6vw, 16px);
}

.price-table--friend .price-table__col-head--ticket3 {
  background: #d5a864;
  color: #fff;
  min-width: 9rem;
  font-size: clamp(13px, 1.6vw, 16px);
}

.price-table__yen {
  display: inline-block;
  font-size: clamp(15px, 1.85vw, 18px);
  letter-spacing: 0.04em;
}

.price-table__yen--all {
  color: #c26f12;
}

.price-table__yen--studio {
  color: #9a6a4a;
}

.price-table__yen--four {
  color: #4a7b7d;
}

/* LIFE MEMBER：セル内の強調を一段やわらげる */
.price-table--member .price-table__yen--all {
  color: #a88f62;
}

.price-table--member .price-table__yen--studio {
  color: #a08f84;
}

.price-table--member .price-table__yen--four {
  color: #6d9395;
}

.price-table__yen--drop {
  color: #3d8fb5;
}

.price-table__yen--ticket3 {
  color: #b8862e;
}

.price-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin: 3px 2px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: clamp(11px, 1.2vw, 12px);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.3;
}

.price-table__pill-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  align-items: stretch;
}

.price-table .price-pill {
  box-sizing: border-box;
  width: 11rem;
  max-width: 100%;
  justify-content: center;
  margin-left: 0;
  margin-right: 0;
}

.price-pill__icon {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  object-fit: contain;
}

.price-pill--studio {
  background: #e3ab82;
  color: #fff;
}

/* LIFE STUDIO 列のみピル色を列トーンに合わせて抑える（他列のスタジオクラスは従来色） */
.price-table--member tbody td:nth-child(3) .price-pill--studio {
  background: #d4ad90;
}

.price-pill--paddle {
  background: color-mix(in srgb, #98abfe 58%, #aeb6c8);
  color: #fff;
}

a.price-pill--link {
  text-decoration: none;
  cursor: pointer;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

a.price-pill--link.price-pill--studio,
a.price-pill--link.price-pill--paddle {
  color: #fff;
}

a.price-pill--link:hover,
a.price-pill--link:focus-visible {
  opacity: 0.92;
  transform: translateY(-1px);
}

a.price-pill--link:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.price-table__note-pill {
  margin: 8px 0 6px;
  font-size: clamp(12px, 1.35vw, 13px);
  font-weight: 700;
  line-height: 1.4;
  color: var(--color-primary);
}

.price-table__note-pill--drop {
  color: #3d8fb5;
}

.price-table__note-pill--ticket {
  color: #b8862e;
}

.price-page__fine-print {
  margin: clamp(16px, 2.5vw, 22px) auto 0;
  max-width: 46rem;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(13px, 1.45vw, 14px);
  line-height: 1.85;
  letter-spacing: 0.06em;
  color: #2f7c8c;
}

.price-page__fine-print--paddle {
  text-align: center;
}

.price-class-cards {
  margin-bottom: clamp(48px, 8vw, 88px);
}

.price-class-cards__heading {
  margin: 0 0 clamp(16px, 2.5vw, 22px);
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(20px, 2.8vw, 24px);
  letter-spacing: 0.12em;
  text-align: center;
  color: var(--color-news-title);
}

.price-private > .price-class-cards__heading {
  margin-top: 0;
}

.price-class-cards__grid {
  display: grid;
  gap: clamp(16px, 2.5vw, 22px);
  max-width: 52rem;
  margin-left: auto;
  margin-right: auto;
}

@media (min-width: 640px) {
  .price-class-cards__grid {
    grid-template-columns: 1fr 1fr;
  }
}

.price-class-card {
  --price-class-card-pad: clamp(14px, 2.2vw, 18px);
  --price-class-card-accent: rgba(69, 73, 37, 0.22);
  padding: var(--price-class-card-pad);
  border-radius: var(--radius-sm);
  background: #fff;
  border: 2px solid var(--price-class-card-accent);
}

.price-class-card--studio {
  --price-class-card-accent: #e3ab82;
}

.price-class-card--paddle {
  --price-class-card-accent: color-mix(in srgb, #98abfe 58%, #aeb6c8);
}

.price-class-card--paddle .price-class-card__title,
.price-class-card--paddle .price-class-card__text {
  color: color-mix(in srgb, #7790ff 52%, var(--color-primary));
}

.price-class-card__title {
  margin: 0 calc(-1 * var(--price-class-card-pad)) clamp(12px, 2vw, 14px);
  padding: 0 var(--price-class-card-pad) clamp(10px, 1.5vw, 12px);
  border-bottom: 1px solid var(--price-class-card-accent);
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(16px, 2vw, 18px);
  letter-spacing: 0.1em;
  color: var(--color-primary);
  box-sizing: border-box;
}

.price-class-card__row {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: flex-start;
}

@media (min-width: 480px) {
  .price-class-card__row {
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
  }
}

.price-class-card__text {
  margin: 0;
  flex: 1;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(12px, 1.35vw, 13px);
  line-height: 1.75;
  letter-spacing: 0.05em;
  color: var(--color-primary);
}

.price-class-card__thumb {
  flex-shrink: 0;
  width: 111px;
  max-width: 100%;
  height: 75px;
  object-fit: cover;
  border-radius: 8px;
}

.price-private {
  --price-private-stack-gap: clamp(18px, 3vw, 24px);
  margin-bottom: clamp(48px, 8vw, 88px);
  min-width: 0;
}

.price-storage {
  margin-bottom: clamp(48px, 8vw, 88px);
}

.price-private__block {
  margin-bottom: var(--price-private-stack-gap);
}

.price-private__split .price-private__block {
  margin-bottom: 0;
}

.price-private__bar {
  margin: 0 0 0;
  padding: 10px 14px;
  border-radius: var(--radius-sm) var(--radius-sm) 0 0;
  background: #d4a786;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(14px, 1.65vw, 15px);
  letter-spacing: 0.08em;
  color: #fff;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.price-private__panel {
  min-width: 0;
  padding: clamp(14px, 2.2vw, 18px);
  border-radius: 0 0 var(--radius-sm) var(--radius-sm);
  background: #fff;
  border: 1px solid rgba(212, 167, 134, 0.35);
  border-top: none;
}

.price-private__panel p {
  margin: 0 0 8px;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(13px, 1.45vw, 14px);
  line-height: 1.65;
  letter-spacing: 0.05em;
  color: var(--color-primary);
}

.price-private__panel p:last-child {
  margin-bottom: 0;
}

.price-private__small {
  font-size: clamp(12px, 1.3vw, 13px) !important;
}

.price-private__note {
  margin: 10px 0 0;
  font-size: clamp(11px, 1.2vw, 12px);
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--color-mute);
}

.price-table.price-table--simple {
  min-width: 0;
  width: 100%;
  max-width: 100%;
  table-layout: fixed;
  text-align: left;
}

.price-table--simple th,
.price-table--simple td {
  text-align: center;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.price-table--simple th[scope="row"] {
  text-align: left;
  background: #fbf3eb;
  font-size: clamp(12px, 1.35vw, 13px);
  max-width: none;
  width: 38%;
}

.price-private .price-table-scroll {
  max-width: 100%;
}

.price-table-scroll-wrap--ticket-split {
  margin-bottom: clamp(6px, 1.2vw, 12px);
}

.price-table-scroll-wrap--ticket-split .price-private__ticket-scroll {
  padding-bottom: clamp(4px, 1vw, 10px);
}

.price-table-scroll-wrap--ticket-split .price-table-scroll-hint {
  margin-top: clamp(4px, 1vw, 8px);
}

.price-private__ticket-scroll {
  padding-bottom: clamp(10px, 2vw, 18px);
}

.price-private .price-table-scroll .price-table--simple-ticket-split + .price-table--simple-ticket-split {
  margin-top: clamp(18px, 3vw, 28px);
}

.price-table--simple-ticket-split thead tr:first-child .price-private__ticket-name-head {
  text-align: center;
  background: #fbf3eb;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(12px, 1.35vw, 13px);
  letter-spacing: 0.04em;
  color: var(--color-primary);
}

.price-table--simple-ticket-split thead tr:nth-child(2) th {
  background: #fff;
  font-weight: 700;
  color: var(--color-primary);
}

.price-private__split {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--price-private-stack-gap);
  margin-bottom: var(--price-private-stack-gap);
  align-items: start;
}

@media (min-width: 768px) {
  .price-private__split {
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
  }

  /* 2カラム時：パネル height:100% は見出しと重なるため、flex で残り領域のみ埋める */
  .price-private__block--half {
    display: flex;
    flex-direction: column;
    min-width: 0;
  }

  .price-private__block--half .price-private__bar {
    flex-shrink: 0;
  }

  .price-private__block--half .price-private__panel {
    flex: 1 1 auto;
    min-height: 0;
    height: auto;
  }
}

@media (max-width: 767px) {
  .price-private__block--half .price-private__panel {
    height: auto;
    min-height: 0;
  }

  .price-table--simple th,
  .price-table--simple td {
    padding: 8px 6px;
    font-size: clamp(11px, 3.2vw, 13px);
  }
}

.price-private__member-box {
  margin: clamp(20px, 3vw, 28px) 0;
  padding: clamp(16px, 2.5vw, 22px);
  border-radius: var(--radius-sm);
  background: #e8f6f8;
  border: 2px solid #72c6d1;
  text-align: center;
}

.price-private__member-box--warm {
  background: color-mix(in srgb, var(--color-primary) 14%, #fff);
  border-color: color-mix(in srgb, var(--color-primary-dark) 55%, #fff);
}

.price-private__member-lead {
  margin: 0 0 10px;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(17px, 1.95vw, 20px);
  line-height: 1.7;
  letter-spacing: 0.06em;
  color: #2f7c8c;
}

.price-private__member-box--warm .price-private__member-lead,
.price-private__member-box--warm .price-private__member-price,
.price-private__member-box--warm .price-private__member-yen {
  color: var(--color-primary);
}

.price-private__member-price {
  margin: 0 0 4px;
  font-size: clamp(13px, 1.4vw, 14px);
  font-weight: 700;
  color: #2f7c8c;
}

.price-private__member-yen {
  margin: 0 0 10px;
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(22px, 3vw, 28px);
  letter-spacing: 0.06em;
  color: #2f7c8c;
}

.price-private__member-box .price-private__note {
  margin: 0;
  text-align: center;
  color: #2f7c8c;
}

.price-private__member-box--warm .price-private__note {
  color: var(--color-primary);
}

.price-private__table-caption {
  margin: 0 0 10px;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(14px, 1.6vw, 15px);
  letter-spacing: 0.06em;
  color: var(--color-primary);
  text-align: center;
}

.price-private__th-stack {
  font-size: clamp(11px, 1.35vw, 13px);
  line-height: 1.45;
  font-weight: 700;
}

.price-private__note--ticket-notes {
  margin-top: clamp(6px, 1.2vw, 12px);
  margin-bottom: 0;
  text-align: left;
  font-size: clamp(8px, 0.95vw, 9px);
  line-height: 1.55;
}

/* パネル内の p 既定（font-size など）を確実に上書き */
.price-private__panel p.price-private__note--ticket-notes {
  margin: clamp(6px, 1.2vw, 12px) 0 0;
  font-size: clamp(10px, 1.05vw, 11px);
  line-height: 1.55;
  letter-spacing: 0.05em;
  color: var(--color-primary);
  text-align: left;
}

/* 「指名なし」注記の直後に余白 */
.price-private__note--ticket-notes + .price-table--simple-ticket-split {
  margin-top: 20px;
}

.price-private__small--strong {
  margin-top: 0.65em;
  margin-bottom: 0.25em;
  font-weight: 700;
}

.price-private__small--strong:first-child {
  margin-top: 0;
}

.price-table__locker-plus-line {
  display: block;
  text-align: right;
}

.price-table__locker-plus-line + .price-table__locker-plus-line {
  margin-top: 0.35em;
}

.price-private__cta,
.price-storage__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 22rem;
  margin: clamp(20px, 3vw, 28px) auto 0;
  padding: 14px 20px;
  border-radius: 999px;
  border: 2px solid var(--color-primary);
  background: #fff;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(13px, 1.45vw, 14px);
  letter-spacing: 0.08em;
  color: var(--color-primary);
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
}

.price-private__cta:hover,
.price-private__cta:focus-visible,
.price-storage__cta:hover,
.price-storage__cta:focus-visible {
  background: var(--color-primary);
  color: #fff;
}

/* 艇庫会員：プライベートブロックに近いウォームトーン */
.price-table--storage {
  --storage-bg-head: #d4b89a;
  --storage-bg-pillar: #e8d4c0;
  --storage-bg-inout: #e0c9b0;
  --storage-bg-subtitle: #efe4d8;
  --storage-bg-size-label: #f2e8de;
  --storage-bg-body: #faf6f1;
  /* 料金ブロック全体より一段薄い字色（本文 #454925 より弱め） */
  --storage-text: color-mix(in srgb, var(--color-text) 72%, var(--color-white) 28%);
  --storage-border: rgba(69, 73, 37, 0.12);
  min-width: min(100%, 520px);
  width: 100%;
  table-layout: fixed;
  background: #fff;
  color: var(--storage-text);
}

.price-table--storage th,
.price-table--storage td {
  padding: clamp(8px, 1.5vw, 12px) clamp(8px, 1.2vw, 10px);
  vertical-align: middle;
  word-break: break-word;
  overflow-wrap: anywhere;
  border-color: var(--storage-border);
  color: var(--storage-text);
}

.price-table__storage-pillar {
  width: 5rem;
  min-width: 5rem;
  background: var(--storage-bg-pillar);
  font-family: var(--font-noto), sans-serif;
  font-size: clamp(12px, 1.4vw, 14px);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-align: center;
  line-height: 1.35;
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
}

.price-table__storage-head {
  background: var(--storage-bg-head);
  font-family: var(--font-noto), sans-serif;
  font-size: clamp(12px, 1.45vw, 14px);
  font-weight: 700;
  text-align: center;
}

.price-table__storage-inout {
  background: var(--storage-bg-inout);
  font-family: var(--font-noto), sans-serif;
  font-size: clamp(12px, 1.35vw, 13px);
  font-weight: 700;
  text-align: center;
}

.price-table__storage-subtitle {
  background: var(--storage-bg-subtitle);
  font-family: var(--font-noto), sans-serif;
  font-size: clamp(12px, 1.4vw, 14px);
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.04em;
}

.price-table--storage tbody th[scope="row"] {
  text-align: left;
  background: var(--storage-bg-size-label);
  font-size: clamp(11px, 1.3vw, 13px);
  font-weight: 700;
}

.price-table--storage tbody th[scope="row"].price-table__storage-inout {
  text-align: center;
  background: var(--storage-bg-inout);
}

.price-table--storage td {
  text-align: right;
  font-weight: 700;
  font-size: clamp(12px, 1.4vw, 14px);
  background: var(--storage-bg-body);
}

.price-table--storage td.price-table__storage-locker-plus-desc {
  text-align: center;
  background: #f2f2f2;
  font-size: clamp(12px, 1.35vw, 14px);
  line-height: 1.55;
}

.price-table--storage td.price-table__storage-locker-plus-price {
  text-align: right;
  white-space: normal;
  background: #f2f2f2;
}

@media (max-width: 767px) {
  .price-page.content-wrap {
    padding-left: var(--content-pad-x);
    padding-right: var(--content-pad-x);
  }
}

/* ——— スケジュール（schedule.html / Figma 1121:4356） ——— */
.schedule-page {
  padding-top: clamp(40px, 10vw, 100px);
  padding-bottom: clamp(48px, 8vw, 88px);
  max-width: var(--content-max);
  margin-left: auto;
  margin-right: auto;
}

.schedule-page__header {
  text-align: center;
  margin-bottom: clamp(20px, 4vw, 32px);
}

.schedule-page__title {
  margin: 0 0 8px;
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(28px, 4.5vw, 35px);
  letter-spacing: 0.05em;
  line-height: 1.2;
  color: var(--color-news-title);
}

.schedule-page__title-en {
  margin: 0;
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(17px, 2.2vw, 20px);
  line-height: 1.2;
  color: var(--color-news-title);
}

.schedule-page__figure {
  margin: 0 auto clamp(28px, 5vw, 40px);
  max-width: 100%;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(69, 73, 37, 0.08);
}

.schedule-page__img {
  display: block;
  width: 100%;
  height: auto;
}

.schedule-page__reserve {
  margin-bottom: clamp(40px, 7vw, 64px);
  text-align: center;
}

.schedule-page__reserve-intro {
  margin: 0 auto clamp(20px, 4vw, 28px);
  max-width: 40rem;
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(14px, 1.65vw, 16px);
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: var(--color-primary);
}

.schedule-page__reserve-intro p {
  margin: 0;
}

.schedule-page__cta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: clamp(16px, 3vw, 24px);
}

.schedule-page__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 68px;
  padding: 12px 28px;
  border-radius: 55px;
  border: 1px solid var(--color-primary);
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(18px, 2.4vw, 24px);
  letter-spacing: 0.06em;
  text-decoration: none;
  transition:
    background 0.25s ease,
    color 0.25s ease,
    border-color 0.25s ease,
    transform 0.25s ease;
}

.schedule-page__btn--outline {
  flex: 1 1 280px;
  max-width: 695px;
  background: var(--color-white);
  color: var(--color-primary);
}

.schedule-page__btn--outline:hover,
.schedule-page__btn--outline:focus-visible {
  background: color-mix(in srgb, var(--color-primary) 12%, white);
  transform: translateY(-1px);
}

.schedule-page__btn--solid {
  flex: 1 1 240px;
  max-width: 395px;
  background: var(--color-contact);
  color: var(--color-white);
  border-color: var(--color-primary);
}

.schedule-page__btn--solid:hover,
.schedule-page__btn--solid:focus-visible {
  background: color-mix(in srgb, var(--color-contact) 88%, black);
  transform: translateY(-1px);
}

.schedule-page__btn:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 3px;
}

.schedule-page__substitute {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, 3.5vw, 28px);
}

.schedule-page__section-title {
  margin: 0 auto clamp(8px, 2vw, 12px);
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(22px, 3vw, 28px);
  letter-spacing: 0.05em;
  text-align: center;
  color: var(--color-primary);
}

.schedule-page__card {
  margin: 0;
  padding: clamp(22px, 4vw, 32px) clamp(18px, 3vw, 28px);
  border-radius: 4px;
  background: var(--color-white);
  box-shadow: 0 4px 24px rgba(69, 73, 37, 0.08);
  font-family: var(--font-zen), sans-serif;
  font-weight: 500;
  color: var(--color-primary);
  text-align: left;
}

.schedule-page__month {
  margin: 0 0 0.25em;
  font-size: clamp(20px, 2.5vw, 24px);
  font-weight: 700;
  letter-spacing: 0.04em;
}

.schedule-page__venue {
  margin: 0.75em 0 0.35em;
  font-size: clamp(26px, 3.5vw, 32px);
  font-weight: 700;
  letter-spacing: 0.06em;
}

.schedule-page__venue--marina {
  margin-top: 1.25em;
}

.schedule-page__label {
  margin: 0.35em 0;
  font-size: clamp(15px, 1.85vw, 18px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
}

.schedule-page__label--spaced {
  margin-top: 1em;
}

.schedule-page__body-text {
  margin: 0 0 0.75em;
  font-size: clamp(15px, 1.85vw, 18px);
  line-height: 1.6;
  letter-spacing: 0.05em;
}

.schedule-page__body-text:last-child {
  margin-bottom: 0;
}

@media (max-width: 767px) {
  .schedule-page.content-wrap {
    padding-left: var(--content-pad-x);
    padding-right: var(--content-pad-x);
  }

  .schedule-page__cta-row {
    flex-direction: column;
    align-items: stretch;
  }

  /* 縦並び時 flex-grow が効き、ボタンが縦に伸びるのを防ぐ */
  .schedule-page__btn--outline,
  .schedule-page__btn--solid {
    flex: 0 0 auto;
  }

  .schedule-page__btn {
    width: 100%;
    max-width: none;
    min-height: 52px;
    padding: 12px 20px;
  }
}

/* ——— クラス紹介（class.html / Figma 1121:4453） ——— */
.class-page,
.private-page,
.corporate-page,
.faq-page,
.company-page,
.single-page,
.archive-page,
.beginner-page.content-wrap,
.storage-page.content-wrap,
.paddle-page.content-wrap {
  padding-top: clamp(40px, 10vw, 100px);
  padding-bottom: clamp(48px, 8vw, 88px);
  max-width: var(--content-max);
  margin-left: auto;
  margin-right: auto;
}

.class-page__header,
.private-page__header,
.corporate-page__header,
.faq-page__header,
.company-page__header,
.single-page__header {
  text-align: center;
  margin-bottom: clamp(28px, 5vw, 44px);
}

.class-page__title,
.private-page__title,
.corporate-page__title,
.faq-page__title,
.company-page__title,
.single-page__title {
  margin: 0 0 8px;
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(28px, 4.5vw, 35px);
  letter-spacing: 0.05em;
  line-height: 1.2;
  color: var(--color-news-title);
}

.class-page__title-en,
.private-page__title-en,
.corporate-page__title-en,
.faq-page__title-en,
.company-page__title-en,
.single-page__title-en {
  margin: 0;
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(17px, 2.2vw, 20px);
  line-height: 1.2;
  color: var(--color-news-title);
}

.class-section {
  margin-bottom: clamp(40px, 7vw, 64px);
}

.class-section__label-en {
  margin: 0 0 4px;
  font-family: var(--font-taprom), serif;
  font-weight: 400;
  font-size: clamp(20px, 2.8vw, 24px);
  line-height: 1.6;
  text-align: center;
  color: var(--color-primary);
}

.class-section__label-en--ocean {
  font-style: italic;
}

.class-section__label-en--left {
  text-align: left;
}

.class-section__label-en--pilates {
  text-align: right;
}

.class-section__title {
  margin: 0 0 clamp(20px, 4vw, 28px);
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(20px, 2.75vw, 25px);
  letter-spacing: 0.05em;
  line-height: 1.6;
  text-align: center;
  color: var(--color-primary);
}

.class-section__title--left {
  text-align: left;
  margin-bottom: 0;
}

.class-section__title--ocean {
  margin-bottom: clamp(20px, 4vw, 28px);
}

.class-section--ocean .class-section__title--ocean {
  margin-bottom: 0;
}

.class-section--ocean,
.class-section--yoga {
  padding-top: clamp(20px, 4vw, 44px);
  margin-bottom: clamp(72px, 12vw, 120px);
}

.class-section__cta--ocean {
  margin: clamp(20px, 4vw, 36px) 0 0;
  padding: 0 clamp(16px, 4vw, 24px);
  text-align: center;
}

.class-section__title--yoga {
  margin-bottom: clamp(20px, 4vw, 28px);
}

.class-section--yoga .class-section__title--yoga {
  margin-bottom: 0;
}

.class-section__title--pilates {
  margin: 0;
  text-align: right;
}

/* 写真と白カードのオーバーラップ（Figma 1121:4453） */
.class-overlap {
  position: relative;
  margin-bottom: clamp(28px, 5vw, 44px);
}

.class-overlap:last-child {
  margin-bottom: 0;
}

.class-overlap__figure {
  margin: 0 0 0 auto;
  width: min(58%, 520px);
  border-radius: 8px;
  overflow: hidden;
}

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

.class-overlap--ocean {
  min-height: 0;
}

.class-overlap--ocean-first,
.class-overlap--yoga-first {
  margin-top: clamp(-76px, -17vw, -220px);
}

.class-overlap--ocean .class-overlap__figure {
  width: min(50%, 440px);
}

.class-overlap--ocean .class-overlap__card,
.class-overlap--yoga .class-overlap__card {
  position: relative;
  z-index: 2;
  margin-top: clamp(-168px, -30vw, -440px);
  margin-left: 0;
  margin-right: auto;
}

.class-overlap--ocean .class-overlap__card {
  width: min(58%, 500px);
}

.class-overlap--yoga .class-overlap__card {
  width: min(50%, 430px);
}

.class-overlap--yoga {
  min-height: 0;
}

.class-overlap__figure--yoga {
  border-radius: 20px;
}

.class-overlap--pilates {
  min-height: clamp(300px, 50vw, 420px);
}

.class-overlap__figure--pilates {
  width: min(58%, 600px);
  margin: 0;
}

.class-overlap__pilates-head {
  position: absolute;
  right: 0;
  top: 0;
  width: min(44%, 400px);
  text-align: right;
}

.class-overlap__card--pilates {
  position: absolute;
  right: 0;
  bottom: 0;
  width: min(48%, 450px);
  z-index: 2;
}

.class-card {
  padding: clamp(18px, 3vw, 26px) clamp(16px, 2.5vw, 22px);
  border-radius: 8px;
  background: var(--color-white);
}

.class-card__title {
  margin: 0 0 12px;
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(18px, 2.2vw, 22px);
  letter-spacing: 0.05em;
  color: var(--color-primary);
}

.class-card__text {
  margin: 0 0 1em;
  font-family: var(--font-zen), sans-serif;
  font-weight: 500;
  font-size: clamp(15px, 1.85vw, 18px);
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: var(--color-primary);
}

.class-card__text:last-child {
  margin-bottom: 0;
}

.class-card__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  margin: clamp(14px, 2.5vw, 20px) 0 0;
  padding: 0;
}

.class-card__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0.55em 1.35em;
  border-radius: 999px;
  border: 2px solid color-mix(in srgb, var(--color-primary) 35%, transparent);
  background: var(--color-white);
  font-family: var(--font-zen), sans-serif;
  font-weight: 600;
  font-size: clamp(14px, 1.6vw, 16px);
  letter-spacing: 0.06em;
  color: var(--color-primary);
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.class-card__btn:hover,
.class-card__btn:focus-visible {
  background: color-mix(in srgb, var(--color-primary) 8%, var(--color-white));
  border-color: color-mix(in srgb, var(--color-primary) 55%, transparent);
  color: var(--color-primary);
}

.class-section--more {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, 3.5vw, 28px);
}

/* --- Fixed pages: beginner / marina storage / ocean paddling --- */
.beginner-page,
.storage-page,
.paddle-page {
  color: var(--color-primary);
}

/* はじめての方へ / 鎌倉マリーナ艇庫 / オーシャンパドリング — 共通トーン */
.beginner-page .single-page__header,
.storage-page .single-page__header,
.paddle-page .single-page__header {
  margin-bottom: clamp(24px, 4.5vw, 40px);
}

.beginner-page .single-page__title,
.storage-page .single-page__title,
.paddle-page .single-page__title {
  margin: 0 0 8px;
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(28px, 4.2vw, 35px);
  line-height: 1.2;
  letter-spacing: 0.05em;
  color: var(--color-news-title);
}

.beginner-page .single-page__title-en,
.storage-page .single-page__title-en,
.paddle-page .single-page__title-en {
  margin: 0;
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(17px, 2.1vw, 20px);
  line-height: 1.2;
  color: var(--color-news-title);
}

.beginner-block,
.storage-block,
.paddle-block {
  margin-top: clamp(22px, 4vw, 34px);
}

.beginner-page .beginner-block + .beginner-block,
.storage-page .storage-block + .storage-block,
.paddle-page .paddle-block + .paddle-block {
  margin-top: clamp(40px, 7vw, 72px);
}

.beginner-block__title,
.storage-block__title,
.paddle-block__title {
  margin: 0 0 14px;
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(18px, 2.4vw, 22px);
  letter-spacing: 0.05em;
  color: var(--color-primary);
}

.beginner-page .beginner-block__title,
.storage-page .storage-block__title,
.paddle-page .paddle-block__title {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 clamp(14px, 2.5vw, 20px);
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(17px, 2.1vw, 18px);
  line-height: 2;
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

.beginner-page .beginner-block__title::before,
.storage-page .storage-block__title::before,
.paddle-page .paddle-block__title::before {
  content: "";
  flex: none;
  width: 4px;
  height: 26px;
  border-radius: 2px;
  background: var(--color-primary);
}

.beginner-block__lead,
.beginner-block__text,
.storage-block__lead,
.storage-block__text,
.paddle-block__text {
  margin: 0 0 12px;
  font-family: var(--font-noto), sans-serif;
  font-weight: 500;
  line-height: 1.8;
  letter-spacing: 0.04em;
  color: var(--color-text);
}

.beginner-page .beginner-block__lead,
.beginner-page .beginner-block__text,
.storage-page .storage-block__lead,
.storage-page .storage-block__text,
.paddle-page .paddle-block__text,
.paddle-page .paddle-service__text,
.paddle-page .paddle-meta__row {
  font-weight: 700;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

.beginner-block__note,
.storage-block__note,
.paddle-note {
  margin: 10px 0 0;
  color: var(--color-mute);
  font-size: 13px;
  line-height: 1.7;
}

.beginner-page .beginner-block__note,
.storage-page .storage-block__note,
.paddle-page .paddle-note {
  margin: clamp(10px, 2vw, 14px) 0 0;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

.beginner-panel {
  margin-top: 4px;
  padding: clamp(16px, 2.5vw, 24px) clamp(16px, 2.8vw, 28px);
  background: var(--color-white);
  border: 1px solid var(--color-campaign);
  border-radius: 15px;
}

.beginner-steps {
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: clamp(14px, 2.5vw, 18px);
}

.beginner-step {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
}

.beginner-page .beginner-step {
  padding: 0;
}

.beginner-step__surface {
  overflow: hidden;
  background: var(--color-white);
  border: 1px solid var(--color-campaign);
  border-radius: 15px;
  box-shadow: none;
}

.beginner-step__arrow {
  display: block;
  flex: none;
  width: 0;
  height: 0;
  margin: clamp(10px, 2vw, 14px) auto 0;
  border-left: 11px solid transparent;
  border-right: 11px solid transparent;
  border-top: 12px solid var(--color-campaign);
}

.beginner-step__head {
  display: flex;
  align-items: center;
  gap: clamp(16px, 3vw, 24px);
  min-height: 40px;
  padding: 8px clamp(16px, 2.5vw, 28px);
  background: var(--color-caption);
}

.beginner-step__num {
  flex: none;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.2em;
  color: var(--color-white);
}

.beginner-step__title {
  margin: 0;
  flex: 1;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.2em;
  color: var(--color-white);
}

.beginner-step__body {
  padding: clamp(16px, 2.5vw, 22px) clamp(16px, 2.8vw, 28px) clamp(18px, 2.8vw, 26px);
}

.beginner-step__text {
  margin: 0 0 10px;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

.beginner-step__note {
  margin: 0 0 12px;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

.beginner-step__actions,
.storage-actions,
.paddle-actions {
  margin: 10px 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.beginner-page .beginner-step__body > .beginner-step__actions:not(:last-child) {
  margin-bottom: 20px;
}

.beginner-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0.55em 1.35em;
  border-radius: 999px;
  border: 2px solid color-mix(in srgb, var(--color-primary) 35%, transparent);
  background: var(--color-white);
  font-family: var(--font-zen), sans-serif;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.06em;
  color: var(--color-primary);
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.beginner-page .beginner-btn,
.storage-page .beginner-btn,
.paddle-page .beginner-btn {
  min-height: 40px;
  padding: 0.5em 1.15em;
  border-radius: 8px;
  border: 1px solid var(--color-primary);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.02em;
}

.beginner-btn:hover,
.beginner-btn:focus-visible {
  background: color-mix(in srgb, var(--color-primary) 8%, var(--color-white));
  border-color: color-mix(in srgb, var(--color-primary) 55%, transparent);
}

.beginner-btn--line {
  background: #06c755;
  border-color: #06c755;
  color: #fff;
}

.beginner-page .beginner-btn--line,
.storage-page .beginner-btn--line,
.paddle-page .beginner-btn--line {
  background: var(--color-white);
  border: 1px solid var(--color-primary);
  color: var(--color-primary);
}

.beginner-btn--line:hover,
.beginner-btn--line:focus-visible {
  background: color-mix(in srgb, #06c755 88%, black);
  border-color: color-mix(in srgb, #06c755 88%, black);
  color: #fff;
}

.beginner-page .beginner-btn--line:hover,
.beginner-page .beginner-btn--line:focus-visible,
.storage-page .beginner-btn--line:hover,
.storage-page .beginner-btn--line:focus-visible,
.paddle-page .beginner-btn--line:hover,
.paddle-page .beginner-btn--line:focus-visible {
  background: color-mix(in srgb, var(--color-primary) 10%, var(--color-white));
  border-color: var(--color-primary-dark);
  color: var(--color-primary-dark);
}

.beginner-page .beginner-btn--instagram {
  background-color: var(--color-white);
}

.beginner-page .beginner-btn--instagram:hover,
.beginner-page .beginner-btn--instagram:focus-visible {
  background-color: color-mix(in srgb, var(--color-primary) 8%, var(--color-white));
}

.beginner-btn--ghost {
  background: transparent;
}

.beginner-checklist,
.storage-list {
  margin: 12px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 8px;
}

.beginner-page .beginner-panel .beginner-checklist {
  margin-top: clamp(10px, 2vw, 16px);
  gap: 10px;
}

.beginner-checklist li,
.storage-list:not(.storage-list--bullets) li {
  position: relative;
  padding-left: 32px;
  line-height: 1.7;
  color: var(--color-text);
}

.storage-list--bullets li {
  position: relative;
  padding-left: 1.25em;
  line-height: 1.7;
  color: var(--color-text);
}

.beginner-page .beginner-checklist li {
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

/* checked box uses fixed 22px: keep enough left padding */

.beginner-checklist li::before,
.storage-list:not(.storage-list--bullets) li::before {
  content: "✓";
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  top: 0.42em;
  left: 0;
  width: 22px;
  height: 22px;
  box-sizing: border-box;
  border: 1px solid var(--color-campaign);
  border-radius: 3px;
  background: var(--color-white);
  font-size: 15px;
  line-height: 1;
  color: var(--color-primary);
}

.beginner-page .beginner-loc .beginner-checklist li::before {
  color: var(--color-campaign);
}

.storage-list--bullets li::before {
  content: "・";
  color: var(--color-primary);
}

/* 鎌倉マリーナ艇庫 — カード・画像（はじめての方へに寄せる） */
.storage-page .storage-card {
  border: 1px solid var(--color-campaign);
  border-radius: 15px;
  box-shadow: none;
  padding: 0 clamp(16px, 2.8vw, 28px) clamp(16px, 2.5vw, 22px);
}

.storage-page .storage-card__text {
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

.storage-page .storage-list:not(.storage-list--bullets) li {
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

.storage-page .storage-list:not(.storage-list--bullets) li::before {
  color: var(--color-campaign);
}

.storage-page .storage-list--bullets li,
.paddle-page .storage-list--bullets li {
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 2;
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

/* オーシャンパドリング — クラス紹介と同じオーバーラップ＋はじめての方へ寄せた後半 */
.paddle-page .paddle-ocean-sync.class-section--ocean {
  padding-top: clamp(8px, 2vw, 16px);
  margin-bottom: 0;
}

.paddle-page .paddle-ocean-sync__overlap--first {
  margin-top: 0;
}

.paddle-page .paddle-service__item,
.paddle-page .paddle-grid--items .paddle-card {
  border: 1px solid var(--color-campaign);
  border-radius: 15px;
  box-shadow: none;
  padding: 0 clamp(16px, 2.8vw, 28px) clamp(16px, 2.5vw, 22px);
}

.paddle-page .paddle-service {
  gap: clamp(18px, 3vw, 26px);
}

/* オーシャンパドリング：サービスカード内 2カラム（本文＋写真） */
.paddle-page .paddle-service__row {
  display: grid;
  grid-template-columns: 1fr minmax(160px, 220px);
  gap: clamp(12px, 2.2vw, 18px);
  align-items: start;
}

.paddle-page .paddle-service__media {
  margin: 0;
  border-radius: 12px;
  overflow: hidden;
  line-height: 0;
  background: color-mix(in srgb, var(--color-campaign) 35%, var(--color-white));
}

.paddle-page .paddle-service__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 400 / 280;
  object-fit: cover;
}

.paddle-page .paddle-form iframe {
  width: 100%;
  height: 560px;
  border: 0;
  border-radius: 12px;
  background: #fff;
}

@media (max-width: 900px) {
  .paddle-page .paddle-service__row {
    grid-template-columns: 1fr;
  }

  .paddle-page .paddle-form iframe {
    height: 620px;
  }
}

/* タイトル帯の直下は区切り線なし＋本文エリアの上パディング */
.paddle-page .paddle-service__item > .beginner-loc__head + *,
.paddle-page .paddle-grid--items .paddle-card > .beginner-loc__head + * {
  margin-top: 0;
  padding-top: clamp(12px, 2.2vw, 18px);
}

.paddle-page .paddle-service__item > .beginner-loc__head + .paddle-meta {
  border-top: none;
}

.storage-page .storage-card > .beginner-loc__head + * {
  margin-top: 0;
  padding-top: clamp(12px, 2.2vw, 18px);
}

.paddle-page .paddle-card__quote {
  color: var(--color-primary);
  border-left-color: color-mix(in srgb, var(--color-campaign) 65%, transparent);
  background: color-mix(in srgb, var(--color-campaign) 12%, var(--color-white));
}

.paddle-page .paddle-ocean-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(10px, 2vw, 14px);
}

.paddle-page .paddle-ocean-gallery__fig {
  margin: 0;
  border-radius: 12px;
  overflow: hidden;
  line-height: 0;
  background: color-mix(in srgb, var(--color-campaign) 35%, var(--color-white));
}

.paddle-page .paddle-ocean-gallery__fig img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 400 / 280;
  object-fit: cover;
}

@media (max-width: 900px) {
  .paddle-page .paddle-ocean-gallery {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 520px) {
  .paddle-page .paddle-ocean-gallery {
    grid-template-columns: 1fr;
  }
}

.storage-page .storage-marina-hero {
  margin: clamp(14px, 2.5vw, 22px) 0 0;
  border-radius: 12px;
  overflow: hidden;
  line-height: 0;
  background: color-mix(in srgb, var(--color-campaign) 35%, var(--color-white));
}

.storage-page .storage-marina-hero img {
  display: block;
  width: 100%;
  height: auto;
}

.storage-page .storage-marina-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(10px, 2vw, 16px);
  margin-top: clamp(16px, 2.5vw, 24px);
}

.storage-page .storage-marina-gallery__fig {
  margin: 0;
  border-radius: 12px;
  overflow: hidden;
  line-height: 0;
  background: color-mix(in srgb, var(--color-campaign) 35%, var(--color-white));
}

.storage-page .storage-marina-gallery__fig img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 400 / 280;
  object-fit: cover;
}

@media (max-width: 700px) {
  .storage-page .storage-marina-gallery {
    grid-template-columns: 1fr;
  }
}

.beginner-checklist__note {
  display: inline-block;
  margin-left: 6px;
  color: var(--color-mute);
  font-size: 13px;
}

.beginner-page .beginner-checklist__note {
  display: block;
  margin: 6px 0 0;
  font-weight: 700;
  font-size: 16px;
  line-height: 1.4;
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

.beginner-locations {
  display: grid;
  gap: 14px;
  margin-top: 14px;
}

.beginner-loc,
.storage-card,
.paddle-card,
.paddle-service__item {
  background: var(--color-white);
  border-radius: 10px;
  padding: 16px clamp(14px, 2.2vw, 18px);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
}

.beginner-page .beginner-loc {
  border: 1px solid var(--color-campaign);
  border-radius: 15px;
  box-shadow: none;
  padding: 0 clamp(16px, 2.8vw, 28px) clamp(16px, 2.5vw, 22px);
}

.beginner-page .beginner-loc > .beginner-loc__head,
.storage-page .storage-card > .beginner-loc__head,
.paddle-page .paddle-service__item > .beginner-loc__head,
.paddle-page .paddle-grid--items .paddle-card > .beginner-loc__head {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-height: 40px;
  margin-left: calc(-1 * clamp(16px, 2.8vw, 28px));
  margin-right: calc(-1 * clamp(16px, 2.8vw, 28px));
  padding: 10px clamp(16px, 2.8vw, 28px);
  border-bottom: 1px solid var(--color-campaign);
  background: transparent;
}

.beginner-page .beginner-loc > .beginner-loc__head .beginner-loc__title,
.storage-page .storage-card .beginner-loc__head .beginner-loc__title,
.paddle-page .paddle-service__item .beginner-loc__head .beginner-loc__title,
.paddle-page .paddle-grid--items .paddle-card .beginner-loc__head .beginner-loc__title {
  margin: 0;
  line-height: 1.35;
}

.beginner-page .beginner-loc .beginner-loc__title,
.storage-page .storage-card .beginner-loc__title,
.paddle-page .paddle-service__item .beginner-loc__title,
.paddle-page .paddle-grid--items .paddle-card .beginner-loc__title {
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(16px, 2vw, 17px);
  line-height: 2;
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

.beginner-loc__text,
.storage-card__text,
.paddle-card__text,
.paddle-service__text {
  margin: 0 0 10px;
  line-height: 1.75;
  color: var(--color-text);
}

.beginner-page .beginner-loc__text {
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

.beginner-page .beginner-loc > .beginner-loc__text {
  margin: clamp(14px, 2.5vw, 18px) 0 clamp(14px, 2.5vw, 20px);
}

.beginner-page .beginner-loc__subhead {
  margin: 0 0 8px;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: 15px;
  line-height: 2;
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

.beginner-page .beginner-loc__gallery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(10px, 2vw, 16px);
  margin: 0 0 clamp(16px, 2.8vw, 24px);
}

.beginner-page .beginner-loc__cols + .beginner-loc__gallery {
  margin-top: clamp(16px, 2.5vw, 22px);
}

.beginner-page .beginner-loc__fig {
  margin: 0;
  border-radius: 12px;
  overflow: hidden;
  line-height: 0;
  background: color-mix(in srgb, var(--color-campaign) 35%, var(--color-white));
}

.beginner-page .beginner-loc__fig img {
  width: 100%;
  height: auto;
  aspect-ratio: 494 / 330;
  object-fit: cover;
  display: block;
}

@media (max-width: 520px) {
  .beginner-page .beginner-loc__gallery {
    grid-template-columns: 1fr;
  }
}

.beginner-loc__cols {
  display: grid;
  gap: 12px;
  margin-top: 10px;
}

@media (min-width: 900px) {
  .beginner-loc__cols {
    grid-template-columns: 1fr 1fr;
    gap: 18px;
  }
  .storage-grid,
  .paddle-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }
}

.paddle-lead {
  margin: 0 0 12px;
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(16px, 2.2vw, 18px);
  letter-spacing: 0.05em;
  color: var(--color-primary);
}

.paddle-card__quote {
  margin: 12px 0 0;
  padding: 12px 14px;
  border-left: 3px solid color-mix(in srgb, var(--color-primary) 45%, transparent);
  background: color-mix(in srgb, var(--color-primary) 6%, white);
  color: var(--color-text);
  line-height: 1.75;
}

.paddle-meta {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid color-mix(in srgb, var(--color-primary) 18%, transparent);
}

.paddle-meta__row {
  margin: 0 0 8px;
  color: var(--color-text);
  line-height: 1.7;
}

.paddle-service {
  display: grid;
  gap: 14px;
}

.class-feature {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: clamp(16px, 3vw, 24px);
  padding: clamp(18px, 3vw, 24px) clamp(16px, 2.5vw, 22px);
  border-radius: 8px;
  background: var(--color-white);
}

.class-feature__body {
  flex: 1 1 280px;
  min-width: 0;
}

.class-feature__name {
  margin: 0 0 12px;
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(20px, 2.5vw, 24px);
  letter-spacing: 0.05em;
  color: var(--color-primary);
}

.class-feature__text {
  margin: 0 0 1em;
  font-family: var(--font-zen), sans-serif;
  font-weight: 500;
  font-size: clamp(15px, 1.85vw, 18px);
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: var(--color-primary);
}

.class-feature__text:last-child {
  margin-bottom: 0;
}

.class-feature__thumb {
  flex: 0 0 auto;
  width: 161px;
  max-width: 40vw;
  margin: 0;
  border-radius: 8px;
  overflow: hidden;
  align-self: center;
}

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

@media (max-width: 767px) {
  .class-page.content-wrap {
    padding-left: var(--content-pad-x);
    padding-right: var(--content-pad-x);
  }

  .class-overlap--ocean,
  .class-overlap--yoga,
  .class-overlap--pilates {
    min-height: 0;
  }

  .class-overlap--ocean-first,
  .class-overlap--yoga-first {
    /* SPでは見出しと被りやすいのでリセット */
    margin-top: 0;
  }

  /* Ocean / Yoga: 画像80% + テキスト80% を20pxだけ重ねて左右交互に */
  .class-overlap--ocean .class-overlap__figure,
  .class-overlap--yoga .class-overlap__figure,
  .class-overlap--ocean .class-overlap__figure--yoga,
  .class-overlap--yoga .class-overlap__figure--yoga {
    width: 80%;
    max-width: none;
  }

  .class-overlap--ocean-first .class-overlap__figure,
  .class-overlap--yoga-first .class-overlap__figure,
  .class-overlap--ocean-first .class-overlap__figure--yoga,
  .class-overlap--yoga-first .class-overlap__figure--yoga {
    margin-left: auto; /* 画像: 右寄せ */
    margin-right: 0;
  }

  .class-overlap--ocean:not(.class-overlap--ocean-first) .class-overlap__figure {
    margin-left: 0; /* 画像: 左寄せ */
    margin-right: auto;
  }

  /* pilates は従来どおりフル幅 */
  .class-overlap__figure--pilates {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
  }

  .class-overlap--ocean .class-overlap__card,
  .class-overlap--yoga .class-overlap__card,
  .class-overlap__card--pilates {
    position: relative;
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
    transform: none;
    width: 100%;
    max-width: none;
    height: auto;
    max-height: none;
    margin-bottom: 0;
    overflow: visible;
  }

  .class-overlap--ocean .class-overlap__card,
  .class-overlap--yoga .class-overlap__card {
    width: 80%;
    margin-top: -20px; /* 画像に20px程度被せる */
  }

  .class-overlap--ocean-first .class-overlap__card,
  .class-overlap--yoga-first .class-overlap__card {
    margin-left: 0; /* テキスト: 左寄せ */
    margin-right: auto;
  }

  .class-overlap--ocean:not(.class-overlap--ocean-first) .class-overlap__card {
    margin-left: auto; /* テキスト: 右寄せ */
    margin-right: 0;
  }

  .class-overlap__card--pilates {
    margin-top: 12px;
  }

  .class-overlap--pilates {
    display: flex;
    flex-direction: column;
  }

  .class-overlap__pilates-head {
    position: relative;
    right: auto;
    top: auto;
    width: 100%;
    margin-bottom: clamp(8px, 2vw, 14px);
    order: -1;
    text-align: left;
  }

  .class-section__label-en--pilates,
  .class-section__title--pilates {
    text-align: left;
    writing-mode: horizontal-tb;
  }

  .class-feature {
    flex-direction: column;
  }

  .class-feature__thumb {
    width: 100%;
    max-width: 200px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* ——— プライベート（private.html / Figma 1121:4571） ——— */
.private-page__intro {
  margin-bottom: clamp(40px, 7vw, 72px);
}

.private-page__lead {
  margin: 0 auto clamp(28px, 5vw, 40px);
  max-width: 54rem;
  font-family: var(--font-noto), sans-serif;
  font-weight: 600;
  font-size: clamp(16px, 1.85vw, 18px);
  line-height: 2;
  letter-spacing: 0.2em;
  text-align: center;
  color: var(--color-primary);
}

.private-page__hero {
  margin: 0 auto;
  max-width: min(100%, 510px);
  border-radius: 20px;
  overflow: hidden;
}

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

.private-page__section,
.corporate-page__section {
  margin-bottom: clamp(48px, 9vw, 96px);
}

.private-page__section-title {
  margin: 0 auto clamp(28px, 5vw, 44px);
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(22px, 3vw, 28px);
  letter-spacing: 0.05em;
  line-height: 1.6;
  text-align: center;
  color: var(--color-primary);
}

/* 法人利用について：プライベート見出しと同トーンだが左寄せ。本文は .private-feature__text に合わせる */
.corporate-page__section--welfare .corporate-page__section-title {
  margin: 0 0 clamp(12px, 2.2vw, 20px);
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(22px, 3vw, 28px);
  letter-spacing: 0.05em;
  line-height: 1.6;
  text-align: start;
  color: var(--color-primary);
}

.corporate-page__section--welfare .corporate-page__text {
  margin: 0;
  font-family: var(--font-noto), sans-serif;
  font-weight: 500;
  font-size: clamp(15px, 1.75vw, 16px);
  line-height: 2;
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

.private-feature {
  display: grid;
  grid-template-columns: minmax(0, 1fr) min(275px, 32%);
  gap: clamp(20px, 4vw, 40px);
  align-items: start;
  margin-bottom: clamp(36px, 6vw, 56px);
}

.private-feature:last-child {
  margin-bottom: 0;
}

.private-feature--stack {
  grid-template-columns: 1fr;
}

.private-feature__body--wide {
  max-width: none;
}

.private-feature__name {
  margin: 0 0 0.75em;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(17px, 2vw, 18px);
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

.private-feature__text {
  margin: 0;
  font-family: var(--font-noto), sans-serif;
  font-weight: 500;
  font-size: clamp(15px, 1.75vw, 16px);
  line-height: 2;
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

.private-feature__text p {
  margin: 0 0 1em;
}

.private-feature__text p:last-child {
  margin-bottom: 0;
}

.private-feature__link {
  color: var(--color-primary);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.private-feature__link:hover,
.private-feature__link:focus-visible {
  opacity: 0.85;
}

.private-feature__media {
  margin: 0;
  border-radius: 8px;
  overflow: hidden;
}

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

/* ——— 法人向け（corporate.html / Figma 1121:4684） ——— */
.corporate-page__contact-lead {
  text-align: center;
  margin-top: clamp(8px, 2vw, 24px);
  margin-bottom: clamp(28px, 5vw, 40px);
}

@media (max-width: 767px) {
  .corporate-page__contact-lead {
    text-align: left;
  }

  .corporate-page__contact-lead br {
    display: none;
  }
}

.corporate-page__contact-lead > p:first-of-type {
  margin: 0;
  font-family: var(--font-zen), sans-serif;
  font-weight: 500;
  font-size: clamp(18px, 2.2vw, 24px);
  line-height: 1.8;
  letter-spacing: 0.05em;
  color: var(--color-primary);
}

.corporate-page__contact-lead a {
  color: var(--color-primary);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.corporate-page__contact-lead a:hover,
.corporate-page__contact-lead a:focus-visible {
  opacity: 0.88;
}

.corporate-form {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
  background: var(--color-white);
  border: 1px solid rgba(69, 73, 37, 0.28);
  border-radius: 12px;
  padding: clamp(20px, 4vw, 32px);
  box-sizing: border-box;
  box-shadow: 0 1px 0 rgba(69, 73, 37, 0.04);
}

/* ブロック間は gap で統一（<form class="corporate-form"> / CF7 の html_class 用） */
form.corporate-form {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, 4vw, 28px);
}

form.corporate-form > * {
  margin-block: 0;
}

form.corporate-form > p {
  margin: 0;
}

/* CF7の実出力（formに corporate-form クラスが付いていない場合）でも余白を統一 */
.wpcf7 form.wpcf7-form:not(.corporate-form) .corporate-form__hint {
  margin: 0 0 clamp(20px, 4vw, 28px);
}

.wpcf7 form.wpcf7-form:not(.corporate-form) .corporate-form__fieldset,
.wpcf7 form.wpcf7-form:not(.corporate-form) .corporate-form__field,
.wpcf7 form.wpcf7-form:not(.corporate-form) .corporate-form__actions {
  margin: 0 0 clamp(20px, 4vw, 28px);
}

.wpcf7 form.wpcf7-form:not(.corporate-form) .corporate-form__actions {
  margin-bottom: 0;
}

.wpcf7 form.wpcf7-form:not(.corporate-form) .corporate-form__radios > p,
.wpcf7 form.wpcf7-form:not(.corporate-form) .corporate-form__field > p {
  margin: 0;
}

.corporate-form__hint {
  margin: 0;
  font-family: var(--font-noto), sans-serif;
  font-size: clamp(14px, 1.6vw, 15px);
  line-height: 1.75;
  letter-spacing: 0.06em;
  color: var(--color-primary);
}

.corporate-form__required-note {
  white-space: nowrap;
}

.corporate-form__fieldset {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 2.5vw, 18px);
  margin: 0;
  padding: 0;
  border: none;
  min-width: 0;
}

.corporate-form__legend {
  padding: 0;
  margin: 0;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(15px, 1.7vw, 16px);
  letter-spacing: 0.12em;
  color: var(--color-primary);
}

.corporate-form__legend + * {
  margin-top: 12px;
}

.corporate-form__req {
  text-decoration: none;
  font-weight: 700;
  color: var(--color-primary) !important;
}

.corporate-form__radios {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin-top: 16px;
  /* ラジオはCF7出力の都合で「下の余白」が詰まって見えやすいので微調整 */
  margin-bottom: clamp(8px, 1.5vw, 14px);
}

/* サーバー実出力（form.wpcf7-form）でも確実に効かせる */
.wpcf7 form.wpcf7-form .corporate-form__radios {
  margin-bottom: clamp(8px, 1.5vw, 14px) !important;
  margin-top: 16px !important;
}

.corporate-form__radio {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-family: var(--font-noto), sans-serif;
  font-size: clamp(14px, 1.6vw, 15px);
  line-height: 1.5;
  letter-spacing: 0.06em;
  color: var(--color-text);
  cursor: pointer;
}

.corporate-form__radio input {
  margin-top: 0.35em;
  flex-shrink: 0;
  accent-color: var(--color-primary-dark);
}

/* Contact Form 7（法人向けフォーム: .corporate-form 内） */
.corporate-form .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}

.corporate-form .wpcf7-radio,
.wpcf7 form.wpcf7-form:not(.corporate-form) .corporate-form__radios .wpcf7-radio {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 10px 18px;
}

.corporate-form .wpcf7-list-item,
.wpcf7 form.wpcf7-form:not(.corporate-form) .corporate-form__radios .wpcf7-list-item {
  margin: 0;
}

.corporate-form .wpcf7-list-item label,
.wpcf7 form.wpcf7-form:not(.corporate-form) .corporate-form__radios .wpcf7-list-item label {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-family: var(--font-noto), sans-serif;
  font-size: clamp(14px, 1.6vw, 15px);
  line-height: 1.5;
  letter-spacing: 0.06em;
  color: var(--color-text);
  cursor: pointer;
}

.corporate-form .wpcf7-list-item input[type="radio"],
.wpcf7 form.wpcf7-form:not(.corporate-form) .corporate-form__radios .wpcf7-list-item input[type="radio"] {
  margin-top: 0.35em;
  flex-shrink: 0;
  accent-color: var(--color-primary-dark);
}

.corporate-form .wpcf7-submit {
  margin: 0;
}

.corporate-form__name-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(12px, 3vw, 20px);
}

.corporate-form__field {
  display: flex;
  flex-direction: column;
  gap: 0.45em;
  margin: 0;
  min-width: 0;
}

/* CF7が <p> と <br> で包むので、間隔は wrapper 側で作る */
.wpcf7 form.wpcf7-form:not(.corporate-form) .corporate-form__field > p {
  display: flex;
  flex-direction: column;
  gap: 0.45em;
}

.wpcf7 form.wpcf7-form:not(.corporate-form) .corporate-form__field > p > br {
  display: none;
}

.corporate-form__field label {
  display: block;
  margin: 0;
  font-family: var(--font-noto), sans-serif;
  font-weight: 500;
  font-size: clamp(14px, 1.6vw, 15px);
  letter-spacing: 0.08em;
  color: var(--color-primary);
}

.corporate-form__field input[type="text"],
.corporate-form__field input[type="email"],
.corporate-form__field input[type="tel"],
.corporate-form__field textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 0.65rem 0.75rem;
  font-family: var(--font-noto), sans-serif;
  font-size: 16px;
  line-height: 1.5;
  color: var(--color-text);
  background: var(--color-white);
  border: 1px solid rgba(69, 73, 37, 0.32);
  border-radius: 6px;
}

.corporate-form__field textarea {
  min-height: 7.5rem;
  resize: vertical;
}

.corporate-form__field input:focus-visible,
.corporate-form__field textarea:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.corporate-form__description {
  margin: 0;
  font-family: var(--font-noto), sans-serif;
  font-size: clamp(12px, 1.4vw, 13px);
  line-height: 1.65;
  letter-spacing: 0.04em;
  color: rgba(69, 73, 37, 0.72);
}

/* CF7で注釈が複数の <p> に分割されるケース（corp-question-desc の続き）を同一スタイルに統一 */
.wpcf7 form.wpcf7-form #corp-question-desc,
.wpcf7 form.wpcf7-form #corp-question-desc ~ p {
  margin: 0;
  font-family: var(--font-noto), sans-serif;
  font-size: clamp(12px, 1.4vw, 13px);
  line-height: 1.65;
  letter-spacing: 0.04em;
  color: rgba(69, 73, 37, 0.72);
}

.wpcf7 form.wpcf7-form #corp-question-desc ~ p {
  margin-top: 0.2em;
}

.corporate-form__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  margin: 0;
}

.corporate-form__actions p {
  margin: 0;
  display: contents;
}

.corporate-form__actions br {
  display: none;
}

.corporate-form__actions .wpcf7-spinner {
  display: none;
}

.corporate-form__submit,
.corporate-form__reset {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0.5rem 1.75rem;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.12em;
  cursor: pointer;
  border-radius: 6px;
  border: none;
}

.corporate-form__submit {
  color: #fff;
  background: var(--color-primary-dark);
}

.corporate-form__submit:hover,
.corporate-form__submit:focus-visible {
  opacity: 0.92;
}

.corporate-form__reset {
  color: var(--color-text);
  background: var(--color-white);
  border: 1px solid rgba(69, 73, 37, 0.35);
}

.corporate-form__reset:hover,
.corporate-form__reset:focus-visible {
  background: rgba(69, 73, 37, 0.06);
}

@media (max-width: 479px) {
  .corporate-form__name-row {
    grid-template-columns: 1fr;
  }
}

/* お問い合わせ（固定ページ本文の Contact Form 7）：ラジオ等のアクセントをオレンジ系に統一 */
.page-content .entry-content .wpcf7-form input[type="radio"],
.page-content .entry-content .wpcf7-form input[type="checkbox"] {
  accent-color: var(--color-primary-dark);
}

.page-content .entry-content .wpcf7-form .wpcf7-list-item-label {
  cursor: pointer;
}

/* ——— よくある質問（faq.html / Figma 1121:4781） ——— */
.faq-list {
  display: flex;
  flex-direction: column;
  gap: clamp(36px, 6vw, 52px);
}

.faq-item {
  margin: 0;
}

.faq-item__row {
  display: grid;
  grid-template-columns: clamp(1.5rem, 4vw, 2rem) minmax(0, 1fr);
  column-gap: clamp(10px, 2vw, 18px);
  align-items: start;
}

.faq-item__row + .faq-item__row {
  margin-top: 1rem;
}

.faq-item__mark {
  margin: 0;
  padding-top: 0;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(22px, 3vw, 28px);
  line-height: 1.4;
  letter-spacing: 0.2em;
  color: var(--color-primary);
  transform: translateY(-0.08em);
}

.faq-item__question {
  margin: 0;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(16px, 1.9vw, 18px);
  line-height: 2;
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

.faq-item__answer {
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(15px, 1.75vw, 16px);
  line-height: 2;
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

.faq-item__answer p {
  margin: 0 0 0.5em;
}

.faq-item__answer p:last-child {
  margin-bottom: 0;
}

.faq-item__link {
  color: var(--color-primary);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.faq-item__link:hover,
.faq-item__link:focus-visible {
  opacity: 0.88;
}

/* ——— 会社案内（company.html / Figma 1121:4926） ——— */
.company-spec {
  margin: 0 0 clamp(40px, 7vw, 56px);
  max-width: 100%;
}

.company-spec__row {
  display: grid;
  grid-template-columns: minmax(5.5rem, 8.5rem) minmax(0, 1fr);
  gap: clamp(12px, 3vw, 24px);
  align-items: baseline;
  margin: 0;
  padding: clamp(14px, 2.5vw, 18px) 0;
  border-bottom: 1px solid rgba(212, 167, 134, 0.45);
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(16px, 1.85vw, 18px);
  line-height: 1.75;
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

.company-spec__row:first-of-type {
  border-top: 1px solid rgba(212, 167, 134, 0.45);
}

.company-spec dt {
  margin: 0;
}

.company-spec dd {
  margin: 0;
}

.company-stores {
  margin-bottom: clamp(48px, 9vw, 80px);
}

.company-stores__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(36px, 6vw, 48px);
}

@media (min-width: 768px) {
  .company-stores__grid {
    grid-template-columns: 1fr 1fr;
    gap: clamp(24px, 4vw, 40px);
  }
}

.company-store__name {
  margin: 0 0 0.5em;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(18px, 2.1vw, 21px);
  line-height: 1.4;
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

.company-store__address,
.company-store__tel {
  margin: 0 0 0.35em;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(14px, 1.65vw, 17px);
  line-height: 2;
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

.company-store__tel {
  margin-bottom: clamp(16px, 3vw, 20px);
}

.company-store__tel a {
  color: var(--color-primary);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.company-store__tel a:hover,
.company-store__tel a:focus-visible {
  opacity: 0.88;
}

.company-store__media {
  margin: 0;
  border-radius: 8px;
  overflow: hidden;
}

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

.company-page__section-title {
  margin: 0 auto clamp(28px, 5vw, 40px);
  font-family: var(--font-zen), sans-serif;
  font-weight: 700;
  font-size: clamp(22px, 3vw, 28px);
  letter-spacing: 0.05em;
  line-height: 1.6;
  text-align: center;
  color: var(--color-primary);
}

.company-locations {
  margin-bottom: clamp(32px, 6vw, 48px);
}

.company-location {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(24px, 4vw, 32px);
  align-items: start;
}

@media (min-width: 768px) {
  .company-location {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(20px, 3vw, 36px);
    align-items: center;
  }
}

.company-location__name {
  margin: 0 0 0.5em;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(18px, 2.1vw, 21px);
  line-height: 1.4;
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

.company-location__address,
.company-location__tel {
  margin: 0 0 0.5em;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(14px, 1.65vw, 17px);
  line-height: 2;
  letter-spacing: 0.2em;
  color: var(--color-primary);
}

.company-location__tel {
  margin-bottom: 0;
}

.company-location__media {
  margin: 0;
  border-radius: 8px;
  overflow: hidden;
}

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

.company-page__contact {
  margin-top: clamp(8px, 2vw, 16px);
  text-align: center;
}

.company-page__contact-btn.outline-btn--center {
  margin-top: 0;
  max-width: min(100%, 43.5rem);
  min-height: 68px;
  padding: 12px 32px;
  border-radius: 55px;
  justify-content: center;
  font-size: clamp(18px, 2.2vw, 24px);
}

/* ——— お知らせ詳細（single.html / Figma 1121:5024） ——— */
/* 本文＋サイドバー枠がやや狭いため、下層の標準より一段広い上限に（番組枠トークンと同水準） */
.single-page.content-wrap {
  max-width: min(100%, var(--content-max-program));
}

.single-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(36px, 6vw, 48px);
  align-items: start;
}

@media (min-width: 900px) {
  .single-layout {
    grid-template-columns: minmax(0, 1fr) min(17.5rem, 28%);
    gap: clamp(28px, 4vw, 48px);
  }
}

.single-main {
  min-width: 0;
}

.single-post__header {
  margin-bottom: clamp(16px, 3vw, 24px);
}

.single-post__title {
  margin: 0 0 0.5em;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(20px, 2.4vw, 24px);
  line-height: 1.5;
  letter-spacing: 0.12em;
  color: var(--color-primary);
}

.single-post__meta {
  margin: 0;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.12em;
  color: var(--color-primary);
}

.single-post__body {
  margin-bottom: clamp(24px, 4vw, 32px);
  font-family: var(--font-noto), sans-serif;
  font-weight: 500;
  font-size: clamp(13px, 1.5vw, 14px);
  line-height: 1.75;
  letter-spacing: 0.12em;
  color: #454925;
}

.single-post__body p {
  margin: 0 0 1em;
}

.single-post__body p:last-child {
  margin-bottom: 0;
}

.single-post__figure {
  margin: 0 0 clamp(28px, 5vw, 40px);
  border-radius: 4px;
  overflow: hidden;
  background: #eee;
}

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

.single-post__pager {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding-top: clamp(12px, 2vw, 16px);
  border-top: 1px solid rgba(212, 167, 134, 0.35);
}

.single-post__pager-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(17px, 2vw, 20px);
  letter-spacing: 0.12em;
  color: var(--color-primary);
  text-decoration: none;
}

.single-post__pager-link:hover,
.single-post__pager-link:focus-visible {
  opacity: 0.85;
}

.single-post__pager-link--next {
  margin-left: auto;
}

.single-aside {
  min-width: 0;
}

@media (max-width: 899px) {
  .single-aside {
    padding-top: clamp(8px, 2vw, 16px);
    border-top: 1px solid rgba(212, 167, 134, 0.25);
  }
}

.single-widget {
  margin-bottom: clamp(28px, 5vw, 36px);
}

.single-widget:last-child {
  margin-bottom: 0;
}

.single-widget__title {
  margin: 0 0 0.65em;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: clamp(17px, 2vw, 20px);
  letter-spacing: 0.12em;
  color: var(--color-primary);
}

.single-widget__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.single-widget__list li {
  margin-bottom: 0.35em;
}

.single-widget__list li:last-child {
  margin-bottom: 0;
}

.single-widget__list a {
  font-family: var(--font-noto), sans-serif;
  font-weight: 500;
  font-size: clamp(13px, 1.5vw, 14px);
  line-height: 1.6;
  letter-spacing: 0.12em;
  color: #454925;
  text-decoration: none;
}

.single-widget__list a:hover,
.single-widget__list a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.single-widget__select {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  height: 32px;
  padding: 0 28px 0 10px;
  font-family: var(--font-noto), sans-serif;
  font-size: clamp(12px, 1.45vw, 13px);
  font-weight: 700;
  letter-spacing: 0.12em;
  color: #454925;
  background-color: var(--color-white);
  border: 1px solid #ccc;
  border-radius: 3px;
  cursor: pointer;
}

.single-widget__select:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

.single-widget__search-form {
  margin: 0;
}

.single-widget__search-row {
  display: flex;
  align-items: stretch;
  gap: 0;
  max-width: 100%;
}

.single-widget__search-input {
  flex: 1 1 auto;
  min-width: 0;
  box-sizing: border-box;
  height: 32px;
  padding: 0 10px;
  font-family: var(--font-noto), sans-serif;
  font-size: clamp(13px, 1.5vw, 14px);
  font-weight: 500;
  letter-spacing: 0.08em;
  color: #454925;
  background: var(--color-white);
  border: 1px solid #ccc;
  border-radius: 3px 0 0 3px;
  border-right: none;
}

.single-widget__search-input::placeholder {
  color: rgba(69, 73, 37, 0.45);
}

.single-widget__search-input:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
  z-index: 1;
}

.single-widget__search-submit {
  flex: 0 0 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  font-size: 14px;
  color: #454925;
  background: var(--color-white);
  border: 1px solid #ccc;
  border-radius: 0 3px 3px 0;
  cursor: pointer;
}

.single-widget__search-submit:hover,
.single-widget__search-submit:focus-visible {
  background: rgba(212, 167, 134, 0.15);
}

.single-widget__search-submit:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

/* ——— お知らせ一覧（archive.html / Figma 1121:5129） ——— */
.archive-card {
  max-width: 54.875rem;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: clamp(28px, 5vw, 40px);
  padding: clamp(28px, 5vw, 44px) clamp(20px, 4vw, 40px);
  background: var(--color-white);
  border-radius: var(--radius-lg);
  box-shadow: 0 2px 12px rgba(69, 73, 37, 0.06);
}

.archive-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.archive-list__item {
  display: grid;
  grid-template-columns: minmax(5.5rem, 7.5rem) minmax(0, 1fr);
  gap: clamp(8px, 2vw, 16px);
  align-items: baseline;
  padding-bottom: clamp(14px, 2.5vw, 18px);
  margin-bottom: clamp(14px, 2.5vw, 18px);
  border-bottom: 1px solid rgba(212, 167, 134, 0.2);
}

.archive-list__item:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}

.archive-list__date {
  font-family: var(--font-noto), sans-serif;
  font-weight: 400;
  font-size: 13px;
  line-height: 1.6;
  color: var(--color-mute);
}

.archive-list__link {
  font-family: var(--font-noto), sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.6;
  letter-spacing: 0.02em;
  color: var(--color-text);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.archive-list__link:hover,
.archive-list__link:focus-visible {
  opacity: 0.88;
}

@media (max-width: 479px) {
  .archive-list__item {
    grid-template-columns: 1fr;
    gap: 0.2rem;
  }
}

.archive-pagination {
  display: flex;
  justify-content: center;
  margin-top: clamp(8px, 2vw, 16px);
}

.archive-pagination__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.archive-pagination__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.2rem;
  min-height: 1.2rem;
  padding: 2px 6px;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: 14px;
  line-height: 1;
  color: var(--color-primary);
  text-decoration: none;
  border-radius: 9px;
}

.archive-pagination__link:hover,
.archive-pagination__link:focus-visible {
  opacity: 0.85;
}

.archive-pagination__link.is-current,
.archive-pagination__link[aria-current="page"] {
  background: var(--color-primary);
  color: var(--color-white);
}

.archive-pagination__link.is-current:hover,
.archive-pagination__link[aria-current="page"]:hover {
  opacity: 1;
}

.price-private--embed {
  margin-top: clamp(48px, 8vw, 88px);
  padding-top: clamp(8px, 2vw, 16px);
}

.price-private--embed .price-class-cards__heading {
  margin-bottom: clamp(24px, 4vw, 36px);
}

@media (max-width: 767px) {
  .private-page.content-wrap,
  .corporate-page.content-wrap,
  .faq-page.content-wrap,
  .company-page.content-wrap,
  .single-page.content-wrap,
  .archive-page.content-wrap,
  .beginner-page.content-wrap,
  .storage-page.content-wrap,
  .paddle-page.content-wrap {
    padding-left: var(--content-pad-x);
    padding-right: var(--content-pad-x);
  }

  .private-page__lead {
    text-align: left;
  }

  .private-feature {
    grid-template-columns: 1fr;
  }

  .private-feature__media {
    max-width: 275px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* 下層ページ: 上部の余白を最小化（固定ヘッダー分は .page の padding-top で確保済み） */
body:not(.home):not(.front-page) .site-main > .content-wrap {
  padding-top: clamp(6px, 1vw, 12px) !important;
}

body:not(.home):not(.front-page) .site-main > .content-wrap[style*="padding-top"] {
  padding-top: clamp(6px, 1vw, 12px) !important;
}

/* ——— WordPress / カスタムフィールド用メディア（四角画像も角丸でトリミング） ——— */
.sugata-media {
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  line-height: 0;
  background: rgba(0, 0, 0, 0.04);
}

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

/* 法人ブロック等：横長（Figma 275×186 相当） */
.sugata-media--feature {
  aspect-ratio: 275 / 186;
  max-width: min(100%, 275px);
  margin-left: auto;
  margin-right: auto;
}

@media (min-width: 768px) {
  .private-feature .sugata-media--feature {
    margin-left: 0;
    margin-right: 0;
    max-width: none;
    width: 100%;
  }
}

/* 正方形アップロードを一覧カード等で使う場合 */
.sugata-media--square {
  aspect-ratio: 1 / 1;
  max-width: 100%;
}

.entry-content .alignwide {
  max-width: var(--content-max-program);
  margin-left: auto;
  margin-right: auto;
}

.admin-bar .site-header {
  top: 32px;
}

@media screen and (max-width: 782px) {
  .admin-bar .site-header {
    top: 46px;
  }
}

.single-layout--full {
  grid-template-columns: 1fr !important;
}

.thankyou-message {
  text-align: center;
  margin-bottom: clamp(18px, 3vw, 28px);
}

.thankyou-message p {
  margin: 0.6em 0;
}

.single-post__figure img {
  border-radius: 4px;
}

.archive-pagination .navigation,
.archive-pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px 14px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.archive-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.2rem;
  min-height: 1.2rem;
  padding: 2px 6px;
  font-family: var(--font-noto), sans-serif;
  font-weight: 700;
  font-size: 14px;
  color: var(--color-primary);
  text-decoration: none;
  border-radius: 9px;
}

.archive-pagination .page-numbers.current,
.archive-pagination .page-numbers.dots {
  background: var(--color-primary);
  color: var(--color-white);
}

.archive-pagination .page-numbers.dots {
  background: transparent;
  color: var(--color-primary);
}

