:root {
  --lp-primary: #3B82F6;
  --lp-primary-dark: #1b6bef;
  --lp-primary-light: #5792f3;
  --lp-primary-50: #f4f6f9;
  --lp-primary-100: #e7edf6;
  --lp-primary-200: #cedcf2;
  --lp-primary-300: #acc6ef;
  --lp-primary-400: #83acef;
  --lp-primary-500: #5792f3;
  --lp-primary-600: #3B82F6;
  --lp-primary-700: #1b6bef;
  --lp-primary-800: #1659c6;
  --lp-primary-900: #1a4997;
  --lp-accent: #3B82F6;
  --lp-accent-dark: #1b6bef;
  --lp-accent-light: #5792f3;
  --lp-accent-50: #f4f6f9;
  --lp-accent-100: #e7edf6;
  --lp-accent-200: #cedcf2;
  --lp-accent-500: #5792f3;
  --lp-accent-600: #3B82F6;
  --lp-accent-700: #1b6bef;
  --lp-base: #ffffff;
  --lp-base-dark: #f8fafc;
  --lp-base-100: #f1f5f9;
  --lp-base-200: #e2e8f0;
  --lp-base-500: #64748b;
}

    :root {
      --font-sans-ja: 'Noto Serif JP', serif !important;
      --font-sans-en: 'Noto Serif JP', serif !important;
      --font-serif-ja: 'Noto Serif JP', serif !important;
      --font-serif-en: 'Noto Serif JP', serif !important;
    }
    html, body,
    h1, h2, h3, h4, h5, h6,
    .section h1, .section h2, .section h3, .section h4, .section h5, .section h6,
    .section__heading, .section__heading-sub,
    .section p, p, span, a, li, dt, dd, button, input, textarea, select, label, time {
      font-family: var(--lpc-element-font, 'Noto Serif JP', serif) !important;
    }
    /* アイコンフォントは上書きから除外（span等を上書きするとアイコンが文字化けするため再宣言）。
       クラス＋!important なので上の要素セレクタ＋!importantに勝つ。 */
    .material-symbols-outlined { font-family: 'Material Symbols Outlined' !important; }
    .material-symbols-rounded { font-family: 'Material Symbols Rounded' !important; }
    .material-symbols-sharp { font-family: 'Material Symbols Sharp' !important; }
    .material-icons { font-family: 'Material Icons' !important; }
.tpl-scope-mobile-hero-bare-image .lpc-hero-bare {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 0;
}
.tpl-scope-mobile-hero-bare-image .lpc-hero-bare img {
  display: block;
  width: 100%;
  height: auto;
}
.tpl-scope-mobile-hero-bare-image .lpc-hero-bare__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}
.tpl-scope-mobile-hero-bare-image .lpc-hero-bare .lpc-hero-bare__overlay img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
/* スライドの重ね方・フェードは共通ランタイム側 (SLIDER_BASE_CSS) が持つ。
   ここに書くと、 CSS スナップショットが古い既存セクションで当たらず縦並びになる
   (公開ページは HTML=最新テンプレ / CSS=スナップショット優先 で参照元が違うため)。 */
/*--mobile--*/
.tpl-scope-mobile-hero-bare-image .lpc-hero-bare {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 0;
}
.tpl-scope-mobile-hero-bare-image .lpc-hero-bare img {
  display: block;
  width: 100%;
  height: auto;
}
.tpl-scope-mobile-hero-bare-image .lpc-hero-bare__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}
.tpl-scope-mobile-hero-bare-image .lpc-hero-bare .lpc-hero-bare__overlay img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
/* スライドの重ね方・フェードは共通ランタイム側 (SLIDER_BASE_CSS) が持つ。
   ここに書くと、 CSS スナップショットが古い既存セクションで当たらず縦並びになる
   (公開ページは HTML=最新テンプレ / CSS=スナップショット優先 で参照元が違うため)。 */
/* ========================================
   NEWS SECTION
   既存共通CSSに合わせたデザイン
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news {
  position: relative;
  isolation: isolate;
  overflow: hidden;

  width: 100%;
  min-width: 0;

  padding: var(--lpc-section-top) 0 var(--lpc-section-bottom);

  background: var(--lpc-color-background);
  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-body);
  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);
}

/* ========================================
   BOX SIZING
======================================== */

.section--news,
.section--news *,
.section--news *::before,
.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news *::after {
  box-sizing: border-box;
}

/* ========================================
   INNER
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__inner {
  position: relative;
  z-index: 2;

  width: 100%;
  max-width: var(--lpc-container-width);

  margin-inline: auto;
  padding-inline: var(--lpc-inner-padding);
}

/* ========================================
   HEADER
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__header {
  position: relative;

  margin: 0 0 var(--lpc-heading-gap);
  padding: 0;

  text-align: center;
}

/* ========================================
   ENGLISH EYEBROW
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .lpc-section-heading-sub {
  display: block;

  margin: 0 0 var(--lpc-heading-gap);
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-english);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-english);

  text-transform: uppercase;
  text-align: center;

  overflow-wrap: anywhere;
}

/* ========================================
   HEADING DECORATION
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .lpc-section-heading-sub::after {
  content: "";
  display: block;

  width: var(--lpc-heading-line-width);
  height: var(--lpc-heading-line-height);

  margin: var(--lpc-heading-line-gap) auto 0;

  background: var(--lpc-color-accent);
}

/* ========================================
   MAIN HEADING
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .lpc-section-heading {
  margin: 0;
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-heading);
  font-size: var(--lpc-font-size-title);
  font-weight: var(--lpc-font-weight-heading);

  line-height: var(--lpc-line-heading);
  letter-spacing: var(--lpc-letter-heading);

  text-align: center;
  overflow-wrap: anywhere;
}

/* ========================================
   CAROUSEL WRAPPER
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news__carousel {
  position: relative;
  width: 100%;
  min-width: 0;
}

/* ========================================
   SWIPER
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__slider {
  position: relative;

  width: 100%;
  min-width: 0;

  margin: 0;

  overflow: hidden;
  text-align: left;
}

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news__slider .swiper-wrapper {
  align-items: stretch;
}

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news__slider .swiper-slide {
  height: auto;
  min-width: 0;
}

/* ========================================
   NEWS CARD
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news-card {
  display: flex;
  flex-direction: column;

  height: 100%;
  min-width: 0;

  margin: 0;

  overflow: hidden;

  border: var(--lpc-border);
  border-radius: var(--lpc-card-radius);

  background: var(--lpc-color-surface);
  box-shadow: var(--lpc-card-shadow);
}

/* ========================================
   CARD IMAGE
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news-card__media {
  position: relative;

  width: 100%;
  aspect-ratio: 8 / 7;

  overflow: hidden;

  background: var(--lpc-color-image);
}

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news-card__media img {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;
}

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news-card__media img[src=""] {
  visibility: hidden;
}

/* ========================================
   CARD BODY
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;

  min-width: 0;

  padding: var(--lpc-card-padding);
}

/* ========================================
   META
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news-card__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;

  flex-wrap: wrap;

  gap: var(--lpc-card-gap);

  padding-bottom: var(--lpc-space-md);

  border-bottom: var(--lpc-border);
}

/* ========================================
   CATEGORY TAG
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news-card__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  max-width: 100%;

  padding: var(--lpc-space-xs) var(--lpc-space-md);

  border-radius: var(--lpc-pill-radius);

  background: var(--lpc-color-subtle);
  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-body);
  font-size: 12px;
  font-weight: 500;

  line-height: var(--lpc-line-label);

  overflow-wrap: anywhere;
}

/* ========================================
   DATE
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news-card__date {
  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-english);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: 400;

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-body);
}

/* ========================================
   CARD TEXT
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news-card__text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 6;

  flex: 1;

  min-width: 0;

  margin: var(--lpc-space-md) 0;

  padding: 0;

  overflow: hidden;

  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);

  text-align: left;
  overflow-wrap: anywhere;
}

/* ========================================
   CARD SELF LINK
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news-card__selflink {
  display: flex;
  flex-direction: column;
  flex: 1;

  min-width: 0;
  height: 100%;

  color: inherit;
  text-decoration: none;
}

/* ========================================
   CARD LINK
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news-card__link {
  display: flex;
  align-items: center;

  gap: var(--lpc-card-gap);

  width: 100%;

  margin-top: auto;
  padding-top: var(--lpc-space-md);

  border-top: var(--lpc-border);

  color: var(--lpc-color-link);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-heading);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-body);

  text-decoration: none;

  transition: color var(--lpc-transition-base);
}

/* ========================================
   CARD LINK LABEL
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news-card__link-label {
  min-width: 0;
  overflow-wrap: anywhere;
}

/* ========================================
   CARD LINK ARROW
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news-card__link-arrow {
  flex-shrink: 0;

  margin-left: auto;

  font-size: var(--lpc-font-size-icon);
  line-height: 1;
}

/* ========================================
   CAROUSEL NAVIGATION
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__nav {
  position: absolute;
  top: 50%;
  z-index: 10;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 45px;
  height: 45px;

  margin: 0;
  padding: 0;

  transform: translateY(-50%);

  border: var(--lpc-border);
  border-radius: var(--lpc-circle-radius);

  background: var(--lpc-color-surface);
  color: var(--lpc-color-heading);

  box-shadow: var(--lpc-card-shadow);

  cursor: pointer;

  transition:
    background-color var(--lpc-transition-base),
    color var(--lpc-transition-base);
}

/* ========================================
   PREV / NEXT POSITION
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__nav--prev {
  left: var(--lpc-space-sm);
  right: auto;
}

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__nav--next {
  right: var(--lpc-space-sm);
  left: auto;
}

/* ========================================
   NAVIGATION ICON
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news__nav .material-symbols-outlined {
  font-size: var(--lpc-font-size-icon);
  line-height: 1;
}

/* Disable Swiper default arrow */
.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__nav::after {
  content: none;
}

/* ========================================
   PAGINATION
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__pagination {
  position: static;

  display: flex;
  align-items: center;
  justify-content: center;

  gap: var(--lpc-space-sm);

  width: 100%;

  margin-top: var(--lpc-space-lg);

  transform: none;
}

/* ========================================
   PAGINATION DOT
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__pagination .swiper-pagination-bullet {
  width: 8px;
  height: 8px;

  margin: 0;

  border-radius: var(--lpc-circle-radius);

  background: var(--lpc-color-border);

  opacity: 1;
}

/* ========================================
   ACTIVE DOT
======================================== */

/* .section--news .news__pagination .swiper-pagination-bullet-active {
  background: var(--lpc-color-accent) !important;
} */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .swiper-pagination-bullet-active {
  background: var(--lpc-color-accent) !important;
}

/* ========================================
   MORE BUTTON WRAPPER
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news__more-wrap {
  width: 100%;

  margin-top: var(--lpc-space-xl);

  text-align: center;
}

/* ========================================
   MORE BUTTON
   既存ボタンデザインに統一
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__more {
  position: relative;

  display: flex;
  align-items: center;
  justify-content: center;

  gap: var(--lpc-space-sm);

  width: var(--lpc-button-width);
  max-width: 100%;
  min-height: var(--lpc-button-height);

  margin: 0 auto;

  padding: var(--lpc-space-md) var(--lpc-button-padding);

  border: 0;
  border-radius: var(--lpc-pill-radius);

  background-color: var(--lpc-color-button-middle);
  background-image: var(--lpc-button-gradient);

  color: var(--lpc-color-surface);

  box-shadow: var(--lpc-button-shadow);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-heading);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-heading);

  text-align: center;
  text-decoration: none;

  overflow-wrap: anywhere;

  transition:
    background-color var(--lpc-transition-base),
    transform var(--lpc-transition-base),
    box-shadow var(--lpc-transition-base);
}

/* ========================================
   BUTTON LABEL
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news__more-label {
  min-width: 0;
  overflow-wrap: anywhere;
}

/* ========================================
   BUTTON ARROW
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news__more-arrow {
  flex-shrink: 0;

  font-size: var(--lpc-font-size-icon);
  line-height: 1;
}

/* ========================================
   HOVER
======================================== */

@media (hover: hover) {
.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__more:hover {
    background-color: var(--lpc-color-button-hover);
    background-image: none;

    transform: translateY(-2px);

    box-shadow: var(--lpc-button-shadow-hover);
  }

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__nav:hover {
    background: var(--lpc-color-subtle);
    color: var(--lpc-color-heading);
  }

  .section--news .news-card__link:hover,
.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news-card__selflink:hover .news-card__link {
    color: var(--lpc-color-button-middle);
  }
}

/* ========================================
   FOCUS
======================================== */

.section--news .news__more:focus-visible,
.section--news .news__nav:focus-visible,
.section--news .news-card__link:focus-visible,
.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news-card__selflink:focus-visible {
  outline: var(--lpc-focus);
  outline-offset: var(--lpc-focus-offset);
}

/* ========================================
   REDUCED MOTION
======================================== */

@media (prefers-reduced-motion: reduce) {
  .section--news .news__more,
  .section--news .news__nav,
.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news-card__link {
    transition: none;
  }

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__more:hover {
    transform: none;
  }
}
/*--mobile--*/
/* ========================================
   NEWS SECTION
   既存共通CSSに合わせたデザイン
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news {
  position: relative;
  isolation: isolate;
  overflow: hidden;

  width: 100%;
  min-width: 0;

  padding: var(--lpc-section-top) 0 var(--lpc-section-bottom);

  background: var(--lpc-color-background);
  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-body);
  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);
}

/* ========================================
   BOX SIZING
======================================== */

.section--news,
.section--news *,
.section--news *::before,
.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news *::after {
  box-sizing: border-box;
}

/* ========================================
   INNER
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__inner {
  position: relative;
  z-index: 2;

  width: 100%;
  max-width: var(--lpc-container-width);

  margin-inline: auto;
  padding-inline: var(--lpc-inner-padding);
}

/* ========================================
   HEADER
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__header {
  position: relative;

  margin: 0 0 var(--lpc-heading-gap);
  padding: 0;

  text-align: center;
}

/* ========================================
   ENGLISH EYEBROW
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .lpc-section-heading-sub {
  display: block;

  margin: 0 0 var(--lpc-heading-gap);
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-english);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-english);

  text-transform: uppercase;
  text-align: center;

  overflow-wrap: anywhere;
}

/* ========================================
   HEADING DECORATION
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .lpc-section-heading-sub::after {
  content: "";
  display: block;

  width: var(--lpc-heading-line-width);
  height: var(--lpc-heading-line-height);

  margin: var(--lpc-heading-line-gap) auto 0;

  background: var(--lpc-color-accent);
}

/* ========================================
   MAIN HEADING
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .lpc-section-heading {
  margin: 0;
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-heading);
  font-size: var(--lpc-font-size-title);
  font-weight: var(--lpc-font-weight-heading);

  line-height: var(--lpc-line-heading);
  letter-spacing: var(--lpc-letter-heading);

  text-align: center;
  overflow-wrap: anywhere;
}

/* ========================================
   CAROUSEL WRAPPER
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news__carousel {
  position: relative;
  width: 100%;
  min-width: 0;
}

/* ========================================
   SWIPER
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__slider {
  position: relative;

  width: 100%;
  min-width: 0;

  margin: 0;

  overflow: hidden;
  text-align: left;
}

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news__slider .swiper-wrapper {
  align-items: stretch;
}

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news__slider .swiper-slide {
  height: auto;
  min-width: 0;
}

/* ========================================
   NEWS CARD
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news-card {
  display: flex;
  flex-direction: column;

  height: 100%;
  min-width: 0;

  margin: 0;

  overflow: hidden;

  border: var(--lpc-border);
  border-radius: var(--lpc-card-radius);

  background: var(--lpc-color-surface);
  box-shadow: var(--lpc-card-shadow);
}

/* ========================================
   CARD IMAGE
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news-card__media {
  position: relative;

  width: 100%;
  aspect-ratio: 8 / 7;

  overflow: hidden;

  background: var(--lpc-color-image);
}

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news-card__media img {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;
}

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news-card__media img[src=""] {
  visibility: hidden;
}

/* ========================================
   CARD BODY
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;

  min-width: 0;

  padding: var(--lpc-card-padding);
}

/* ========================================
   META
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news-card__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;

  flex-wrap: wrap;

  gap: var(--lpc-card-gap);

  padding-bottom: var(--lpc-space-md);

  border-bottom: var(--lpc-border);
}

/* ========================================
   CATEGORY TAG
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news-card__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  max-width: 100%;

  padding: var(--lpc-space-xs) var(--lpc-space-md);

  border-radius: var(--lpc-pill-radius);

  background: var(--lpc-color-subtle);
  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-body);
  font-size: 12px;
  font-weight: 500;

  line-height: var(--lpc-line-label);

  overflow-wrap: anywhere;
}

/* ========================================
   DATE
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news-card__date {
  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-english);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: 400;

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-body);
}

/* ========================================
   CARD TEXT
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news-card__text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 6;

  flex: 1;

  min-width: 0;

  margin: var(--lpc-space-md) 0;

  padding: 0;

  overflow: hidden;

  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);

  text-align: left;
  overflow-wrap: anywhere;
}

/* ========================================
   CARD SELF LINK
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news-card__selflink {
  display: flex;
  flex-direction: column;
  flex: 1;

  min-width: 0;
  height: 100%;

  color: inherit;
  text-decoration: none;
}

/* ========================================
   CARD LINK
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news-card__link {
  display: flex;
  align-items: center;

  gap: var(--lpc-card-gap);

  width: 100%;

  margin-top: auto;
  padding-top: var(--lpc-space-md);

  border-top: var(--lpc-border);

  color: var(--lpc-color-link);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-heading);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-body);

  text-decoration: none;

  transition: color var(--lpc-transition-base);
}

/* ========================================
   CARD LINK LABEL
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news-card__link-label {
  min-width: 0;
  overflow-wrap: anywhere;
}

/* ========================================
   CARD LINK ARROW
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news-card__link-arrow {
  flex-shrink: 0;

  margin-left: auto;

  font-size: var(--lpc-font-size-icon);
  line-height: 1;
}

/* ========================================
   CAROUSEL NAVIGATION
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__nav {
  position: absolute;
  top: 50%;
  z-index: 10;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 45px;
  height: 45px;

  margin: 0;
  padding: 0;

  transform: translateY(-50%);

  border: var(--lpc-border);
  border-radius: var(--lpc-circle-radius);

  background: var(--lpc-color-surface);
  color: var(--lpc-color-heading);

  box-shadow: var(--lpc-card-shadow);

  cursor: pointer;

  transition:
    background-color var(--lpc-transition-base),
    color var(--lpc-transition-base);
}

/* ========================================
   PREV / NEXT POSITION
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__nav--prev {
  left: var(--lpc-space-sm);
  right: auto;
}

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__nav--next {
  right: var(--lpc-space-sm);
  left: auto;
}

/* ========================================
   NAVIGATION ICON
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news__nav .material-symbols-outlined {
  font-size: var(--lpc-font-size-icon);
  line-height: 1;
}

/* Disable Swiper default arrow */
.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__nav::after {
  content: none;
}

/* ========================================
   PAGINATION
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__pagination {
  position: static;

  display: flex;
  align-items: center;
  justify-content: center;

  gap: var(--lpc-space-sm);

  width: 100%;

  margin-top: var(--lpc-space-lg);

  transform: none;
}

/* ========================================
   PAGINATION DOT
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__pagination .swiper-pagination-bullet {
  width: 8px;
  height: 8px;

  margin: 0;

  border-radius: var(--lpc-circle-radius);

  background: var(--lpc-color-border);

  opacity: 1;
}

/* ========================================
   ACTIVE DOT
======================================== */

/* .section--news .news__pagination .swiper-pagination-bullet-active {
  background: var(--lpc-color-accent) !important;
} */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .swiper-pagination-bullet-active {
  background: var(--lpc-color-accent) !important;
}

/* ========================================
   MORE BUTTON WRAPPER
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news__more-wrap {
  width: 100%;

  margin-top: var(--lpc-space-xl);

  text-align: center;
}

/* ========================================
   MORE BUTTON
   既存ボタンデザインに統一
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__more {
  position: relative;

  display: flex;
  align-items: center;
  justify-content: center;

  gap: var(--lpc-space-sm);

  width: var(--lpc-button-width);
  max-width: 100%;
  min-height: var(--lpc-button-height);

  margin: 0 auto;

  padding: var(--lpc-space-md) var(--lpc-button-padding);

  border: 0;
  border-radius: var(--lpc-pill-radius);

  background-color: var(--lpc-color-button-middle);
  background-image: var(--lpc-button-gradient);

  color: var(--lpc-color-surface);

  box-shadow: var(--lpc-button-shadow);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-heading);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-heading);

  text-align: center;
  text-decoration: none;

  overflow-wrap: anywhere;

  transition:
    background-color var(--lpc-transition-base),
    transform var(--lpc-transition-base),
    box-shadow var(--lpc-transition-base);
}

/* ========================================
   BUTTON LABEL
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news__more-label {
  min-width: 0;
  overflow-wrap: anywhere;
}

/* ========================================
   BUTTON ARROW
======================================== */

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news__more-arrow {
  flex-shrink: 0;

  font-size: var(--lpc-font-size-icon);
  line-height: 1;
}

/* ========================================
   HOVER
======================================== */

@media (hover: hover) {
.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__more:hover {
    background-color: var(--lpc-color-button-hover);
    background-image: none;

    transform: translateY(-2px);

    box-shadow: var(--lpc-button-shadow-hover);
  }

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__nav:hover {
    background: var(--lpc-color-subtle);
    color: var(--lpc-color-heading);
  }

  .section--news .news-card__link:hover,
.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news-card__selflink:hover .news-card__link {
    color: var(--lpc-color-button-middle);
  }
}

/* ========================================
   FOCUS
======================================== */

.section--news .news__more:focus-visible,
.section--news .news__nav:focus-visible,
.section--news .news-card__link:focus-visible,
.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news-card__selflink:focus-visible {
  outline: var(--lpc-focus);
  outline-offset: var(--lpc-focus-offset);
}

/* ========================================
   REDUCED MOTION
======================================== */

@media (prefers-reduced-motion: reduce) {
  .section--news .news__more,
  .section--news .news__nav,
.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news-card__link {
    transition: none;
  }

.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .section--news .news__more:hover {
    transform: none;
  }
}
/* ========================================
   GALLERY SECTION
   最大35枚対応
   共通CSSと組み合わせて使用
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery {
  position: relative;
  isolation: isolate;
  overflow: hidden;

  width: 100%;
  min-width: 0;

  padding: var(--lpc-section-top) 0 var(--lpc-section-bottom);

  background: var(--lpc-color-background);
  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);
}

/* ========================================
   BOX SIZING
======================================== */

.section--gallery,
.section--gallery *,
.section--gallery *::before,
.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery *::after {
  box-sizing: border-box;
}

/* ========================================
   INNER
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery__inner {
  position: relative;
  z-index: 2;

  width: 100%;
  max-width: var(--lpc-container-width);

  margin-inline: auto;
  padding-inline: var(--lpc-inner-padding);
}

/* ========================================
   HEADER
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery__header {
  position: relative;

  margin: 0 0 var(--lpc-heading-gap);
  padding: 0;

  text-align: center;
}

/* ========================================
   ENGLISH EYEBROW
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .lpc-section-heading-sub {
  display: block;

  margin: 0 0 var(--lpc-heading-gap);
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-english);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-english);

  text-transform: uppercase;
  text-align: center;

  overflow-wrap: anywhere;
}

/* ========================================
   HEADING DECORATION
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .lpc-section-heading-sub::after {
  content: "";
  display: block;

  width: var(--lpc-heading-line-width);
  height: var(--lpc-heading-line-height);

  margin: var(--lpc-heading-line-gap) auto 0;

  background: var(--lpc-color-accent);
}

/* ========================================
   MAIN HEADING
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .lpc-section-heading {
  margin: 0 0 var(--lpc-title-gap);
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-heading);
  font-size: var(--lpc-font-size-title);
  font-weight: var(--lpc-font-weight-heading);

  line-height: var(--lpc-line-heading);
  letter-spacing: var(--lpc-letter-heading);

  text-align: center;
  overflow-wrap: anywhere;
}

/* ========================================
   LEAD TEXT
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery__lead {
  min-width: 0;

  margin: 0;
  padding: 0;

  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);

  text-align: center;
  overflow-wrap: anywhere;
}

/* ========================================
   CAROUSEL
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery__carousel {
  position: relative;

  width: 100%;
  min-width: 0;
}

/* ========================================
   SWIPER
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery__slider {
  position: relative;

  width: 100%;
  min-width: 0;

  margin: 0;

  overflow: hidden;
  text-align: left;
}

/* ========================================
   SWIPER WRAPPER
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery__slider .swiper-wrapper {
  align-items: stretch;
}

/* ========================================
   SWIPER SLIDE
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery__slider .swiper-slide {
  min-width: 0;
  height: auto;
}

/* ========================================
   GALLERY CARD
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery-card {
  display: block;

  width: 100%;
  height: 100%;

  margin: 0;

  overflow: hidden;

  border: var(--lpc-border);
  border-radius: var(--lpc-card-radius);

  background: var(--lpc-color-image);
  box-shadow: var(--lpc-card-shadow);

  color: inherit;
  text-decoration: none;
}

/* ========================================
   GALLERY IMAGE
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery-card img {
  display: block;

  width: 100%;
  height: auto;

  aspect-ratio: 3 / 4;

  object-fit: cover;
  object-position: center;
}

/* ========================================
   EMPTY IMAGE
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery-card img[src=""] {
  visibility: hidden;
}

/* ========================================
   NOTE
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery__note {
  min-width: 0;

  margin: var(--lpc-space-lg) 0 0;
  padding: 0;

  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);

  text-align: center;
  overflow-wrap: anywhere;
}

/* ========================================
   HOVER
======================================== */

@media (hover: hover) {
.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery-card img {
    transition: transform var(--lpc-transition-base);
  }

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery-card:hover img {
    transform: scale(1.025);
  }
}

/* ========================================
   FOCUS
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery-card:focus-visible {
  outline: var(--lpc-focus);
  outline-offset: var(--lpc-focus-offset);
}

/* ========================================
   REDUCED MOTION
======================================== */

@media (prefers-reduced-motion: reduce) {
.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery-card img {
    transition: none;
  }

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery-card:hover img {
    transform: none;
  }
}

/*--mobile--*/
/* ========================================
   GALLERY SECTION
   最大35枚対応
   共通CSSと組み合わせて使用
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery {
  position: relative;
  isolation: isolate;
  overflow: hidden;

  width: 100%;
  min-width: 0;

  padding: var(--lpc-section-top) 0 var(--lpc-section-bottom);

  background: var(--lpc-color-background);
  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);
}

/* ========================================
   BOX SIZING
======================================== */

.section--gallery,
.section--gallery *,
.section--gallery *::before,
.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery *::after {
  box-sizing: border-box;
}

/* ========================================
   INNER
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery__inner {
  position: relative;
  z-index: 2;

  width: 100%;
  max-width: var(--lpc-container-width);

  margin-inline: auto;
  padding-inline: var(--lpc-inner-padding);
}

/* ========================================
   HEADER
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery__header {
  position: relative;

  margin: 0 0 var(--lpc-heading-gap);
  padding: 0;

  text-align: center;
}

/* ========================================
   ENGLISH EYEBROW
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .lpc-section-heading-sub {
  display: block;

  margin: 0 0 var(--lpc-heading-gap);
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-english);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-english);

  text-transform: uppercase;
  text-align: center;

  overflow-wrap: anywhere;
}

/* ========================================
   HEADING DECORATION
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .lpc-section-heading-sub::after {
  content: "";
  display: block;

  width: var(--lpc-heading-line-width);
  height: var(--lpc-heading-line-height);

  margin: var(--lpc-heading-line-gap) auto 0;

  background: var(--lpc-color-accent);
}

/* ========================================
   MAIN HEADING
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .lpc-section-heading {
  margin: 0 0 var(--lpc-title-gap);
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-heading);
  font-size: var(--lpc-font-size-title);
  font-weight: var(--lpc-font-weight-heading);

  line-height: var(--lpc-line-heading);
  letter-spacing: var(--lpc-letter-heading);

  text-align: center;
  overflow-wrap: anywhere;
}

/* ========================================
   LEAD TEXT
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery__lead {
  min-width: 0;

  margin: 0;
  padding: 0;

  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);

  text-align: center;
  overflow-wrap: anywhere;
}

/* ========================================
   CAROUSEL
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery__carousel {
  position: relative;

  width: 100%;
  min-width: 0;
}

/* ========================================
   SWIPER
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery__slider {
  position: relative;

  width: 100%;
  min-width: 0;

  margin: 0;

  overflow: hidden;
  text-align: left;
}

/* ========================================
   SWIPER WRAPPER
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery__slider .swiper-wrapper {
  align-items: stretch;
}

/* ========================================
   SWIPER SLIDE
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery__slider .swiper-slide {
  min-width: 0;
  height: auto;
}

/* ========================================
   GALLERY CARD
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery-card {
  display: block;

  width: 100%;
  height: 100%;

  margin: 0;

  overflow: hidden;

  border: var(--lpc-border);
  border-radius: var(--lpc-card-radius);

  background: var(--lpc-color-image);
  box-shadow: var(--lpc-card-shadow);

  color: inherit;
  text-decoration: none;
}

/* ========================================
   GALLERY IMAGE
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery-card img {
  display: block;

  width: 100%;
  height: auto;

  aspect-ratio: 3 / 4;

  object-fit: cover;
  object-position: center;
}

/* ========================================
   EMPTY IMAGE
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery-card img[src=""] {
  visibility: hidden;
}

/* ========================================
   NOTE
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery__note {
  min-width: 0;

  margin: var(--lpc-space-lg) 0 0;
  padding: 0;

  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);

  text-align: center;
  overflow-wrap: anywhere;
}

/* ========================================
   HOVER
======================================== */

@media (hover: hover) {
.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery-card img {
    transition: transform var(--lpc-transition-base);
  }

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery-card:hover img {
    transform: scale(1.025);
  }
}

/* ========================================
   FOCUS
======================================== */

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery-card:focus-visible {
  outline: var(--lpc-focus);
  outline-offset: var(--lpc-focus-offset);
}

/* ========================================
   REDUCED MOTION
======================================== */

@media (prefers-reduced-motion: reduce) {
.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery-card img {
    transition: none;
  }

.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery .gallery-card:hover img {
    transform: none;
  }
}

/* ========================================
   VOICE SECTION
   既存共通CSSに合わせたデザイン
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials {
  position: relative;
  isolation: isolate;
  overflow: hidden;

  width: 100%;
  min-width: 0;

  margin: 0;

  padding:
    var(--lpc-section-top)
    0
    var(--lpc-section-bottom);

  background: var(--lpc-color-background);
  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);
}

/* ========================================
   BOX SIZING
======================================== */

.lpc-mobile-testimonials,
.lpc-mobile-testimonials *,
.lpc-mobile-testimonials *::before,
.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials *::after {
  box-sizing: border-box;
}

/* ========================================
   INNER
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials__inner {
  position: relative;
  z-index: 2;

  width: 100%;
  max-width: var(--lpc-container-width);

  margin-inline: auto;
  padding-inline: var(--lpc-inner-padding);
}

/* ========================================
   HEADER
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials__header {
  position: relative;

  margin: 0 0 var(--lpc-heading-gap);
  padding: 0;

  text-align: center;
}

/* ========================================
   ENGLISH EYEBROW
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials .lpc-section-heading-sub {
  display: block;

  margin: 0 0 var(--lpc-heading-gap);
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-english);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-english);

  text-transform: uppercase;
  text-align: center;

  overflow-wrap: anywhere;
}

/* ========================================
   HEADING DECORATION
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials .lpc-section-heading-sub::after {
  content: "";
  display: block;

  width: var(--lpc-heading-line-width);
  height: var(--lpc-heading-line-height);

  margin:
    var(--lpc-heading-line-gap)
    auto
    0;

  background: var(--lpc-color-accent);
}

/* ========================================
   MAIN HEADING
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials .lpc-section-heading {
  margin: 0 0 var(--lpc-title-gap);
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-heading);
  font-size: var(--lpc-font-size-title);
  font-weight: var(--lpc-font-weight-heading);

  line-height: var(--lpc-line-heading);
  letter-spacing: var(--lpc-letter-heading);

  text-align: center;
  overflow-wrap: anywhere;
}

/* ========================================
   LEAD TEXT
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials__lead {
  min-width: 0;

  margin: 0;
  padding: 0;

  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);

  text-align: center;
  overflow-wrap: anywhere;
}

/* ========================================
   REVIEWS LIST
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials__list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);

  gap: var(--lpc-card-gap);

  width: 100%;

  margin: 0;
  padding: 0;
}

/* ========================================
   REVIEW CARD
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials__card {
  position: relative;

  min-width: 0;

  margin: 0;
  padding: var(--lpc-card-padding);

  overflow: hidden;

  border: var(--lpc-border);
  border-radius: var(--lpc-card-radius);

  background: var(--lpc-color-surface);
  box-shadow: var(--lpc-card-shadow);
}

/* ========================================
   QUOTATION DECORATION
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials__card::before {
  position: absolute;

  top: 0;
  right: var(--lpc-space-lg);

  content: "“";

  color: var(--lpc-color-accent);

  font-family: var(--lpc-font-english);
  font-size: 64px;
  font-weight: 400;
  line-height: 1;

  opacity: 0.14;
  pointer-events: none;
}

/* ========================================
   STAR RATING
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials__rating {
  position: relative;
  z-index: 1;

  display: flex;
  align-items: center;

  gap: var(--lpc-space-xs);

  margin: 0;
  padding: 0;

  color: var(--lpc-color-accent);

  font-family: var(--lpc-font-english);
  font-size: var(--lpc-font-size-icon);

  line-height: 1;
}

/* ========================================
   RATING STAR
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials__rating span {display: inline-block}

/* ========================================
   REVIEW TEXT
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials__text {
  position: relative;
  z-index: 1;

  min-width: 0;

  margin:
    var(--lpc-space-md)
    0
    var(--lpc-space-lg);

  padding: 0;

  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: 14px;
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);

  overflow-wrap: anywhere;
}

/* ========================================
   PROFILE
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials__profile {
  display: flex;
  align-items: center;
  justify-content: flex-end;

  gap: var(--lpc-card-gap);

  margin: 0;

  padding:
    var(--lpc-space-md)
    0
    0;

  border-top: var(--lpc-border);
}

/* ========================================
   REVIEWER NAME
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials__name {
  min-width: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-heading);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-body);

  text-align: right;
  overflow-wrap: anywhere;
}
/*--mobile--*/
/* ========================================
   VOICE SECTION
   既存共通CSSに合わせたデザイン
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials {
  position: relative;
  isolation: isolate;
  overflow: hidden;

  width: 100%;
  min-width: 0;

  margin: 0;

  padding:
    var(--lpc-section-top)
    0
    var(--lpc-section-bottom);

  background: var(--lpc-color-background);
  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);
}

/* ========================================
   BOX SIZING
======================================== */

.lpc-mobile-testimonials,
.lpc-mobile-testimonials *,
.lpc-mobile-testimonials *::before,
.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials *::after {
  box-sizing: border-box;
}

/* ========================================
   INNER
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials__inner {
  position: relative;
  z-index: 2;

  width: 100%;
  max-width: var(--lpc-container-width);

  margin-inline: auto;
  padding-inline: var(--lpc-inner-padding);
}

/* ========================================
   HEADER
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials__header {
  position: relative;

  margin: 0 0 var(--lpc-heading-gap);
  padding: 0;

  text-align: center;
}

/* ========================================
   ENGLISH EYEBROW
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials .lpc-section-heading-sub {
  display: block;

  margin: 0 0 var(--lpc-heading-gap);
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-english);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-english);

  text-transform: uppercase;
  text-align: center;

  overflow-wrap: anywhere;
}

/* ========================================
   HEADING DECORATION
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials .lpc-section-heading-sub::after {
  content: "";
  display: block;

  width: var(--lpc-heading-line-width);
  height: var(--lpc-heading-line-height);

  margin:
    var(--lpc-heading-line-gap)
    auto
    0;

  background: var(--lpc-color-accent);
}

/* ========================================
   MAIN HEADING
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials .lpc-section-heading {
  margin: 0 0 var(--lpc-title-gap);
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-heading);
  font-size: var(--lpc-font-size-title);
  font-weight: var(--lpc-font-weight-heading);

  line-height: var(--lpc-line-heading);
  letter-spacing: var(--lpc-letter-heading);

  text-align: center;
  overflow-wrap: anywhere;
}

/* ========================================
   LEAD TEXT
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials__lead {
  min-width: 0;

  margin: 0;
  padding: 0;

  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);

  text-align: center;
  overflow-wrap: anywhere;
}

/* ========================================
   REVIEWS LIST
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials__list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);

  gap: var(--lpc-card-gap);

  width: 100%;

  margin: 0;
  padding: 0;
}

/* ========================================
   REVIEW CARD
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials__card {
  position: relative;

  min-width: 0;

  margin: 0;
  padding: var(--lpc-card-padding);

  overflow: hidden;

  border: var(--lpc-border);
  border-radius: var(--lpc-card-radius);

  background: var(--lpc-color-surface);
  box-shadow: var(--lpc-card-shadow);
}

/* ========================================
   QUOTATION DECORATION
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials__card::before {
  position: absolute;

  top: 0;
  right: var(--lpc-space-lg);

  content: "“";

  color: var(--lpc-color-accent);

  font-family: var(--lpc-font-english);
  font-size: 64px;
  font-weight: 400;
  line-height: 1;

  opacity: 0.14;
  pointer-events: none;
}

/* ========================================
   STAR RATING
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials__rating {
  position: relative;
  z-index: 1;

  display: flex;
  align-items: center;

  gap: var(--lpc-space-xs);

  margin: 0;
  padding: 0;

  color: var(--lpc-color-accent);

  font-family: var(--lpc-font-english);
  font-size: var(--lpc-font-size-icon);

  line-height: 1;
}

/* ========================================
   RATING STAR
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials__rating span {display: inline-block}

/* ========================================
   REVIEW TEXT
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials__text {
  position: relative;
  z-index: 1;

  min-width: 0;

  margin:
    var(--lpc-space-md)
    0
    var(--lpc-space-lg);

  padding: 0;

  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: 14px;
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);

  overflow-wrap: anywhere;
}

/* ========================================
   PROFILE
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials__profile {
  display: flex;
  align-items: center;
  justify-content: flex-end;

  gap: var(--lpc-card-gap);

  margin: 0;

  padding:
    var(--lpc-space-md)
    0
    0;

  border-top: var(--lpc-border);
}

/* ========================================
   REVIEWER NAME
======================================== */

.tpl-scope-testimonials-mobile-stack .lpc-mobile-testimonials__name {
  min-width: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-heading);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-body);

  text-align: right;
  overflow-wrap: anywhere;
}
/* ========================================
   FAQ SECTION
   既存共通CSSに合わせたデザイン
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq {
  position: relative;
  isolation: isolate;
  overflow: hidden;

  width: 100%;
  min-width: 0;

  margin: 0;

  padding:
    var(--lpc-section-top)
    0
    var(--lpc-section-bottom);

  background: var(--lpc-color-background);
  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);
}

/* ========================================
   BOX SIZING
======================================== */

.section--faq,
.section--faq *,
.section--faq *::before,
.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq *::after {
  box-sizing: border-box;
}

/* ========================================
   INNER
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__inner {
  position: relative;
  z-index: 2;

  width: 100%;
  max-width: var(--lpc-container-width);

  margin-inline: auto;
  padding-inline: var(--lpc-inner-padding);
}

/* ========================================
   HEADER
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__header {
  position: relative;

  margin: 0 0 var(--lpc-heading-gap);
  padding: 0;

  text-align: center;
}

/* ========================================
   ENGLISH EYEBROW
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .lpc-section-heading-sub {
  display: block;

  margin: 0 0 var(--lpc-heading-gap);
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-english);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-english);

  text-transform: uppercase;
  text-align: center;

  overflow-wrap: anywhere;
}

/* ========================================
   HEADING DECORATION
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .lpc-section-heading-sub::after {
  content: "";
  display: block;

  width: var(--lpc-heading-line-width);
  height: var(--lpc-heading-line-height);

  margin:
    var(--lpc-heading-line-gap)
    auto
    0;

  background: var(--lpc-color-accent);
}

/* ========================================
   MAIN HEADING
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .lpc-section-heading {
  margin: 0 0 var(--lpc-title-gap);
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-heading);
  font-size: var(--lpc-font-size-title);
  font-weight: var(--lpc-font-weight-heading);

  line-height: var(--lpc-line-heading);
  letter-spacing: var(--lpc-letter-heading);

  text-align: center;
  overflow-wrap: anywhere;
}

/* ========================================
   LEAD TEXT
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__lead {
  min-width: 0;

  margin: 0;
  padding: 0;

  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: 16px;
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);

  text-align: center;
  overflow-wrap: anywhere;
}

/* ========================================
   FAQ LIST
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .faq__list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);

  gap: var(--lpc-card-gap);

  width: 100%;
  min-width: 0;

  margin: 0;
  padding: 0;
}

/* ========================================
   FAQ ITEM
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__item {
  min-width: 0;

  margin: 0;
  padding: 0;

  overflow: hidden;

  border: var(--lpc-border);
  border-radius: var(--lpc-card-radius);

  background: var(--lpc-color-surface);
  box-shadow: var(--lpc-card-shadow);
}

/* ========================================
   QUESTION
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__q {
  display: flex;
  align-items: center;

  gap: var(--lpc-card-gap);

  min-width: 0;

  margin: 0;
  padding: var(--lpc-card-padding);

  background: var(--lpc-color-surface);

  cursor: pointer;
  list-style: none;

  transition:
    background-color var(--lpc-transition-base);
}

/* ========================================
   HIDE DEFAULT MARKER
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__q::-webkit-details-marker {
  display: none;
}

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__q::marker {
  content: "";
}

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

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__item[open] .faq__q {
  background: var(--lpc-color-subtle);
}

/* ========================================
   Q / A BADGE
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__badge {
  display: flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 var(--lpc-icon-size);

  width: var(--lpc-icon-size);
  height: var(--lpc-icon-size);

  border-radius: var(--lpc-circle-radius);

  font-family: var(--lpc-font-english);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-heading);

  line-height: 1;
}

/* ========================================
   Q BADGE
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__badge--q {
  background: var(--lpc-color-heading);
  color: var(--lpc-color-surface);
}

/* ========================================
   A BADGE
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__badge--a {
  background: var(--lpc-color-subtle);
  color: var(--lpc-color-heading);
}

/* ========================================
   QUESTION TEXT
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__q-text {
  flex: 1 1 auto;

  min-width: 0;

  margin: 0;
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-heading);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-heading);

  line-height: var(--lpc-line-heading);
  letter-spacing: var(--lpc-letter-heading);

  overflow-wrap: anywhere;
}

/* ========================================
   TOGGLE ICON
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__toggle {
  position: relative;

  display: block;
  flex: 0 0 var(--lpc-plus-size);

  width: var(--lpc-plus-size);
  height: var(--lpc-plus-size);

  margin-left: auto;
}

/* ========================================
   PLUS / MINUS
======================================== */

.section--faq .faq__toggle::before,
.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__toggle::after {
  content: "";

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

  display: block;

  background: var(--lpc-color-heading);
  border-radius: var(--lpc-pill-radius);

  transform: translate(-50%, -50%);

  transition:
    opacity var(--lpc-transition-base);
}

/* HORIZONTAL LINE */
.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__toggle::before {
  width: var(--lpc-plus-size);
  height: 2px;
}

/* VERTICAL LINE */
.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__toggle::after {
  width: 2px;
  height: var(--lpc-plus-size);
}

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

.section--faq .faq__item[open]
.tpl-scope-cmr06mdev0gom0h3xl7emstrp .faq__toggle::after {
  opacity: 0;
}

/* ========================================
   ANSWER AREA
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__a {
  display: flex;
  align-items: flex-start;

  gap: var(--lpc-card-gap);

  min-width: 0;

  margin: 0;
  padding: var(--lpc-card-padding);

  border-top: var(--lpc-border);

  background: var(--lpc-color-surface);
}

/* ========================================
   ANSWER TEXT
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__a-text {
  flex: 1 1 auto;

  min-width: 0;

  margin: 0;
  padding: 0;

  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: 14px;
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);

  overflow-wrap: anywhere;
}

/* ========================================
   HOVER
======================================== */

@media (hover: hover) {

  .section--faq .faq__item:not([open])
.tpl-scope-cmr06mdev0gom0h3xl7emstrp .faq__q:hover {
    background: var(--lpc-color-subtle);
  }

}

/* ========================================
   FOCUS
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__q:focus-visible {
  outline: var(--lpc-focus);
  outline-offset: calc(-1 * var(--lpc-focus-offset));
}

/* ========================================
   REDUCED MOTION
======================================== */

@media (prefers-reduced-motion: reduce) {

  .section--faq .faq__q,
  .section--faq .faq__toggle::before,
.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__toggle::after {
    transition: none;
  }

}
/*--mobile--*/
/* ========================================
   FAQ SECTION
   既存共通CSSに合わせたデザイン
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq {
  position: relative;
  isolation: isolate;
  overflow: hidden;

  width: 100%;
  min-width: 0;

  margin: 0;

  padding:
    var(--lpc-section-top)
    0
    var(--lpc-section-bottom);

  background: var(--lpc-color-background);
  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);
}

/* ========================================
   BOX SIZING
======================================== */

.section--faq,
.section--faq *,
.section--faq *::before,
.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq *::after {
  box-sizing: border-box;
}

/* ========================================
   INNER
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__inner {
  position: relative;
  z-index: 2;

  width: 100%;
  max-width: var(--lpc-container-width);

  margin-inline: auto;
  padding-inline: var(--lpc-inner-padding);
}

/* ========================================
   HEADER
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__header {
  position: relative;

  margin: 0 0 var(--lpc-heading-gap);
  padding: 0;

  text-align: center;
}

/* ========================================
   ENGLISH EYEBROW
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .lpc-section-heading-sub {
  display: block;

  margin: 0 0 var(--lpc-heading-gap);
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-english);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-english);

  text-transform: uppercase;
  text-align: center;

  overflow-wrap: anywhere;
}

/* ========================================
   HEADING DECORATION
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .lpc-section-heading-sub::after {
  content: "";
  display: block;

  width: var(--lpc-heading-line-width);
  height: var(--lpc-heading-line-height);

  margin:
    var(--lpc-heading-line-gap)
    auto
    0;

  background: var(--lpc-color-accent);
}

/* ========================================
   MAIN HEADING
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .lpc-section-heading {
  margin: 0 0 var(--lpc-title-gap);
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-heading);
  font-size: var(--lpc-font-size-title);
  font-weight: var(--lpc-font-weight-heading);

  line-height: var(--lpc-line-heading);
  letter-spacing: var(--lpc-letter-heading);

  text-align: center;
  overflow-wrap: anywhere;
}

/* ========================================
   LEAD TEXT
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__lead {
  min-width: 0;

  margin: 0;
  padding: 0;

  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: 16px;
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);

  text-align: center;
  overflow-wrap: anywhere;
}

/* ========================================
   FAQ LIST
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .faq__list {
  display: grid;
  grid-template-columns: minmax(0, 1fr);

  gap: var(--lpc-card-gap);

  width: 100%;
  min-width: 0;

  margin: 0;
  padding: 0;
}

/* ========================================
   FAQ ITEM
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__item {
  min-width: 0;

  margin: 0;
  padding: 0;

  overflow: hidden;

  border: var(--lpc-border);
  border-radius: var(--lpc-card-radius);

  background: var(--lpc-color-surface);
  box-shadow: var(--lpc-card-shadow);
}

/* ========================================
   QUESTION
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__q {
  display: flex;
  align-items: center;

  gap: var(--lpc-card-gap);

  min-width: 0;

  margin: 0;
  padding: var(--lpc-card-padding);

  background: var(--lpc-color-surface);

  cursor: pointer;
  list-style: none;

  transition:
    background-color var(--lpc-transition-base);
}

/* ========================================
   HIDE DEFAULT MARKER
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__q::-webkit-details-marker {
  display: none;
}

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__q::marker {
  content: "";
}

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

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__item[open] .faq__q {
  background: var(--lpc-color-subtle);
}

/* ========================================
   Q / A BADGE
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__badge {
  display: flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 var(--lpc-icon-size);

  width: var(--lpc-icon-size);
  height: var(--lpc-icon-size);

  border-radius: var(--lpc-circle-radius);

  font-family: var(--lpc-font-english);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-heading);

  line-height: 1;
}

/* ========================================
   Q BADGE
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__badge--q {
  background: var(--lpc-color-heading);
  color: var(--lpc-color-surface);
}

/* ========================================
   A BADGE
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__badge--a {
  background: var(--lpc-color-subtle);
  color: var(--lpc-color-heading);
}

/* ========================================
   QUESTION TEXT
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__q-text {
  flex: 1 1 auto;

  min-width: 0;

  margin: 0;
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-heading);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-heading);

  line-height: var(--lpc-line-heading);
  letter-spacing: var(--lpc-letter-heading);

  overflow-wrap: anywhere;
}

/* ========================================
   TOGGLE ICON
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__toggle {
  position: relative;

  display: block;
  flex: 0 0 var(--lpc-plus-size);

  width: var(--lpc-plus-size);
  height: var(--lpc-plus-size);

  margin-left: auto;
}

/* ========================================
   PLUS / MINUS
======================================== */

.section--faq .faq__toggle::before,
.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__toggle::after {
  content: "";

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

  display: block;

  background: var(--lpc-color-heading);
  border-radius: var(--lpc-pill-radius);

  transform: translate(-50%, -50%);

  transition:
    opacity var(--lpc-transition-base);
}

/* HORIZONTAL LINE */
.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__toggle::before {
  width: var(--lpc-plus-size);
  height: 2px;
}

/* VERTICAL LINE */
.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__toggle::after {
  width: 2px;
  height: var(--lpc-plus-size);
}

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

.section--faq .faq__item[open]
.tpl-scope-cmr06mdev0gom0h3xl7emstrp .faq__toggle::after {
  opacity: 0;
}

/* ========================================
   ANSWER AREA
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__a {
  display: flex;
  align-items: flex-start;

  gap: var(--lpc-card-gap);

  min-width: 0;

  margin: 0;
  padding: var(--lpc-card-padding);

  border-top: var(--lpc-border);

  background: var(--lpc-color-surface);
}

/* ========================================
   ANSWER TEXT
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__a-text {
  flex: 1 1 auto;

  min-width: 0;

  margin: 0;
  padding: 0;

  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: 14px;
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);

  overflow-wrap: anywhere;
}

/* ========================================
   HOVER
======================================== */

@media (hover: hover) {

  .section--faq .faq__item:not([open])
.tpl-scope-cmr06mdev0gom0h3xl7emstrp .faq__q:hover {
    background: var(--lpc-color-subtle);
  }

}

/* ========================================
   FOCUS
======================================== */

.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__q:focus-visible {
  outline: var(--lpc-focus);
  outline-offset: calc(-1 * var(--lpc-focus-offset));
}

/* ========================================
   REDUCED MOTION
======================================== */

@media (prefers-reduced-motion: reduce) {

  .section--faq .faq__q,
  .section--faq .faq__toggle::before,
.tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__toggle::after {
    transition: none;
  }

}
/* ========================================
   CTA FOOTER
   既存共通CSSに合わせたデザイン
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter {
  position: relative;
  isolation: isolate;

  width: 100%;
  max-width: var(--lpc-container-width);
  min-width: 0;

  margin-inline: auto;
  overflow: hidden;

  background: var(--lpc-color-background);
  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);
}

/* ========================================
   BOX SIZING
======================================== */

.ctafooter,
.ctafooter *,
.ctafooter *::before,
.tpl-scope-cta-footer-mobile .ctafooter *::after {
  box-sizing: border-box;
}

/* ========================================
   MATERIAL ICON
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .material-symbols-outlined {
  font-variation-settings:
    "FILL" 0,
    "wght" 400,
    "GRAD" 0,
    "opsz" 24;

  line-height: 1;
}

.tpl-scope-cta-footer-mobile .ctafooter .material-symbols-outlined.is-fill {
  font-variation-settings:
    "FILL" 1,
    "wght" 400,
    "GRAD" 0,
    "opsz" 24;
}

/* ========================================
   CTA SECTION
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta {
  position: relative;

  width: 100%;

  padding:
    var(--lpc-section-top)
    var(--lpc-inner-padding)
    var(--lpc-section-bottom);

  background: var(--lpc-color-background);
  text-align: center;
}

/* ========================================
   CTA HEADER
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__header {
  position: relative;

  margin: 0 0 var(--lpc-heading-gap);
  padding: 0;

  text-align: center;
}

/* ========================================
   CONTACT EYEBROW
   VOICEと同じ英字見出し
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__kicker.lpc-section-heading-sub {
  display: block;

  margin: 0 0 var(--lpc-heading-gap);
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-english);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-english);

  text-transform: uppercase;
  text-align: center;

  overflow-wrap: anywhere;
}

/* ========================================
   CONTACT DECORATION LINE
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__kicker.lpc-section-heading-sub::after {
  content: "";

  display: block;

  width: var(--lpc-heading-line-width);
  height: var(--lpc-heading-line-height);

  margin:
    var(--lpc-heading-line-gap)
    auto
    0;

  background: var(--lpc-color-accent);
}

/* ========================================
   CTA TITLE
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__title {
  margin: 0 0 var(--lpc-title-gap);
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-heading);
  font-size: var(--lpc-font-size-title);
  font-weight: var(--lpc-font-weight-heading);

  line-height: var(--lpc-line-heading);
  letter-spacing: var(--lpc-letter-heading);

  text-align: center;
  overflow-wrap: anywhere;
}

/* ========================================
   CTA LEAD
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__lead {
  min-width: 0;

  margin: 0;
  padding: 0;

  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);

  text-align: center;
  overflow-wrap: anywhere;
}

/* ========================================
   PHONE CARD
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone {
  width: 100%;
  min-width: 0;

  margin: 0;
  padding: var(--lpc-card-padding);

  border: var(--lpc-border);
  border-radius: var(--lpc-card-radius);

  background: var(--lpc-color-surface);
  box-shadow: var(--lpc-card-shadow);

  text-align: left;
}

/* ========================================
   PHONE VISIBILITY
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone[data-show="非表示"] {
  display: none;
}

/* ========================================
   PHONE HEAD
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-head {
  display: flex;
  align-items: center;

  gap: 36px;

  width: 100%;
  min-width: 0;
}

/* ========================================
   PHONE ICON
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-icon {
  display: flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 48px;

  width: 48px;
  height: 48px;

  border-radius: var(--lpc-circle-radius);

  background: var(--lpc-color-subtle);
  color: var(--lpc-color-heading);
}

/* ========================================
   PHONE ICON GLYPH
======================================== */

.ctafooter .cta__phone-icon
.tpl-scope-cta-footer-mobile .material-symbols-outlined {
  font-size: var(--lpc-icon-size);
}

/* ========================================
   PHONE BODY
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-body {
  flex: 1 1 auto;
  min-width: 0;

  text-align: left;
}

/* ========================================
   PHONE LABEL
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-label {
  margin: 0;
  padding: 0;

  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-body);
}

/* ========================================
   PHONE NUMBER
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-num {
  display: block;

  width: 100%;
  min-width: 0;

  margin: var(--lpc-space-xs) 0 0;
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-english);
  font-size: clamp(20px, 5.8vw, 27px);
  font-weight: var(--lpc-font-weight-heading);

  line-height: 1.3;
  letter-spacing: 0;

  text-decoration: none;
  white-space: nowrap;

  transition: color var(--lpc-transition-base);
}

/* ========================================
   PHONE HOURS
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-time {
  margin: var(--lpc-space-xs) 0 0;
  padding: 0;

  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-body);

  overflow-wrap: anywhere;
}

/* ========================================
   PHONE BUTTON
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-btn {
  position: relative;

  display: flex;
  align-items: center;
  justify-content: center;

  gap: var(--lpc-space-sm);

  width: 100%;
  min-height: var(--lpc-button-height);

  margin-top: var(--lpc-space-lg);

  padding:
    var(--lpc-space-md)
    40px;

  border: 0;
  border-radius: var(--lpc-pill-radius);

  background-color: var(--lpc-color-button-middle);
  background-image: var(--lpc-button-gradient);

  color: var(--lpc-color-surface);

  box-shadow: var(--lpc-button-shadow);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-heading);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-heading);

  text-align: center;
  text-decoration: none;

  overflow-wrap: anywhere;

  transition:
    background-color var(--lpc-transition-base),
    transform var(--lpc-transition-base),
    box-shadow var(--lpc-transition-base);
}

/* ========================================
   PHONE BUTTON LABEL
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-btn-label {
  min-width: 0;
  overflow-wrap: anywhere;
}

/* ========================================
   PHONE BUTTON ICON
======================================== */

.ctafooter .cta__phone-btn
.tpl-scope-cta-footer-mobile .material-symbols-outlined {
  flex-shrink: 0;

  font-size: var(--lpc-font-size-icon);
}

/* ========================================
   PHONE BUTTON ARROW
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-btn-arrow {
  position: absolute;

  top: 50%;
  right: var(--lpc-space-md);

  transform: translateY(-50%);
}

/* ========================================
   RESERVATION LIST
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__reserve {
  display: grid;
  grid-template-columns: minmax(0, 1fr);

  gap: var(--lpc-card-gap);

  width: 100%;

  margin: var(--lpc-space-lg) 0 0;
  padding: 0;

  list-style: none;
}

/* ========================================
   RESERVATION ITEM
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__reserve-item {
  min-width: 0;

  margin: 0;
  padding: 0;

  list-style: none;
}

/* ========================================
   RESERVATION LINK
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__reserve-link {
  display: flex;
  align-items: center;

  gap: var(--lpc-space-md);

  width: 100%;
  min-height: var(--lpc-button-height);

  padding: var(--lpc-card-padding);

  border: var(--lpc-border);
  border-radius: var(--lpc-card-radius);

  background: var(--lpc-color-surface);
  color: var(--lpc-color-heading);

  box-shadow: var(--lpc-card-shadow);

  text-align: left;
  text-decoration: none;

  transition:
    background-color var(--lpc-transition-base),
    border-color var(--lpc-transition-base),
    box-shadow var(--lpc-transition-base);
}

/* ========================================
   RESERVATION BODY
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__reserve-body {
  flex: 1 1 auto;
  min-width: 0;

  text-align: left;
}

/* ========================================
   RESERVATION TITLE
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__reserve-title {
  display: block;

  margin: 0;
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-heading);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-heading);

  line-height: var(--lpc-line-heading);
  letter-spacing: var(--lpc-letter-heading);

  overflow-wrap: anywhere;
}

/* ========================================
   RESERVATION SUBTEXT
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__reserve-sub {
  display: block;

  margin: var(--lpc-space-xs) 0 0;
  padding: 0;

  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-body);

  overflow-wrap: anywhere;
}

/* ========================================
   EXTERNAL LINK ICON
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__reserve-ext {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 auto;

  color: var(--lpc-color-heading);
}

/* ========================================
   EXTERNAL LINK SVG
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__reserve-ext svg {
  display: block;

  width: var(--lpc-font-size-icon);
  height: var(--lpc-font-size-icon);
}

/* ========================================
   FOOTER
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .footer {
  position: relative;

  width: 100%;

  margin: 0;

  padding:
    var(--lpc-space-xl)
    var(--lpc-inner-padding);

  background: var(--lpc-color-heading);
  color: var(--lpc-color-surface);
}

/* ========================================
   COPYRIGHT
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .footer__copyright {
  margin: 0;
  padding: 0;

  color: var(--lpc-color-surface);

  font-family: var(--lpc-font-english);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-body);

  text-align: center;
  overflow-wrap: anywhere;
}

/* ========================================
   HOVER
======================================== */

@media (hover: hover) {

  /* PHONE NUMBER */
.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-num:hover {
    color: var(--lpc-color-button-middle);
  }

  /* PHONE BUTTON */
.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-btn:hover {
    background-color: var(--lpc-color-button-hover);
    background-image: none;

    color: var(--lpc-color-surface);

    transform: translateY(-2px);

    box-shadow: var(--lpc-button-shadow-hover);
  }

  /* RESERVATION LINK */
.tpl-scope-cta-footer-mobile .ctafooter .cta__reserve-link:hover {
    background: var(--lpc-color-subtle);

    border-color: var(--lpc-color-accent);

    box-shadow: var(--lpc-button-shadow);
  }

}

/* ========================================
   FOCUS
======================================== */

.ctafooter .cta__phone-num:focus-visible,
.ctafooter .cta__phone-btn:focus-visible,
.tpl-scope-cta-footer-mobile .ctafooter .cta__reserve-link:focus-visible {
  outline: var(--lpc-focus);
  outline-offset: var(--lpc-focus-offset);
}

/* ========================================
   SMALL SCREEN
======================================== */

@media (max-width: 375px) {

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-icon {
    flex-basis: 40px;

    width: 40px;
    height: 40px;
  }

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-head {
    gap: var(--lpc-space-sm);
  }

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-num {
    font-size: 20px;
  }

}

/* ========================================
   REDUCED MOTION
======================================== */

@media (prefers-reduced-motion: reduce) {

  .ctafooter .cta__phone-num,
  .ctafooter .cta__phone-btn,
.tpl-scope-cta-footer-mobile .ctafooter .cta__reserve-link {
    transition: none;
  }

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-btn:hover {
    transform: none;
  }

}
/*--mobile--*/
/* ========================================
   CTA FOOTER
   既存共通CSSに合わせたデザイン
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter {
  position: relative;
  isolation: isolate;

  width: 100%;
  max-width: var(--lpc-container-width);
  min-width: 0;

  margin-inline: auto;
  overflow: hidden;

  background: var(--lpc-color-background);
  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);
}

/* ========================================
   BOX SIZING
======================================== */

.ctafooter,
.ctafooter *,
.ctafooter *::before,
.tpl-scope-cta-footer-mobile .ctafooter *::after {
  box-sizing: border-box;
}

/* ========================================
   MATERIAL ICON
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .material-symbols-outlined {
  font-variation-settings:
    "FILL" 0,
    "wght" 400,
    "GRAD" 0,
    "opsz" 24;

  line-height: 1;
}

.tpl-scope-cta-footer-mobile .ctafooter .material-symbols-outlined.is-fill {
  font-variation-settings:
    "FILL" 1,
    "wght" 400,
    "GRAD" 0,
    "opsz" 24;
}

/* ========================================
   CTA SECTION
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta {
  position: relative;

  width: 100%;

  padding:
    var(--lpc-section-top)
    var(--lpc-inner-padding)
    var(--lpc-section-bottom);

  background: var(--lpc-color-background);
  text-align: center;
}

/* ========================================
   CTA HEADER
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__header {
  position: relative;

  margin: 0 0 var(--lpc-heading-gap);
  padding: 0;

  text-align: center;
}

/* ========================================
   CONTACT EYEBROW
   VOICEと同じ英字見出し
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__kicker.lpc-section-heading-sub {
  display: block;

  margin: 0 0 var(--lpc-heading-gap);
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-english);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-english);

  text-transform: uppercase;
  text-align: center;

  overflow-wrap: anywhere;
}

/* ========================================
   CONTACT DECORATION LINE
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__kicker.lpc-section-heading-sub::after {
  content: "";

  display: block;

  width: var(--lpc-heading-line-width);
  height: var(--lpc-heading-line-height);

  margin:
    var(--lpc-heading-line-gap)
    auto
    0;

  background: var(--lpc-color-accent);
}

/* ========================================
   CTA TITLE
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__title {
  margin: 0 0 var(--lpc-title-gap);
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-heading);
  font-size: var(--lpc-font-size-title);
  font-weight: var(--lpc-font-weight-heading);

  line-height: var(--lpc-line-heading);
  letter-spacing: var(--lpc-letter-heading);

  text-align: center;
  overflow-wrap: anywhere;
}

/* ========================================
   CTA LEAD
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__lead {
  min-width: 0;

  margin: 0;
  padding: 0;

  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);

  text-align: center;
  overflow-wrap: anywhere;
}

/* ========================================
   PHONE CARD
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone {
  width: 100%;
  min-width: 0;

  margin: 0;
  padding: var(--lpc-card-padding);

  border: var(--lpc-border);
  border-radius: var(--lpc-card-radius);

  background: var(--lpc-color-surface);
  box-shadow: var(--lpc-card-shadow);

  text-align: left;
}

/* ========================================
   PHONE VISIBILITY
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone[data-show="非表示"] {
  display: none;
}

/* ========================================
   PHONE HEAD
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-head {
  display: flex;
  align-items: center;

  gap: 36px;

  width: 100%;
  min-width: 0;
}

/* ========================================
   PHONE ICON
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-icon {
  display: flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 48px;

  width: 48px;
  height: 48px;

  border-radius: var(--lpc-circle-radius);

  background: var(--lpc-color-subtle);
  color: var(--lpc-color-heading);
}

/* ========================================
   PHONE ICON GLYPH
======================================== */

.ctafooter .cta__phone-icon
.tpl-scope-cta-footer-mobile .material-symbols-outlined {
  font-size: var(--lpc-icon-size);
}

/* ========================================
   PHONE BODY
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-body {
  flex: 1 1 auto;
  min-width: 0;

  text-align: left;
}

/* ========================================
   PHONE LABEL
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-label {
  margin: 0;
  padding: 0;

  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-body);
}

/* ========================================
   PHONE NUMBER
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-num {
  display: block;

  width: 100%;
  min-width: 0;

  margin: var(--lpc-space-xs) 0 0;
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-english);
  font-size: clamp(20px, 5.8vw, 27px);
  font-weight: var(--lpc-font-weight-heading);

  line-height: 1.3;
  letter-spacing: 0;

  text-decoration: none;
  white-space: nowrap;

  transition: color var(--lpc-transition-base);
}

/* ========================================
   PHONE HOURS
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-time {
  margin: var(--lpc-space-xs) 0 0;
  padding: 0;

  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-body);

  overflow-wrap: anywhere;
}

/* ========================================
   PHONE BUTTON
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-btn {
  position: relative;

  display: flex;
  align-items: center;
  justify-content: center;

  gap: var(--lpc-space-sm);

  width: 100%;
  min-height: var(--lpc-button-height);

  margin-top: var(--lpc-space-lg);

  padding:
    var(--lpc-space-md)
    40px;

  border: 0;
  border-radius: var(--lpc-pill-radius);

  background-color: var(--lpc-color-button-middle);
  background-image: var(--lpc-button-gradient);

  color: var(--lpc-color-surface);

  box-shadow: var(--lpc-button-shadow);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-heading);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-heading);

  text-align: center;
  text-decoration: none;

  overflow-wrap: anywhere;

  transition:
    background-color var(--lpc-transition-base),
    transform var(--lpc-transition-base),
    box-shadow var(--lpc-transition-base);
}

/* ========================================
   PHONE BUTTON LABEL
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-btn-label {
  min-width: 0;
  overflow-wrap: anywhere;
}

/* ========================================
   PHONE BUTTON ICON
======================================== */

.ctafooter .cta__phone-btn
.tpl-scope-cta-footer-mobile .material-symbols-outlined {
  flex-shrink: 0;

  font-size: var(--lpc-font-size-icon);
}

/* ========================================
   PHONE BUTTON ARROW
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-btn-arrow {
  position: absolute;

  top: 50%;
  right: var(--lpc-space-md);

  transform: translateY(-50%);
}

/* ========================================
   RESERVATION LIST
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__reserve {
  display: grid;
  grid-template-columns: minmax(0, 1fr);

  gap: var(--lpc-card-gap);

  width: 100%;

  margin: var(--lpc-space-lg) 0 0;
  padding: 0;

  list-style: none;
}

/* ========================================
   RESERVATION ITEM
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__reserve-item {
  min-width: 0;

  margin: 0;
  padding: 0;

  list-style: none;
}

/* ========================================
   RESERVATION LINK
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__reserve-link {
  display: flex;
  align-items: center;

  gap: var(--lpc-space-md);

  width: 100%;
  min-height: var(--lpc-button-height);

  padding: var(--lpc-card-padding);

  border: var(--lpc-border);
  border-radius: var(--lpc-card-radius);

  background: var(--lpc-color-surface);
  color: var(--lpc-color-heading);

  box-shadow: var(--lpc-card-shadow);

  text-align: left;
  text-decoration: none;

  transition:
    background-color var(--lpc-transition-base),
    border-color var(--lpc-transition-base),
    box-shadow var(--lpc-transition-base);
}

/* ========================================
   RESERVATION BODY
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__reserve-body {
  flex: 1 1 auto;
  min-width: 0;

  text-align: left;
}

/* ========================================
   RESERVATION TITLE
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__reserve-title {
  display: block;

  margin: 0;
  padding: 0;

  color: var(--lpc-color-heading);

  font-family: var(--lpc-font-heading);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-heading);

  line-height: var(--lpc-line-heading);
  letter-spacing: var(--lpc-letter-heading);

  overflow-wrap: anywhere;
}

/* ========================================
   RESERVATION SUBTEXT
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__reserve-sub {
  display: block;

  margin: var(--lpc-space-xs) 0 0;
  padding: 0;

  color: var(--lpc-color-text);

  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-body);

  overflow-wrap: anywhere;
}

/* ========================================
   EXTERNAL LINK ICON
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__reserve-ext {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 auto;

  color: var(--lpc-color-heading);
}

/* ========================================
   EXTERNAL LINK SVG
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .cta__reserve-ext svg {
  display: block;

  width: var(--lpc-font-size-icon);
  height: var(--lpc-font-size-icon);
}

/* ========================================
   FOOTER
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .footer {
  position: relative;

  width: 100%;

  margin: 0;

  padding:
    var(--lpc-space-xl)
    var(--lpc-inner-padding);

  background: var(--lpc-color-heading);
  color: var(--lpc-color-surface);
}

/* ========================================
   COPYRIGHT
======================================== */

.tpl-scope-cta-footer-mobile .ctafooter .footer__copyright {
  margin: 0;
  padding: 0;

  color: var(--lpc-color-surface);

  font-family: var(--lpc-font-english);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-body);

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-body);

  text-align: center;
  overflow-wrap: anywhere;
}

/* ========================================
   HOVER
======================================== */

@media (hover: hover) {

  /* PHONE NUMBER */
.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-num:hover {
    color: var(--lpc-color-button-middle);
  }

  /* PHONE BUTTON */
.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-btn:hover {
    background-color: var(--lpc-color-button-hover);
    background-image: none;

    color: var(--lpc-color-surface);

    transform: translateY(-2px);

    box-shadow: var(--lpc-button-shadow-hover);
  }

  /* RESERVATION LINK */
.tpl-scope-cta-footer-mobile .ctafooter .cta__reserve-link:hover {
    background: var(--lpc-color-subtle);

    border-color: var(--lpc-color-accent);

    box-shadow: var(--lpc-button-shadow);
  }

}

/* ========================================
   FOCUS
======================================== */

.ctafooter .cta__phone-num:focus-visible,
.ctafooter .cta__phone-btn:focus-visible,
.tpl-scope-cta-footer-mobile .ctafooter .cta__reserve-link:focus-visible {
  outline: var(--lpc-focus);
  outline-offset: var(--lpc-focus-offset);
}

/* ========================================
   SMALL SCREEN
======================================== */

@media (max-width: 375px) {

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-icon {
    flex-basis: 40px;

    width: 40px;
    height: 40px;
  }

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-head {
    gap: var(--lpc-space-sm);
  }

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-num {
    font-size: 20px;
  }

}

/* ========================================
   REDUCED MOTION
======================================== */

@media (prefers-reduced-motion: reduce) {

  .ctafooter .cta__phone-num,
  .ctafooter .cta__phone-btn,
.tpl-scope-cta-footer-mobile .ctafooter .cta__reserve-link {
    transition: none;
  }

.tpl-scope-cta-footer-mobile .ctafooter .cta__phone-btn:hover {
    transform: none;
  }

}
/* ============================================================
   THREE HEART LEFT SIDE
   スリーハート・リフレ
   PC固定 / 背景透過 / LINEボタン修正版
============================================================ */

/* =========================
   PORTAL
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-portal {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 2147482000;

  width: max(0px, calc((100vw - 430px) / 2));

  height: 100vh;
  height: 100dvh;

  margin: 0;
  padding: 0;

  overflow: hidden;

  border: 0;
  background: transparent;

  pointer-events: auto;
}

/* =========================
   SCOPE HOST
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-host {
  width: 100%;
  height: 100%;
  background: transparent;
  pointer-events: auto;
}

/* =========================
   ROOT
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-side {
  --threeheart-green-dark: #29451d;
  --threeheart-green: #4c8325;
  --threeheart-green-light: #98c82f;
  --threeheart-gold: #d9c078;
  --threeheart-white: #ffffff;

  --threeheart-transition: 0.25s ease;

  position: relative;
  z-index: 1;

  display: block;
  width: 100%;
  height: 100%;

  margin: 0;
  padding: 0;

  box-sizing: border-box;

  background: transparent;

  font-family: "Noto Serif JP", serif;

  pointer-events: auto;
}

.threeheart-left-side *,
.threeheart-left-side *::before,
.tpl-scope-sidepart-left-code-mobile .threeheart-left-side *::after {box-sizing: border-box}

/* =========================
   PANEL
   背景完全透過
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-panel {
  position: relative;
  isolation: isolate;

  width: 100%;
  height: 100%;

  margin: 0;
  padding: 0;

  overflow: hidden;

  border: 0;
  box-shadow: none;
  background: transparent;

  container-type: inline-size;
}

/* =========================
   CONTENT
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-panel__content {
  position: relative;
  z-index: 2;

  display: flex;
  flex-direction: column;

  width: min(430px, 100%);
  height: 100%;

  margin: 0 auto;

  padding: clamp(12px, 2vh, 22px) 0 clamp(16px, 2vh, 24px);

  overflow-x: hidden;
  overflow-y: auto;

  scrollbar-width: none;
  overscroll-behavior: contain;

  background: transparent;

  pointer-events: auto;
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-panel__content::-webkit-scrollbar {
  display: none;
}

/* =========================
   CENTER STACK
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-stack {
  display: flex;
  flex-direction: column;
  align-items: center;

  flex: 0 0 auto;

  width: 100%;
  min-width: 0;

  margin-top: auto;
  margin-bottom: auto;

  padding: 0;

  gap: clamp(8px, 1.4vh, 15px);
}

/* =========================
   MAIN VISUAL
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-visual {
  display: flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 auto;

  width: 80%;

  margin: 0;
  padding: 0;

  background: transparent;
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-visual__image {
  display: block;

  width: 100%;
  max-width: 100%;
  height: auto;

  margin: 0;
  padding: 0;

  object-fit: contain;
  object-position: center;

  pointer-events: none;
}

.threeheart-left-visual__image[src=""],
.tpl-scope-sidepart-left-code-mobile .threeheart-left-visual__image:not([src]) {
  display: none;
}

/* =========================
   ACTION BUTTONS
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-actions {
  position: relative;
  z-index: 3;

  display: flex;
  flex-direction: column;
  align-items: center;

  flex: 0 0 auto;

  width: 82%;
  max-width: 348px;

  margin: 0 auto;
  padding: 0;

  gap: 12px;

  pointer-events: auto;
}

/* =========================
   BUTTON BASE
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button {
  position: relative;

  display: flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 auto;

  width: 100%;
  min-height: 56px;

  margin: 0;
  padding: 8px 17px;

  gap: 10px;

  overflow: hidden;

  border-radius: 100px;

  color: #ffffff;
  text-decoration: none;

  opacity: 1;

  cursor: pointer;
  pointer-events: auto;

  transition:
    transform var(--threeheart-transition),
    filter var(--threeheart-transition),
    box-shadow var(--threeheart-transition);

  -webkit-tap-highlight-color: transparent;
}

/* =========================
   ICON
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__icon {
  position: relative;
  z-index: 2;

  display: flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 38px;

  width: 38px;
  height: 38px;

  color: inherit;
  pointer-events: none;
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__icon svg {
  display: block;
  width: 26px;
  height: 26px;
}

/* =========================
   BUTTON BODY
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__body {
  position: relative;
  z-index: 2;

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

  min-width: 0;
  text-align: center;

  pointer-events: none;
}

/* =========================
   BUTTON ARROW
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__arrow {
  position: relative;
  z-index: 2;

  display: block;
  flex: 0 0 9px;

  width: 9px;
  height: 9px;

  margin-right: 3px;

  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;

  transform: rotate(45deg);

  pointer-events: none;
}

/* ============================================================
   LINE BUTTON
   修正：不透明・濃いグラデーション
============================================================ */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-side .threeheart-left-button--line {
  min-height: 59px;

  padding: 8px 17px;

  border: 2px solid #eff7c8;

  border-radius: 100px;

  background: linear-gradient(110deg, #8fc02a 0%, #66a71d 33%, #397f17 67%, #225f19 100%);

  color: #ffffff;

  /* 常に鮮明な表示 */
  opacity: 1;

  filter: none;

  box-shadow:
    0 5px 15px rgba(17, 49, 11, 0.3),
    inset 0 1px 2px rgba(255, 255, 255, 0.38);

  pointer-events: auto;
}

/* LINE吹き出し */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-line-logo {
  position: relative;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 36px;
  height: 32px;

  border-radius: 50%;

  background: #ffffff;
  color: #468d1c;

  font-family: Arial, Helvetica, sans-serif;
  font-size: 11px;
  font-weight: 900;

  letter-spacing: -0.05em;
  line-height: 1;
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-line-logo::after {
  position: absolute;
  bottom: -5px;
  left: 9px;

  width: 0;
  height: 0;

  border-top: 9px solid #ffffff;
  border-right: 10px solid transparent;

  content: "";
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__title {
  display: block;

  color: #ffffff;

  font-family: "Noto Serif JP", serif;
  font-size: clamp(17px, 5cqi, 22px);
  font-weight: 700;

  line-height: 1.4;
  letter-spacing: 0.015em;

  white-space: nowrap;
}

/* ============================================================
   PHONE BUTTON
============================================================ */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--phone {
  min-height: 63px;

  padding-top: 7px;
  padding-bottom: 7px;

  border: 1.5px solid var(--threeheart-gold);

  background: linear-gradient(135deg, #fffef5 0%, #fffbea 52%, #fff3d2 100%);

  color: var(--threeheart-green-dark);

  box-shadow:
    0 4px 13px rgba(0, 0, 0, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__icon--phone {
  flex: 0 0 37px;

  width: 37px;
  height: 37px;
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__icon--phone svg {
  width: 30px;
  height: 30px;
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__caption {
  display: block;

  color: var(--threeheart-green-dark);

  font-family: "Noto Serif JP", serif;
  font-size: 12px;
  font-weight: 600;

  line-height: 1.4;
  letter-spacing: 0.035em;
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__number {
  display: block;

  color: var(--threeheart-green-dark);

  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(18px, 4.9cqi, 24px);
  font-weight: 400;

  line-height: 1.3;
  letter-spacing: 0.015em;

  white-space: nowrap;
}

/* ============================================================
   INSTAGRAM BUTTON
============================================================ */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--instagram {
  width: 78%;
  min-height: 39px;

  padding: 5px 12px;

  gap: 7px;

  border: 1.5px solid rgba(255, 255, 255, 0.92);

  background: rgba(21, 43, 19, 0.65);

  color: #ffffff;

  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.12);
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__icon--instagram {
  flex: 0 0 24px;

  width: 24px;
  height: 24px;
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__icon--instagram svg {
  width: 21px;
  height: 21px;
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__instagram-text {
  display: block;

  color: #ffffff;

  font-family: "Noto Serif JP", serif;
  font-size: clamp(12px, 3.5cqi, 15px);
  font-weight: 500;

  line-height: 1.5;
  white-space: nowrap;
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--instagram .threeheart-left-button__arrow {
  flex-basis: 7px;

  width: 7px;
  height: 7px;
}

/* ============================================================
   HOVER
============================================================ */

@media (hover: hover) and (pointer: fine) {
.tpl-scope-sidepart-left-code-mobile .threeheart-left-button:hover {
    transform: translateY(-2px);
    filter: brightness(1.08);
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--line:hover {
    box-shadow: 0 7px 20px rgba(10, 65, 9, 0.35);
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--phone:hover {
    box-shadow: 0 7px 20px rgba(0, 0, 0, 0.2);
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--instagram:hover {
    background: rgba(31, 71, 25, 0.85);
  }
}

/* ============================================================
   FOCUS
============================================================ */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button:focus-visible {
  outline: 3px solid #e4f5a1;
  outline-offset: 4px;
}

/* ============================================================
   NARROW SIDE PANEL
============================================================ */

@container (max-width: 370px) {
.tpl-scope-sidepart-left-code-mobile .threeheart-left-stack {
    gap: 8px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-actions {
    width: 85%;
    gap: 9px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--line {
    min-height: 51px;
    padding: 7px 10px;
    gap: 7px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--phone {
    min-height: 55px;
    padding: 6px 10px;
    gap: 7px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__title {
    font-size: 16px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__number {
    font-size: 18px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__caption {
    font-size: 11px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__icon {
    flex-basis: 29px;
    width: 29px;
    height: 29px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__icon--phone svg {
    width: 25px;
    height: 25px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-line-logo {
    width: 29px;
    height: 26px;
    font-size: 9px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--instagram {
    width: 85%;
    min-height: 36px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__instagram-text {
    font-size: 12px;
  }
}

/* ============================================================
   SHORT PC
============================================================ */

@media (min-width: 1025px) and (max-height: 760px) {
.tpl-scope-sidepart-left-code-mobile .threeheart-left-panel__content {
    padding-top: 8px;
    padding-bottom: 8px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-stack {
    gap: 8px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-actions {
    gap: 8px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--line {
    min-height: 51px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--phone {
    min-height: 55px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--instagram {
    min-height: 36px;
  }
}

/* ============================================================
   MOBILE / TABLET
============================================================ */

@media (max-width: 1024px) {
  .threeheart-left-portal,
.tpl-scope-sidepart-left-code-mobile .threeheart-left-side {
    display: none;
  }
}

/* ============================================================
   REDUCED MOTION
============================================================ */

@media (prefers-reduced-motion: reduce) {
.tpl-scope-sidepart-left-code-mobile .threeheart-left-button {
    transition: none;
  }
}
/*--mobile--*/
/* ============================================================
   THREE HEART LEFT SIDE
   スリーハート・リフレ
   PC固定 / 背景透過 / LINEボタン修正版
============================================================ */

/* =========================
   PORTAL
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-portal {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 2147482000;

  width: max(0px, calc((100vw - 430px) / 2));

  height: 100vh;
  height: 100dvh;

  margin: 0;
  padding: 0;

  overflow: hidden;

  border: 0;
  background: transparent;

  pointer-events: auto;
}

/* =========================
   SCOPE HOST
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-host {
  width: 100%;
  height: 100%;
  background: transparent;
  pointer-events: auto;
}

/* =========================
   ROOT
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-side {
  --threeheart-green-dark: #29451d;
  --threeheart-green: #4c8325;
  --threeheart-green-light: #98c82f;
  --threeheart-gold: #d9c078;
  --threeheart-white: #ffffff;

  --threeheart-transition: 0.25s ease;

  position: relative;
  z-index: 1;

  display: block;
  width: 100%;
  height: 100%;

  margin: 0;
  padding: 0;

  box-sizing: border-box;

  background: transparent;

  font-family: "Noto Serif JP", serif;

  pointer-events: auto;
}

.threeheart-left-side *,
.threeheart-left-side *::before,
.tpl-scope-sidepart-left-code-mobile .threeheart-left-side *::after {box-sizing: border-box}

/* =========================
   PANEL
   背景完全透過
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-panel {
  position: relative;
  isolation: isolate;

  width: 100%;
  height: 100%;

  margin: 0;
  padding: 0;

  overflow: hidden;

  border: 0;
  box-shadow: none;
  background: transparent;

  container-type: inline-size;
}

/* =========================
   CONTENT
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-panel__content {
  position: relative;
  z-index: 2;

  display: flex;
  flex-direction: column;

  width: min(430px, 100%);
  height: 100%;

  margin: 0 auto;

  padding: clamp(12px, 2vh, 22px) 0 clamp(16px, 2vh, 24px);

  overflow-x: hidden;
  overflow-y: auto;

  scrollbar-width: none;
  overscroll-behavior: contain;

  background: transparent;

  pointer-events: auto;
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-panel__content::-webkit-scrollbar {
  display: none;
}

/* =========================
   CENTER STACK
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-stack {
  display: flex;
  flex-direction: column;
  align-items: center;

  flex: 0 0 auto;

  width: 100%;
  min-width: 0;

  margin-top: auto;
  margin-bottom: auto;

  padding: 0;

  gap: clamp(8px, 1.4vh, 15px);
}

/* =========================
   MAIN VISUAL
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-visual {
  display: flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 auto;

  width: 80%;

  margin: 0;
  padding: 0;

  background: transparent;
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-visual__image {
  display: block;

  width: 100%;
  max-width: 100%;
  height: auto;

  margin: 0;
  padding: 0;

  object-fit: contain;
  object-position: center;

  pointer-events: none;
}

.threeheart-left-visual__image[src=""],
.tpl-scope-sidepart-left-code-mobile .threeheart-left-visual__image:not([src]) {
  display: none;
}

/* =========================
   ACTION BUTTONS
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-actions {
  position: relative;
  z-index: 3;

  display: flex;
  flex-direction: column;
  align-items: center;

  flex: 0 0 auto;

  width: 82%;
  max-width: 348px;

  margin: 0 auto;
  padding: 0;

  gap: 12px;

  pointer-events: auto;
}

/* =========================
   BUTTON BASE
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button {
  position: relative;

  display: flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 auto;

  width: 100%;
  min-height: 56px;

  margin: 0;
  padding: 8px 17px;

  gap: 10px;

  overflow: hidden;

  border-radius: 100px;

  color: #ffffff;
  text-decoration: none;

  opacity: 1;

  cursor: pointer;
  pointer-events: auto;

  transition:
    transform var(--threeheart-transition),
    filter var(--threeheart-transition),
    box-shadow var(--threeheart-transition);

  -webkit-tap-highlight-color: transparent;
}

/* =========================
   ICON
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__icon {
  position: relative;
  z-index: 2;

  display: flex;
  align-items: center;
  justify-content: center;

  flex: 0 0 38px;

  width: 38px;
  height: 38px;

  color: inherit;
  pointer-events: none;
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__icon svg {
  display: block;
  width: 26px;
  height: 26px;
}

/* =========================
   BUTTON BODY
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__body {
  position: relative;
  z-index: 2;

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

  min-width: 0;
  text-align: center;

  pointer-events: none;
}

/* =========================
   BUTTON ARROW
========================= */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__arrow {
  position: relative;
  z-index: 2;

  display: block;
  flex: 0 0 9px;

  width: 9px;
  height: 9px;

  margin-right: 3px;

  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;

  transform: rotate(45deg);

  pointer-events: none;
}

/* ============================================================
   LINE BUTTON
   修正：不透明・濃いグラデーション
============================================================ */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-side .threeheart-left-button--line {
  min-height: 59px;

  padding: 8px 17px;

  border: 2px solid #eff7c8;

  border-radius: 100px;

  background: linear-gradient(110deg, #8fc02a 0%, #66a71d 33%, #397f17 67%, #225f19 100%);

  color: #ffffff;

  /* 常に鮮明な表示 */
  opacity: 1;

  filter: none;

  box-shadow:
    0 5px 15px rgba(17, 49, 11, 0.3),
    inset 0 1px 2px rgba(255, 255, 255, 0.38);

  pointer-events: auto;
}

/* LINE吹き出し */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-line-logo {
  position: relative;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 36px;
  height: 32px;

  border-radius: 50%;

  background: #ffffff;
  color: #468d1c;

  font-family: Arial, Helvetica, sans-serif;
  font-size: 11px;
  font-weight: 900;

  letter-spacing: -0.05em;
  line-height: 1;
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-line-logo::after {
  position: absolute;
  bottom: -5px;
  left: 9px;

  width: 0;
  height: 0;

  border-top: 9px solid #ffffff;
  border-right: 10px solid transparent;

  content: "";
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__title {
  display: block;

  color: #ffffff;

  font-family: "Noto Serif JP", serif;
  font-size: clamp(17px, 5cqi, 22px);
  font-weight: 700;

  line-height: 1.4;
  letter-spacing: 0.015em;

  white-space: nowrap;
}

/* ============================================================
   PHONE BUTTON
============================================================ */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--phone {
  min-height: 63px;

  padding-top: 7px;
  padding-bottom: 7px;

  border: 1.5px solid var(--threeheart-gold);

  background: linear-gradient(135deg, #fffef5 0%, #fffbea 52%, #fff3d2 100%);

  color: var(--threeheart-green-dark);

  box-shadow:
    0 4px 13px rgba(0, 0, 0, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__icon--phone {
  flex: 0 0 37px;

  width: 37px;
  height: 37px;
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__icon--phone svg {
  width: 30px;
  height: 30px;
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__caption {
  display: block;

  color: var(--threeheart-green-dark);

  font-family: "Noto Serif JP", serif;
  font-size: 12px;
  font-weight: 600;

  line-height: 1.4;
  letter-spacing: 0.035em;
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__number {
  display: block;

  color: var(--threeheart-green-dark);

  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(18px, 4.9cqi, 24px);
  font-weight: 400;

  line-height: 1.3;
  letter-spacing: 0.015em;

  white-space: nowrap;
}

/* ============================================================
   INSTAGRAM BUTTON
============================================================ */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--instagram {
  width: 78%;
  min-height: 39px;

  padding: 5px 12px;

  gap: 7px;

  border: 1.5px solid rgba(255, 255, 255, 0.92);

  background: rgba(21, 43, 19, 0.65);

  color: #ffffff;

  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.12);
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__icon--instagram {
  flex: 0 0 24px;

  width: 24px;
  height: 24px;
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__icon--instagram svg {
  width: 21px;
  height: 21px;
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__instagram-text {
  display: block;

  color: #ffffff;

  font-family: "Noto Serif JP", serif;
  font-size: clamp(12px, 3.5cqi, 15px);
  font-weight: 500;

  line-height: 1.5;
  white-space: nowrap;
}

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--instagram .threeheart-left-button__arrow {
  flex-basis: 7px;

  width: 7px;
  height: 7px;
}

/* ============================================================
   HOVER
============================================================ */

@media (hover: hover) and (pointer: fine) {
.tpl-scope-sidepart-left-code-mobile .threeheart-left-button:hover {
    transform: translateY(-2px);
    filter: brightness(1.08);
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--line:hover {
    box-shadow: 0 7px 20px rgba(10, 65, 9, 0.35);
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--phone:hover {
    box-shadow: 0 7px 20px rgba(0, 0, 0, 0.2);
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--instagram:hover {
    background: rgba(31, 71, 25, 0.85);
  }
}

/* ============================================================
   FOCUS
============================================================ */

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button:focus-visible {
  outline: 3px solid #e4f5a1;
  outline-offset: 4px;
}

/* ============================================================
   NARROW SIDE PANEL
============================================================ */

@container (max-width: 370px) {
.tpl-scope-sidepart-left-code-mobile .threeheart-left-stack {
    gap: 8px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-actions {
    width: 85%;
    gap: 9px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--line {
    min-height: 51px;
    padding: 7px 10px;
    gap: 7px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--phone {
    min-height: 55px;
    padding: 6px 10px;
    gap: 7px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__title {
    font-size: 16px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__number {
    font-size: 18px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__caption {
    font-size: 11px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__icon {
    flex-basis: 29px;
    width: 29px;
    height: 29px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__icon--phone svg {
    width: 25px;
    height: 25px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-line-logo {
    width: 29px;
    height: 26px;
    font-size: 9px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--instagram {
    width: 85%;
    min-height: 36px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button__instagram-text {
    font-size: 12px;
  }
}

/* ============================================================
   SHORT PC
============================================================ */

@media (min-width: 1025px) and (max-height: 760px) {
.tpl-scope-sidepart-left-code-mobile .threeheart-left-panel__content {
    padding-top: 8px;
    padding-bottom: 8px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-stack {
    gap: 8px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-actions {
    gap: 8px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--line {
    min-height: 51px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--phone {
    min-height: 55px;
  }

.tpl-scope-sidepart-left-code-mobile .threeheart-left-button--instagram {
    min-height: 36px;
  }
}

/* ============================================================
   MOBILE / TABLET
============================================================ */

@media (max-width: 1024px) {
  .threeheart-left-portal,
.tpl-scope-sidepart-left-code-mobile .threeheart-left-side {
    display: none;
  }
}

/* ============================================================
   REDUCED MOTION
============================================================ */

@media (prefers-reduced-motion: reduce) {
.tpl-scope-sidepart-left-code-mobile .threeheart-left-button {
    transition: none;
  }
}
/* ============================================================
  THREE HEART RIGHT SIDE
  スリーハート・リフレ専用

  PC：右サイド中央にコンパクトなパネル
  SP：全画面ハンバーガーメニュー

  IVORY × BOTANICAL GREEN × GOLD
============================================================ */

/* ============================================================
  PORTAL
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-portal {
  position: fixed;
  inset: 0;
  z-index: 2147483000;

  width: 100%;
  height: 100vh;
  height: 100dvh;

  margin: 0;
  padding: 0;

  border: 0;
  background: transparent;

  pointer-events: none;
}

/* ============================================================
  SCOPE HOST
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-host {
  width: 100%;
  height: 100%;

  background: transparent;
  pointer-events: none;
}

/* ============================================================
  ROOT
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-side {
  --threeheart-center-width: 430px;

  --threeheart-dark: #344c2b;
  --threeheart-green: #5b823b;
  --threeheart-light: #91aa44;

  --threeheart-gold: #b4a052;
  --threeheart-gold-light: #e4d5a2;

  --threeheart-cream: #fffdf5;
  --threeheart-ivory: #faf9f0;

  --threeheart-transition: 0.25s ease;

  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;

  z-index: 1;

  width: max(0px, calc((100vw - var(--threeheart-center-width)) / 2));

  height: 100vh;
  height: 100dvh;

  margin: 0;
  padding: 0;

  box-sizing: border-box;

  background: transparent;

  color: var(--threeheart-dark);

  font-family: "Noto Serif JP", serif;

  pointer-events: none;
}

.threeheart-right-side *,
.threeheart-right-side *::before,
.tpl-scope-sidepart-right-code-mobile .threeheart-right-side *::after {box-sizing: border-box}

/* ============================================================
  RIGHT NAVIGATION
  外側には背景色を付けない
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav {
  position: absolute;
  inset: 0;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 100%;
  height: 100%;

  margin: 0;
  padding: 0;

  overflow: hidden;

  /* 外側は完全透過 */
  background: transparent;

  pointer-events: none;
}

/* ============================================================
  COMPACT FRAME
  右サイド内に余白を作る
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__frame {
  position: relative;
  isolation: isolate;

  display: flex;
  flex-direction: column;

  flex: 0 1 auto;

  /* 幅を制限して中央に配置 */
  width: min(340px, calc(100% - 32px));

  /* 上下にも余白を確保 */
  height: min(720px, calc(100dvh - 52px));

  min-width: 0;
  min-height: 0;

  margin: auto;

  padding: 24px 20px 26px;

  overflow: hidden;

  border: 1.5px solid var(--threeheart-gold-light);
  border-radius: 20px;

  background: linear-gradient(180deg, #fffef9 0%, #fffdf4 50%, #fffdf5 100%);

  box-shadow:
    0 10px 30px rgba(23, 48, 19, 0.16),
    inset 0 0 18px rgba(225, 215, 170, 0.12);

  pointer-events: auto;
}

/* ============================================================
  SOFT BACKGROUND OVERLAY
  背景画像に文字が埋もれるのを防ぐ
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__frame::before {
  content: "";

  position: absolute;
  inset: 0;
  z-index: 1;

  background: linear-gradient(
    90deg,
    rgba(255, 253, 245, 0.28) 0%,
    rgba(255, 253, 245, 0.64) 20%,
    rgba(255, 254, 249, 0.88) 50%,
    rgba(255, 253, 245, 0.64) 80%,
    rgba(255, 253, 245, 0.28) 100%
  );

  pointer-events: none;
}

/* 内側の細いゴールドライン */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__frame::after {
  content: "";

  position: absolute;
  inset: 6px;
  z-index: 3;

  border: 1px solid rgba(190, 168, 98, 0.4);
  border-radius: 15px;

  pointer-events: none;
}

/* ============================================================
  BACKGROUND IMAGE
  右サイド全体ではなくパネル内部だけ
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__bg {
  position: absolute;
  inset: 0;
  z-index: 0;

  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;

  opacity: 1;

  pointer-events: none;
}

.threeheart-right-nav__bg[src=""],
.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__bg:not([src]) {
  display: none;
}

/* ============================================================
  HEADER
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__header {
  position: relative;
  z-index: 2;

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

  flex: 0 0 auto;

  width: 100%;

  margin: 0;

  padding: 56px 0 23px;

  text-align: center;
}

/* ============================================================
  SCRIPT TEXT
  Health Beauty Happiness
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__script {
  position: absolute;

  top: 0;
  left: 7px;

  margin: 0;
  padding: 0;

  color: #a2ad66;

  font-family: "Allura", cursive !important;

  font-size: 25px;
  font-weight: 400;

  line-height: 0.9;
  letter-spacing: 0.01em;

  text-align: left;
  white-space: pre-line;

  transform: rotate(-10deg);

  opacity: 0.85;

  pointer-events: none;
}

/* ============================================================
  MENU TITLE
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__title {
  margin: 0;
  padding: 0;

  color: var(--threeheart-dark);

  font-family: Georgia, "Times New Roman", serif;

  font-size: 49px;
  font-weight: 400;

  line-height: 1.12;
  letter-spacing: 0.075em;

  text-align: center;
}

/* ============================================================
  SUBTITLE
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__subtitle {
  margin: 13px 0 0;
  padding: 0;

  color: var(--threeheart-dark);

  font-family: "Noto Serif JP", serif;

  font-size: 11px;
  font-weight: 400;

  line-height: 1.9;
  letter-spacing: 0.08em;

  text-align: center;
  white-space: pre-line;
}

/* ============================================================
  HEADER ORNAMENT
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__ornament {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 75%;

  margin-top: 18px;

  gap: 11px;

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

.threeheart-right-nav__ornament::before,
.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__ornament::after {
  content: "";

  flex: 1;

  height: 1px;

  background: var(--threeheart-gold-light);
}

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__ornament span {display: block}

/* ============================================================
  MENU SCROLL AREA
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__scroll {
  position: relative;
  z-index: 2;

  display: flex;

  flex: 1 1 auto;

  width: 100%;
  min-height: 0;

  overflow-x: hidden;
  overflow-y: auto;

  scrollbar-width: none;
  overscroll-behavior: contain;

  -webkit-overflow-scrolling: touch;
}

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__scroll::-webkit-scrollbar {
  display: none;
}

/* ============================================================
  MENU LIST
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__list {
  display: grid;

  grid-template-columns: minmax(0, 1fr);

  grid-template-rows: repeat(6, minmax(65px, 1fr));

  flex: 1 0 auto;

  width: 100%;
  min-height: 100%;

  margin: 0;
  padding: 0;
}

/* ============================================================
  MENU LINK
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link {
  position: relative;

  display: grid;

  grid-template-columns:
    40px
    minmax(0, 1fr)
    10px;

  align-items: center;

  column-gap: 11px;

  width: 100%;
  min-width: 0;
  min-height: 65px;

  margin: 0;
  padding: 10px 3px;

  border: 0;
  border-bottom: 1px solid var(--threeheart-gold-light);

  border-radius: 0;

  background: transparent;

  color: var(--threeheart-dark);
  text-decoration: none;

  cursor: pointer;
  pointer-events: auto;

  transition:
    background-color var(--threeheart-transition),
    color var(--threeheart-transition);

  -webkit-tap-highlight-color: transparent;
}

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link:last-child {
  border-bottom: 0;
}

/* ============================================================
  LINK SEPARATOR ORNAMENT
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link:not(:last-child)::after {
  content: "✦";

  position: absolute;

  left: 50%;
  bottom: -7px;
  z-index: 1;

  transform: translateX(-50%);

  color: var(--threeheart-gold);

  font-family: Georgia, serif;
  font-size: 11px;
  line-height: 1;

  pointer-events: none;
}

/* ============================================================
  NUMBER
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__number {
  display: block;

  min-width: 0;

  color: var(--threeheart-gold);

  font-family: Georgia, "Times New Roman", serif !important;

  font-size: 30px;
  font-weight: 400;
  font-style: italic;

  line-height: 1;
  letter-spacing: -0.055em;

  white-space: nowrap;
}

/* ============================================================
  LINK COPY
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;

  min-width: 0;

  gap: 5px;
}

/* ENGLISH */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__en {
  display: block;

  color: #536a42;

  font-family: Georgia, "Times New Roman", serif;

  font-size: 10px;
  font-weight: 400;

  line-height: 1.3;
  letter-spacing: 0.08em;

  text-transform: uppercase;
}

/* JAPANESE */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__ja {
  display: block;

  color: var(--threeheart-dark);

  font-family: "Noto Serif JP", serif;

  font-size: 13px;
  font-weight: 500;

  line-height: 1.6;
  letter-spacing: 0.015em;

  overflow-wrap: anywhere;
}

/* ============================================================
  ARROW
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__arrow {
  display: block;

  width: 8px;
  height: 8px;

  justify-self: center;

  border-top: 1.5px solid var(--threeheart-gold);
  border-right: 1.5px solid var(--threeheart-gold);

  transform: rotate(45deg);

  transition: transform var(--threeheart-transition);
}

/* ============================================================
  CURRENT SECTION
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link.is-current {
  background: rgba(228, 238, 203, 0.48);
}

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link.is-current .threeheart-right-link__number {
  color: var(--threeheart-green);
}

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link.is-current .threeheart-right-link__ja {
  color: var(--threeheart-green);
  font-weight: 700;
}

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link.is-current .threeheart-right-link__arrow {
  border-color: var(--threeheart-green);
}

/* ============================================================
  HOVER
============================================================ */

@media (hover: hover) and (pointer: fine) {
.tpl-scope-sidepart-right-code-mobile .threeheart-right-link:hover {
    background: rgba(229, 240, 210, 0.6);
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link:hover .threeheart-right-link__arrow {
    transform: translateX(3px) rotate(45deg);
  }
}

/* ============================================================
  PAGE TOP BUTTON
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-page-top {
  position: fixed;

  right: max(18px, env(safe-area-inset-right));
  bottom: max(18px, env(safe-area-inset-bottom));

  z-index: 50;

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

  width: 58px;
  height: 58px;

  margin: 0;
  padding: 0;

  border: 1.5px solid var(--threeheart-gold);
  border-radius: 50%;

  background: linear-gradient(145deg, #fffdf3 0%, #f1f2db 100%);

  box-shadow:
    0 4px 15px rgba(32, 62, 20, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.85);

  color: var(--threeheart-dark);

  appearance: none;

  cursor: pointer;
  pointer-events: auto;

  transition:
    transform var(--threeheart-transition),
    background var(--threeheart-transition);
}

/* 内側の円 */

.tpl-scope-sidepart-right-code-mobile .threeheart-page-top::before {
  content: "";

  position: absolute;
  inset: 5px;

  border: 1px solid rgba(180, 160, 82, 0.35);
  border-radius: 50%;

  pointer-events: none;
}

/* TOP ARROW */

.tpl-scope-sidepart-right-code-mobile .threeheart-page-top__arrow {
  position: relative;
  z-index: 1;

  display: block;

  width: 22px;
  height: 22px;

  color: var(--threeheart-green);
}

/* TOP LABEL */

.tpl-scope-sidepart-right-code-mobile .threeheart-page-top__text {
  position: relative;
  z-index: 1;

  margin-top: -3px;

  color: var(--threeheart-dark);

  font-family: Georgia, "Times New Roman", serif;

  font-size: 11px;
  font-weight: 600;

  line-height: 1.2;
  letter-spacing: 0.1em;
}

/* TOP HOVER */

@media (hover: hover) and (pointer: fine) {
.tpl-scope-sidepart-right-code-mobile .threeheart-page-top:hover {
    transform: translateY(-3px);
    background: #e7f0d6;
  }
}

/* ============================================================
  FOCUS
============================================================ */

.threeheart-right-link:focus-visible,
.threeheart-right-toggle:focus-visible,
.tpl-scope-sidepart-right-code-mobile .threeheart-page-top:focus-visible {
  outline: 2px solid var(--threeheart-green);
  outline-offset: 3px;
}

/* ============================================================
  NARROW PC SIDE
  サイド幅が狭いときもパネル内に収める
============================================================ */

@media (min-width: 1025px) and (max-width: 1250px) {
.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__frame {
    width: min(310px, calc(100% - 24px));

    padding-inline: 15px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__title {
    font-size: 43px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link {
    grid-template-columns:
      35px
      minmax(0, 1fr)
      9px;

    column-gap: 8px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__number {
    font-size: 26px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__ja {
    font-size: 12px;
  }
}

/* ============================================================
  SHORT PC SCREEN
============================================================ */

@media (min-width: 1025px) and (max-height: 750px) {
.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__frame {
    height: calc(100dvh - 30px);
    padding: 14px 17px 18px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__header {
    padding-top: 37px;
    padding-bottom: 12px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__script {
    font-size: 21px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__title {
    font-size: 39px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__subtitle {
    margin-top: 7px;
    font-size: 10px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__ornament {
    margin-top: 9px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__list {
    grid-template-rows: repeat(6, minmax(54px, 1fr));
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link {
    min-height: 54px;
    padding-block: 7px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__number {
    font-size: 25px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__ja {
    font-size: 12px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-page-top {
    width: 50px;
    height: 50px;

    right: 12px;
    bottom: 10px;
  }
}

/* ============================================================
  HAMBURGER
  PC非表示
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-toggle {
  display: none;
}

/* ============================================================
  MOBILE / TABLET
============================================================ */

@media (max-width: 1024px) {
  /* ========================================
    ROOT
  ======================================== */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-side {
    position: fixed;
    inset: 0;

    width: 100%;
    height: 100vh;
    height: 100dvh;

    background: transparent;

    pointer-events: none;
  }

  /* ========================================
    HAMBURGER BUTTON
  ======================================== */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-toggle {
    position: fixed;

    top: max(12px, env(safe-area-inset-top));
    right: max(12px, env(safe-area-inset-right));

    z-index: 30;

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

    width: 54px;
    height: 54px;

    margin: 0;
    padding: 0;

    border: 1px solid var(--threeheart-gold);
    border-radius: 50%;

    background: rgba(255, 253, 244, 0.97);

    box-shadow: 0 4px 15px rgba(49, 70, 31, 0.18);

    color: var(--threeheart-dark);

    appearance: none;

    cursor: pointer;
    pointer-events: auto;
  }

  /* ========================================
    HAMBURGER BARS
  ======================================== */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-toggle__bars {
    position: relative;

    display: block;

    width: 23px;
    height: 17px;

    margin-top: -5px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-toggle__bars span {
    position: absolute;
    left: 0;

    display: block;

    width: 100%;
    height: 1.5px;

    border-radius: 10px;

    background: var(--threeheart-green);

    transition:
      transform var(--threeheart-transition),
      opacity var(--threeheart-transition);
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-toggle__bars span:nth-child(1) {
    top: 0;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-toggle__bars span:nth-child(2) {
    top: 7px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-toggle__bars span:nth-child(3) {
    top: 14px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-toggle__label {
    position: absolute;

    bottom: 6px;
    left: 0;
    right: 0;

    color: var(--threeheart-dark);

    font-family: Georgia, serif;

    font-size: 8px;

    line-height: 1;
    letter-spacing: 0.08em;

    text-align: center;
  }

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

.tpl-scope-sidepart-right-code-mobile .threeheart-right-side.is-open .threeheart-right-toggle__bars span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-side.is-open .threeheart-right-toggle__bars span:nth-child(2) {
    opacity: 0;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-side.is-open .threeheart-right-toggle__bars span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  /* ========================================
    MOBILE NAV BACKDROP
  ======================================== */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav {
    position: fixed;
    inset: 0;

    z-index: 20;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    height: 100vh;
    height: 100dvh;

    padding: max(76px, env(safe-area-inset-top)) 0 max(20px, env(safe-area-inset-bottom));

    background: rgba(27, 47, 23, 0.35);

    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);

    visibility: hidden;
    opacity: 0;

    pointer-events: none;

    transition:
      opacity var(--threeheart-transition),
      visibility 0s linear var(--threeheart-transition);
  }

  /* ========================================
    MOBILE NAV OPEN
  ======================================== */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-side.is-open .threeheart-right-nav {
    visibility: visible;
    opacity: 1;

    pointer-events: auto;

    transition:
      opacity var(--threeheart-transition),
      visibility 0s linear 0s;
  }

  /* ========================================
    MOBILE FRAME
  ======================================== */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__frame {
    width: min(340px, calc(100% - 32px));

    height: min(700px, 100%);

    margin: auto;

    padding: 15px 20px 20px;

    border-radius: 18px;
  }

  /* ========================================
    MOBILE HEADER
  ======================================== */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__header {
    padding-top: 42px;
    padding-bottom: 13px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__script {
    font-size: 23px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__title {
    font-size: 43px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__subtitle {
    margin-top: 8px;
    font-size: 11px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__ornament {
    margin-top: 10px;
  }

  /* ========================================
    MOBILE MENU LIST
  ======================================== */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__list {
    grid-template-rows: repeat(6, minmax(56px, 1fr));
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link {
    min-height: 56px;
    padding-block: 8px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__ja {
    font-size: 13px;
  }

  /* ========================================
    MOBILE PAGE TOP
  ======================================== */

.tpl-scope-sidepart-right-code-mobile .threeheart-page-top {
    right: max(14px, env(safe-area-inset-right));
    bottom: max(16px, env(safe-area-inset-bottom));

    width: 52px;
    height: 52px;
  }

  /* MENU OPEN中はTOP非表示 */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-side.is-open .threeheart-page-top {
    visibility: hidden;
    opacity: 0;

    pointer-events: none;
  }
}

/* ============================================================
  SMALL MOBILE
============================================================ */

@media (max-width: 374px) {
.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav {
    padding: 69px 0 12px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__frame {
    width: calc(100% - 24px);

    padding: 10px 15px 14px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__header {
    padding-top: 34px;
    padding-bottom: 8px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__script {
    font-size: 19px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__title {
    font-size: 37px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__subtitle {
    margin-top: 6px;
    font-size: 10px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__ornament {
    margin-top: 8px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__list {
    grid-template-rows: repeat(6, minmax(52px, 1fr));
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link {
    grid-template-columns:
      36px
      minmax(0, 1fr)
      9px;

    min-height: 52px;

    column-gap: 9px;

    padding: 7px 2px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__number {
    font-size: 26px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__en {
    font-size: 9px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__ja {
    font-size: 12px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-toggle {
    width: 50px;
    height: 50px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-page-top {
    width: 48px;
    height: 48px;
  }
}

/* ============================================================
  REDUCED MOTION
============================================================ */

@media (prefers-reduced-motion: reduce) {
  .threeheart-right-link,
  .threeheart-right-link__arrow,
  .threeheart-right-nav,
  .threeheart-right-toggle__bars span,
.tpl-scope-sidepart-right-code-mobile .threeheart-page-top {
    transition: none;
  }
}
/*--mobile--*/
/* ============================================================
  THREE HEART RIGHT SIDE
  スリーハート・リフレ専用

  PC：右サイド中央にコンパクトなパネル
  SP：全画面ハンバーガーメニュー

  IVORY × BOTANICAL GREEN × GOLD
============================================================ */

/* ============================================================
  PORTAL
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-portal {
  position: fixed;
  inset: 0;
  z-index: 2147483000;

  width: 100%;
  height: 100vh;
  height: 100dvh;

  margin: 0;
  padding: 0;

  border: 0;
  background: transparent;

  pointer-events: none;
}

/* ============================================================
  SCOPE HOST
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-host {
  width: 100%;
  height: 100%;

  background: transparent;
  pointer-events: none;
}

/* ============================================================
  ROOT
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-side {
  --threeheart-center-width: 430px;

  --threeheart-dark: #344c2b;
  --threeheart-green: #5b823b;
  --threeheart-light: #91aa44;

  --threeheart-gold: #b4a052;
  --threeheart-gold-light: #e4d5a2;

  --threeheart-cream: #fffdf5;
  --threeheart-ivory: #faf9f0;

  --threeheart-transition: 0.25s ease;

  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;

  z-index: 1;

  width: max(0px, calc((100vw - var(--threeheart-center-width)) / 2));

  height: 100vh;
  height: 100dvh;

  margin: 0;
  padding: 0;

  box-sizing: border-box;

  background: transparent;

  color: var(--threeheart-dark);

  font-family: "Noto Serif JP", serif;

  pointer-events: none;
}

.threeheart-right-side *,
.threeheart-right-side *::before,
.tpl-scope-sidepart-right-code-mobile .threeheart-right-side *::after {box-sizing: border-box}

/* ============================================================
  RIGHT NAVIGATION
  外側には背景色を付けない
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav {
  position: absolute;
  inset: 0;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 100%;
  height: 100%;

  margin: 0;
  padding: 0;

  overflow: hidden;

  /* 外側は完全透過 */
  background: transparent;

  pointer-events: none;
}

/* ============================================================
  COMPACT FRAME
  右サイド内に余白を作る
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__frame {
  position: relative;
  isolation: isolate;

  display: flex;
  flex-direction: column;

  flex: 0 1 auto;

  /* 幅を制限して中央に配置 */
  width: min(340px, calc(100% - 32px));

  /* 上下にも余白を確保 */
  height: min(720px, calc(100dvh - 52px));

  min-width: 0;
  min-height: 0;

  margin: auto;

  padding: 24px 20px 26px;

  overflow: hidden;

  border: 1.5px solid var(--threeheart-gold-light);
  border-radius: 20px;

  background: linear-gradient(180deg, #fffef9 0%, #fffdf4 50%, #fffdf5 100%);

  box-shadow:
    0 10px 30px rgba(23, 48, 19, 0.16),
    inset 0 0 18px rgba(225, 215, 170, 0.12);

  pointer-events: auto;
}

/* ============================================================
  SOFT BACKGROUND OVERLAY
  背景画像に文字が埋もれるのを防ぐ
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__frame::before {
  content: "";

  position: absolute;
  inset: 0;
  z-index: 1;

  background: linear-gradient(
    90deg,
    rgba(255, 253, 245, 0.28) 0%,
    rgba(255, 253, 245, 0.64) 20%,
    rgba(255, 254, 249, 0.88) 50%,
    rgba(255, 253, 245, 0.64) 80%,
    rgba(255, 253, 245, 0.28) 100%
  );

  pointer-events: none;
}

/* 内側の細いゴールドライン */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__frame::after {
  content: "";

  position: absolute;
  inset: 6px;
  z-index: 3;

  border: 1px solid rgba(190, 168, 98, 0.4);
  border-radius: 15px;

  pointer-events: none;
}

/* ============================================================
  BACKGROUND IMAGE
  右サイド全体ではなくパネル内部だけ
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__bg {
  position: absolute;
  inset: 0;
  z-index: 0;

  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;

  opacity: 1;

  pointer-events: none;
}

.threeheart-right-nav__bg[src=""],
.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__bg:not([src]) {
  display: none;
}

/* ============================================================
  HEADER
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__header {
  position: relative;
  z-index: 2;

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

  flex: 0 0 auto;

  width: 100%;

  margin: 0;

  padding: 56px 0 23px;

  text-align: center;
}

/* ============================================================
  SCRIPT TEXT
  Health Beauty Happiness
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__script {
  position: absolute;

  top: 0;
  left: 7px;

  margin: 0;
  padding: 0;

  color: #a2ad66;

  font-family: "Allura", cursive !important;

  font-size: 25px;
  font-weight: 400;

  line-height: 0.9;
  letter-spacing: 0.01em;

  text-align: left;
  white-space: pre-line;

  transform: rotate(-10deg);

  opacity: 0.85;

  pointer-events: none;
}

/* ============================================================
  MENU TITLE
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__title {
  margin: 0;
  padding: 0;

  color: var(--threeheart-dark);

  font-family: Georgia, "Times New Roman", serif;

  font-size: 49px;
  font-weight: 400;

  line-height: 1.12;
  letter-spacing: 0.075em;

  text-align: center;
}

/* ============================================================
  SUBTITLE
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__subtitle {
  margin: 13px 0 0;
  padding: 0;

  color: var(--threeheart-dark);

  font-family: "Noto Serif JP", serif;

  font-size: 11px;
  font-weight: 400;

  line-height: 1.9;
  letter-spacing: 0.08em;

  text-align: center;
  white-space: pre-line;
}

/* ============================================================
  HEADER ORNAMENT
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__ornament {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 75%;

  margin-top: 18px;

  gap: 11px;

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

.threeheart-right-nav__ornament::before,
.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__ornament::after {
  content: "";

  flex: 1;

  height: 1px;

  background: var(--threeheart-gold-light);
}

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__ornament span {display: block}

/* ============================================================
  MENU SCROLL AREA
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__scroll {
  position: relative;
  z-index: 2;

  display: flex;

  flex: 1 1 auto;

  width: 100%;
  min-height: 0;

  overflow-x: hidden;
  overflow-y: auto;

  scrollbar-width: none;
  overscroll-behavior: contain;

  -webkit-overflow-scrolling: touch;
}

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__scroll::-webkit-scrollbar {
  display: none;
}

/* ============================================================
  MENU LIST
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__list {
  display: grid;

  grid-template-columns: minmax(0, 1fr);

  grid-template-rows: repeat(6, minmax(65px, 1fr));

  flex: 1 0 auto;

  width: 100%;
  min-height: 100%;

  margin: 0;
  padding: 0;
}

/* ============================================================
  MENU LINK
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link {
  position: relative;

  display: grid;

  grid-template-columns:
    40px
    minmax(0, 1fr)
    10px;

  align-items: center;

  column-gap: 11px;

  width: 100%;
  min-width: 0;
  min-height: 65px;

  margin: 0;
  padding: 10px 3px;

  border: 0;
  border-bottom: 1px solid var(--threeheart-gold-light);

  border-radius: 0;

  background: transparent;

  color: var(--threeheart-dark);
  text-decoration: none;

  cursor: pointer;
  pointer-events: auto;

  transition:
    background-color var(--threeheart-transition),
    color var(--threeheart-transition);

  -webkit-tap-highlight-color: transparent;
}

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link:last-child {
  border-bottom: 0;
}

/* ============================================================
  LINK SEPARATOR ORNAMENT
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link:not(:last-child)::after {
  content: "✦";

  position: absolute;

  left: 50%;
  bottom: -7px;
  z-index: 1;

  transform: translateX(-50%);

  color: var(--threeheart-gold);

  font-family: Georgia, serif;
  font-size: 11px;
  line-height: 1;

  pointer-events: none;
}

/* ============================================================
  NUMBER
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__number {
  display: block;

  min-width: 0;

  color: var(--threeheart-gold);

  font-family: Georgia, "Times New Roman", serif !important;

  font-size: 30px;
  font-weight: 400;
  font-style: italic;

  line-height: 1;
  letter-spacing: -0.055em;

  white-space: nowrap;
}

/* ============================================================
  LINK COPY
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;

  min-width: 0;

  gap: 5px;
}

/* ENGLISH */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__en {
  display: block;

  color: #536a42;

  font-family: Georgia, "Times New Roman", serif;

  font-size: 10px;
  font-weight: 400;

  line-height: 1.3;
  letter-spacing: 0.08em;

  text-transform: uppercase;
}

/* JAPANESE */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__ja {
  display: block;

  color: var(--threeheart-dark);

  font-family: "Noto Serif JP", serif;

  font-size: 13px;
  font-weight: 500;

  line-height: 1.6;
  letter-spacing: 0.015em;

  overflow-wrap: anywhere;
}

/* ============================================================
  ARROW
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__arrow {
  display: block;

  width: 8px;
  height: 8px;

  justify-self: center;

  border-top: 1.5px solid var(--threeheart-gold);
  border-right: 1.5px solid var(--threeheart-gold);

  transform: rotate(45deg);

  transition: transform var(--threeheart-transition);
}

/* ============================================================
  CURRENT SECTION
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link.is-current {
  background: rgba(228, 238, 203, 0.48);
}

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link.is-current .threeheart-right-link__number {
  color: var(--threeheart-green);
}

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link.is-current .threeheart-right-link__ja {
  color: var(--threeheart-green);
  font-weight: 700;
}

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link.is-current .threeheart-right-link__arrow {
  border-color: var(--threeheart-green);
}

/* ============================================================
  HOVER
============================================================ */

@media (hover: hover) and (pointer: fine) {
.tpl-scope-sidepart-right-code-mobile .threeheart-right-link:hover {
    background: rgba(229, 240, 210, 0.6);
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link:hover .threeheart-right-link__arrow {
    transform: translateX(3px) rotate(45deg);
  }
}

/* ============================================================
  PAGE TOP BUTTON
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-page-top {
  position: fixed;

  right: max(18px, env(safe-area-inset-right));
  bottom: max(18px, env(safe-area-inset-bottom));

  z-index: 50;

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

  width: 58px;
  height: 58px;

  margin: 0;
  padding: 0;

  border: 1.5px solid var(--threeheart-gold);
  border-radius: 50%;

  background: linear-gradient(145deg, #fffdf3 0%, #f1f2db 100%);

  box-shadow:
    0 4px 15px rgba(32, 62, 20, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.85);

  color: var(--threeheart-dark);

  appearance: none;

  cursor: pointer;
  pointer-events: auto;

  transition:
    transform var(--threeheart-transition),
    background var(--threeheart-transition);
}

/* 内側の円 */

.tpl-scope-sidepart-right-code-mobile .threeheart-page-top::before {
  content: "";

  position: absolute;
  inset: 5px;

  border: 1px solid rgba(180, 160, 82, 0.35);
  border-radius: 50%;

  pointer-events: none;
}

/* TOP ARROW */

.tpl-scope-sidepart-right-code-mobile .threeheart-page-top__arrow {
  position: relative;
  z-index: 1;

  display: block;

  width: 22px;
  height: 22px;

  color: var(--threeheart-green);
}

/* TOP LABEL */

.tpl-scope-sidepart-right-code-mobile .threeheart-page-top__text {
  position: relative;
  z-index: 1;

  margin-top: -3px;

  color: var(--threeheart-dark);

  font-family: Georgia, "Times New Roman", serif;

  font-size: 11px;
  font-weight: 600;

  line-height: 1.2;
  letter-spacing: 0.1em;
}

/* TOP HOVER */

@media (hover: hover) and (pointer: fine) {
.tpl-scope-sidepart-right-code-mobile .threeheart-page-top:hover {
    transform: translateY(-3px);
    background: #e7f0d6;
  }
}

/* ============================================================
  FOCUS
============================================================ */

.threeheart-right-link:focus-visible,
.threeheart-right-toggle:focus-visible,
.tpl-scope-sidepart-right-code-mobile .threeheart-page-top:focus-visible {
  outline: 2px solid var(--threeheart-green);
  outline-offset: 3px;
}

/* ============================================================
  NARROW PC SIDE
  サイド幅が狭いときもパネル内に収める
============================================================ */

@media (min-width: 1025px) and (max-width: 1250px) {
.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__frame {
    width: min(310px, calc(100% - 24px));

    padding-inline: 15px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__title {
    font-size: 43px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link {
    grid-template-columns:
      35px
      minmax(0, 1fr)
      9px;

    column-gap: 8px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__number {
    font-size: 26px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__ja {
    font-size: 12px;
  }
}

/* ============================================================
  SHORT PC SCREEN
============================================================ */

@media (min-width: 1025px) and (max-height: 750px) {
.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__frame {
    height: calc(100dvh - 30px);
    padding: 14px 17px 18px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__header {
    padding-top: 37px;
    padding-bottom: 12px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__script {
    font-size: 21px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__title {
    font-size: 39px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__subtitle {
    margin-top: 7px;
    font-size: 10px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__ornament {
    margin-top: 9px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__list {
    grid-template-rows: repeat(6, minmax(54px, 1fr));
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link {
    min-height: 54px;
    padding-block: 7px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__number {
    font-size: 25px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__ja {
    font-size: 12px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-page-top {
    width: 50px;
    height: 50px;

    right: 12px;
    bottom: 10px;
  }
}

/* ============================================================
  HAMBURGER
  PC非表示
============================================================ */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-toggle {
  display: none;
}

/* ============================================================
  MOBILE / TABLET
============================================================ */

@media (max-width: 1024px) {
  /* ========================================
    ROOT
  ======================================== */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-side {
    position: fixed;
    inset: 0;

    width: 100%;
    height: 100vh;
    height: 100dvh;

    background: transparent;

    pointer-events: none;
  }

  /* ========================================
    HAMBURGER BUTTON
  ======================================== */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-toggle {
    position: fixed;

    top: max(12px, env(safe-area-inset-top));
    right: max(12px, env(safe-area-inset-right));

    z-index: 30;

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

    width: 54px;
    height: 54px;

    margin: 0;
    padding: 0;

    border: 1px solid var(--threeheart-gold);
    border-radius: 50%;

    background: rgba(255, 253, 244, 0.97);

    box-shadow: 0 4px 15px rgba(49, 70, 31, 0.18);

    color: var(--threeheart-dark);

    appearance: none;

    cursor: pointer;
    pointer-events: auto;
  }

  /* ========================================
    HAMBURGER BARS
  ======================================== */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-toggle__bars {
    position: relative;

    display: block;

    width: 23px;
    height: 17px;

    margin-top: -5px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-toggle__bars span {
    position: absolute;
    left: 0;

    display: block;

    width: 100%;
    height: 1.5px;

    border-radius: 10px;

    background: var(--threeheart-green);

    transition:
      transform var(--threeheart-transition),
      opacity var(--threeheart-transition);
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-toggle__bars span:nth-child(1) {
    top: 0;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-toggle__bars span:nth-child(2) {
    top: 7px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-toggle__bars span:nth-child(3) {
    top: 14px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-toggle__label {
    position: absolute;

    bottom: 6px;
    left: 0;
    right: 0;

    color: var(--threeheart-dark);

    font-family: Georgia, serif;

    font-size: 8px;

    line-height: 1;
    letter-spacing: 0.08em;

    text-align: center;
  }

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

.tpl-scope-sidepart-right-code-mobile .threeheart-right-side.is-open .threeheart-right-toggle__bars span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-side.is-open .threeheart-right-toggle__bars span:nth-child(2) {
    opacity: 0;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-side.is-open .threeheart-right-toggle__bars span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
  }

  /* ========================================
    MOBILE NAV BACKDROP
  ======================================== */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav {
    position: fixed;
    inset: 0;

    z-index: 20;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 100%;
    height: 100vh;
    height: 100dvh;

    padding: max(76px, env(safe-area-inset-top)) 0 max(20px, env(safe-area-inset-bottom));

    background: rgba(27, 47, 23, 0.35);

    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);

    visibility: hidden;
    opacity: 0;

    pointer-events: none;

    transition:
      opacity var(--threeheart-transition),
      visibility 0s linear var(--threeheart-transition);
  }

  /* ========================================
    MOBILE NAV OPEN
  ======================================== */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-side.is-open .threeheart-right-nav {
    visibility: visible;
    opacity: 1;

    pointer-events: auto;

    transition:
      opacity var(--threeheart-transition),
      visibility 0s linear 0s;
  }

  /* ========================================
    MOBILE FRAME
  ======================================== */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__frame {
    width: min(340px, calc(100% - 32px));

    height: min(700px, 100%);

    margin: auto;

    padding: 15px 20px 20px;

    border-radius: 18px;
  }

  /* ========================================
    MOBILE HEADER
  ======================================== */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__header {
    padding-top: 42px;
    padding-bottom: 13px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__script {
    font-size: 23px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__title {
    font-size: 43px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__subtitle {
    margin-top: 8px;
    font-size: 11px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__ornament {
    margin-top: 10px;
  }

  /* ========================================
    MOBILE MENU LIST
  ======================================== */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__list {
    grid-template-rows: repeat(6, minmax(56px, 1fr));
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link {
    min-height: 56px;
    padding-block: 8px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__ja {
    font-size: 13px;
  }

  /* ========================================
    MOBILE PAGE TOP
  ======================================== */

.tpl-scope-sidepart-right-code-mobile .threeheart-page-top {
    right: max(14px, env(safe-area-inset-right));
    bottom: max(16px, env(safe-area-inset-bottom));

    width: 52px;
    height: 52px;
  }

  /* MENU OPEN中はTOP非表示 */

.tpl-scope-sidepart-right-code-mobile .threeheart-right-side.is-open .threeheart-page-top {
    visibility: hidden;
    opacity: 0;

    pointer-events: none;
  }
}

/* ============================================================
  SMALL MOBILE
============================================================ */

@media (max-width: 374px) {
.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav {
    padding: 69px 0 12px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__frame {
    width: calc(100% - 24px);

    padding: 10px 15px 14px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__header {
    padding-top: 34px;
    padding-bottom: 8px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__script {
    font-size: 19px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__title {
    font-size: 37px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__subtitle {
    margin-top: 6px;
    font-size: 10px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__ornament {
    margin-top: 8px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-nav__list {
    grid-template-rows: repeat(6, minmax(52px, 1fr));
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link {
    grid-template-columns:
      36px
      minmax(0, 1fr)
      9px;

    min-height: 52px;

    column-gap: 9px;

    padding: 7px 2px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__number {
    font-size: 26px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__en {
    font-size: 9px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-link__ja {
    font-size: 12px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-right-toggle {
    width: 50px;
    height: 50px;
  }

.tpl-scope-sidepart-right-code-mobile .threeheart-page-top {
    width: 48px;
    height: 48px;
  }
}

/* ============================================================
  REDUCED MOTION
============================================================ */

@media (prefers-reduced-motion: reduce) {
  .threeheart-right-link,
  .threeheart-right-link__arrow,
  .threeheart-right-nav,
  .threeheart-right-toggle__bars span,
.tpl-scope-sidepart-right-code-mobile .threeheart-page-top {
    transition: none;
  }
}
/* === inspector overrides === */
/* 検証モードで変更：2026/10/16 18:17:13 */
.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news-card__text {
  font-size: 14px !important;
}
/* === end inspector overrides === */
@media (max-width: 768px) {
/* === inspector overrides === */
/* 検証モードで変更：2026/10/16 18:17:13 */
.tpl-scope-cmqj9mq8600ev0h3y4h7t1ptn .news-card__text {
  font-size: 14px !important;
}
/* === end inspector overrides === */
}
/* ========================================
   WELCOME SECTION
   共通CSSと組み合わせて使用
======================================== */

.section--welcome {
  position: relative;
  overflow: hidden;
  padding-bottom: 0;
  isolation: isolate;
}

/* ========================================
   TOP BACKGROUND IMAGE
   横幅430px・上部中央配置
======================================== */

.welcome__top-background {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 0;

  width: 430px;
  max-width: 100%;

  transform: translateX(-50%);
  pointer-events: none;
}

.welcome__top-background img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* 画像未設定時は非表示 */
.welcome__top-background img[src=""] {
  display: none;
}

/* ========================================
   INNER CONTENT
======================================== */

.section--welcome .welcome__inner {
  position: relative;
  z-index: 1;
}

/* ========================================
   HEADER
======================================== */

.section--welcome .welcome__catch {
  color: var(--lpc-color-accent);
  font-size: 20px;
}

/* ========================================
   MESSAGE
======================================== */

.section--welcome .welcome__message {
  margin-bottom: var(--lpc-space-xl);
  text-align: center;
}

.section--welcome .welcome__paragraph {
  margin-bottom: var(--lpc-space-md);
  font-weight: 500;
  text-align: center;
}

.section--welcome .welcome__paragraph:last-child {
  margin-bottom: 0;
}

/* ========================================
   PHOTO GALLERY
======================================== */

.section--welcome .welcome__photos {
  position: relative;
  z-index: 1;

  display: flex;
  flex-direction: column;

  width: 100%;
  gap: var(--lpc-space-xs);
}

/* 全幅写真は角丸なし */
.section--welcome .welcome__photo {
  width: 100%;
  aspect-ratio: 2.05 / 1;

  margin: 0;
  padding: 0;

  overflow: hidden;
  border-radius: 0;
}

.section--welcome .welcome__photo img {
  display: block;
  width: 100%;
  height: 100%;

  object-fit: cover;
  border-radius: 0;
}

/* === inspector overrides === */
/* 検証モードで変更：2026/10/26 15:29:33 */
.tpl-scope-manual-sec-1792135824760-h26x6 .welcome__paragraph {
  padding-top: 12px !important;
}
.tpl-scope-manual-sec-1792135824760-h26x6 .section--welcome {
  padding-top: 48px !important;
}
/* === end inspector overrides === */
@media (max-width: 768px) {
/* ========================================
   WELCOME SECTION
   共通CSSと組み合わせて使用
======================================== */

.section--welcome {
  position: relative;
  overflow: hidden;
  padding-bottom: 0;
  isolation: isolate;
}

/* ========================================
   TOP BACKGROUND IMAGE
   横幅430px・上部中央配置
======================================== */

.welcome__top-background {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 0;

  width: 430px;
  max-width: 100%;

  transform: translateX(-50%);
  pointer-events: none;
}

.welcome__top-background img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* 画像未設定時は非表示 */
.welcome__top-background img[src=""] {
  display: none;
}

/* ========================================
   INNER CONTENT
======================================== */

.section--welcome .welcome__inner {
  position: relative;
  z-index: 1;
}

/* ========================================
   HEADER
======================================== */

.section--welcome .welcome__catch {
  color: var(--lpc-color-accent);
  font-size: 20px;
}

/* ========================================
   MESSAGE
======================================== */

.section--welcome .welcome__message {
  margin-bottom: var(--lpc-space-xl);
  text-align: center;
}

.section--welcome .welcome__paragraph {
  margin-bottom: var(--lpc-space-md);
  font-weight: 500;
  text-align: center;
}

.section--welcome .welcome__paragraph:last-child {
  margin-bottom: 0;
}

/* ========================================
   PHOTO GALLERY
======================================== */

.section--welcome .welcome__photos {
  position: relative;
  z-index: 1;

  display: flex;
  flex-direction: column;

  width: 100%;
  gap: var(--lpc-space-xs);
}

/* 全幅写真は角丸なし */
.section--welcome .welcome__photo {
  width: 100%;
  aspect-ratio: 2.05 / 1;

  margin: 0;
  padding: 0;

  overflow: hidden;
  border-radius: 0;
}

.section--welcome .welcome__photo img {
  display: block;
  width: 100%;
  height: 100%;

  object-fit: cover;
  border-radius: 0;
}

/* === inspector overrides === */
/* 検証モードで変更：2026/10/26 15:29:33 */
.tpl-scope-manual-sec-1792135824760-h26x6 .welcome__paragraph {
  padding-top: 12px !important;
}
.tpl-scope-manual-sec-1792135824760-h26x6 .section--welcome {
  padding-top: 48px !important;
}
/* === end inspector overrides === */
}
/* ========================================
   PROBLEM SECTION
   共通CSSと組み合わせて使用
======================================== */

.section--problem {
  position: relative;
  overflow: hidden;
  isolation: isolate;

  padding-bottom: 0 !important;

  background:
    radial-gradient(ellipse at 0% 23%, var(--lpc-color-glow), var(--lpc-color-clear) 35%),
    radial-gradient(ellipse at 100% 1%, var(--lpc-color-glow), var(--lpc-color-clear) 28%),
    var(--lpc-color-background);
}

/* ========================================
   TOP BACKGROUND IMAGE
   横幅430px・上部中央配置
======================================== */

.problem__top-background {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 0;

  width: 430px;
  max-width: 100%;

  transform: translateX(-50%);
  pointer-events: none;
}

.problem__top-background img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* 画像未設定時は非表示 */
.problem__top-background img[src=""] {
  display: none;
}

/* ========================================
   INNER CONTENT
======================================== */

.section--problem .problem__inner {
  position: relative;
  z-index: 1;
}

/* ========================================
   HEADER
======================================== */

.problem__title-line {
  display: block;
}

.problem__title-highlight,
.problem__card-emphasis {
  color: var(--lpc-color-accent);
}

.section--problem .problem__intro {
  font-size: 20px;
  font-weight: 500;
}

/* ========================================
   TROUBLE CARDS
======================================== */

.problem__card {
  position: relative;
  display: grid;

  grid-template-columns: var(--lpc-icon-size) minmax(0, 1fr);

  align-items: center;
  gap: var(--lpc-card-gap);

  min-height: 68px;
  padding: var(--lpc-card-padding);

  overflow: hidden;
  isolation: isolate;
}

/* ========================================
   CARD IMAGE
======================================== */

.problem__card-media {
  position: absolute;
  z-index: 0;

  inset: 0 0 0 auto;
  width: 45%;

  overflow: hidden;
}

.problem__card-image {
  display: block;
  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;
}

.problem__card-image[src=""] {
  display: none;
}

/* 写真に白グラデーションを重ねる */
.problem__card-media::after {
  content: "";

  position: absolute;
  inset: 0;

  background: linear-gradient(
    90deg,
    var(--lpc-color-surface),
    var(--lpc-color-overlay-strong) 18%,
    var(--lpc-color-overlay) 48%,
    var(--lpc-color-overlay-clear) 85%
  );

  pointer-events: none;
}

/* ========================================
   CHECK ICON
======================================== */

.problem__check,
.problem__card-text {
  position: relative;
  z-index: 1;
}

.problem__check svg {
  display: block;
  width: var(--lpc-icon-glyph-size);
  height: var(--lpc-icon-glyph-size);
}

/* ========================================
   CARD TEXT
======================================== */

.problem__card-text {
  min-width: 0;
  overflow-wrap: anywhere;
}

.section--problem .problem__card-before,
.section--problem .problem__card-after {
  font-weight: 500;
}

.problem__card-before:empty,
.problem__card-after:empty,
.problem__card-emphasis:empty {
  display: none;
}

/* ========================================
   CLOSING IMAGE
   1枚画像・横幅最大430px
======================================== */

.problem__closing {
  position: relative;
  z-index: 1;

  width: 100%;
  max-width: 430px;

  margin: 0 auto;
  padding: 0;

  overflow: hidden;
}

.problem__closing-image {
  display: block;

  width: 100%;
  height: auto;

  object-fit: contain;

  margin: 0;
  padding: 0;
}

/* 画像未設定時は非表示 */
.problem__closing-image[src=""] {
  display: none;
}

/* === inspector overrides === */
/* 検証モードで変更：2026/10/26 15:29:20 */
.tpl-scope-manual-sec-1792135878370-z5hiy .problem__intro {
  font-size: 14px !important;
  font-weight: 400 !important;
}
.tpl-scope-manual-sec-1792135878370-z5hiy .problem__card-before {
  font-size: 16px !important;
}
.tpl-scope-manual-sec-1792135878370-z5hiy .problem__card-emphasis {
  font-size: 16px !important;
}
.tpl-scope-manual-sec-1792135878370-z5hiy .problem__card-after {
  font-size: 16px !important;
}
.tpl-scope-manual-sec-1792135878370-z5hiy .section--problem {
  padding-top: 40px !important;
}
/* === end inspector overrides === */
@media (max-width: 768px) {
/* ========================================
   PROBLEM SECTION
   共通CSSと組み合わせて使用
======================================== */

.section--problem {
  position: relative;
  overflow: hidden;
  isolation: isolate;

  padding-bottom: 0 !important;

  background:
    radial-gradient(ellipse at 0% 23%, var(--lpc-color-glow), var(--lpc-color-clear) 35%),
    radial-gradient(ellipse at 100% 1%, var(--lpc-color-glow), var(--lpc-color-clear) 28%),
    var(--lpc-color-background);
}

/* ========================================
   TOP BACKGROUND IMAGE
   横幅430px・上部中央配置
======================================== */

.problem__top-background {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 0;

  width: 430px;
  max-width: 100%;

  transform: translateX(-50%);
  pointer-events: none;
}

.problem__top-background img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* 画像未設定時は非表示 */
.problem__top-background img[src=""] {
  display: none;
}

/* ========================================
   INNER CONTENT
======================================== */

.section--problem .problem__inner {
  position: relative;
  z-index: 1;
}

/* ========================================
   HEADER
======================================== */

.problem__title-line {
  display: block;
}

.problem__title-highlight,
.problem__card-emphasis {
  color: var(--lpc-color-accent);
}

.section--problem .problem__intro {
  font-size: 20px;
  font-weight: 500;
}

/* ========================================
   TROUBLE CARDS
======================================== */

.problem__card {
  position: relative;
  display: grid;

  grid-template-columns: var(--lpc-icon-size) minmax(0, 1fr);

  align-items: center;
  gap: var(--lpc-card-gap);

  min-height: 68px;
  padding: var(--lpc-card-padding);

  overflow: hidden;
  isolation: isolate;
}

/* ========================================
   CARD IMAGE
======================================== */

.problem__card-media {
  position: absolute;
  z-index: 0;

  inset: 0 0 0 auto;
  width: 45%;

  overflow: hidden;
}

.problem__card-image {
  display: block;
  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center;
}

.problem__card-image[src=""] {
  display: none;
}

/* 写真に白グラデーションを重ねる */
.problem__card-media::after {
  content: "";

  position: absolute;
  inset: 0;

  background: linear-gradient(
    90deg,
    var(--lpc-color-surface),
    var(--lpc-color-overlay-strong) 18%,
    var(--lpc-color-overlay) 48%,
    var(--lpc-color-overlay-clear) 85%
  );

  pointer-events: none;
}

/* ========================================
   CHECK ICON
======================================== */

.problem__check,
.problem__card-text {
  position: relative;
  z-index: 1;
}

.problem__check svg {
  display: block;
  width: var(--lpc-icon-glyph-size);
  height: var(--lpc-icon-glyph-size);
}

/* ========================================
   CARD TEXT
======================================== */

.problem__card-text {
  min-width: 0;
  overflow-wrap: anywhere;
}

.section--problem .problem__card-before,
.section--problem .problem__card-after {
  font-weight: 500;
}

.problem__card-before:empty,
.problem__card-after:empty,
.problem__card-emphasis:empty {
  display: none;
}

/* ========================================
   CLOSING IMAGE
   1枚画像・横幅最大430px
======================================== */

.problem__closing {
  position: relative;
  z-index: 1;

  width: 100%;
  max-width: 430px;

  margin: 0 auto;
  padding: 0;

  overflow: hidden;
}

.problem__closing-image {
  display: block;

  width: 100%;
  height: auto;

  object-fit: contain;

  margin: 0;
  padding: 0;
}

/* 画像未設定時は非表示 */
.problem__closing-image[src=""] {
  display: none;
}

/* === inspector overrides === */
/* 検証モードで変更：2026/10/26 15:29:20 */
.tpl-scope-manual-sec-1792135878370-z5hiy .problem__intro {
  font-size: 14px !important;
  font-weight: 400 !important;
}
.tpl-scope-manual-sec-1792135878370-z5hiy .problem__card-before {
  font-size: 16px !important;
}
.tpl-scope-manual-sec-1792135878370-z5hiy .problem__card-emphasis {
  font-size: 16px !important;
}
.tpl-scope-manual-sec-1792135878370-z5hiy .problem__card-after {
  font-size: 16px !important;
}
.tpl-scope-manual-sec-1792135878370-z5hiy .section--problem {
  padding-top: 40px !important;
}
/* === end inspector overrides === */
}
/* ========================================
   STRENGTHS SECTION
   共通CSSと組み合わせて使用
======================================== */

.section--strengths {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

/* ========================================
   TOP BACKGROUND IMAGE
   横幅430px・上部中央配置
======================================== */

.strengths__top-background {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 0;

  width: 430px;
  max-width: 100%;

  transform: translateX(-50%);
  pointer-events: none;
}

.strengths__top-background img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* 画像未設定時は非表示 */
.strengths__top-background img[src=""] {
  display: none;
}

/* ========================================
   INNER CONTENT
======================================== */

.section--strengths .strengths__inner {
  position: relative;
  z-index: 1;
}

/* ========================================
   HEADER
======================================== */

.section--strengths .strengths__lead {
  font-size: 20px;
  font-weight: 500;
}

/* ========================================
   STRENGTHS LIST
======================================== */

.strengths__item {
  overflow: hidden;
}

/* ========================================
   IMAGE
======================================== */

.strengths__image {
  width: 100%;
  aspect-ratio: 3.13 / 1;
  overflow: hidden;
}

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

.strengths__image img[src=""] {
  display: none;
}

/* ========================================
   CONTENT
======================================== */

.strengths__content {
  display: grid;
  grid-template-columns: 51px minmax(0, 1fr);
  align-items: start;

  gap: var(--lpc-card-gap);
  padding: var(--lpc-card-padding);
}

/* ========================================
   NUMBER
======================================== */

.strengths__number {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 51px;
  height: 51px;

  border-radius: 44% 55% 46% 53%;

  background: var(--lpc-color-subtle);
  color: var(--lpc-color-accent);
}

.strengths__number-text {
  display: block;

  font-family: var(--lpc-font-english);
  font-size: var(--lpc-font-size-title);
  font-style: normal;
  line-height: 1;
}

/* ========================================
   TEXT
======================================== */

.strengths__text {
  min-width: 0;
}

.section--strengths .strengths__item-title {
  font-size: 17px;
}

.section--strengths .strengths__description {
  font-size: 13px;
  font-weight: 500;
}

/* === inspector overrides === */
/* 検証モードで変更：2026/10/26 15:29:04 */
.tpl-scope-manual-sec-1792135920519-etlx1 .strengths__item-title {
  font-size: 18px !important;
}
.tpl-scope-manual-sec-1792135920519-etlx1 .strengths__description {
  font-size: 14px !important;
}
.tpl-scope-manual-sec-1792135920519-etlx1 .strengths__lead {
  font-size: 14px !important;
  font-weight: 400 !important;
}
.tpl-scope-manual-sec-1792135920519-etlx1 .section--strengths {
  padding-top: 56px !important;
}
/* === end inspector overrides === */

@media (max-width: 768px) {
  .tpl-scope-manual-sec-1792135920519-etlx1 .strengths__item-title {
    font-size: 15px !important;
  }

  .tpl-scope-manual-sec-1792135920519-etlx1 .strengths__description {
    font-size: 12px !important;
  }
}
/* AI編集: 2026/10/19 16:20:51 */
@media (max-width: 768px){.tpl-scope-manual-sec-1792135920519-etlx1 .strengths__item-title{font-size:18px!important;}}
/* AI編集: 2026/10/19 16:22:32 */
@media (max-width: 768px) { .tpl-scope-manual-sec-1792135920519-etlx1 .strengths__description { font-size: 13px !important; } }
@media (max-width: 768px) {
/* ========================================
   STRENGTHS SECTION
   共通CSSと組み合わせて使用
======================================== */

.section--strengths {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

/* ========================================
   TOP BACKGROUND IMAGE
   横幅430px・上部中央配置
======================================== */

.strengths__top-background {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 0;

  width: 430px;
  max-width: 100%;

  transform: translateX(-50%);
  pointer-events: none;
}

.strengths__top-background img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* 画像未設定時は非表示 */
.strengths__top-background img[src=""] {
  display: none;
}

/* ========================================
   INNER CONTENT
======================================== */

.section--strengths .strengths__inner {
  position: relative;
  z-index: 1;
}

/* ========================================
   HEADER
======================================== */

.section--strengths .strengths__lead {
  font-size: 20px;
  font-weight: 500;
}

/* ========================================
   STRENGTHS LIST
======================================== */

.strengths__item {
  overflow: hidden;
}

/* ========================================
   IMAGE
======================================== */

.strengths__image {
  width: 100%;
  aspect-ratio: 3.13 / 1;
  overflow: hidden;
}

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

.strengths__image img[src=""] {
  display: none;
}

/* ========================================
   CONTENT
======================================== */

.strengths__content {
  display: grid;
  grid-template-columns: 51px minmax(0, 1fr);
  align-items: start;

  gap: var(--lpc-card-gap);
  padding: var(--lpc-card-padding);
}

/* ========================================
   NUMBER
======================================== */

.strengths__number {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 51px;
  height: 51px;

  border-radius: 44% 55% 46% 53%;

  background: var(--lpc-color-subtle);
  color: var(--lpc-color-accent);
}

.strengths__number-text {
  display: block;

  font-family: var(--lpc-font-english);
  font-size: var(--lpc-font-size-title);
  font-style: normal;
  line-height: 1;
}

/* ========================================
   TEXT
======================================== */

.strengths__text {
  min-width: 0;
}

.section--strengths .strengths__item-title {
  font-size: 17px;
}

.section--strengths .strengths__description {
  font-size: 13px;
  font-weight: 500;
}

/* === inspector overrides === */
/* 検証モードで変更：2026/10/26 15:29:04 */
.tpl-scope-manual-sec-1792135920519-etlx1 .strengths__item-title {
  font-size: 18px !important;
}
.tpl-scope-manual-sec-1792135920519-etlx1 .strengths__description {
  font-size: 14px !important;
}
.tpl-scope-manual-sec-1792135920519-etlx1 .strengths__lead {
  font-size: 14px !important;
  font-weight: 400 !important;
}
.tpl-scope-manual-sec-1792135920519-etlx1 .section--strengths {
  padding-top: 56px !important;
}
/* === end inspector overrides === */

@media (max-width: 768px) {
  .tpl-scope-manual-sec-1792135920519-etlx1 .strengths__item-title {
    font-size: 15px !important;
  }

  .tpl-scope-manual-sec-1792135920519-etlx1 .strengths__description {
    font-size: 12px !important;
  }
}
/* AI編集: 2026/10/19 16:20:51 */
@media (max-width: 768px){.tpl-scope-manual-sec-1792135920519-etlx1 .strengths__item-title{font-size:18px!important;}}
/* AI編集: 2026/10/19 16:22:32 */
@media (max-width: 768px) { .tpl-scope-manual-sec-1792135920519-etlx1 .strengths__description { font-size: 13px !important; } }
}
/* MENU 固有CSS：LPcraftの共通CSSと組み合わせて使用 */
.section--menu {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

/* 背景はコンテンツの背面／画像の比率を維持 */
.menu__top-background,
.menu__bottom-background {
  position: absolute;
  left: 50%;
  z-index: 0;
  width: 430px;
  max-width: 100%;
  transform: translateX(-50%);
  pointer-events: none;
}
.menu__top-background {
  top: 0;
}
.menu__bottom-background {
  bottom: 0;
}
.menu__top-background img,
.menu__bottom-background img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
.menu__top-background img[src=""],
.menu__bottom-background img[src=""] {
  display: none;
}
.section--menu .menu__inner {
  position: relative;
  z-index: 1;
}

.section--menu .menu__intro {
  font-weight: 500;
}

/* アコーディオン */
.menu__list {
  display: grid;
  gap: var(--lpc-space-md, 16px);
}
.section--menu .menu__item {
  overflow: hidden;
  padding: 0;
  border-radius: var(--lpc-radius-card, 12px);
  background: var(--lpc-color-surface, #fff);
}
.menu__item-trigger {
  display: grid;
  grid-template-columns: 40% minmax(0, 1fr);
  align-items: stretch;
  width: 100%;
  min-height: 104px;
  margin: 0;
  padding: 0;
  cursor: pointer;
  list-style: none;
  background: var(--lpc-color-surface, #fff);
}
.menu__item-trigger::-webkit-details-marker {
  display: none;
}
.menu__item-trigger::marker {
  content: "";
}
.menu__item-trigger:focus-visible {
  outline: 2px solid var(--lpc-color-accent, #80aa4b);
  outline-offset: -3px;
}
.menu__item-image {
  width: 100%;
  min-width: 0;
  min-height: 104px;
  overflow: hidden;
  background: var(--lpc-color-subtle, #eef5df);
}
.menu__item-image img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 104px;
  object-fit: cover;
}
.menu__item-image img[src=""] {
  display: none;
}
.menu__item-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 28px;
  align-items: center;
  gap: var(--lpc-card-gap, 12px);
  min-width: 0;
  padding: var(--lpc-card-padding, 14px);
}
.menu__item-text {
  min-width: 0;
}
.section--menu .menu__item-title {
  margin: 0 0 6px;
}
.section--menu .menu__item-title strong {
  font-size: 18px;
  line-height: 1.5;
}
.section--menu .menu__item-description {
  margin: 0;
  font-size: 14px;
  line-height: 1.65;
  overflow-wrap: anywhere;
}
.menu__item-icon {
  position: relative;
  display: block;
  width: 28px;
  height: 28px;
  border: 1px solid var(--lpc-color-accent, #80aa4b);
  border-radius: 50%;
  color: var(--lpc-color-accent, #80aa4b);
  transition:
    background-color 0.2s ease,
    color 0.2s ease;
}
.menu__item-icon::before,
.menu__item-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  background: currentColor;
  border-radius: 2px;
  transform: translate(-50%, -50%);
  transition: transform 0.2s ease;
}
.menu__item-icon::before {
  width: 12px;
  height: 2px;
}
.menu__item-icon::after {
  width: 2px;
  height: 12px;
}
.menu__item[open] .menu__item-icon {
  background: var(--lpc-color-accent, #80aa4b);
  color: #fff;
}
.menu__item[open] .menu__item-icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
.menu__item[open] .menu__item-trigger {
  background: var(--lpc-color-background, #f9fbf3);
}
.menu__item-detail {
  padding: 0 var(--lpc-card-padding, 16px);
  border-top: var(--lpc-border, 1px solid #e5ecd9);
}

/* メニュー内容：対象・時間・名前・説明・金額 */
.menu__courses {
  display: grid;
}
.menu__course {
  padding: 20px 0;
  border-bottom: 1px solid var(--lpc-color-subtle, #e7eddb);
}
.menu__course:last-child {
  border-bottom: 0;
}
.menu__course-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  margin-bottom: 8px;
}
.menu__course-tag,
.menu__course-time {
  display: inline-flex;
  align-items: center;
  min-height: 23px;
  padding: 2px 9px;
  border-radius: 100px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.5;
}
.menu__course-tag {
  color: var(--lpc-color-accent, #678d39);
  background: var(--lpc-color-subtle, #eef5df);
}
.menu__course-tag[data-target="新規"] {
  color: #975b39;
  background: #f9ebde;
}
.menu__course-time {
  color: var(--lpc-color-heading, #414b35);
  background: #f4f4ef;
}
.menu__course-tag:empty,
.menu__course-time:empty {
  display: none;
}
.section--menu .menu__course-title {
  margin: 0 0 8px;
  color: var(--lpc-color-heading, #34432b);
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.65;
  overflow-wrap: anywhere;
}
.section--menu .menu__course-description {
  margin: 0;
  color: var(--lpc-color-text, #525b4d);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.85;
  overflow-wrap: anywhere;
}
.menu__course-prices {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: baseline;
  gap: 6px 12px;
  margin-top: 10px;
}
.menu__course-original {
  color: var(--lpc-color-muted, #8a9085);
  font-size: 12px;
  text-decoration: line-through;
}
.menu__course-original:empty {
  display: none;
}
.menu__course-price {
  color: var(--lpc-color-accent, #678d39);
  font-family: var(--lpc-font-english, Georgia, serif);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
}

/* 下部メッセージ・CTA */
.menu__bottom {
  position: relative;
  padding-top: var(--lpc-space-xl, 32px);
}
.menu__bottom-message {
  display: grid;
  grid-template-columns: var(--lpc-space-lg, 24px) minmax(0, 1fr) var(--lpc-space-lg, 24px);
  align-items: center;
  gap: var(--lpc-card-gap, 12px);
}
.section--menu .menu__bottom-text {
  margin: 0;
  font-size: 13px;
  font-weight: 500;
  text-align: center;
}
.menu__bottom-line {
  display: block;
  width: var(--lpc-border-width, 1px);
  height: 29px;
  margin-inline: auto;
  background: var(--lpc-color-heading, #414b35);
}
.menu__bottom-line--left {
  transform: rotate(-29deg);
}
.menu__bottom-line--right {
  transform: rotate(29deg);
}
.section--menu .menu__button {
  position: relative;
}
.menu__button-label {
  display: block;
  color: inherit;
}
.menu__button-arrow {
  position: absolute;
  right: var(--lpc-space-xl, 24px);
  top: 50%;
  display: block;
  width: var(--lpc-arrow-size, 8px);
  height: var(--lpc-arrow-size, 8px);
  border-top: var(--lpc-arrow-stroke, 2px) solid currentColor;
  border-right: var(--lpc-arrow-stroke, 2px) solid currentColor;
  transform: translateY(-50%) rotate(45deg);
}
@media (hover: hover) {
  .menu__item-trigger:hover .menu__item-icon {
    background: var(--lpc-color-accent, #80aa4b);
    color: #fff;
  }
}
@media (prefers-reduced-motion: reduce) {
  .menu__item-icon,
  .menu__item-icon::before,
  .menu__item-icon::after {
    transition: none;
  }
}

@media (max-width: 768px) {
  .section--menu .menu__item-title strong {
    font-size: 17px !important;
  }

  .section--menu .menu__item-description {
    font-size: 13px !important;
  }

  .section--menu .menu__bottom-text {
    font-size: 11px !important;
  }
}

/* === inspector overrides === */
/* 検証モードで変更：2026/10/26 15:28:36 */
.tpl-scope-manual-sec-1792135965671-p8qjh .menu__intro {
  font-size: 14px !important;
  font-weight: 400 !important;
}
.tpl-scope-manual-sec-1792135965671-p8qjh .section--menu {
  padding-top: 40px !important;
}
/* === end inspector overrides === */
@media (max-width: 768px) {
/* MENU 固有CSS：LPcraftの共通CSSと組み合わせて使用 */
.section--menu {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

/* 背景はコンテンツの背面／画像の比率を維持 */
.menu__top-background,
.menu__bottom-background {
  position: absolute;
  left: 50%;
  z-index: 0;
  width: 430px;
  max-width: 100%;
  transform: translateX(-50%);
  pointer-events: none;
}
.menu__top-background {
  top: 0;
}
.menu__bottom-background {
  bottom: 0;
}
.menu__top-background img,
.menu__bottom-background img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}
.menu__top-background img[src=""],
.menu__bottom-background img[src=""] {
  display: none;
}
.section--menu .menu__inner {
  position: relative;
  z-index: 1;
}

.section--menu .menu__intro {
  font-weight: 500;
}

/* アコーディオン */
.menu__list {
  display: grid;
  gap: var(--lpc-space-md, 16px);
}
.section--menu .menu__item {
  overflow: hidden;
  padding: 0;
  border-radius: var(--lpc-radius-card, 12px);
  background: var(--lpc-color-surface, #fff);
}
.menu__item-trigger {
  display: grid;
  grid-template-columns: 40% minmax(0, 1fr);
  align-items: stretch;
  width: 100%;
  min-height: 104px;
  margin: 0;
  padding: 0;
  cursor: pointer;
  list-style: none;
  background: var(--lpc-color-surface, #fff);
}
.menu__item-trigger::-webkit-details-marker {
  display: none;
}
.menu__item-trigger::marker {
  content: "";
}
.menu__item-trigger:focus-visible {
  outline: 2px solid var(--lpc-color-accent, #80aa4b);
  outline-offset: -3px;
}
.menu__item-image {
  width: 100%;
  min-width: 0;
  min-height: 104px;
  overflow: hidden;
  background: var(--lpc-color-subtle, #eef5df);
}
.menu__item-image img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 104px;
  object-fit: cover;
}
.menu__item-image img[src=""] {
  display: none;
}
.menu__item-content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 28px;
  align-items: center;
  gap: var(--lpc-card-gap, 12px);
  min-width: 0;
  padding: var(--lpc-card-padding, 14px);
}
.menu__item-text {
  min-width: 0;
}
.section--menu .menu__item-title {
  margin: 0 0 6px;
}
.section--menu .menu__item-title strong {
  font-size: 18px;
  line-height: 1.5;
}
.section--menu .menu__item-description {
  margin: 0;
  font-size: 14px;
  line-height: 1.65;
  overflow-wrap: anywhere;
}
.menu__item-icon {
  position: relative;
  display: block;
  width: 28px;
  height: 28px;
  border: 1px solid var(--lpc-color-accent, #80aa4b);
  border-radius: 50%;
  color: var(--lpc-color-accent, #80aa4b);
  transition:
    background-color 0.2s ease,
    color 0.2s ease;
}
.menu__item-icon::before,
.menu__item-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  background: currentColor;
  border-radius: 2px;
  transform: translate(-50%, -50%);
  transition: transform 0.2s ease;
}
.menu__item-icon::before {
  width: 12px;
  height: 2px;
}
.menu__item-icon::after {
  width: 2px;
  height: 12px;
}
.menu__item[open] .menu__item-icon {
  background: var(--lpc-color-accent, #80aa4b);
  color: #fff;
}
.menu__item[open] .menu__item-icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
.menu__item[open] .menu__item-trigger {
  background: var(--lpc-color-background, #f9fbf3);
}
.menu__item-detail {
  padding: 0 var(--lpc-card-padding, 16px);
  border-top: var(--lpc-border, 1px solid #e5ecd9);
}

/* メニュー内容：対象・時間・名前・説明・金額 */
.menu__courses {
  display: grid;
}
.menu__course {
  padding: 20px 0;
  border-bottom: 1px solid var(--lpc-color-subtle, #e7eddb);
}
.menu__course:last-child {
  border-bottom: 0;
}
.menu__course-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  margin-bottom: 8px;
}
.menu__course-tag,
.menu__course-time {
  display: inline-flex;
  align-items: center;
  min-height: 23px;
  padding: 2px 9px;
  border-radius: 100px;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.5;
}
.menu__course-tag {
  color: var(--lpc-color-accent, #678d39);
  background: var(--lpc-color-subtle, #eef5df);
}
.menu__course-tag[data-target="新規"] {
  color: #975b39;
  background: #f9ebde;
}
.menu__course-time {
  color: var(--lpc-color-heading, #414b35);
  background: #f4f4ef;
}
.menu__course-tag:empty,
.menu__course-time:empty {
  display: none;
}
.section--menu .menu__course-title {
  margin: 0 0 8px;
  color: var(--lpc-color-heading, #34432b);
  font-family: "Noto Serif JP", serif;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.65;
  overflow-wrap: anywhere;
}
.section--menu .menu__course-description {
  margin: 0;
  color: var(--lpc-color-text, #525b4d);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.85;
  overflow-wrap: anywhere;
}
.menu__course-prices {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: baseline;
  gap: 6px 12px;
  margin-top: 10px;
}
.menu__course-original {
  color: var(--lpc-color-muted, #8a9085);
  font-size: 12px;
  text-decoration: line-through;
}
.menu__course-original:empty {
  display: none;
}
.menu__course-price {
  color: var(--lpc-color-accent, #678d39);
  font-family: var(--lpc-font-english, Georgia, serif);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
}

/* 下部メッセージ・CTA */
.menu__bottom {
  position: relative;
  padding-top: var(--lpc-space-xl, 32px);
}
.menu__bottom-message {
  display: grid;
  grid-template-columns: var(--lpc-space-lg, 24px) minmax(0, 1fr) var(--lpc-space-lg, 24px);
  align-items: center;
  gap: var(--lpc-card-gap, 12px);
}
.section--menu .menu__bottom-text {
  margin: 0;
  font-size: 13px;
  font-weight: 500;
  text-align: center;
}
.menu__bottom-line {
  display: block;
  width: var(--lpc-border-width, 1px);
  height: 29px;
  margin-inline: auto;
  background: var(--lpc-color-heading, #414b35);
}
.menu__bottom-line--left {
  transform: rotate(-29deg);
}
.menu__bottom-line--right {
  transform: rotate(29deg);
}
.section--menu .menu__button {
  position: relative;
}
.menu__button-label {
  display: block;
  color: inherit;
}
.menu__button-arrow {
  position: absolute;
  right: var(--lpc-space-xl, 24px);
  top: 50%;
  display: block;
  width: var(--lpc-arrow-size, 8px);
  height: var(--lpc-arrow-size, 8px);
  border-top: var(--lpc-arrow-stroke, 2px) solid currentColor;
  border-right: var(--lpc-arrow-stroke, 2px) solid currentColor;
  transform: translateY(-50%) rotate(45deg);
}
@media (hover: hover) {
  .menu__item-trigger:hover .menu__item-icon {
    background: var(--lpc-color-accent, #80aa4b);
    color: #fff;
  }
}
@media (prefers-reduced-motion: reduce) {
  .menu__item-icon,
  .menu__item-icon::before,
  .menu__item-icon::after {
    transition: none;
  }
}

@media (max-width: 768px) {
  .section--menu .menu__item-title strong {
    font-size: 17px !important;
  }

  .section--menu .menu__item-description {
    font-size: 13px !important;
  }

  .section--menu .menu__bottom-text {
    font-size: 11px !important;
  }
}

/* === inspector overrides === */
/* 検証モードで変更：2026/10/26 15:28:36 */
.tpl-scope-manual-sec-1792135965671-p8qjh .menu__intro {
  font-size: 14px !important;
  font-weight: 400 !important;
}
.tpl-scope-manual-sec-1792135965671-p8qjh .section--menu {
  padding-top: 40px !important;
}
/* === end inspector overrides === */
}
/* === inspector overrides === */
/* 検証モードで変更：2026/10/26 15:28:48 */
.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .gallery__lead {
  font-size: 14px !important;
}
.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery {
  padding-top: 40px !important;
}
/* === end inspector overrides === */
@media (max-width: 768px) {
/* === inspector overrides === */
/* 検証モードで変更：2026/10/26 15:28:48 */
.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .gallery__lead {
  font-size: 14px !important;
}
.tpl-scope-cmqj9pofh00gq0h3y5a71j8fk .section--gallery {
  padding-top: 40px !important;
}
/* === end inspector overrides === */
}
@media (max-width: 768px) { 
  .tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__lead {
    font-size: 14px !important;
  }
}

/* === inspector overrides === */
/* 検証モードで変更：2026/10/26 15:28:04 */
.tpl-scope-testimonials-mobile-stack [data-iid="iid-mvewcayh-mw5kk"] {
  font-size: 14px !important;
}

.tpl-scope-testimonials-mobile-stack .section--voice {
  background-color: #f5f9e6 !important;
  padding-top: 32px !important;
}
/* === end inspector overrides === */
@media (max-width: 768px) {
@media (max-width: 768px) { 
  .tpl-scope-cmr06mdev0gom0h3xl7emstrp .section--faq .faq__lead {
    font-size: 14px !important;
  }
}

/* === inspector overrides === */
/* 検証モードで変更：2026/10/26 15:28:04 */
.tpl-scope-testimonials-mobile-stack [data-iid="iid-mvewcayh-mw5kk"] {
  font-size: 14px !important;
}

.tpl-scope-testimonials-mobile-stack .section--voice {
  background-color: #f5f9e6 !important;
  padding-top: 32px !important;
}
/* === end inspector overrides === */
}
/* === inspector overrides === */
/* 検証モードで変更：2026/10/19 15:51:59 */
.tpl-scope-cmr06mdev0gom0h3xl7emstrp [data-iid="iid-mvewcfv3-c34xk"] {
  font-size: 14px !important;
}
/* === end inspector overrides === */
@media (max-width: 768px) {
/* === inspector overrides === */
/* 検証モードで変更：2026/10/19 15:51:59 */
.tpl-scope-cmr06mdev0gom0h3xl7emstrp [data-iid="iid-mvewcfv3-c34xk"] {
  font-size: 14px !important;
}
/* === end inspector overrides === */
}
/* ========================================
   ACCESS SECTION
   共通CSSと組み合わせて使用
======================================== */

.section--access {
  position: relative;
  overflow: hidden;

  /* 下部余白を必ず0にする */
  padding-bottom: 0 !important;
}

/* ========================================
   TOP AREA
======================================== */

.access__top {
  position: relative;
  width: 100%;

  padding-bottom: var(--lpc-space-xl);

  overflow: hidden;
  isolation: isolate;
}

/* ========================================
   TOP BACKGROUND IMAGE
   横幅430px・上部中央配置
======================================== */

.access__top-background {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 0;

  width: 430px;
  max-width: 100%;

  transform: translateX(-50%);
  pointer-events: none;
}

.access__top-background img {
  display: block;
  width: 100%;
  height: auto;

  object-fit: contain;
}

/* 画像未設定時は非表示 */
.access__top-background img[src=""] {
  display: none;
}

/* ========================================
   INNER CONTENT
======================================== */

.section--access .access__inner {
  position: relative;
  z-index: 1;
}

/* ========================================
   HEADER
======================================== */

.section--access .access__lead {
  font-size: 18px;
  font-weight: 500;
}

/* ========================================
   GOOGLE MAP
   添付画像に近い比率・角丸
======================================== */

.access__map {
  position: relative;

  width: 100%;
  aspect-ratio: 386 / 260;

  margin-bottom: var(--lpc-space-md);

  overflow: hidden;

  border: 1px solid #e5e5e5;
  border-radius: 8px;

  background: var(--lpc-color-image, #f2f2f2);
}

.access__map iframe {
  position: absolute;
  inset: 0;

  display: block;
  width: 100%;
  height: 100%;

  margin: 0;
  padding: 0;
  border: 0;
}

/* ========================================
   SHOP INFORMATION
======================================== */

.access__information {
  position: relative;

  width: 100%;
  padding-inline: var(--lpc-space-xs);
}

/* ========================================
   INFORMATION ROW
======================================== */

.access__info-row {
  display: grid;

  grid-template-columns:
    var(--lpc-icon-size)
    minmax(58px, 0.8fr)
    minmax(0, 2.35fr);

  align-items: center;

  gap: var(--lpc-card-gap);

  min-height: 40px;

  padding: var(--lpc-space-sm) var(--lpc-space-xs);

  border-bottom: var(--lpc-border);
}

.access__info-row:last-child {
  border-bottom: 0;
}

/* ========================================
   ICON
======================================== */

.access__icon {
  display: flex;
  align-items: center;
  justify-content: center;

  width: var(--lpc-icon-size);
  height: var(--lpc-icon-size);
}

.access__icon .material-symbols-outlined {
  display: block;

  font-family: "Material Symbols Outlined";
  font-size: var(--lpc-font-size-icon);
  font-weight: 400;
  font-style: normal;

  line-height: 1;
  letter-spacing: normal;
  text-transform: none;

  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;

  font-feature-settings: "liga";
  -webkit-font-smoothing: antialiased;

  font-variation-settings:
    "FILL" 1,
    "wght" 400,
    "GRAD" 0,
    "opsz" 24;
}

/* ========================================
   INFORMATION LABEL
======================================== */

.section--access .access__info-label {
  min-width: 0;
  margin: 0;

  color: var(--lpc-color-heading);

  font-size: var(--lpc-font-size-body);
  font-weight: 500;

  line-height: var(--lpc-line-label);

  overflow-wrap: anywhere;
}

/* ========================================
   INFORMATION VALUE
======================================== */

.section--access .access__info-value {
  min-width: 0;
  margin: 0;

  font-size: 14px;
  font-weight: 500;

  line-height: 1.8;
  overflow-wrap: anywhere;
}

/* ========================================
   PHONE NUMBER
======================================== */

.access__phone {
  display: inline-block;

  max-width: 100%;

  color: var(--lpc-color-link);
  text-decoration: none;

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-body);

  overflow-wrap: anywhere;

  transition: opacity var(--lpc-transition-base);
}

.access__phone:hover {
  opacity: 0.7;
}

.access__phone:focus-visible {
  outline: 2px solid var(--lpc-color-accent);
  outline-offset: 3px;
}

/* ========================================
   NOTES
======================================== */

.access__info-row--notes {
  align-items: start;
  padding-block: var(--lpc-space-md);
}

/* ========================================
   TAG LIST
======================================== */

.access__tags {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;

  gap: var(--lpc-card-gap);

  width: 100%;
  white-space: normal;
}

/* ========================================
   TAG
======================================== */

.section--access .access__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  max-width: 100%;
  min-height: 25px;

  padding: var(--lpc-space-xs) var(--lpc-space-sm);

  border-radius: var(--lpc-pill-radius);

  background: var(--lpc-color-subtle);
  color: var(--lpc-color-text);

  font-size: 12px;
  line-height: var(--lpc-line-label);

  text-align: center;
  white-space: normal;
  overflow-wrap: anywhere;
}

.access__tag:empty {
  display: none;
}

/* ========================================
   INTERIOR PHOTO AREA
======================================== */

.access__photo-area {
  position: relative;

  width: 100%;
  aspect-ratio: 2.25 / 1;

  margin: 0;
  padding: 0;

  overflow: hidden;
}

/* 写真上部のカーブ */
.access__photo-area::before {
  content: "";

  position: absolute;
  z-index: 2;

  top: -24px;
  left: -8%;

  width: 116%;
  height: 43px;

  border-radius: 0 0 50% 50%;

  background: var(--lpc-color-background);

  pointer-events: none;
}

/* ========================================
   INTERIOR PHOTO
======================================== */

.access__photo {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center 42%;

  margin: 0;
  padding: 0;
}

.access__photo[src=""] {
  display: none;
}

/* 店内写真未設定時は領域ごと非表示 */
.access__photo-area:has(.access__photo[src=""]) {
  display: none;
}

/* ========================================
   REDUCED MOTION
======================================== */

@media (prefers-reduced-motion: reduce) {
  .access__phone {
    transition: none;
  }
}

/* === inspector overrides === */
/* 検証モードで変更：2026/10/26 15:27:39 */
.tpl-scope-manual-sec-1792136013310-27ly5 .access__information {
  margin-top: 20px !important;
}
.tpl-scope-manual-sec-1792136013310-27ly5 .section--access {
  padding-top: 0px !important;
}
.tpl-scope-manual-sec-1792136013310-27ly5 .access__lead {
  font-size: 14px !important;
  font-weight: 400 !important;
}
.tpl-scope-manual-sec-1792136013310-27ly5 .access__inner {
  padding-top: 32px !important;
}
/* === end inspector overrides === */

@media (max-width: 768px) {
  .section--access .access__info-label {
    font-size: 15px !important;
  }

  .section--access .access__info-value {
    font-size: 13px !important;
  }
}
@media (max-width: 768px) {
/* ========================================
   ACCESS SECTION
   共通CSSと組み合わせて使用
======================================== */

.section--access {
  position: relative;
  overflow: hidden;

  /* 下部余白を必ず0にする */
  padding-bottom: 0 !important;
}

/* ========================================
   TOP AREA
======================================== */

.access__top {
  position: relative;
  width: 100%;

  padding-bottom: var(--lpc-space-xl);

  overflow: hidden;
  isolation: isolate;
}

/* ========================================
   TOP BACKGROUND IMAGE
   横幅430px・上部中央配置
======================================== */

.access__top-background {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 0;

  width: 430px;
  max-width: 100%;

  transform: translateX(-50%);
  pointer-events: none;
}

.access__top-background img {
  display: block;
  width: 100%;
  height: auto;

  object-fit: contain;
}

/* 画像未設定時は非表示 */
.access__top-background img[src=""] {
  display: none;
}

/* ========================================
   INNER CONTENT
======================================== */

.section--access .access__inner {
  position: relative;
  z-index: 1;
}

/* ========================================
   HEADER
======================================== */

.section--access .access__lead {
  font-size: 18px;
  font-weight: 500;
}

/* ========================================
   GOOGLE MAP
   添付画像に近い比率・角丸
======================================== */

.access__map {
  position: relative;

  width: 100%;
  aspect-ratio: 386 / 260;

  margin-bottom: var(--lpc-space-md);

  overflow: hidden;

  border: 1px solid #e5e5e5;
  border-radius: 8px;

  background: var(--lpc-color-image, #f2f2f2);
}

.access__map iframe {
  position: absolute;
  inset: 0;

  display: block;
  width: 100%;
  height: 100%;

  margin: 0;
  padding: 0;
  border: 0;
}

/* ========================================
   SHOP INFORMATION
======================================== */

.access__information {
  position: relative;

  width: 100%;
  padding-inline: var(--lpc-space-xs);
}

/* ========================================
   INFORMATION ROW
======================================== */

.access__info-row {
  display: grid;

  grid-template-columns:
    var(--lpc-icon-size)
    minmax(58px, 0.8fr)
    minmax(0, 2.35fr);

  align-items: center;

  gap: var(--lpc-card-gap);

  min-height: 40px;

  padding: var(--lpc-space-sm) var(--lpc-space-xs);

  border-bottom: var(--lpc-border);
}

.access__info-row:last-child {
  border-bottom: 0;
}

/* ========================================
   ICON
======================================== */

.access__icon {
  display: flex;
  align-items: center;
  justify-content: center;

  width: var(--lpc-icon-size);
  height: var(--lpc-icon-size);
}

.access__icon .material-symbols-outlined {
  display: block;

  font-family: "Material Symbols Outlined";
  font-size: var(--lpc-font-size-icon);
  font-weight: 400;
  font-style: normal;

  line-height: 1;
  letter-spacing: normal;
  text-transform: none;

  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;

  font-feature-settings: "liga";
  -webkit-font-smoothing: antialiased;

  font-variation-settings:
    "FILL" 1,
    "wght" 400,
    "GRAD" 0,
    "opsz" 24;
}

/* ========================================
   INFORMATION LABEL
======================================== */

.section--access .access__info-label {
  min-width: 0;
  margin: 0;

  color: var(--lpc-color-heading);

  font-size: var(--lpc-font-size-body);
  font-weight: 500;

  line-height: var(--lpc-line-label);

  overflow-wrap: anywhere;
}

/* ========================================
   INFORMATION VALUE
======================================== */

.section--access .access__info-value {
  min-width: 0;
  margin: 0;

  font-size: 14px;
  font-weight: 500;

  line-height: 1.8;
  overflow-wrap: anywhere;
}

/* ========================================
   PHONE NUMBER
======================================== */

.access__phone {
  display: inline-block;

  max-width: 100%;

  color: var(--lpc-color-link);
  text-decoration: none;

  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-body);

  overflow-wrap: anywhere;

  transition: opacity var(--lpc-transition-base);
}

.access__phone:hover {
  opacity: 0.7;
}

.access__phone:focus-visible {
  outline: 2px solid var(--lpc-color-accent);
  outline-offset: 3px;
}

/* ========================================
   NOTES
======================================== */

.access__info-row--notes {
  align-items: start;
  padding-block: var(--lpc-space-md);
}

/* ========================================
   TAG LIST
======================================== */

.access__tags {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;

  gap: var(--lpc-card-gap);

  width: 100%;
  white-space: normal;
}

/* ========================================
   TAG
======================================== */

.section--access .access__tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  max-width: 100%;
  min-height: 25px;

  padding: var(--lpc-space-xs) var(--lpc-space-sm);

  border-radius: var(--lpc-pill-radius);

  background: var(--lpc-color-subtle);
  color: var(--lpc-color-text);

  font-size: 12px;
  line-height: var(--lpc-line-label);

  text-align: center;
  white-space: normal;
  overflow-wrap: anywhere;
}

.access__tag:empty {
  display: none;
}

/* ========================================
   INTERIOR PHOTO AREA
======================================== */

.access__photo-area {
  position: relative;

  width: 100%;
  aspect-ratio: 2.25 / 1;

  margin: 0;
  padding: 0;

  overflow: hidden;
}

/* 写真上部のカーブ */
.access__photo-area::before {
  content: "";

  position: absolute;
  z-index: 2;

  top: -24px;
  left: -8%;

  width: 116%;
  height: 43px;

  border-radius: 0 0 50% 50%;

  background: var(--lpc-color-background);

  pointer-events: none;
}

/* ========================================
   INTERIOR PHOTO
======================================== */

.access__photo {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: center 42%;

  margin: 0;
  padding: 0;
}

.access__photo[src=""] {
  display: none;
}

/* 店内写真未設定時は領域ごと非表示 */
.access__photo-area:has(.access__photo[src=""]) {
  display: none;
}

/* ========================================
   REDUCED MOTION
======================================== */

@media (prefers-reduced-motion: reduce) {
  .access__phone {
    transition: none;
  }
}

/* === inspector overrides === */
/* 検証モードで変更：2026/10/26 15:27:39 */
.tpl-scope-manual-sec-1792136013310-27ly5 .access__information {
  margin-top: 20px !important;
}
.tpl-scope-manual-sec-1792136013310-27ly5 .section--access {
  padding-top: 0px !important;
}
.tpl-scope-manual-sec-1792136013310-27ly5 .access__lead {
  font-size: 14px !important;
  font-weight: 400 !important;
}
.tpl-scope-manual-sec-1792136013310-27ly5 .access__inner {
  padding-top: 32px !important;
}
/* === end inspector overrides === */

@media (max-width: 768px) {
  .section--access .access__info-label {
    font-size: 15px !important;
  }

  .section--access .access__info-value {
    font-size: 13px !important;
  }
}
}
@media (max-width: 768px) {
  .tpl-scope-cta-footer-mobile .ctafooter .cta__phone-head {
    gap: 28px !important;
  }

  .tpl-scope-cta-footer-mobile .ctafooter .cta__phone-time {
    font-size: 12px !important;
  }
}

/* === inspector overrides === */
/* 検証モードで変更：2026/10/26 15:31:45 */
.tpl-scope-cta-footer-mobile .cta__lead {
  font-size: 14px !important;
}
.tpl-scope-cta-footer-mobile .cta {
  padding-top: 40px !important;
  background-color: #f8fdec !important;
}
/* === end inspector overrides === */
@media (max-width: 768px) {
@media (max-width: 768px) {
  .tpl-scope-cta-footer-mobile .ctafooter .cta__phone-head {
    gap: 28px !important;
  }

  .tpl-scope-cta-footer-mobile .ctafooter .cta__phone-time {
    font-size: 12px !important;
  }
}

/* === inspector overrides === */
/* 検証モードで変更：2026/10/26 15:31:45 */
.tpl-scope-cta-footer-mobile .cta__lead {
  font-size: 14px !important;
}
.tpl-scope-cta-footer-mobile .cta {
  padding-top: 40px !important;
  background-color: #f8fdec !important;
}
/* === end inspector overrides === */
}
:root {
  --lpc-color-heading: #405f36;
  --lpc-color-text: #333333;
  --lpc-color-accent: #a4c34c;
  --lpc-color-link: #405f36;
  --lpc-color-border: #e9ecdf;
  --lpc-color-background: #fdfdf7;
  --lpc-color-surface: #ffffff;
  --lpc-color-subtle: #eaf0d0;
  --lpc-color-image: #eff1e6;
  --lpc-color-clear: transparent;
  --lpc-color-overlay: rgba(255, 255, 255, 0.55);
  --lpc-color-overlay-strong: rgba(255, 255, 255, 0.94);
  --lpc-color-overlay-clear: rgba(255, 255, 255, 0);
  --lpc-color-glow: rgba(181, 211, 105, 0.18);
  --lpc-color-flower: #fffdf5;
  --lpc-color-flower-center: #d5b65e;
  --lpc-color-leaf: #a3bf75;
  --lpc-color-branch: #a8ba79;
  --lpc-color-leaf-soft: #aac77e;
  --lpc-color-button-start: #85ad35;
  --lpc-color-button-middle: #618b31;
  --lpc-color-button-end: #4d712e;
  --lpc-color-button-hover: #4d712e;
  --lpc-font-body: "Noto Serif JP", serif;
  --lpc-font-heading: "Noto Serif JP", serif;
  --lpc-font-english: "Times New Roman", serif;
  --lpc-font-size-body: 16px;
  --lpc-font-size-title: 32px;
  --lpc-font-size-subtitle: 14px;
  --lpc-font-size-item: 18px;
  --lpc-font-size-icon: 20px;
  --lpc-font-weight-body: 400;
  --lpc-font-weight-heading: 600;
  --lpc-line-body: 1.85;
  --lpc-line-heading: 1.48;
  --lpc-line-label: 1.5;
  --lpc-letter-body: 0.015em;
  --lpc-letter-heading: 0.035em;
  --lpc-letter-english: 0.25em;
  --lpc-container-width: 430px;
  --lpc-inner-padding: 12px;
  --lpc-section-top: 26px;
  --lpc-section-bottom: 48px;
  --lpc-space-xs: 4px;
  --lpc-space-sm: 8px;
  --lpc-space-md: 12px;
  --lpc-space-lg: 16px;
  --lpc-space-xl: 24px;
  --lpc-heading-gap: 20px;
  --lpc-title-gap: 12px;
  --lpc-heading-line-gap: 12px;
  --lpc-heading-line-width: 28px;
  --lpc-heading-line-height: 2px;
  --lpc-card-gap: 8px;
  --lpc-card-padding: 16px;
  --lpc-card-radius: 10px;
  --lpc-pill-radius: 999px;
  --lpc-circle-radius: 50%;
  --lpc-border-width: 1px;
  --lpc-border: var(--lpc-border-width) solid var(--lpc-color-border);
  --lpc-card-shadow: 0 3px 16px rgba(71, 85, 38, 0.035);
  --lpc-button-shadow: 0 5px 13px rgba(74, 112, 40, 0.13);
  --lpc-button-shadow-hover: 0 8px 18px rgba(74, 112, 40, 0.2);
  --lpc-button-height: 50px;
  --lpc-button-padding: 34px;
  --lpc-button-width: 78%;
  --lpc-button-gradient: linear-gradient(
    105deg,
    var(--lpc-color-button-start),
    var(--lpc-color-button-middle) 48%,
    var(--lpc-color-button-end)
  );
  --lpc-transition-base: 0.25s ease;
  --lpc-focus-width: 2px;
  --lpc-focus-offset: 4px;
  --lpc-focus: var(--lpc-focus-width) solid var(--lpc-color-link);
  --lpc-icon-size: 28px;
  --lpc-icon-glyph-size: 16px;
  --lpc-arrow-size: 9px;
  --lpc-arrow-stroke: 1.5px;
  --lpc-plus-size: 11px;
}
:is(.section--welcome, .section--problem, .section--strengths, .section--menu, .section--access) {
  position: relative;
  width: 100%;
  min-width: 0;
  padding: var(--lpc-section-top) 0 var(--lpc-section-bottom);
  overflow: hidden;
  isolation: isolate;
  background: var(--lpc-color-background);
  color: var(--lpc-color-text);
  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-body);
  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);
}
:is(.section--welcome, .section--problem, .section--strengths, .section--menu, .section--access),
:is(.section--welcome, .section--problem, .section--strengths, .section--menu, .section--access) *,
:is(.section--welcome, .section--problem, .section--strengths, .section--menu, .section--access)
  *::before,
:is(.section--welcome, .section--problem, .section--strengths, .section--menu, .section--access)
  *::after {
  box-sizing: border-box;
}
:is(.section--welcome, .section--problem, .section--strengths, .section--menu, .section--access)
  .lpc-inner {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--lpc-container-width);
  margin-inline: auto;
  padding-inline: var(--lpc-inner-padding);
}
:is(.welcome__header, .problem__header, .strengths__header, .menu__header, .access__header) {
  position: relative;
  margin: 0 0 var(--lpc-heading-gap);
  padding: 0;
  text-align: center;
}
:is(.section--welcome, .section--problem, .section--strengths, .section--menu, .section--access)
  .lpc-section-heading-sub {
  display: block;
  margin: 0 0 var(--lpc-heading-gap);
  padding: 0;
  color: var(--lpc-color-heading);
  font-family: var(--lpc-font-english);
  font-size: var(--lpc-font-size-subtitle);
  font-weight: var(--lpc-font-weight-body);
  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-english);
  text-transform: uppercase;
  text-align: center;
  overflow-wrap: anywhere;
}
:is(.section--welcome, .section--problem, .section--strengths, .section--menu, .section--access)
  .lpc-section-heading-sub::after {
  content: "";
  display: block;
  width: var(--lpc-heading-line-width);
  height: var(--lpc-heading-line-height);
  margin: var(--lpc-heading-line-gap) auto 0;
  background: var(--lpc-color-accent);
}
/* 既存HTMLの装飾spanは保持し、共通疑似要素との二重表示を防止 */
:is(.welcome__heading-line, .menu__heading-line, .access__heading-line) {
  display: none;
}
:is(.section--welcome, .section--problem, .section--strengths, .section--menu, .section--access)
  .lpc-section-heading {
  margin: 0 0 var(--lpc-title-gap);
  padding: 0;
  color: var(--lpc-color-heading);
  font-family: var(--lpc-font-heading);
  font-size: var(--lpc-font-size-title);
  font-weight: var(--lpc-font-weight-heading);
  line-height: var(--lpc-line-heading);
  letter-spacing: var(--lpc-letter-heading);
  text-align: center;
  overflow-wrap: anywhere;
}
:is(
  .welcome__catch,
  .welcome__paragraph,
  .problem__intro,
  .problem__card-text,
  .strengths__lead,
  .strengths__description,
  .menu__intro,
  .menu__item-description,
  .menu__item-detail-text,
  .menu__bottom-text,
  .access__lead,
  .access__info-value
) {
  min-width: 0;
  margin: 0;
  padding: 0;
  color: var(--lpc-color-text);
  font-size: var(--lpc-font-size-body);
  line-height: var(--lpc-line-body);
  letter-spacing: var(--lpc-letter-body);
  overflow-wrap: anywhere;
}
:is(
  .welcome__catch,
  .problem__intro,
  .strengths__lead,
  .menu__intro,
  .access__lead,
  .menu__bottom-text
) {
  text-align: center;
}
:is(.strengths__item-title, .menu__item-title) {
  margin: 0 0 var(--lpc-space-sm);
  color: var(--lpc-color-heading);
  font-family: var(--lpc-font-heading);
  font-size: var(--lpc-font-size-item);
  font-weight: var(--lpc-font-weight-heading);
  line-height: var(--lpc-line-heading);
  letter-spacing: var(--lpc-letter-heading);
  overflow-wrap: anywhere;
}
.menu__item-title strong {
  font-weight: inherit;
}
:is(.problem__list, .strengths__list, .menu__list) {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--lpc-card-gap);
  width: 100%;
  margin: 0;
  padding: 0;
}
:is(.problem__card, .strengths__item, .menu__item, .access__map, .access__information) {
  min-width: 0;
  margin: 0;
  border: var(--lpc-border);
  border-radius: var(--lpc-card-radius);
  background: var(--lpc-color-surface);
  box-shadow: var(--lpc-card-shadow);
}
:is(
  .welcome__decorations,
  .problem__decoration,
  .strengths__decoration,
  .menu__decorations,
  .access__decorations
) {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}
:is(.welcome__decoration, .problem__decoration img, .menu__decoration, .access__decoration) {
  position: absolute;
  display: block;
  height: auto;
  object-fit: contain;
}
:is(.section--welcome, .section--problem, .section--strengths, .section--menu, .section--access)
  img {
  max-width: 100%;
}
:is(.section--welcome, .section--problem, .section--strengths, .section--menu, .section--access)
  img[src=""] {
  visibility: hidden;
}
:is(.welcome__photo, .strengths__image, .menu__item-image, .access__photo-area) {
  overflow: hidden;
  background: var(--lpc-color-image);
}
:is(
  .welcome__photo img,
  .problem__card-image,
  .strengths__image img,
  .menu__item-image img,
  .access__photo
) {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
:is(.problem__check, .menu__item-icon, .access__icon) {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: var(--lpc-icon-size);
  height: var(--lpc-icon-size);
  border-radius: var(--lpc-circle-radius);
  background: var(--lpc-color-subtle);
  color: var(--lpc-color-heading);
}
.section--menu .lpc-button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--lpc-button-width);
  max-width: 100%;
  min-height: var(--lpc-button-height);
  margin: var(--lpc-space-lg) auto 0;
  padding: var(--lpc-space-md) var(--lpc-button-padding);
  border: 0;
  border-radius: var(--lpc-pill-radius);
  background-color: var(--lpc-color-button-middle);
  background-image: var(--lpc-button-gradient);
  color: var(--lpc-color-surface);
  box-shadow: var(--lpc-button-shadow);
  font-family: var(--lpc-font-body);
  font-size: var(--lpc-font-size-body);
  font-weight: var(--lpc-font-weight-heading);
  line-height: var(--lpc-line-label);
  letter-spacing: var(--lpc-letter-heading);
  text-align: center;
  text-decoration: none;
  overflow-wrap: anywhere;
  transition:
    background-color var(--lpc-transition-base),
    transform var(--lpc-transition-base),
    box-shadow var(--lpc-transition-base);
}
:is(.section--menu .lpc-button, .menu__item-trigger, .access__phone):focus-visible {
  outline: var(--lpc-focus);
  outline-offset: var(--lpc-focus-offset);
}
@media (hover: hover) {
  .section--menu .lpc-button:hover {
    background-color: var(--lpc-color-button-hover);
    background-image: none;
    transform: translateY(-2px);
    box-shadow: var(--lpc-button-shadow-hover);
  }
}
@media (prefers-reduced-motion: reduce) {
  .section--menu .lpc-button {
    transition: none;
  }
  .section--menu .lpc-button:hover {
    transform: none;
  }
}


:root {
  --lp-primary: #3B82F6;
  --lp-primary-dark: #1b6bef;
  --lp-primary-light: #5792f3;
  --lp-primary-50: #f4f6f9;
  --lp-primary-100: #e7edf6;
  --lp-primary-200: #cedcf2;
  --lp-primary-300: #acc6ef;
  --lp-primary-400: #83acef;
  --lp-primary-500: #5792f3;
  --lp-primary-600: #3B82F6;
  --lp-primary-700: #1b6bef;
  --lp-primary-800: #1659c6;
  --lp-primary-900: #1a4997;
  --lp-accent: #3B82F6;
  --lp-accent-dark: #1b6bef;
  --lp-accent-light: #5792f3;
  --lp-accent-50: #f4f6f9;
  --lp-accent-100: #e7edf6;
  --lp-accent-200: #cedcf2;
  --lp-accent-500: #5792f3;
  --lp-accent-600: #3B82F6;
  --lp-accent-700: #1b6bef;
  --lp-base: #ffffff;
  --lp-base-dark: #f8fafc;
  --lp-base-100: #f1f5f9;
  --lp-base-200: #e2e8f0;
  --lp-base-500: #64748b;
}
/* 背景色 */
.bg-indigo-50{background-color:#f4f6f9!important}
.bg-indigo-100{background-color:#e7edf6!important}
.bg-indigo-200{background-color:#cedcf2!important}
.bg-indigo-300{background-color:#acc6ef!important}
.bg-indigo-400{background-color:#83acef!important}
.bg-indigo-500{background-color:#5792f3!important}
.bg-indigo-600{background-color:#3B82F6!important}
.bg-indigo-700{background-color:#1b6bef!important}
.bg-indigo-800{background-color:#1659c6!important}
.bg-indigo-900{background-color:#1a4997!important}
/* テキスト色 */
.text-indigo-50{color:#f4f6f9!important}
.text-indigo-100{color:#e7edf6!important}
.text-indigo-200{color:#cedcf2!important}
.text-indigo-300{color:#acc6ef!important}
.text-indigo-400{color:#83acef!important}
.text-indigo-500{color:#5792f3!important}
.text-indigo-600{color:#3B82F6!important}
.text-indigo-700{color:#1b6bef!important}
/* ボーダー色 */
.border-indigo-100{border-color:#e7edf6!important}
.border-indigo-200{border-color:#cedcf2!important}
.border-indigo-500{border-color:#5792f3!important}
.border-indigo-600{border-color:#3B82F6!important}
/* ホバー */
.hover\:bg-indigo-600:hover{background-color:#3B82F6!important}
.hover\:bg-indigo-700:hover{background-color:#1b6bef!important}
.hover\:text-indigo-500:hover{color:#5792f3!important}
.hover\:text-indigo-600:hover{color:#3B82F6!important}
.hover\:border-indigo-100:hover{border-color:#e7edf6!important}
.hover\:border-indigo-200:hover{border-color:#cedcf2!important}
.group:hover .group-hover\:text-indigo-600{color:#3B82F6!important}
/* グラデーション from */
.from-indigo-50{--tw-gradient-from:#f4f6f9!important}
.from-indigo-100{--tw-gradient-from:#e7edf6!important}
.from-indigo-200{--tw-gradient-from:#cedcf2!important}
.from-indigo-300{--tw-gradient-from:#acc6ef!important}
.from-indigo-400{--tw-gradient-from:#83acef!important}
.from-indigo-900\/20{--tw-gradient-from:rgba(26,73,151,0.2)!important}
/* グラデーション to/via (purple→プライマリー系) */
.to-purple-50{--tw-gradient-to:#f4f5f9!important}
.to-purple-100{--tw-gradient-to:#e7e9f6!important}
.to-purple-200{--tw-gradient-to:#ced3f2!important}
.to-purple-400{--tw-gradient-to:#8391ef!important}
.to-purple-500{--tw-gradient-to:#576bf3!important}
.to-purple-900\/20{--tw-gradient-to:rgba(26,73,151,0.2)!important}
.via-purple-200{--tw-gradient-via:#ced3f2!important}
.via-purple-50{--tw-gradient-via:#f4f5f9!important}
.to-pink-100{--tw-gradient-to:#e9e7f6!important}
.to-pink-200{--tw-gradient-to:#d2cef2!important}
