﻿@charset "UTF-8";


:root {
  --font-yumincho: "Yu Mincho", "YuMincho", "游明朝", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
  /* デザイン指定：ナンバー＝Amazone BT／英字見出し（Special Gift・Flow）＝Amazone BT Regular */
  --font-amazone-bt: "Amazone BT", "AmazoneBT-Regular", "AmazoneBT", cursive;
  --feature-number-image-height-pc: 35px;
  --feature-number-image-height-sp: 23px;
  --s3-color-text: #5b5b5b;
  --s3-color-text-soft: #7d7368;
  --s3-color-bg: #ffffff;
  --s3-color-bg-soft: #faf6f1;
  --s3-color-bg-cta: #f3ece2;
  --s3-color-accent: #c7b093;
  --s3-color-accent-2: #cebaa1;
  --s3-color-line: #d8d0c2;
  --s3-btn-hover-bg: #737373;
  --s3-btn-hover-color: #ffffff;
  --s3-font-mincho: var(--font-yumincho);
  --s3-font-script: var(--font-yumincho);
}

body.page-index-testimv3 {
  font-family: var(--font-yumincho);
}

/* feature-number：Amazone BT（style.css の italic を上書き） */
body.page-index-testimv3 #kodawari .feature-number,
body.page-index-testimv3 .sec3-gift .feature-number {
  font-family: var(--font-amazone-bt);
  font-weight: 400;
  font-style: normal;
}

/* SVG 化した番号見出しの表示調整 */
body.page-index-testimv3 .feature-number.feature-number-image {
  font-size: inherit;
  line-height: 1;
  margin-top: 0.6em;
}

body.page-index-testimv3 .feature-number.feature-number-image::after {
  content: none;
}

body.page-index-testimv3 .feature-number.feature-number-image img {
  display: block;
  width: auto;
  height: var(--feature-number-image-height-pc);
}

/* sec3-en-heading：Special Gift・Flow のみ Amazone BT Regular */
body.page-index-testimv3 .sec3-gift-header .sec3-en-heading,
body.page-index-testimv3 .sec3-flow-heading.sec3-en-heading {
  font-family: var(--font-amazone-bt);
  font-weight: 400;
  font-style: normal;
}

body.page-index-testimv3 .sec3-en-heading.sec3-en-heading-image {
  line-height: 1;
}

body.page-index-testimv3 .sec3-en-heading.sec3-en-heading-image img {
  display: block;
  width: auto;
  height: 0.8em;
  margin-inline: auto;
}

@media screen and (max-width: 912px) {
  body.page-index-testimv3 .feature-number.feature-number-image img {
    height: var(--feature-number-image-height-sp);
  }

  body.page-index-testimv3 .sec3-en-heading.sec3-en-heading-image img {
    height: 1.1em;
  }
}

/* SWELL フッター：検索モーダル（#search_modal）はこのページでは非表示・DOM からも除去 */
body.page-index-testimv3 #search_modal {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.mv1-ain-visual-1 {
  /* 写真列とテキスト列を同一グリッドで定義（% の二重計算・left 基準のずれを防ぐ） */
  --mv1-photo-width: 75%;
  --mv1-headline-gap: 1.75rem;
  --mv1-headline-shift: 15px; /* 見出し全体を右へ（0 で無効） */
  --mv1-col-white: calc(100% - var(--mv1-photo-width));
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, var(--mv1-col-white)) minmax(0, var(--mv1-photo-width));
  grid-template-rows: minmax(100vh, auto);
  width: 100%;
  min-height: 100vh;
  overflow: hidden;
  background: #fff;
  font-family: var(--font-yumincho);
  color: #5b5b5b;
  line-height: normal;
  letter-spacing: normal;
  text-align: left;
  container-type: inline-size;
  container-name: mv1;
}

/* ---------- Big background photo (right column) ---------- */
.mv1-ain-visual-1::before {
  content: "";
  grid-column: 2;
  grid-row: 1;
  align-self: stretch;
  width: 100%;
  min-height: 100vh;
  background-image: url(../img/hero-couple.webp);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 0;
}

/* ---------- Headline (boundary overlay) ---------- */
/* h1＝白地列の右端、h2＝写真列の左端。列境界＝写真の左端 */
.mv1-parent {
  grid-column: 1 / -1;
  grid-row: 1;
  align-self: center;
  z-index: 5;
  isolation: isolate;
  display: grid;
  grid-template-columns: subgrid;
  align-items: center;
  width: 100%;
  padding: 0;
  font-size: 32px;
  transform: translateX(var(--mv1-headline-shift));
}

@supports not (grid-template-columns: subgrid) {
  .mv1-parent {
    grid-template-columns: minmax(0, var(--mv1-col-white)) minmax(0, var(--mv1-photo-width));
  }
}

.mv1-h1,
.mv1-h2 {
  margin: 0;
  font-size: inherit;
  font-weight: 400;
  font-family: inherit;
  white-space: nowrap;
}

.mv1-h1 {
  grid-column: 1;
  justify-self: end;
  margin-right: var(--mv1-headline-gap);
  color: #949393; /* タン色：白地側 */
  text-shadow: none;
}

.mv1-h2 {
  grid-column: 2;
  justify-self: start;
  color: #fff; /* 白：写真側にオーバーレイ */
  z-index: 2;
  text-shadow:
    0 1px 3px rgba(0, 0, 0, 0.65),
    0 2px 12px rgba(0, 0, 0, 0.55),
    0 4px 28px rgba(0, 0, 0, 0.45);
}

/* ---------- Bottom-right nav overlay ---------- */
.mv1-group-wrapper {
  position: absolute;
  right: 3%;
  bottom: 4%;
  z-index: 2;
  display: flex;
  justify-content: flex-end;
  padding: 0;
  max-width: 100%;
}

.mv1-group {
  display: flex;
  align-items: center;
  padding: 1.5rem 2.25rem;
  background: none; /* 親の::before 写真の上にオーバーレイなので背景画像は不要 */
  box-sizing: border-box;
}

.mv1-group2 {
  display: flex;
  align-items: center;
  padding: 0;
  gap: 1.5rem;
  background: none;
  box-sizing: border-box;
}

/* Logo */
.mv1-group-icon {
  width: auto;
  height: 80px;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}

/* ---------- Menu text ---------- */
.mv1-support-options-wrapper {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex-shrink: 0;
}

.mv1-support-options {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  color: #fff;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-shadow:
    0 1px 3px rgba(0, 0, 0, 0.95),
    0 2px 10px rgba(0, 0, 0, 0.9),
    0 0 10px rgba(0, 0, 0, 0.8),
    0 4px 18px rgba(0, 0, 0, 0.65);
}

.mv1-div {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1.75rem;
  white-space: nowrap;
}

.mv1-nav-link {
  color: inherit;
  text-decoration: none;
  text-shadow: inherit;
  transition: opacity 0.2s ease;
}

.mv1-nav-link:hover {
  opacity: 0.72;
}

.mv1-nav-link:focus-visible {
  opacity: 0.72;
  outline: 2px solid rgba(255, 255, 255, 0.85);
  outline-offset: 3px;
}

/* =========================================================
   Responsive
   ========================================================= */

/* Tablet: photo right 70% */
@media screen and (max-width: 1024px) {
  .mv1-ain-visual-1 {
    --mv1-photo-width: 70%;
    --mv1-headline-gap: 1.25rem;
  }
}

/* Small tablet: photo right 65%, smaller text */
@media screen and (max-width: 768px) {
  .mv1-ain-visual-1 {
    --mv1-photo-width: 65%;
    --mv1-headline-gap: 1rem;
  }
  .mv1-group {
    padding: 1.25rem 1.5rem;
  }
}

/* Mobile: photo full width, title overlay top, nav at bottom */
@media screen and (max-width: 675px) {
  .mv1-ain-visual-1 {
    --mv1-photo-width: 100%;
    --mv1-col-white: 0;
    grid-template-columns: 1fr;
    grid-template-rows: minmax(85vh, auto);
    min-height: 85vh;
  }
  .mv1-ain-visual-1::before {
    grid-column: 1;
    opacity: 0.85;
  }
  .mv1-parent {
    position: absolute;
    top: 35%;
    left: 50%;
    grid-column: 1;
    width: auto;
    max-width: calc(100% - 2rem);
    transform: translate(calc(-50% + var(--mv1-headline-shift)), -50%);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 22px;
  }
  .mv1-h1 {
    grid-column: auto;
    justify-self: auto;
    margin-right: 0;
    color: #f2e6d5;
  }
  .mv1-h2 {
    grid-column: auto;
    justify-self: auto;
    color: #fff;
  }
}

@media screen and (max-width: 450px) {
  .mv1-parent {
    font-size: 19px;
  }
  .mv1-group {
    padding: 1rem 1.25rem;
  }
  .mv1-group2 {
    gap: 0.875rem;
  }
  .mv1-support-options {
    gap: 0.4rem;
    font-size: 12px;
  }
  .mv1-div {
    gap: 0.35rem 1rem;
    white-space: normal;
  }
}

/* メインビジュアル：スマホ専用（912px以下・PC／タブレットは上記デスクトップ用を維持） */
.mv1-header {
  display: none;
}

@media screen and (max-width: 912px) {
  body.page-index-testimv3 .mv1-ain-visual-1 {
    --mv1-photo-width: 75%;
    --mv1-col-white: 25%;
    --mv1-m-head-h: 72px;
    --mv1-m-copy-h: 176px;
    --mv1-m-h-font: 18px;
    --mv1-m-h1-spacing: 0.2em;
    --mv1-m-h2-spacing: 0.22em;
    --mv1-m-h2-top: 35px;
    --mv1-m-h1-pad-top: 28px; /* 白エリア内：上余白（文字切れ防止） */
    --mv1-m-section-offset: 18px; /* MVブロック全体を下へ */
    --mv1-m-photo-top: 20px; /* 写真開始位置：大きくすると下へ */
    --mv1-m-photo-min: calc(
      100svh - var(--mv1-m-head-h) - var(--mv1-m-copy-h) - var(--mv1-m-section-offset)
    );
    margin-top: var(--mv1-m-section-offset);
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows:
      var(--mv1-m-head-h)
      var(--mv1-m-copy-h)
      minmax(var(--mv1-m-photo-min), 1fr);
    grid-template-areas:
      "mv-head"
      "mv-copy"
      "mv-photo";
    width: 100%;
    min-height: 100svh;
    min-height: 100dvh;
    overflow: hidden;
    container-type: normal;
  }

  body.page-index-testimv3 .mv1-ain-visual-1::before {
    content: "";
    grid-area: mv-photo;
    grid-column: 1;
    position: relative;
    width: 100%;
    min-height: 52vh;
    min-height: var(--mv1-m-photo-min);
    margin-top: var(--mv1-m-photo-top);
    padding-top: 0;
    box-sizing: border-box;
    opacity: 1;
    align-self: stretch;
    background-image: url(../img/hero-couple.webp);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: 50% 18%;
    z-index: 0;
  }

  body.page-index-testimv3 .mv1-header {
    grid-area: mv-head;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    width: 100%;
    padding: 14px 18px;
    box-sizing: border-box;
    background: #fff;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 2147483000;
  }

  body.page-index-testimv3.is-mv1-header-hidden .mv1-header {
    transform: translateY(-110%);
    opacity: 0;
    pointer-events: none;
  }

  body.page-index-testimv3 .mv1-header__logo {
    display: block;
    flex-shrink: 0;
    line-height: 0;
  }

  body.page-index-testimv3 .mv1-header__logo img {
    display: block;
    width: auto;
    height: 44px;
  }

  body.page-index-testimv3 .mv1-header__menu {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 7px;
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    position: relative;
    z-index: 2147483001;
  }

  body.page-index-testimv3 .mv1-header__menu-bar {
    display: block;
    width: 22px;
    height: 1px;
    background: #949393;
    transition: transform 0.2s ease, opacity 0.2s ease;
  }

  /* ハンバーガー開閉：open時は× */
  body.page-index-testimv3 .mv1-ain-visual-1.is-mv1-nav-open .mv1-header__menu {
    gap: 0;
  }

  body.page-index-testimv3 .mv1-ain-visual-1.is-mv1-nav-open .mv1-header__menu-bar {
    position: absolute;
    top: 50%;
    left: 50%;
    transform-origin: center;
  }

  body.page-index-testimv3 .mv1-ain-visual-1.is-mv1-nav-open .mv1-header__menu-bar:nth-child(1) {
    transform: translate(-50%, -50%) rotate(45deg);
  }

  body.page-index-testimv3 .mv1-ain-visual-1.is-mv1-nav-open .mv1-header__menu-bar:nth-child(2) {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  body.page-index-testimv3 .mv1-parent {
    grid-area: mv-copy;
    display: contents;
    position: static;
    top: auto;
    left: auto;
    width: auto;
    max-width: none;
    padding: 0;
    font-size: var(--mv1-m-h-font);
    transform: none;
    isolation: auto;
    flex-direction: unset;
    align-items: unset;
    gap: 0;
  }

  body.page-index-testimv3 .mv1-h1 {
    grid-area: mv-copy;
    justify-self: center;
    align-self: start;
    margin: 0;
    padding: var(--mv1-m-h1-pad-top) 0 0;
    position: relative;
    z-index: 2;
    color: #949393;
    font-size: var(--mv1-m-h-font);
    font-weight: 400;
    letter-spacing: var(--mv1-m-h1-spacing);
    line-height: 1;
    white-space: nowrap;
    writing-mode: vertical-rl;
    text-orientation: mixed;
    text-shadow: none;
    width: max-content;
    max-width: 100%;
    box-sizing: border-box;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  body.page-index-testimv3 .mv1-h2 {
    grid-area: mv-photo;
    justify-self: center;
    align-self: start;
    margin: 0;
    padding: var(--mv1-m-h2-top) 0 0;
    color: #fff;
    font-size: var(--mv1-m-h-font);
    font-weight: 400;
    letter-spacing: var(--mv1-m-h2-spacing);
    line-height: 1;
    white-space: nowrap;
    writing-mode: vertical-rl;
    text-orientation: mixed;
    z-index: 10;
    width: max-content;
    max-width: 100%;
    box-sizing: border-box;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    text-shadow:
      0 1px 3px rgba(0, 0, 0, 0.55),
      0 2px 10px rgba(0, 0, 0, 0.45);
  }

  body.page-index-testimv3 .mv1-group-wrapper {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 2147482000;
    align-items: flex-start;
    justify-content: flex-end;
    padding: 72px 16px 24px;
    max-width: none;
    background: rgba(0, 0, 0, 0.45);
    box-sizing: border-box;
  }

  body.page-index-testimv3 .mv1-ain-visual-1.is-mv1-nav-open .mv1-group-wrapper {
    display: flex;
  }

  body.page-index-testimv3 .mv1-group {
    width: 100%;
    max-width: 320px;
    margin-left: auto;
    padding: 1.25rem 1.5rem;
    background: #fff;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .mv1-group2 {
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;
  }

  body.page-index-testimv3 .mv1-group-icon {
    display: none;
  }

  body.page-index-testimv3 .mv1-support-options-wrapper {
    width: 100%;
  }

  body.page-index-testimv3 .mv1-support-options {
    color: #5b5b5b;
    font-size: 14px;
    font-weight: 400;
    text-shadow: none;
  }

  body.page-index-testimv3 .mv1-div {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.65rem;
    white-space: normal;
  }

  body.page-index-testimv3 .mv1-nav-link {
    color: #5b5b5b;
    text-shadow: none;
  }

  body.page-index-testimv3 .mv1-nav-link:hover,
  body.page-index-testimv3 .mv1-nav-link:focus-visible {
    opacity: 0.7;
    outline-color: #949393;
  }

  /* sec2：MVヘッダーと重複するため、セクション内ヘッダーは非表示 */
  body.page-index-testimv3 .sec2-section1-inner .sec2-frame-group,
  body.page-index-testimv3 .sec2-section1-inner .sec2-frame-group.is-fixed {
    display: none !important;
    visibility: hidden;
    pointer-events: none;
  }

  body.page-index-testimv3 .sec2-section1-inner .sec2-frame-group-placeholder {
    display: none !important;
    height: 0 !important;
  }

  body.page-index-testimv3 .sec2-section1-inner {
    padding-top: 0;
  }

  /* sec2-frame-wrapper3：スマホ（参考デザイン） */
  body.page-index-testimv3 .sec2-frame-wrapper3 {
    --sec2-promo-padding-x: 20px;
    --sec2-h3-font-size: 20px;
    --sec2-h3-col-gap: 0;
    --sec2-h3-line2-offset: 1.5em;
    --sec2-m-ashirai-width: min(300px, 82vw);
    --sec2-m-ashirai-overlap: 28px;
    padding-left: var(--sec2-promo-padding-x);
    padding-right: var(--sec2-promo-padding-x);
  }

  body.page-index-testimv3 .sec2-frame-wrapper3 .sec2-clip-path-group-parent {
    display: none !important;
  }

  body.page-index-testimv3 .sec2-frame-wrapper3 .sec2-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 0;
    padding: 36px 0 0;
    min-height: 0;
  }

  body.page-index-testimv3 .sec2-frame-wrapper3 .sec2-h3 {
    flex-direction: row-reverse;
    align-items: flex-start;
    justify-content: center;
    align-self: center;
    gap: var(--sec2-h3-col-gap);
    margin: 0 0 40px;
    z-index: 2;
  }

  body.page-index-testimv3 .sec2-frame-wrapper3 .sec2-h3-line {
    writing-mode: vertical-rl;
    text-orientation: mixed;
    font-size: var(--sec2-h3-font-size);
    letter-spacing: var(--sec2-h3-letter-spacing);
    line-height: var(--sec2-h3-line-height);
  }

  body.page-index-testimv3 .sec2-frame-wrapper3 .sec2-h3-line:nth-child(2) {
    margin-top: var(--sec2-h3-line2-offset);
  }

  body.page-index-testimv3 .sec2-frame-wrapper3 .sec2-ashirai {
    grid-column: auto;
    grid-row: auto;
    align-self: center;
    justify-self: center;
    position: relative;
    width: var(--sec2-m-ashirai-width);
    max-width: 100%;
    margin: 0 auto calc(-1 * var(--sec2-m-ashirai-overlap));
    object-position: center bottom;
    z-index: 6;
  }

  body.page-index-testimv3 .sec2-clip-path-group-group {
    --sec2-promo-padding-x: 20px;
    position: relative;
    z-index: 1;
    padding-top: 0;
    padding-right: 0;
    overflow-x: clip;
  }

  body.page-index-testimv3 .sec2-intro-group {
    width: 100%;
    max-width: 100%;
    align-self: stretch;
    align-items: stretch;
  }

  body.page-index-testimv3 .sec2-intro-group .sec2-clip-path-group3 {
    position: relative;
    z-index: 1;
    display: block;
    width: 100vw;
    max-width: 100vw;
    margin-top: calc(-1 * var(--sec2-m-ashirai-overlap));
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    box-sizing: border-box;
    object-fit: cover;
  }

  body.page-index-testimv3 .sec2-intro-group .sec2-container {
    align-self: stretch;
    width: auto;
    max-width: 100%;
    margin-left: 0;
    padding-left: var(--sec2-promo-padding-x);
    padding-right: var(--sec2-promo-padding-x);
    box-sizing: border-box;
  }

  /* sec2-frame-section：カード型（画像上・テキスト下） */
  body.page-index-testimv3 .sec2-clip-path-group-group > .sec2-frame-section:not(.sec2-frame-section--reverse) {
    --sec2-m-card-margin-x: 20px;
    --sec2-m-card-pad-x: 24px;
    --sec2-m-card-pad-bottom: 32px;
    --sec2-m-card-text-gap: 22px;
    flex-direction: column-reverse;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    width: calc(100% - var(--sec2-m-card-margin-x) * 2) !important;
    max-width: 100%;
    margin: 28px auto 0 !important;
    padding: 0;
    background: #fff;
    border: 1px solid #e6e6e6;
    box-shadow: 0 2px 14px rgba(0, 0, 0, 0.06);
    box-sizing: border-box;
    overflow: hidden;
  }

  body.page-index-testimv3
    .sec2-clip-path-group-group
    > .sec2-frame-section:not(.sec2-frame-section--reverse)
    > .sec2-shrine-photo {
    order: 0;
    width: 100%;
    max-width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: center;
  }

  body.page-index-testimv3
    .sec2-clip-path-group-group
    > .sec2-frame-section:not(.sec2-frame-section--reverse)
    .sec2-shrine-text {
    width: 100%;
    max-width: 100%;
    padding: var(--sec2-m-card-text-gap) var(--sec2-m-card-pad-x) var(--sec2-m-card-pad-bottom);
    padding-left: var(--sec2-m-card-pad-x);
    gap: var(--sec2-m-card-text-gap);
    box-sizing: border-box;
  }

  body.page-index-testimv3
    .sec2-clip-path-group-group
    > .sec2-frame-section:not(.sec2-frame-section--reverse)
    .sec2-shrine-title {
    font-size: 17px;
    font-weight: bold;
    line-height: 1.6;
    color: #5b5b5b;
  }

  body.page-index-testimv3
    .sec2-clip-path-group-group
    > .sec2-frame-section:not(.sec2-frame-section--reverse)
    .sec2-shrine-body {
    font-size: 13px;
    line-height: 1.85;
    color: #5b5b5b;
  }

  /* contact-section：スマホ（参考デザイン） */
  body.page-index-testimv3 .sec2-section1 {
    overflow-x: clip;
    overflow-y: visible;
  }

  body.page-index-testimv3 .contact-section {
    --sec2-m-cta-pad-x: 20px;
    --sec2-m-cta-pad-y: 40px;
    --sec2-m-cta-gap: 10px;
    --sec2-m-cta-script-pad-bottom: 15px;
    --sec2-m-cta-script-right: 8%;
    width: 100%;
    max-width: 100%;
    padding: 0;
    overflow: visible;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .sec2-section1 > .contact-section {
    padding-left: 0;
    padding-right: 0;
  }

  body.page-index-testimv3 .contact-section .contact-cta-bar {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: var(--sec2-m-cta-pad-y) var(--sec2-m-cta-pad-x);
    background-color: #f6f5f3;
    background-image: url(../img/consultation_bg.png);
    background-repeat: repeat;
    background-position: center;
    background-size: auto;
    overflow: visible;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .contact-section .contact-cta-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--sec2-m-cta-gap);
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    overflow: visible;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .contact-section .cta-text-wrapper {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    width: 100%;
    min-height: calc(var(--sec2-m-cta-script-pad-bottom) + 2em);
    padding: 12px 12px var(--sec2-m-cta-script-pad-bottom);
    overflow: visible;
    background-image: none;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .contact-section .cta-text-wrapper::before {
    content: "";
    position: absolute;
    right: var(--sec2-m-cta-script-right);
    left: auto;
    top: 38%;
    z-index: 0;
    width: min(175px, 62vw);
    height: min(88px, 24vw);
    transform: translateY(-50%);
    background: url(../img/consultation.png) no-repeat right center / contain;
    pointer-events: none;
  }

  body.page-index-testimv3 .contact-section .cta-text {
    position: relative;
    z-index: 1;
    margin: 0;
    font-family: var(--font-yumincho);
    font-size: 22px;
    font-weight: 400;
    color: #5b5b5b;
    letter-spacing: 0.14em;
    line-height: 1.5;
    text-align: center;
  }

  body.page-index-testimv3 .contact-section .cta-text .muryo {
    font-size: 15px;
    letter-spacing: 0.12em;
    border-bottom: 1px solid #b5b5b5;
    padding-bottom: 3px;
    margin-right: 0.4em;
  }

  body.page-index-testimv3 .contact-section .button2 {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 17px 52px 17px 22px;
    background: #fff;
    border: 1px solid #e6e6e6;
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.05);
    box-sizing: border-box;
    font-family: var(--font-yumincho);
    font-size: 16px;
    font-weight: 400;
    color: #5b5b5b;
    letter-spacing: 0.1em;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
  }

  body.page-index-testimv3 .contact-section .button2::before {
    content: "";
    display: block;
    flex-shrink: 0;
    width: 24px;
    height: 20px;
    margin-right: 10px;
    background: url(../img/iocn-line-01.png) no-repeat center / contain;
  }

  body.page-index-testimv3 .contact-section .button2::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 22px;
    width: 14px;
    height: 5px;
    margin: 0;
    border: none;
    border-right: 2px solid #777;
    border-bottom: 1px solid #777;
    transform: translateY(-50%) skew(45deg);
    transition: right 0.3s ease, width 0.3s ease;
  }

  body.page-index-testimv3 .contact-section .button2:hover,
  body.page-index-testimv3 .contact-section .button2:focus-visible {
    background: var(--s3-btn-hover-bg);
    color: var(--s3-btn-hover-color);
    border-color: var(--s3-btn-hover-bg);
  }

  body.page-index-testimv3 .contact-section .button2:hover::after,
  body.page-index-testimv3 .contact-section .button2:focus-visible::after {
    right: 12px;
    width: 30px;
    border-right-color: currentColor;
    border-bottom-color: currentColor;
  }

  body.page-index-testimv3 .sec3-inner > .contact-section .contact-cta-bar {
    margin-bottom: 48px;
  }

  /* sec2-acca-platinum-alp-parent：スマホ（参考デザイン） */
  body.page-index-testimv3 .sec2-acca-platinum-alp-parent {
    --sec2-m-alp-min-h: min(520px, 78vw);
    --sec2-m-alp-text-right: 10%;
    --sec2-m-alp-text-top: 20%;
    margin-right: 0;
    margin-left: calc(50% - 50vw);
    width: 100vw;
    max-width: 100vw;
    min-height: var(--sec2-m-alp-min-h);
    overflow: hidden;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .sec2-acca-platinum-alp {
    display: block;
    width: 100%;
    height: 100%;
    min-height: var(--sec2-m-alp-min-h);
    flex: none;
    object-fit: cover;
    object-position: 38% center;
    margin-top: 40px;
  }

  body.page-index-testimv3 .sec2-h33 {
    top: var(--sec2-m-alp-text-top);
    right: var(--sec2-m-alp-text-right);
    transform: none;
    gap: 0;
    font-size: 20px;
    letter-spacing: 0.18em;
    line-height: 1.85;
    text-shadow:
      0 1px 4px rgba(0, 0, 0, 0.45),
      0 2px 12px rgba(0, 0, 0, 0.35);
  }

  body.page-index-testimv3 .sec2-h33-line:nth-child(2) {
    margin-top: 2.8em;
  }

  /* kodawari（#kodawari）：スマホ（参考デザイン） */
  body.page-index-testimv3 #kodawari.feature-section {
    --sec2-m-kodawari-pad-x: 20px;
    --sec2-m-kodawari-item-gap: 28px;
    padding: 44px var(--sec2-m-kodawari-pad-x) 48px;
    background: #fff;
    box-sizing: border-box;
  }

  body.page-index-testimv3 #kodawari .feature-heading {
    margin-bottom: 32px;
    font-family: var(--font-yumincho);
    font-size: 17px;
    font-weight: 400;
    color: #5b5b5b;
    letter-spacing: 0.1em;
    line-height: 1.65;
  }

  body.page-index-testimv3 #kodawari .feature-container {
    display: flex;
    flex-direction: column;
    gap: var(--sec2-m-kodawari-item-gap);
    max-width: 100%;
    position: relative;
  }

  body.page-index-testimv3 #kodawari .feature-card {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 10px;
    border: none;
    padding: 0;
    background-color: transparent;
    position: relative;
    min-height: 0;
  }

  body.page-index-testimv3 #kodawari .feature-number {
    position: static;
    flex-shrink: 0;
    display: inline-flex;
    align-items: baseline;
    gap: 10px;
    margin: 0;
    padding: 0;
    background: none;
    font-size: clamp(36px, 10vw, 44px);
    line-height: 1;
    color: #c7b093;
  }

  body.page-index-testimv3 #kodawari .feature-number::after {
    content: "/";
    font-family: var(--font-yumincho);
    font-size: 22px;
    font-weight: 300;
    font-style: normal;
    line-height: 1;
    color: #d8d8d8;
  }

  body.page-index-testimv3 #kodawari .feature-content {
    flex: 1;
    min-width: 0;
    margin-top: 4px;
    padding-left: 4px;
  }

  body.page-index-testimv3 #kodawari .feature-text {
    margin: 0 0 10px;
    font-family: var(--font-yumincho);
    font-size: 13px;
    font-weight: 400;
    line-height: 1.7;
    color: #5b5b5b;
  }

  body.page-index-testimv3 #kodawari .feature-sub {
    margin: 0;
    font-family: var(--font-yumincho);
    font-size: 17px;
    font-weight: bold;
    line-height: 1.55;
    color: #5b5b5b;
  }

  body.page-index-testimv3 #kodawari .feature-card-decor {
    padding-bottom: 48px;
    background-image: url(../img/ashirai_2.png);
    background-repeat: no-repeat;
    background-position: right bottom;
    /* background-size: min(76px, 21vw) auto; */
  }

  /* sec2-shrine-photo：左端ぴったり＋右側デバイス幅15%余白（スマホ共通・01装いヒーロー除く） */
  body.page-index-testimv3 {
    --sec2-m-shrine-photo-right-gap: 15vw;
    --sec2-m-shrine-photo-bleed-w: calc(100vw - var(--sec2-m-shrine-photo-right-gap));
  }

  /* sec2-attire-revolution：スマホ（01・装い／参考デザイン） */
  body.page-index-testimv3 .sec2-attire-revolution:not(.sec2-attire-revolution--moments) {
    --sec2-m-attire-pad-x: 20px;
    --sec2-m-attire-hero-ratio: 16 / 10;
    --sec2-m-attire-sub-w: 60vw;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas:
      "hero"
      "copy"
      "sub";
    padding: 0 0 40px;
    gap: 0;
    align-items: start;
    --left-pad: 0;
    --right-pad: 0;
    --sec2-shell-pad-bottom: 0;
    position: relative;
    overflow: visible;
  }

  body.page-index-testimv3
    .sec2-attire-revolution:not(.sec2-attire-revolution--moments)
    > .sec2-challenge {
    display: contents;
  }

  body.page-index-testimv3
    .sec2-attire-revolution:not(.sec2-attire-revolution--moments)
    .sec2-challenge
    > .sec2-group2 {
    display: contents;
  }

  body.page-index-testimv3
    .sec2-attire-revolution:not(.sec2-attire-revolution--moments)
    .sec2-photo-stack {
    display: contents;
  }

  body.page-index-testimv3
    .sec2-attire-revolution:not(.sec2-attire-revolution--moments)
    .sec2-photo-stack
    > .sec2-shrine-photo {
    grid-area: hero;
    grid-column: 1 / -1;
    position: relative;
    inset: auto;
    display: block;
    width: 100vw;
    max-width: 100vw;
    margin: 0 0 0 calc(50% - 50vw);
    aspect-ratio: var(--sec2-m-attire-hero-ratio);
    height: auto;
    object-fit: cover;
    object-position: center;
    z-index: 1;
  }

  body.page-index-testimv3
    .sec2-attire-revolution:not(.sec2-attire-revolution--moments)
    .sec2-dedication {
    grid-area: hero;
    grid-column: 1 / -1;
    justify-self: end;
    align-self: start;
    position: relative;
    z-index: 5;
    margin: 14px 14px 0 0;
    padding: 0;
  }

  body.page-index-testimv3
    .sec2-attire-revolution:not(.sec2-attire-revolution--moments)
    .sec2-preference {
    color: #fff;
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.5);
  }

  body.page-index-testimv3
    .sec2-attire-revolution
    .sec2-challenge
    > .sec2-ordinary-inversion {
    grid-area: copy;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: var(--sec2-m-copy-block-pad);
    background: #fff;
    box-sizing: border-box;
    z-index: 2;
  }

  body.page-index-testimv3 .sec2-attire-revolution .sec2-overturn {
    align-items: stretch;
    align-self: stretch;
    gap: 22px;
  }

  body.page-index-testimv3 .sec2-attire-revolution .sec2-shrine-text {
    width: 100%;
    max-width: 100%;
    padding-left: 0;
    gap: 18px;
  }

  body.page-index-testimv3 .sec2-attire-revolution .sec2-shrine-title {
    font-size: 17px;
    font-weight: bold;
    line-height: 1.65;
    color: #5b5b5b;
  }

  body.page-index-testimv3 .sec2-attire-revolution .sec2-shrine-body {
    font-size: 13px;
    line-height: 1.85;
    color: #5b5b5b;
  }

  /* sec2-memorization ボタン（スマホ・枠線基準＋タイトル絶対配置） */
  body.page-index-testimv3 .sec2-attire-revolution .sec2-memorization {
    align-self: stretch;
    display: block;
    width: 100%;
    margin: 1.3rem 0 0;
    padding: 0;
    overflow: visible;
  }

  body.page-index-testimv3 .sec2-attire-revolution .sec2-exhibition {
    --sec2-ex-btn-w: 200px;
    --sec2-ex-btn-h: 52px;
    --sec2-ex-text-left: 30px;
    --sec2-ex-text-shift-x: 6px;
    --sec2-ex-line-w: 70px;
    --sec2-ex-line-bleed: calc(var(--sec2-ex-line-w) / 3);
    /* 横線開始位置は文字幅に依存せず枠基準で固定（衣装一覧／ギャラリー共通） */
    --sec2-ex-line-start: calc(
      var(--sec2-ex-btn-w) - var(--sec2-ex-line-w) + var(--sec2-ex-line-bleed)
    );
    position: relative;
    display: block;
    width: var(--sec2-ex-btn-w);
    max-width: 100%;
    min-height: var(--sec2-ex-btn-h);
    margin: 0 var(--sec2-ex-line-bleed) 0 0;
    padding: 0;
    border: 1px solid #d8d8d8;
    background: #fff;
    box-sizing: border-box;
    overflow: visible;
    gap: 0;
  }

  body.page-index-testimv3 .sec2-attire-revolution .sec2-exhibition::after {
    content: "";
    position: absolute;
    top: 50%;
    left: var(--sec2-ex-line-start);
    width: var(--sec2-ex-line-w);
    height: 1px;
    margin: 0;
    background-color: #5b5b5b;
    transform: translateY(-50%);
    pointer-events: none;
  }

  body.page-index-testimv3 .sec2-attire-revolution .sec2-exhibition .sec2-shrine-title {
    position: absolute;
    top: 50%;
    left: calc(var(--sec2-ex-text-left) + var(--sec2-ex-text-shift-x));
    right: auto;
    z-index: 1;
    display: inline-block;
    width: auto;
    max-width: calc(var(--sec2-ex-line-start) - var(--sec2-ex-text-left) - 8px);
    margin: 0;
    padding: 0;
    font-family: var(--font-yumincho);
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0.12em;
    line-height: 1;
    color: #5b5b5b;
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
    transform: translateY(-50%);
  }

  body.page-index-testimv3 .sec2-attire-revolution .sec2-exhibition .sec2-shrine-title::after {
    content: none;
    display: none;
  }

  body.page-index-testimv3 .sec2-attire-revolution .sec2-exhibition:hover,
  body.page-index-testimv3 .sec2-attire-revolution .sec2-exhibition:focus-within {
    --sec2-ex-line-w: 82px;
  }

  body.page-index-testimv3 .sec2-attire-revolution .sec2-exhibition .sec2-td-wrapper {
    display: none;
  }

  /* sec2-attire-revolution--moments：スマホ（02・撮影／参考デザイン） */
  body.page-index-testimv3 .sec2-attire-revolution--moments {
    --sec2-m-moments-hero-ratio: 16 / 10;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas:
      "hero"
      "copy";
    min-height: 0;
    padding: 0 0 40px;
    gap: 0;
    align-items: start;
    --left-pad: 0;
    --right-pad: 0;
    --sec2-shell-pad-bottom: 0;
    position: relative;
    overflow: visible;
  }

  body.page-index-testimv3 .sec2-attire-revolution--moments > .sec2-challenge {
    display: contents;
  }

  body.page-index-testimv3
    .sec2-attire-revolution--moments
    .sec2-challenge
    > .sec2-group2 {
    display: contents;
  }

  body.page-index-testimv3 .sec2-attire-revolution--moments .sec2-photo-stack {
    display: contents;
  }

  body.page-index-testimv3
    .sec2-attire-revolution--moments
    .sec2-photo-stack
    > .sec2-shrine-photo {
    grid-area: hero;
    grid-column: 1 / -1;
    position: relative;
    inset: auto;
    display: block;
    width: 100vw;
    max-width: 100vw;
    margin: 0 0 0 calc(50% - 50vw);
    aspect-ratio: var(--sec2-m-moments-hero-ratio);
    height: auto;
    object-fit: cover;
    object-position: center;
    z-index: 1;
  }

  body.page-index-testimv3
    .sec2-attire-revolution:not(.sec2-attire-revolution--moments)
    .sec2-photo-stack
    .sec2-presentation {
    grid-area: sub;
    grid-column: 1 / -1;
    justify-self: center;
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    width: var(--sec2-m-attire-sub-w);
    max-width: var(--sec2-m-attire-sub-w);
    margin: 24px auto 0;
    aspect-ratio: 4 / 3;
    overflow: visible;
    z-index: 1;
  }

  body.page-index-testimv3
    .sec2-attire-revolution:not(.sec2-attire-revolution--moments)
    .sec2-photo-stack
    .sec2-visuals {
    position: absolute;
    inset: 0;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
  }

  body.page-index-testimv3
    .sec2-attire-revolution:not(.sec2-attire-revolution--moments)
    .sec2-photo-stack
    .sec2-rectangle-icon2 {
    object-fit: cover;
    object-position: center;
  }

  body.page-index-testimv3
    .sec2-attire-revolution:not(.sec2-attire-revolution--moments)
    .sec2-photo-stack
    .sec2-group-icon5 {
    top: auto;
    bottom: -6%;
    left: -30%;
    width: 58%;
    height: auto;
    max-height: 80%;
    object-fit: contain;
    object-position: left bottom;
    z-index: 5;
  }

  /* sec2-professionalism：スマホ（テキストは ordinary-inversion と同様） */
  body.page-index-testimv3 .sec2-professionalism {
    --left-pad: 0;
    --right-pad: 0;
    align-items: stretch;
    padding: 0 0 40px;
    gap: 0;
  }

  body.page-index-testimv3 .sec2-professionalism > .sec2-expertise {
    align-self: stretch;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: var(--sec2-m-copy-block-pad);
    background: #fff;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .sec2-professionalism .sec2-stylist-professionals {
    width: 100%;
    max-width: 100%;
    gap: 18px;
  }

  body.page-index-testimv3
    .sec2-professionalism
    .sec2-stylist-professionals
    > .sec2-shrine-title {
    font-size: 17px;
    font-weight: bold;
    line-height: 1.65;
    color: #5b5b5b;
  }

  body.page-index-testimv3 .sec2-professionalism .sec2-qualified {
    width: 100%;
    max-width: 100%;
    gap: 0;
    font-size: inherit;
  }

  body.page-index-testimv3 .sec2-professionalism .sec2-shrine-body {
    font-size: 13px;
    line-height: 1.85;
    color: #5b5b5b;
  }

  body.page-index-testimv3 .sec2-professionalism > .sec2-styling-artistry {
    align-self: stretch;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
  }

  body.page-index-testimv3 .sec2-professionalism .sec2-presentation-two {
    --sec2-m-styling-art-w: 85vw;
    width: var(--sec2-m-styling-art-w);
    max-width: var(--sec2-m-styling-art-w);
    min-width: 0;
    margin-left: auto;
    margin-right: auto;
  }

  body.page-index-testimv3 .sec2-professionalism .sec2-presentation-two .sec2-sitenav-icon {
    display: block;
    width: 100%;
    height: auto;
    max-width: 100%;
    margin: 0;
  }

  body.page-index-testimv3 .sec2-professionalism .sec2-style-commitment {
    display: none;
  }

  /* 追従ラベル（スマホ）・テキストブロック共通 padding */
  body.page-index-testimv3 {
    --sec2-m-attire-pad-x: 20px;
    --sec2-fixed-label-right: 14px;
    --sec2-m-copy-pad-right: calc(var(--sec2-m-attire-pad-x) + 28px);
    --sec2-m-copy-block-pad: 28px var(--sec2-m-copy-pad-right) 32px var(--sec2-m-attire-pad-x);
  }

  body.page-index-testimv3 .sec3-inner {
    padding-left: 0;
    padding-right: 0;
  }

  /* sec3-camera-team：スマホ（参考デザイン・画像コラージュ＋テキスト） */
  body.page-index-testimv3 .sec3-camera-team {
    --sec3-m-camera-main-w: 58%;
    --sec3-m-camera-main-ratio: 280 / 360;
    --sec3-m-camera-sub-w: 48%;
    --sec3-m-camera-sub-max-w: min(200px, 52vw);
    --sec3-m-camera-visual-pad-bottom: 12%;
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    padding: 8px 0 40px;
    background: #fff;
    overflow: visible;
  }

  body.page-index-testimv3 .sec3-camera-team-layout {
    gap: 28px;
    padding: 0;
  }

  body.page-index-testimv3 .sec3-camera-team-visual {
    position: relative;
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: 0;
    padding: 0 0 var(--sec3-m-camera-visual-pad-bottom);
    overflow: visible;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .sec3-camera-team-main {
    display: block;
    width: var(--sec3-m-camera-main-w);
    max-width: 100%;
    height: auto;
    margin: 0;
    aspect-ratio: var(--sec3-m-camera-main-ratio);
    object-fit: cover;
    object-position: center top;
  }

  body.page-index-testimv3 .sec3-camera-team-sub {
    position: absolute;
    top: auto;
    right: auto;
    left: 38%;
    bottom: 0;
    transform: translateY(15%);
    width: var(--sec3-m-camera-sub-w);
    max-width: var(--sec3-m-camera-sub-max-w);
    height: auto;
    aspect-ratio: 1;
    object-fit: cover;
    object-position: center;
    box-shadow: none;
    z-index: 2;
  }

  body.page-index-testimv3 .sec3-camera-team-body {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: var(--sec2-m-copy-block-pad);
    box-sizing: border-box;
  }

  body.page-index-testimv3 .sec3-camera-team-text {
    margin: 0;
    font-family: var(--font-yumincho);
    font-size: 13px;
    font-weight: 400;
    line-height: 1.85;
    letter-spacing: 0.05em;
    color: #5b5b5b;
  }

  /* sec3-pro-team：スマホ（参考デザイン・段差ギャラリー＋縦書き03＋テキスト） */
  body.page-index-testimv3 .sec3-pro-team {
    --sec3-m-pro-img-w: min(108px, 27.5vw);
    --sec3-m-pro-img-h: min(220px, 55vw);
    --sec3-m-pro-gallery-gap: 8px;
    --sec3-m-pro-stagger-coord: 44px;
    --sec3-m-pro-stagger-cam: 22px;
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
    padding: 8px 0 48px;
    background: #fff;
    overflow: visible;
  }

  body.page-index-testimv3 .sec3-pro-team-layout {
    display: flex;
    flex-direction: column;
    gap: 32px;
    padding: 0;
  }

  body.page-index-testimv3 .sec3-pro-team-media {
    order: 1;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    width: 100%;
    min-width: 0;
  }

  body.page-index-testimv3 .sec3-pro-team-gallery {
    flex: 1 1 auto;
    flex-wrap: nowrap;
    justify-content: center;
    gap: var(--sec3-m-pro-gallery-gap);
    min-width: 0;
    padding: 0 4px 0 0;
    overflow: visible;
  }

  body.page-index-testimv3 .sec3-pro-team-item {
    gap: 10px;
    align-items: flex-end;
  }

  body.page-index-testimv3 .sec3-pro-team-item img.sec3-pro-team-photo,
  body.page-index-testimv3 .sec3-pro-team-item > img:not(.sec3-pro-team-decor) {
    width: var(--sec3-m-pro-img-w);
    height: var(--sec3-m-pro-img-h);
    object-fit: cover;
    object-position: center top;
  }

  body.page-index-testimv3 .sec3-pro-team-item--stylist {
    margin-top: 0;
  }

  body.page-index-testimv3 .sec3-pro-team-item--coordinator {
    margin-top: var(--sec3-m-pro-stagger-coord);
  }

  body.page-index-testimv3 .sec3-pro-team-item--cameraman {
    position: relative;
    margin-top: var(--sec3-m-pro-stagger-cam);
    overflow: visible;
  }

  body.page-index-testimv3 .sec3-pro-team-decor {
    right: -18px;
    bottom: 22%;
    width: min(56px, 14vw);
    height: auto;
    opacity: 0.9;
  }

  body.page-index-testimv3 .sec3-pro-team-role {
    font-size: 13px;
    letter-spacing: 0.05em;
    color: #5b5b5b;
    text-align: right;
    align-self: flex-end;
  }

  body.page-index-testimv3 .sec3-pro-team-intro {
    order: 2;
    width: 100%;
    max-width: 100%;
    padding: var(--sec2-m-copy-block-pad);
    box-sizing: border-box;
  }

  body.page-index-testimv3 .sec3-pro-team-intro .sec2-shrine-title {
    margin: 0 0 18px;
    font-size: 17px;
    font-weight: bold;
    line-height: 1.65;
    color: #5b5b5b;
  }

  body.page-index-testimv3 .sec3-pro-team-lead {
    font-family: var(--font-yumincho);
    font-size: 13px;
    font-weight: 400;
    line-height: 1.85;
    letter-spacing: 0.05em;
    color: #5b5b5b;
  }


  /* sec2-frame-section--reverse（sec3-inner内）：スマホ（画像全幅→テキスト） */
  body.page-index-testimv3 .sec3-inner > .sec2-frame-section.sec2-frame-section--reverse {
    --sec2-m-reverse-hero-ratio: 16 / 10;
    flex-direction: column-reverse;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    background: #fff;
    box-sizing: border-box;
    overflow: visible;
  }

  body.page-index-testimv3
    .sec3-inner
    > .sec2-frame-section.sec2-frame-section--reverse
    > .sec2-shrine-photo {
    display: block;
    width: var(--sec2-m-shrine-photo-bleed-w);
    max-width: var(--sec2-m-shrine-photo-bleed-w);
    margin: 0 0 0 calc(50% - 50vw);
    padding: 0;
    aspect-ratio: var(--sec2-m-reverse-hero-ratio);
    height: auto;
    object-fit: cover;
    object-position: center;
    flex: none;
  }

  body.page-index-testimv3
    .sec3-inner
    > .sec2-frame-section.sec2-frame-section--reverse
    .sec2-shrine-text {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: var(--sec2-m-copy-block-pad);
    gap: 18px;
    box-sizing: border-box;
  }

  body.page-index-testimv3
    .sec3-inner
    > .sec2-frame-section.sec2-frame-section--reverse
    .sec2-shrine-title {
    margin: 0;
    font-size: 18px;
    font-weight: bold;
    line-height: 1.65;
    color: #5b5b5b;
  }

  body.page-index-testimv3
    .sec3-inner
    > .sec2-frame-section.sec2-frame-section--reverse
    .sec2-shrine-body {
    font-size: 13px;
    line-height: 1.85;
    color: #5b5b5b;
  }

  /* 挙式プラン（sec3-ceremony-plan-body / --reverse）：スマホ（参考デザイン） */
  body.page-index-testimv3 .sec3-ceremony-plan {
    padding: 0 0 48px;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-header {
    margin-bottom: 28px;
    padding: 0 var(--sec2-m-attire-pad-x, 20px);
  }

  body.page-index-testimv3 .sec3-ceremony-plan-heading-wrap {
    min-height: 200px;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-body,
  body.page-index-testimv3 .sec3-ceremony-plan-body.sec3-ceremony-plan-body--reverse {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: 100vw;
    max-width: 100vw;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-body + .sec3-ceremony-plan-body {
    margin-top: 48px;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-info,
  body.page-index-testimv3 .sec3-ceremony-plan-body--reverse .sec3-ceremony-plan-info {
    flex: 1 1 auto;
    max-width: 100%;
    margin: 0;
    padding: 0;
    gap: 20px;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-visual {
    display: none;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-summary {
    margin: 0;
    padding: 28px 16px 24px;
    text-align: center;
    background-image: url("../img/plan-bg.png");
    background-size: cover;
    background-position: center;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-name {
    margin-bottom: 16px;
    padding-bottom: 14px;
    font-size: 18px;
    text-align: left;
    letter-spacing: 0.1em;
    font-weight: bold;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-desc {
    margin-bottom: 20px;
    font-size: 13px;
    line-height: 1.85;
    text-align: center;
    letter-spacing: 0.05em;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-price {
    justify-content: flex-end;
    margin-bottom: 10px;
    text-align: right;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-price-value {
    font-size: 36px;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-note {
    text-align: right;
    font-size: 11px;
    line-height: 1.75;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-contents {
    margin: 0;
    margin-top: 20px;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-contents-toggle {
    padding: 14px 16px;
    background: #fff;
    /* border: 1px solid var(--sec3-color-line); */
    cursor: pointer;
    pointer-events: auto;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-contents-chevron {
    display: block;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-contents.is-open .sec3-ceremony-plan-contents-chevron {
    transform: rotate(-135deg);
    margin-top: 4px;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-contents:not(.is-open) .sec3-ceremony-plan-contents-panel {
    display: none;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-contents.is-open .sec3-ceremony-plan-contents-panel {
    display: block;
    padding: 16px 12px 20px;
    background: #fff;
    /* border: 1px solid var(--sec3-color-line); */
    border-top: 0;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-contents-toggle .sec3-ceremony-plan-contents-title {
    font-size: 15px;
    letter-spacing: 0.12em;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-features {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px 10px;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-features li {
    flex-direction: column;
    align-items: center;
    gap: 10px;
    font-size: 12px;
    line-height: 1.55;
    text-align: center;
    letter-spacing: 0.02em;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-icon {
    --sec3-ceremony-plan-icon-size: 75px;
    margin-top: 0;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-feature-text {
    width: 100%;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-cta {
    padding: 16px 20px;
    font-size: 13px;
    letter-spacing: 0.1em;
    margin-top: 20px;
  }

  /* sec3-gift：スマホ（feature-container は #kodawari と同系） */
  body.page-index-testimv3 .sec3-gift {
    padding: 44px var(--sec2-m-kodawari-pad-x, 20px) 20px;
    background: #fff;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .sec3-gift-header {
    margin: 0 auto 32px;
    padding: 0;
    max-width: 100%;
    text-align: center;
  }

  body.page-index-testimv3 .sec3-gift-sub {
    margin: 0 0 12px;
    font-family: var(--font-yumincho);
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0.1em;
    line-height: 1.65;
    color: #5b5b5b;
  }

  body.page-index-testimv3 .sec3-gift-header .sec3-en-heading {
    font-size: clamp(32px, 9vw, 40px);
    letter-spacing: 0.06em;
    color: #c7b093;
  }

  body.page-index-testimv3 .sec3-gift .feature-container {
    display: flex;
    flex-direction: column;
    gap: var(--sec2-m-kodawari-item-gap, 28px);
    max-width: 100%;
    margin: 0;
    position: relative;
  }

  body.page-index-testimv3 .sec3-gift .feature-card {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-areas:
      "num content"
      "cta cta";
    align-items: start;
    gap: 10px;
    column-gap: 10px;
    border: none;
    padding: 0;
    background-color: transparent;
    position: relative;
    min-height: 0;
  }

  body.page-index-testimv3 .sec3-gift .feature-card:not(:has(.sec3-gift-card-link)) {
    grid-template-areas: "num content";
  }

  body.page-index-testimv3 .sec3-gift .feature-number {
    grid-area: num;
    position: static;
    flex-shrink: 0;
    display: inline-flex;
    align-items: baseline;
    gap: 10px;
    margin: 0;
    padding: 0;
    background: none;
    font-size: clamp(30px, 5vw, 50px);
    line-height: 1;
    color: #c7b093;
  }

  body.page-index-testimv3 .sec3-gift .feature-number::after {
    content: "/";
    font-family: var(--font-yumincho);
    font-size: 22px;
    font-weight: 300;
    font-style: normal;
    line-height: 1;
    color: #d8d8d8;
  }

  body.page-index-testimv3 .sec3-gift .feature-content {
    grid-area: content;
    flex: 1;
    min-width: 0;
    margin: 4px 0 0;
    padding-left: 4px;
  }

  body.page-index-testimv3 .sec3-gift .feature-text {
    margin: 0 0 10px;
    font-family: var(--font-yumincho);
    font-size: 13px;
    font-weight: 400;
    line-height: 1.7;
    color: #5b5b5b;
  }

  body.page-index-testimv3 .sec3-gift .feature-sub {
    margin: 0;
    font-family: var(--font-yumincho);
    font-size: 17px;
    font-weight: 400;
    line-height: 1.55;
    color: #5b5b5b;
  }

  body.page-index-testimv3 .sec3-gift .feature-card-decor {
    padding-bottom: 70px;
    background-image: url(../img/ashirai_2.png);
    background-repeat: no-repeat;
    background-position: right bottom;
    background-size: min(52px, 15vw) auto;
  }

  body.page-index-testimv3 .sec3-gift .sec3-gift-card-link {
    grid-area: cta;
    justify-self: end;
    width: auto;
    max-width: 100%;
    margin: 8px 0 0;
    padding: 0;
    font-size: 12px;
    letter-spacing: 0.06em;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .sec2-fixed-label {
    right: var(--sec2-fixed-label-right);
    top: 40%;
  }
}

/* ===== Section 2 (Locofy raw export) ===== */
/* =========================================================
   Section 2
   Locofy が参照する CSS カスタムプロパティ群を .sec2-section1
   にスコープして定義する。命名規則は --padding-{px}, --gap-{px},
   --fs-{px} で値はそのまま px。色と font は明示定義。
   ========================================================= */
.sec2-section1 {
  /* ---- Font: 游明朝（ページ共通） ---- */
  font-family: var(--font-yumincho);
  --font-inter: var(--font-yumincho);

  /* ---- Colors ---- */
  --color-white: #fff;
  --color-dimgray: #5b5b5b;
  --color-gray: #808080;
  --color-lightgray: #d3d3d3;
  --color-tan-100: #c7b093;
  --color-tan-200: #a68b6a;

  /* ---- Font sizes ---- */
  --fs-13: 13px;
  --fs-14: 14px;
  --fs-16: 16px;
  --fs-17: 17px;
  --fs-18: 18px;
  --fs-19: 19px;
  --fs-24: 24px;

  /* ---- Padding ---- */
  --padding-0: 0;
  --padding-01: 0;
  --padding-1: 1px;
  --padding-2: 2px;
  --padding-4: 4px;
  --padding-5: 5px;
  --padding-8: 8px;
  --padding-10: 10px;
  --padding-14: 14px;
  --padding-15: 15px;
  --padding-20: 20px;

  /* ---- Gap ---- */
  --gap-15: 15px;
  --gap-16: 16px;
  --gap-19: 19px;
  --gap-20: 20px;
  --gap-24: 24px;
  --gap-28: 28px;

  /* ---- Layout (Locofy original) ---- */
  width: 100%;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  padding: 16.9px var(--padding-0) var(--padding-0);
  box-sizing: border-box;
  gap: 77.4px;
  line-height: normal;
  letter-spacing: normal;
  color: var(--color-dimgray);
}
.sec2-frame-parent,
.sec2-section1-inner {
  display: flex;
  align-items: flex-start;
  max-width: 100%;
}
.sec2-section1-inner {
  align-self: stretch;
  justify-content: flex-end;
  padding: var(--padding-0) 35px 27px 42px;
  box-sizing: border-box;
  flex-shrink: 0;
  text-align: left;
  font-size: 23px;
  color: var(--color-dimgray);
  font-family: var(--font-inter);
}
.sec2-frame-parent {
  flex: 1;
  flex-direction: column;
  gap: 80px;
}
/* 通常時は非表示。スクロール後の is-fixed のみ画面上部に表示 */
.sec2-frame-group {
  display: none;
}
.sec2-frame-group-placeholder {
  display: block;
  height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  pointer-events: none;
  transition: height 0.45s cubic-bezier(0.25, 0.8, 0.35, 1);
}
.sec2-frame-group.is-fixed {
  --sec2-fixed-scale: 1.18;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  max-width: 100%;
  text-align: left;
  font-size: calc(var(--fs-13) * var(--sec2-fixed-scale));
  color: var(--color-dimgray);
  font-family: var(--font-inter);
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  margin: 0;
  padding: calc(14px * var(--sec2-fixed-scale)) calc(35px * var(--sec2-fixed-scale))
    calc(14px * var(--sec2-fixed-scale)) calc(42px * var(--sec2-fixed-scale));
  box-sizing: border-box;
  background-color: #fff;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
  gap: calc(var(--gap-20) * var(--sec2-fixed-scale));
  animation: sec2-frame-group-fix-in 0.5s cubic-bezier(0.25, 0.8, 0.35, 1) both;
  will-change: transform, opacity, box-shadow;
}

/* 固定ヘッダー時のみ全体を拡大（プレースホルダー高さも offsetHeight で連動） */
.sec2-frame-group.is-fixed .sec2-group-parent {
  width: auto;
  max-width: 100%;
  gap: calc(66px * var(--sec2-fixed-scale));
}

.sec2-frame-group.is-fixed .sec2-group-icon {
  height: calc(62px * var(--sec2-fixed-scale));
}

.sec2-frame-group.is-fixed .sec2-wrapper {
  padding-top: calc(19.5px * var(--sec2-fixed-scale));
}

.sec2-frame-group.is-fixed .sec2-frame-wrapper {
  width: auto;
  padding-bottom: calc(16px * var(--sec2-fixed-scale));
}

.sec2-frame-group.is-fixed .sec2-frame-wrapper .sec2-frame-container,
.sec2-frame-group.is-fixed .sec2-frame-container {
  gap: calc(26px * var(--sec2-fixed-scale));
}

.sec2-frame-group.is-fixed .sec2-frame-div {
  gap: calc(10px * var(--sec2-fixed-scale));
}

.sec2-frame-group.is-fixed .sec2-frame-wrapper2 {
  padding-top: calc(3.7px * var(--sec2-fixed-scale));
}

.sec2-frame-group.is-fixed .sec2-tel-link {
  min-height: calc(24px * var(--sec2-fixed-scale));
  gap: calc(8px * var(--sec2-fixed-scale));
  font-size: calc(21px * var(--sec2-fixed-scale));
}

.sec2-frame-group.is-fixed .sec2-div2 {
  min-width: 0;
}

.sec2-frame-group.is-fixed .sec2-vector-icon {
  height: calc(24px * var(--sec2-fixed-scale));
}

.sec2-frame-group.is-fixed .sec2-line-btn {
  padding: calc(9px * var(--sec2-fixed-scale)) calc(16px * var(--sec2-fixed-scale))
    calc(10px * var(--sec2-fixed-scale));
  gap: calc(14px * var(--sec2-fixed-scale));
  font-size: calc(14px * var(--sec2-fixed-scale));
}

.sec2-frame-group.is-fixed .sec2-line-btn__icon {
  height: calc(20px * var(--sec2-fixed-scale));
  max-width: calc(40px * var(--sec2-fixed-scale));
}

.sec2-frame-group.is-fixed .sec2-mail-btn {
  width: calc(40px * var(--sec2-fixed-scale));
  height: calc(40px * var(--sec2-fixed-scale));
  padding: calc(6px * var(--sec2-fixed-scale));
  border-width: calc(1px * var(--sec2-fixed-scale));
}

@keyframes sec2-frame-group-fix-in {
  from {
    opacity: 0;
    transform: translate3d(0, -10px, 0);
    box-shadow: 0 0 0 rgba(0, 0, 0, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
  }
}

@media (prefers-reduced-motion: reduce) {
  .sec2-frame-group-placeholder {
    transition: none;
  }
  .sec2-frame-group.is-fixed {
    animation: none;
    will-change: auto;
  }
}
.sec2-group-parent {
  width: 737.3px;
  display: flex;
  align-items: flex-start;
  gap: 66px;
  max-width: 100%;
}
.sec2-group-icon {
  width: auto;
  height: 62px;
  flex-shrink: 0;
  position: relative;
}
.sec2-wrapper {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 19.5px var(--padding-0) var(--padding-0);
  box-sizing: border-box;
  max-width: 100%;
}
.sec2-div {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1.75rem;
  white-space: nowrap;
}

.sec2-nav-link {
  color: inherit;
  text-decoration: none;
  transition: opacity 0.2s ease;
}

.sec2-nav-link:hover,
.sec2-nav-link:focus-visible {
  opacity: 0.72;
}

.sec2-nav-link:focus-visible {
  outline: 2px solid var(--color-tan-100);
  outline-offset: 3px;
}
.sec2-frame-wrapper {
  width: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;
  padding: var(--padding-0) var(--padding-0) 16px;
  box-sizing: border-box;
  color: var(--color-gray);
}
.sec2-frame-wrapper .sec2-frame-container {
  gap: 26px;
}
.sec2-frame-container {
  align-self: stretch;
  display: flex;
  align-items: flex-end;
  gap: 18.6px;
}
.sec2-frame-div {
  flex: 0 1 auto;
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}
.sec2-frame-wrapper2 {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 3.7px var(--padding-0) var(--padding-0);
}
.sec2-tel-link {
  display: inline-flex;
  flex-direction: row-reverse;
  align-items: center;
  gap: 8px;
  min-height: 24px;
  color: inherit;
  font-size: 21px;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.2s ease;
}
.sec2-tel-link:hover,
.sec2-tel-link:focus-visible {
  opacity: 0.72;
}
.sec2-tel-link:focus-visible {
  outline: 2px solid var(--color-tan-100);
  outline-offset: 3px;
}
.sec2-div2 {
  display: inline-block;
  min-width: 0;
  white-space: nowrap;
}
.sec2-vector-icon {
  flex-shrink: 0;
  width: auto;
  height: 24px;
}
.sec2-line-btn {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 9px 16px 10px;
  border: 1px solid var(--color-tan-100);
  border-radius: 0;
  box-sizing: border-box;
  background-color: #fff;
  color: var(--color-dimgray);
  font-family: inherit;
  font-size: 14px;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition:
    transform 0.35s cubic-bezier(0.25, 0.8, 0.35, 1),
    background-color 0.35s ease,
    box-shadow 0.35s ease;
}
.sec2-line-btn:hover,
.sec2-line-btn:focus-visible {
  transform: translateY(-4px);
  background-color: #faf6f1;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.1);
}
.sec2-line-btn:focus-visible {
  outline: 2px solid var(--color-tan-100);
  outline-offset: 3px;
}
.sec2-line-btn__icon {
  flex-shrink: 0;
  width: auto;
  height: 20px;
  max-width: 40px;
}
.sec2-line-btn__label {
  flex-shrink: 0;
}
.sec2-vector-icon2 {
  display: none;
}
.sec2-mail-btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 6px;
  box-sizing: border-box;
  border: 1px solid var(--color-tan-100);
  border-radius: 50%;
  background-color: #fff;
  text-decoration: none;
  cursor: pointer;
  transition:
    transform 0.35s cubic-bezier(0.25, 0.8, 0.35, 1),
    box-shadow 0.35s ease;
}
.sec2-mail-btn:hover,
.sec2-mail-btn:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.1);
}
.sec2-mail-btn:focus-visible {
  outline: 2px solid var(--color-tan-100);
  outline-offset: 3px;
}
.sec2-mail-btn__icon {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

@media (prefers-reduced-motion: reduce) {
  .sec2-line-btn,
  .sec2-mail-btn {
    transition: background-color 0.2s ease, box-shadow 0.2s ease;
  }
  .sec2-line-btn:hover,
  .sec2-line-btn:focus-visible,
  .sec2-mail-btn:hover,
  .sec2-mail-btn:focus-visible {
    transform: none;
  }
}
.sec2-frame-wrapper3 {
  /*
   * テキスト＋画像ブロックのサイズ感調整（ここだけ変更すればOK）
   * --sec2-promo-image-max-width … 画像エリアの最大幅
   * --sec2-promo-gap … 縦書き見出しと画像の間隔
   * --sec2-h3-line2-offset … 2列目「ふたりの誓い」の下げ量
   */
  --sec2-promo-max-width: 1240px;
  --sec2-promo-padding-x: 50px;
  --sec2-promo-gap: 22px;
  --sec2-promo-min-height: 500px;
  --sec2-promo-image-max-width: 960px;
  --sec2-promo-aspect-ratio: 780 / 430;
  --sec2-h3-font-size: 25px;
  --sec2-h3-letter-spacing: 0.38em;
  --sec2-h3-line-height: 1.9;
  --sec2-h3-col-gap: 15px;
  --sec2-h3-line2-offset: 1.4em;
  width: 100%;
  display: flex;
  justify-content: center;
  padding: var(--padding-0) var(--sec2-promo-padding-x);
  box-sizing: border-box;
  max-width: 100%;
}
.sec2-group {
  flex: 1;
  width: 100%;
  max-width: var(--sec2-promo-max-width);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  column-gap: var(--sec2-promo-gap);
  padding: 40px 0 60px;
  box-sizing: border-box;
  position: relative;
  min-height: var(--sec2-promo-min-height);
}
.sec2-h3 {
  grid-column: 1;
  grid-row: 1;
  margin: 0;
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start;
  gap: var(--sec2-h3-col-gap);
  flex-shrink: 0;
  align-self: center;
  justify-self: start;
  z-index: 4;
}
.sec2-h3-line {
  display: block;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-family: var(--font-yumincho);
  font-size: var(--sec2-h3-font-size);
  font-weight: 400;
  color: #5b5b5b;
  letter-spacing: var(--sec2-h3-letter-spacing);
  line-height: var(--sec2-h3-line-height);
  white-space: nowrap;
}
/* 2列目（ふたりの誓い）：「大」の高さから始まるよう段差 */
.sec2-h3-line:nth-child(2) {
  margin-top: var(--sec2-h3-line2-offset);
}
.sec2-clip-path-group-parent {
  grid-column: 2;
  grid-row: 1;
  position: relative;
  width: 100%;
  max-width: var(--sec2-promo-image-max-width);
  aspect-ratio: var(--sec2-promo-aspect-ratio);
  justify-self: end;
  align-self: center;
  flex-shrink: 0;
}
.sec2-clip-path-group {
  position: absolute;
  top: 0;
  right: 0;
  width: 78%;
  height: 86%;
  object-fit: cover;
  z-index: 1;
}
.sec2-clip-path-group2 {
  position: absolute;
  bottom: 0;
  left: 6%;
  width: 24%;
  height: 58%;
  object-fit: cover;
  z-index: 3;
}
.sec2-ashirai {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  justify-self: start;
  position: relative;
  width: min(650px, 100%);
  max-width: 100%;
  height: auto;
  margin: 0 0 0 -450px;
  object-fit: contain;
  object-position: left bottom;
  z-index: 4;
  pointer-events: none;
}
.sec2-td-icon {
  display: none;
}
.sec2-clip-path-group-group {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  --sec2-intro-right-space: 150px;
  padding: var(--padding-0) var(--sec2-intro-right-space) 55.3px var(--padding-0);
  box-sizing: border-box;
  gap: 32.4px;
  width: 100%;
  max-width: 100%;
  flex-shrink: 0;
  text-align: left;
  font-size: var(--fs-13);
  color: var(--color-dimgray);
  font-family: var(--font-inter);
}
/* 画像＋導入テキスト：画像幅に合わせ、テキストは画像右端に揃える */
.sec2-intro-group {
  --sec2-intro-img-width: 65vw;
  --sec2-intro-gap: 32.4px;
  align-self: flex-start;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  width: var(--sec2-intro-img-width);
  max-width: 100%;
  gap: var(--sec2-intro-gap);
  box-sizing: border-box;
}
.sec2-clip-path-group3 {
  display: block;
  align-self: stretch;
  width: 100%;
  height: auto;
  margin: 0;
  position: relative;
  object-fit: cover;
}
.sec2-intro-group .sec2-container {
  width: auto;
  max-width: 100%;
  margin: 0;
  padding: 0;
  align-self: flex-end;
  box-sizing: border-box;
      margin-left: 20px;
}
.sec2-intro-group .sec2-container > p {
  margin: 0;
}
.sec2-container,
.sec2-frame-wrapper5 {
  display: flex;
  align-items: flex-start;
}
.sec2-frame-wrapper5 {
  width: 1161.9px;
  justify-content: center;
  padding: var(--padding-0) 23px 33.1px var(--padding-20);
  box-sizing: border-box;
}
.sec2-container {
  width: 585px;
  flex-direction: column;
  gap: 6.8px;
  max-width: 100%;
}
.sec2-div3,
.sec2-div5 {
  position: relative;
}
.sec2-div3,
p.sec2-div3 {
  display: block;
  max-width: 100%;
  margin: 0;
}
.sec2-div5,
p.sec2-div5 {
  align-self: stretch;
  white-space: nowrap;
  margin: 0;
}
.sec2-qualified > p.sec2-shrine-body {
  margin: 0;
}
.sec2-stylist-professionals > .sec2-shrine-title {
  margin: 0;
}
.sec2-exhibition > .sec2-shrine-title {
  margin: 0;
}

.sec2-exhibition a.sec2-shrine-title {
  text-decoration: none;
  color: inherit;
}

.sec2-exhibition a.sec2-shrine-title:focus-visible {
  outline: 2px solid var(--s3-color-accent, #c7b093);
  outline-offset: 2px;
}
/* 諏訪大社・01装い・02カメラマン：テキスト＋写真を横並び（右端寄せ）
 * 写真列の横幅 … .sec2-challenge > .sec2-group2 の width（%）
 * メイン写真の比率 … .sec2-photo-stack（01・02 共通・720/480）
 */
.sec2-frame-section,
.sec2-challenge {
  align-self: stretch;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-end;
  gap: 64px;
  max-width: none;
  padding: 0;
  box-sizing: border-box;
  text-align: left;
  font-size: var(--fs-17);
  color: var(--color-dimgray);
  font-family: var(--font-inter);
}
.sec2-frame-section:not(.sec2-frame-section--reverse) {
  width: calc(100% + var(--sec2-intro-right-space, 0px));
  margin-right: calc(-1 * var(--sec2-intro-right-space, 0px));
}
/* 左右反転（写真左・テキスト右）。レイアウト以外は .sec2-frame-section と共通 */
.sec2-frame-section--reverse {
  flex-direction: row-reverse;
  width: calc(100% + var(--sec2-intro-right-space, 120px));
  margin-right: 0;
  margin-left: calc(-1 * var(--sec2-intro-right-space, 120px));
}
.sec2-challenge {
  width: calc(100% + var(--right-pad, 40px));
  margin-right: calc(-1 * var(--right-pad, 40px));
  /* テキスト列を左基準に（flex-end だと幅不足時に左が section1 の overflow で見切れる） */
  justify-content: flex-start;
}
.sec2-challenge > .sec2-group2 {
  margin-left: auto;
}
.sec2-shrine-text {
  flex: 0 1 auto;
  min-width: 0;
  width: min(100%, max-content);
  max-width: 700px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 37.9px;
  margin: 0;
  padding: 0;
  padding-left: var(--sec2-shrine-text-inset, 25px);
  box-sizing: border-box;
  overflow-wrap: break-word;
  word-break: normal;
}
/* PC横並び（1101px〜）：右端ぴったり＋写真列は固定%（presentation は主写真内に収める） */
@media screen and (min-width: 1101px) {
  .sec2-challenge {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
    width: calc(100% + var(--right-pad, 40px));
    max-width: none;
    margin-right: calc(-1 * var(--right-pad, 40px));
    gap: 0;
    box-sizing: border-box;
  }
  .sec2-attire-revolution > .sec2-challenge,
  .sec2-attire-revolution--moments > .sec2-challenge {
    width: calc(100% + var(--right-pad, 40px));
    margin-right: calc(-1 * var(--right-pad, 40px));
  }
  .sec2-challenge > .sec2-ordinary-inversion {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    max-width: calc(100% - 48% - 64px);
    position: relative;
    z-index: 2;
    padding-bottom: 0;
    box-sizing: border-box;
    isolation: isolate;
  }
  .sec2-challenge .sec2-shrine-text {
    width: 100%;
    max-width: 700px;
    min-width: 0;
  }
  .sec2-challenge > .sec2-group2 {
    flex: 0 0 auto;
    width: 48%;
    max-width: 48%;
    min-width: 0;
    margin-left: auto;
    position: relative;
    z-index: 1;
    overflow: visible;
  }
}
@media screen and (min-width: 1101px) and (max-width: 1300px) {
  .sec2-challenge > .sec2-group2 {
    width: 50%;
    max-width: 50%;
  }
  .sec2-challenge > .sec2-ordinary-inversion {
    max-width: calc(100% - 50% - 64px);
  }
}
@media screen and (min-width: 1101px) and (max-width: 1125px) {
  .sec2-challenge > .sec2-group2 {
    width: 52%;
    max-width: 52%;
  }
  .sec2-challenge > .sec2-ordinary-inversion {
    max-width: calc(100% - 52% - 64px);
  }
}
.sec2-challenge > .sec2-ordinary-inversion {
  flex: 1 1 auto;
  min-width: 0;
  width: auto;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 0;
  box-sizing: border-box;
}
.sec2-shrine-title {
  position: relative;
  margin: 0;
  font-family: inherit;
  font-size: 20px;
  font-weight: bold;
  line-height: 1.5;
  color: inherit;
}
.sec2-shrine-body {
  margin: 0;
  width: 100%;
  max-width: 100%;
  font-size: var(--fs-13);
  line-height: 1.85;
  white-space: normal;
  word-break: normal;
  overflow-wrap: break-word;
}
.sec2-shrine-photo {
  flex: 0 0 auto;
  min-width: 0;
  margin: 0;
  padding: 0;
  height: auto;
  aspect-ratio: 720 / 480;
  display: block;
  object-fit: cover;
  box-sizing: border-box;
}
.sec2-frame-section > .sec2-shrine-photo {
  width: 48%;
  max-width: 48%;
}
.sec2-challenge > .sec2-group2 {
  flex: 0 0 auto;
  width: 48%;
  max-width: 48%;
  min-width: 0;
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: auto;
  padding: 0;
  box-sizing: border-box;
  position: relative;
  overflow: visible;
  isolation: isolate;
}
.sec2-challenge > .sec2-group2 {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}
.sec2-frame-parent3,
.sec2-frame-wrapper8 {
  display: flex;
  align-items: flex-start;
}
.sec2-frame-wrapper8 {
  width: 903.9px;
  justify-content: center;
  padding: var(--padding-0) var(--padding-20);
  box-sizing: border-box;
  text-align: left;
  font-size: var(--fs-14);
  color: var(--color-dimgray);
  font-family: var(--font-inter);
}
.sec2-frame-parent3 {
  width: 729.5px;
  flex-direction: column;
  gap: 29.4px;
  max-width: 100%;
}
.sec2-div12 {
  position: absolute;
  margin: 0 !important;
  right: -82.2px;
  bottom: 6.6px;
  display: inline-block;
  min-width: 98px;
  white-space: nowrap;
  flex-shrink: 0;
}
.sec2-contact {
  margin: 0;
  position: relative;
  font-size: 43.4px;
  font-weight: 400;
  font-family: inherit;
  color: var(--color-lightgray);
  z-index: 1;
  flex-shrink: 0;
}
.sec2-frame-wrapper9 {
  align-self: stretch;
  padding: var(--padding-0) var(--padding-0) var(--padding-0) var(--padding-5);
  box-sizing: border-box;
  max-width: 100%;
  font-size: var(--fs-18);
}
.sec2-frame-parent4,
.sec2-frame-wrapper10,
.sec2-frame-wrapper9 {
  display: flex;
  align-items: flex-start;
}
.sec2-frame-parent4 {
  flex: 1;
  justify-content: space-between;
  gap: var(--gap-20);
  max-width: 100%;
}
.sec2-frame-wrapper10 {
  flex-direction: column;
  padding: 16px 17px var(--padding-0) var(--padding-0);
}
.sec2-frame-parent5 {
  gap: 9px;
}
.sec2-frame-parent5,
.sec2-vector-group {
  display: flex;
  align-items: flex-start;
}
.sec2-vector-icon5 {
  height: 40.2px;
  width: 70.7px;
  position: relative;
}
.sec2-vector-wrapper {
  cursor: pointer;
  border: 0;
  padding: 7.8px var(--padding-0) var(--padding-0);
  background-color: transparent;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.sec2-vector-icon6 {
  width: 18.8px;
  height: 17.9px;
  position: relative;
}
.sec2-line-wrapper {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 5.5px var(--padding-0) var(--padding-0);
}
.sec2-line2 {
  margin: 0;
  position: relative;
  font-size: inherit;
  font-weight: 400;
  font-family: inherit;
}
.sec2-vector-container {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: var(--padding-0) var(--padding-14) var(--padding-0) var(--padding-0);
}
.sec2-vector-icon7 {
  cursor: pointer;
  border: 0;
  padding: var(--padding-01);
  background-color: transparent;
  width: 22.4px;
  height: 70.5px;
  position: relative;
}
.sec2-frame-wrapper11,
.sec2-group-container {
  display: flex;
  align-items: flex-start;
}
.sec2-frame-wrapper11 {
  flex-direction: column;
  padding: 24.5px var(--padding-0) var(--padding-0);
  font-size: 12.6px;
}
.sec2-group-container {
  gap: 7.9px;
}
.sec2-group-icon3 {
  height: 16.6px;
  width: 22.8px;
  position: relative;
}
.sec2-vector-frame {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: var(--padding-0) var(--padding-15) var(--padding-0) var(--padding-0);
}
.sec2-frame-wrapper12 {
  flex-direction: column;
  padding: 9.1px var(--padding-0) var(--padding-0);
  font-size: 26.3px;
  color: var(--color-gray);
}
.sec2-frame-button,
.sec2-frame-parent6,
.sec2-frame-wrapper12 {
  display: flex;
  align-items: flex-start;
}
.sec2-frame-parent6 {
  gap: 11.9px;
}
.sec2-frame-button {
  cursor: pointer;
  border: 0;
  padding: 3.5px var(--padding-0) var(--padding-0);
  background-color: transparent;
  flex-direction: column;
}
.sec2-vector-icon9 {
  width: 18.4px;
  height: 26.8px;
  position: relative;
}
.sec2-date-time-details-parent {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.5px;
}
.sec2-date-time-details {
  display: flex;
  align-items: flex-start;
  position: relative;
  isolation: isolate;
}
.sec2-schedule-placeholder {
  margin: 0;
  position: relative;
  font-size: inherit;
  font-weight: 400;
  font-family: inherit;
  flex-shrink: 0;
}
.sec2-vector-icon10 {
  height: 40.2px;
  width: 70.7px;
  position: absolute;
  margin: 0 !important;
  right: -53.6px;
  bottom: -15.1px;
  z-index: 1;
  flex-shrink: 0;
}
.sec2-frame {
  display: flex;
  align-items: flex-start;
  padding: var(--padding-0) 29px;
  font-size: 10px;
  color: var(--color-dimgray);
}
.sec2-navigation-header,
.sec2-navigation-header-wrapper {
  display: flex;
  align-items: flex-start;
  max-width: 100%;
}
.sec2-navigation-header-wrapper {
  width: 1324.4px;
  justify-content: center;
  padding: var(--padding-0) var(--padding-20) 75.5px;
  box-sizing: border-box;
  flex-shrink: 0;
  text-align: left;
  font-size: 13.4px;
  color: var(--color-dimgray);
  font-family: var(--font-inter);
}
.sec2-navigation-header {
  width: 531.9px;
  justify-content: space-between;
  gap: var(--gap-20);
}
.sec2-navigation-header-inner {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 13.5px var(--padding-0) var(--padding-0);
}
.sec2-frame-parent7 {
  display: flex;
  align-items: flex-start;
  gap: 10.2px;
}
.sec2-frame-wrapper13,
.sec2-parent5 {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: var(--padding-4) var(--padding-0) var(--padding-0);
}
.sec2-parent5 {
  height: 18.9px;
  padding: var(--padding-0) var(--padding-0) 0.4px;
  box-sizing: border-box;
  gap: 2.5px;
}
.sec2-div15,
.sec2-free-icon {
  position: relative;
  z-index: 1;
}
.sec2-free-icon {
  width: 26px;
  height: 0.4px;
}
.sec2-button {
  cursor: pointer;
  border: 0;
  padding: var(--padding-01);
  background-color: transparent;
  position: relative;
  font-size: 20px;
  font-family: var(--font-inter);
  color: var(--color-dimgray);
  text-align: left;
  display: inline-block;
  z-index: 3;
}
.sec2-rectangle-parent {
  width: 278.6px;
  display: flex;
  align-items: flex-start;
  position: relative;
  isolation: isolate;
  font-size: var(--fs-18);
}
.sec2-rectangle-icon {
  height: 145.5px;
  width: 965.6px;
  position: absolute;
  margin: 0 !important;
  top: -48.3px;
  left: -484.9px;
  object-fit: cover;
  flex-shrink: 0;
}
.sec2-vector-parent2 {
  flex: 1;
  background-color: var(--color-white);
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 14.8px 12px var(--padding-15) 76px;
  gap: var(--gap-20);
  z-index: 1;
  flex-shrink: 0;
}
.sec2-vector-icon11 {
  height: 51.9px;
  width: 278.6px;
  position: relative;
  display: none;
  flex-shrink: 0;
}
.sec2-frame-parent8,
.sec2-vector-wrapper2 {
  display: flex;
  align-items: flex-start;
}
.sec2-frame-parent8 {
  gap: 8.1px;
  flex-shrink: 0;
}
.sec2-vector-wrapper2 {
  cursor: pointer;
  border: 0;
  padding: 2.3px var(--padding-0) var(--padding-0);
  background-color: transparent;
  flex-direction: column;
}
.sec2-line3,
.sec2-vector-icon12 {
  position: relative;
  z-index: 2;
}
.sec2-vector-icon12 {
  width: 18.8px;
  height: 17.9px;
}
.sec2-line3 {
  margin: 0;
  flex: 1;
  font-size: inherit;
  font-weight: 400;
  font-family: inherit;
}
.sec2-vector-wrapper3 {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 8.3px var(--padding-0) var(--padding-0);
  flex-shrink: 0;
}
.sec2-vector-icon13 {
  cursor: pointer;
  border: 0;
  padding: var(--padding-01);
  background-color: transparent;
  width: 18.3px;
  height: 3.7px;
  position: relative;
  z-index: 2;
}
.sec2-consultation {
  position: absolute;
  margin: 0 !important;
  top: -3.37px;
  left: 59.89px;
  font-size: 39.7px;
  color: var(--color-tan-200);
  transform: rotate(-12.4deg);
  transform-origin: 0 0;
  z-index: 2;
  flex-shrink: 0;
}
.sec2-acca-platinum-alp-parent {
  margin-right: -3.7px;
  width: 100%;
  min-height: 568px;
  display: flex;
  align-items: stretch;
  position: relative;
  isolation: isolate;
  max-width: 100%;
  flex-shrink: 0;
  text-align: left;
  font-size: 22px;
  color: var(--color-white);
  font-family: var(--font-inter);
}
.sec2-acca-platinum-alp {
  height: 100%;
  flex: 1;
  position: relative;
  max-width: 100%;
  overflow: hidden;
  object-fit: cover;
}
.sec2-h33 {
  margin: 0 !important;
  position: absolute;
  top: 50%;
  right: 20%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start;
  gap: 5px;
  font-family: var(--font-yumincho);
  font-size: 25px;
  font-weight: 400;
  color: #fff;
  letter-spacing: 0.2em;
  line-height: 2;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
  z-index: 1;
}
.sec2-h33-line {
  display: block;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  letter-spacing: inherit;
  line-height: inherit;
  white-space: nowrap;
}
/* 2列目（でも新しい結婚式）：1列目の中段から始まる段差 */
.sec2-h33-line:nth-child(2) {
  margin-top: 3.2em;
}
.sec2-section1-child {
  align-self: stretch;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: var(--padding-0) var(--padding-20) 32.2px;
  box-sizing: border-box;
  max-width: 100%;
  flex-shrink: 0;
  text-align: left;
  font-size: var(--fs-17);
  color: var(--color-dimgray);
  font-family: var(--font-inter);
}
.sec2-exclusive-service-parent {
  width: 960.9px;
  flex-direction: column;
  gap: 48.7px;
  max-width: 100%;
}
.sec2-details,
.sec2-exclusive-service,
.sec2-exclusive-service-parent {
  display: flex;
  align-items: flex-start;
}
.sec2-exclusive-service {
  padding: var(--padding-0) 338px var(--padding-0) 335px;
}
.sec2-details {
  align-self: stretch;
  gap: 31px;
  max-width: 100%;
  font-size: var(--fs-14);
}
.sec2-items,
.sec2-vector-icon14 {
  width: 270.3px;
  position: relative;
}
.sec2-items {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 30.4px var(--padding-4) 24.1px var(--padding-5);
  box-sizing: border-box;
  isolation: isolate;
  gap: 12.9px;
}
.sec2-vector-icon14 {
  height: 107.4px;
  display: none;
  z-index: 0;
  flex-shrink: 0;
}
.sec2-customization-options {
  display: flex;
  align-items: flex-start;
  padding: var(--padding-0) 9px;
  flex-shrink: 0;
}
.sec2-empty-state-one,
.sec2-h34 {
  font-weight: 400;
  font-family: inherit;
  z-index: 1;
  flex-shrink: 0;
}
.sec2-h34 {
  margin: 0;
  position: relative;
  font-size: var(--fs-19);
}
.sec2-empty-state-one {
  margin: 0 !important;
  position: absolute;
  top: -31.8px;
  left: 15.6px;
  font-size: 39.3px;
  color: var(--color-tan-200);
  display: inline-block;
  min-width: 53px;
}
.sec2-emotional-capture,
.sec2-memory-capture {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  box-sizing: border-box;
  max-width: 100%;
}
.sec2-memory-capture {
  flex: 1;
  padding: var(--padding-0) var(--padding-8) var(--padding-0) var(--padding-0);
  min-width: 216px;
}
.sec2-emotional-capture {
  align-self: stretch;
  padding: 30.5px 13px 24.5px var(--padding-14);
  position: relative;
  isolation: isolate;
  gap: 12.4px;
  z-index: 1;
}
.sec2-h35,
.sec2-vector-icon15 {
  position: relative;
  flex-shrink: 0;
}
.sec2-h35 {
  margin: 0;
  font-size: var(--fs-19);
  font-weight: 400;
  font-family: inherit;
}
.sec2-vector-icon15 {
  width: 323.6px;
  height: 107.4px;
  display: none;
  max-width: 100%;
  z-index: 2;
}
.sec2-empty-state-two {
  margin: 0 !important;
  position: absolute;
  top: -31.8px;
  left: 14.5px;
  font-size: 39.3px;
  font-weight: 400;
  font-family: inherit;
  color: var(--color-tan-200);
  display: inline-block;
  min-width: 61px;
  z-index: 2;
  flex-shrink: 0;
}
.sec2-comprehensive-planning {
  width: 296.2px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 30.6px 6px 24.5px var(--padding-10);
  box-sizing: border-box;
  position: relative;
  isolation: isolate;
  gap: 12.3px;
  z-index: 1;
}
.sec2-vector-icon16 {
  width: 296.2px;
  height: 107.4px;
  position: relative;
  display: none;
  z-index: 2;
  flex-shrink: 0;
}
.sec2-empty-state-three,
.sec2-group-icon4 {
  position: absolute;
  margin: 0 !important;
  z-index: 2;
  flex-shrink: 0;
}
.sec2-empty-state-three {
  top: -31.8px;
  left: 12px;
  font-size: 39.3px;
  font-weight: 400;
  font-family: inherit;
  color: var(--color-tan-200);
  display: inline-block;
  min-width: 60px;
}
.sec2-group-icon4 {
  width: 52.7px;
  height: 78.2px;
  right: 4.6px;
  bottom: -6.7px;
}
/* ============================================================
   ▼ 左右余白の手動調整ポイント（3セクション共通）
      下の各セクションの --left-pad / --right-pad の数値を
      変えるだけで左右の余白を調整できます。
      ・数値を小さくすると content が画面端に寄ります
      ・単位は px。レスポンシブ用には @media 内で上書きできます
   ============================================================ */

/* スクロール追従ラベル（01 / 02 / 03 切り替え・同一スタイル） */
.sec2-fixed-label {
  position: fixed;
  right: 72px;
  left: auto;
  top: 42%;
  z-index: 120;
  font-family: var(--font-yumincho);
  opacity: 0;
  visibility: hidden;
  transform: translateY(calc(-50% + 12px));
  transition:
    opacity 0.65s ease,
    transform 0.65s ease,
    visibility 0s linear 0.65s,
    color 0.35s ease,
    text-shadow 0.35s ease;
  pointer-events: none;
}
.sec2-fixed-label.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(-50%);
  transition:
    opacity 0.65s ease,
    transform 0.65s ease,
    visibility 0s,
    color 0.35s ease,
    text-shadow 0.35s ease;
}
.sec2-fixed-label.is-on-image {
  color: var(--color-white);
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.45);
}
.sec2-fixed-label__text {
  margin: 0;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-size: var(--fs-16);
  font-weight: 400;
  color: inherit;
  letter-spacing: 0.05rem;
  line-height: 1.9;
  white-space: nowrap;
  display: none;
}
.sec2-fixed-label__text.is-active {
  display: block;
}
.sec2-fixed-label__num {
  text-combine-upright: all;
  -webkit-text-combine: horizontal;
  letter-spacing: 0.05em;
}

/* 追従ラベル：テキストブロックは常時右余白（スクロールで padding が切り替わらない） */
body.page-index-testimv3 {
  --sec2-fixed-label-reserve: 20px;
  --sec2-copy-block-pad-right: calc(
    var(--sec2-shrine-text-inset, 25px) + var(--sec2-fixed-label-reserve)
  );
}

@media screen and (min-width: 541px) {
  body.page-index-testimv3 .sec2-challenge > .sec2-ordinary-inversion,
  body.page-index-testimv3 .sec2-professionalism > .sec2-expertise {
    padding-right: var(--sec2-copy-block-pad-right);
    box-sizing: border-box;
  }

  body.page-index-testimv3 .sec3-pro-team-intro {
    padding-right: var(--sec2-copy-block-pad-right);
    box-sizing: border-box;
  }
}

/* 913px〜1600px：reverse テキスト列と追従ラベル（sec2-fixed-label）の重なり防止 */
@media screen and (min-width: 913px) and (max-width: 1600px) {
  body.page-index-testimv3 .sec3-inner > .sec2-frame-section.sec2-frame-section--reverse {
    padding-right: 52px;
    box-sizing: border-box;
  }
}

/* 913px〜1530px：reverse 内 sec2-shrine-text の右側に余白を追加 */
@media screen and (min-width: 913px) and (max-width: 1530px) {
  body.page-index-testimv3 .sec3-inner > .sec2-frame-section.sec2-frame-section--reverse .sec2-shrine-text {
    padding-right: 72px;
    box-sizing: border-box;
  }
}

.sec2-legacy-label {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.sec2-attire-revolution {
  --left-pad: 5%;/* ←左余白（大きいほど右寄せ） */
  --right-pad: 40px;                    /* ←右余白 */
  --sec2-shell-pad-bottom: 269px;
  --sec2-shell-gap: var(--gap-15);
  align-self: stretch;
  width: 100%;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  padding: 0 var(--right-pad) var(--sec2-shell-pad-bottom) var(--left-pad);
  box-sizing: border-box;
  gap: var(--sec2-shell-gap);
  flex-shrink: 0;
  text-align: left;
  font-size: var(--fs-17);
  color: var(--color-dimgray);
  font-family: var(--font-inter);
}
.sec2-attire-revolution--moments {
  --sec2-shell-pad-bottom: 2.3px;
  --sec2-shell-gap: 22.3px;
  min-height: 434.6px;
}
.sec2-attire-revolution--moments > .sec2-challenge {
  padding-left: 0;
}
.sec2-attire-revolution > .sec2-challenge,
.sec2-attire-revolution > .sec2-passion {
  align-self: flex-end;
  max-width: 100%;
}
.sec2-challenge {
  position: relative;
  --sec2-shrine-text-inset: 25px;
}
.sec2-challenge .sec2-overturn {
  align-items: flex-start;
}
/* ===== 右端写真スタック（01 装い）3枚の位置関係を全幅で固定 =====
 * 比率・% はデザイン寸法（720×480 / 614.5×348.8）から算出。ブレークポイントで上書きしない
 */
.sec2-challenge > .sec2-group2 .sec2-vertical-label--photo {
  font-size: var(--fs-16);
  color: var(--color-white);
  font-family: var(--font-inter);
}
.sec2-photo-stack {
  --sec2-overlay-left: -69%;
  --sec2-overlay-bottom: -65%;
  /* presentation の bottom 指定（写真高さに対する割合）。余白計算用 */
  --sec2-overlay-overflow-h: 0.65;
  --sec2-overlay-width: 91.5%;
  --sec2-overlay-ratio: 614.5 / 348.8;
  --sec2-visuals-left: 21.237%;
  --sec2-visuals-width: 78.763%;
  --sec2-visuals-height: 94.61%;
  --sec2-decor-top: 30.677%;
  --sec2-decor-width: 45.679%;
  --sec2-decor-height: 69.323%;
  position: relative;
  width: 100%;
  aspect-ratio: 720 / 480;
  flex-shrink: 0;
  overflow: visible;
  isolation: isolate;
  line-height: 0;
}
.sec2-photo-stack > .sec2-shrine-photo {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  object-fit: cover;
  aspect-ratio: unset;
  z-index: 1;
}
.sec2-photo-stack .sec2-presentation {
  position: absolute;
  left: var(--sec2-overlay-left);
  bottom: var(--sec2-overlay-bottom);
  width: var(--sec2-overlay-width);
  height: auto;
  max-width: none;
  aspect-ratio: var(--sec2-overlay-ratio);
  margin: 0;
  z-index: 3;
  overflow: visible;
}
.sec2-photo-stack .sec2-visuals {
  position: absolute;
  top: 0;
  left: var(--sec2-visuals-left);
  width: var(--sec2-visuals-width);
  height: var(--sec2-visuals-height);
  margin: 0;
  padding: 0;
  background: none;
  z-index: 1;
}
.sec2-photo-stack .sec2-rectangle-icon2 {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: contain;
  object-position: left bottom;
}
.sec2-photo-stack .sec2-group-icon5 {
  position: absolute;
  top: var(--sec2-decor-top);
  left: -29%;
  width: var(--sec2-decor-width);
  height: var(--sec2-decor-height);
  margin: 0;
  padding: 0;
  object-fit: contain;
  object-position: left top;
  z-index: 5;
}
.sec2-ordinary-inversion,
.sec2-overturn {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  max-width: 100%;
}
.sec2-ordinary-inversion {
  align-items: flex-start;
  box-sizing: border-box;
}
.sec2-overturn {
  align-self: stretch;
  align-items: flex-end;
  gap: 20px;
}
.sec2-common-sense,
.sec2-fashion-redefined {
  display: flex;
  align-items: flex-start;
  max-width: 100%;
}
.sec2-fashion-redefined {
  align-self: stretch;
  justify-content: flex-end;
  padding: var(--padding-0) var(--padding-2) var(--padding-0) var(--padding-0);
  box-sizing: border-box;
}
.sec2-common-sense {
  flex: 1;
  flex-direction: column;
  gap: 24.1px;
}
.sec2-brides-perspective,
.sec2-knowledge {
  box-sizing: border-box;
  max-width: 100%;
}
.sec2-brides-perspective {
  align-self: stretch;
  display: flex;
  align-items: flex-start;
  padding: var(--padding-0) var(--padding-0) var(--padding-0) var(--padding-10);
  font-size: var(--fs-13);
}
.sec2-knowledge {
  display: flex;
  align-items: flex-start;
  flex: 1;
  flex-direction: column;
  padding: var(--padding-0) var(--padding-1) var(--padding-0) var(--padding-0);
  gap: 6.8px;
}
.sec2-vector-icon17 {
  width: 51.3px;
  height: 0.5px;
  position: relative;
}
.sec2-group2 {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 15.2px 144px 27.1px 218px;
  box-sizing: border-box;
  position: relative;
  isolation: isolate;
  gap: 367.9px;
  min-width: 806.6px;
  flex-shrink: 0;
  max-width: 100%;
  z-index: 1;
  text-align: left;
  font-size: var(--fs-16);
  color: var(--color-white);
  font-family: var(--font-inter);
}
/* 01装い・02カメラマン：写真列（汎用 .sec2-group2 の余白を打ち消し、メイン写真を同寸に） */
.sec2-challenge > .sec2-group2 {
  align-items: stretch;
  padding: 0;
  min-width: 0;
  gap: 0;
  overflow: visible;
}
/* sec2-challenge：presentation 左寄せ・全体表示（clip しない） */
.sec2-challenge > .sec2-group2 .sec2-photo-stack {
  --sec2-overlay-left: -50%;
  --sec2-overlay-bottom: -70%;
  --sec2-overlay-overflow-h: 0.65;
  --sec2-visuals-left: 0%;
  --sec2-visuals-width: 100%;
  --sec2-visuals-height: 100%;
  width: 100%;
  max-width: 100%;
  flex: 0 0 auto;
  overflow: visible;
}
.sec2-challenge > .sec2-group2 .sec2-photo-stack .sec2-presentation {
  overflow: visible;
}
.sec2-challenge > .sec2-group2 .sec2-photo-stack .sec2-rectangle-icon2 {
  object-fit: contain;
  object-position: left bottom;
}
.sec2-challenge > .sec2-group2 .sec2-photo-stack .sec2-group-icon5 {
  object-fit: contain;
  object-position: left bottom;
  pointer-events: none;
}
/* PC横並び：presentation の下はみ出し分を確保（次セクション expertise と被らせない） */
@media screen and (min-width: 1101px) {
  /* no-op（旧調整の名残。空ルール警告回避のため削除） */
}
.sec2-dedication {
  align-self: stretch;
  justify-content: flex-end;
  padding: var(--padding-0) var(--padding-2);
  flex-shrink: 0;
}
.sec2-dedication,
.sec2-enthusiasm,
.sec2-preference {
  display: flex;
  align-items: flex-start;
}
.sec2-preference {
  flex-direction: column;
}
.sec2-enthusiasm {
  padding: var(--padding-0) var(--padding-0) var(--padding-0) var(--padding-10);
}
.sec2-div26,
.sec2-td {
  position: relative;
}
.sec2-div26 {
  width: 15.3px;
  display: inline-block;
  white-space: nowrap;
  z-index: 2;
}
.sec2-td {
  z-index: 1;
  margin-top: -18.4px;
}
/* 01. / 02. セクション見出し（縦書き） */
.sec2-vertical-label {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-family: var(--font-yumincho);
  font-size: var(--fs-16);
  color: var(--color-white);
  letter-spacing: 0.2em;
  line-height: 1.9;
  white-space: nowrap;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35em;
  flex-shrink: 0;
}
.sec2-vertical-label .sec2-div26,
.sec2-vertical-label .sec2-div27,
.sec2-vertical-label .sec2-div31,
.sec2-vertical-label .sec2-div40,
.sec2-vertical-label .sec2-td,
.sec2-vertical-label .sec2-passion-emphasis,
.sec2-vertical-label .sec2-line {
  width: auto;
  margin: 0;
  white-space: nowrap;
  display: inline-block;
  position: static;
}
.sec2-passion.sec2-vertical-label {
  width: auto;
  height: auto;
  gap: 0.35em;
}
.sec2-passion.sec2-vertical-label .sec2-div27 {
  margin-left: 0;
}
@media screen and (min-width: 1126px) {
  .sec2-passion.sec2-vertical-label.sec2-legacy-label {
    font-size: 20px;
  }
  .sec2-fixed-label__text {
    font-size: 20px;
  }
}
.sec2-emphasizing.sec2-vertical-label {
  height: auto;
  color: var(--color-dimgray);
  font-size: var(--fs-16);
}
.sec2-emphasizing.sec2-vertical-label .sec2-div31 {
  margin-left: 0;
}
.sec2-vertical-label--photo {
  position: relative;
  z-index: 2;
  padding: var(--padding-0) var(--padding-1) var(--padding-0) var(--padding-10);
  margin-top: -11.6px;
}
.sec2-clip-path-group5 {
  width: 672.3px;
  height: 100%;
  position: absolute;
  margin: 0 !important;
  top: 0;
  bottom: 0;
  left: 0;
  max-height: 100%;
  object-fit: cover;
  flex-shrink: 0;
}
.sec2-presentation {
  position: absolute;
  margin: 0;
  flex-shrink: 0;
}
.sec2-rectangle-icon2 {
  display: none;
}
.sec2-passion {
  width: 35.9px;
  height: 19.6px;
  display: flex;
  align-items: flex-start;
  font-size: var(--fs-16);
}
.sec2-div27,
.sec2-passion-emphasis {
  position: relative;
  flex-shrink: 0;
}
.sec2-div27 {
  white-space: nowrap;
  z-index: 1;
  margin-left: -11.8px;
}
.sec2-professionalism {
  --left-pad: 40px;
  --right-pad: 40px;
  align-self: center;
  width: 100%;
  max-width: 100%;
  flex-direction: column;
  align-items: center;
  padding: 0 var(--right-pad) 21.7px var(--left-pad);
  box-sizing: border-box;
  gap: 63px;
  flex-shrink: 0;
  text-align: left;
  font-size: var(--fs-17);
  color: var(--color-dimgray);
  font-family: var(--font-inter);
}
.sec2-expertise,
.sec2-professionalism,
.sec2-qualified,
.sec2-stylist-professionals {
  display: flex;
  align-items: flex-start;
  max-width: 100%;
}
.sec2-professionalism > .sec2-expertise,
.sec2-professionalism > .sec2-styling-artistry {
  align-self: center;
  max-width: 100%;
}
@media screen and (min-width: 1850px) {
  .sec2-professionalism {
    margin-top: 120px;
  }
}
.sec2-expertise {
  width: 865.1px;
  justify-content: center;
  padding: var(--padding-0) var(--padding-20);
  box-sizing: border-box;
}
.sec2-qualified,
.sec2-stylist-professionals {
  flex-direction: column;
  gap: 21.6px;
}
.sec2-qualified {
  gap: 3.8px;
  font-size: var(--fs-13);
}
.sec2-styling-artistry {
  align-self: center;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 0;
  column-gap: 0;
  row-gap: 0;
  max-width: 100%;
  font-size: var(--fs-16);
}
/* ===== sec2-presentation-two : 画像1枚レイアウト（PC 70vw / SP 100vw） ===== */
.sec2-presentation-two {
  flex-shrink: 0;
  margin-left: auto;
  margin-right: auto;
  max-width: 100%;
}
.sec2-sitenav-icon {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
}
@media screen and (min-width: 769px) {
  .sec2-presentation-two {
    width: 55vw;
    min-width: 750px;
  }
}
@media screen and (max-width: 768px) {
  .sec2-presentation-two {
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }
}
.sec2-style-commitment {
  height: 123.2px;
  flex-direction: column;
}
.sec2-emphasizing,
.sec2-style-commitment {
  display: flex;
  align-items: flex-start;
  flex-shrink: 0;
}
.sec2-div31 {
  position: relative;
}
.sec2-exhibition .sec2-shrine-title,
.sec2-frame-wrapper11 .sec2-shrine-title {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-size: 0.95rem;
  font-weight: 400;
  color: #333;
  letter-spacing: 0.08em;
  cursor: pointer;
  white-space: nowrap;
}
.sec2-exhibition .sec2-shrine-title::after,
.sec2-frame-wrapper11 .sec2-shrine-title::after {
  content: "";
  display: inline-block;
  width: 80px;
  height: 1px;
  background-color: #333;
  transition: width 0.3s ease;
}
.sec2-exhibition:hover .sec2-shrine-title::after,
.sec2-frame-wrapper11:hover .sec2-shrine-title::after {
  width: 110px;
}
/* sec2-exhibition：装飾は Vector 画像ではなく .sec2-shrine-title::after の横線のみ */
body.page-index-testimv3 .sec2-exhibition .sec2-td-wrapper {
  display: none;
}

.sec2-exhibition .sec2-td-wrapper {
  display: none;
}
.sec2-div31 {
  white-space: nowrap;
  z-index: 1;
  margin-left: -11.8px;
}
.sec2-memorization {
  align-self: stretch;
  justify-content: flex-end;
  margin-top: 1.3rem;
  padding: var(--padding-0) 9px;
}
.sec2-exhibition,
.sec2-memorization,
.sec2-td-wrapper {
  display: flex;
  align-items: flex-start;
}
.sec2-exhibition {
  gap: 8.8px;
}

/* sec2-memorization ボタン：541〜1000px（スマホと同じ枠線＋横線仕様） */
@media screen and (max-width: 1000px) and (min-width: 541px) {
  body.page-index-testimv3 .sec2-attire-revolution .sec2-memorization {
    align-self: stretch;
    display: block;
    width: 100%;
    margin: 1.3rem 0 0;
    padding: 0;
    overflow: visible;
  }

  body.page-index-testimv3 .sec2-attire-revolution .sec2-exhibition {
    --sec2-ex-btn-w: 200px;
    --sec2-ex-btn-h: 52px;
    --sec2-ex-text-left: 30px;
    --sec2-ex-text-shift-x: 6px;
    --sec2-ex-line-w: 70px;
    --sec2-ex-line-bleed: calc(var(--sec2-ex-line-w) / 3);
    --sec2-ex-line-start: calc(
      var(--sec2-ex-btn-w) - var(--sec2-ex-line-w) + var(--sec2-ex-line-bleed)
    );
    position: relative;
    display: block;
    width: var(--sec2-ex-btn-w);
    max-width: 100%;
    min-height: var(--sec2-ex-btn-h);
    margin: 0 var(--sec2-ex-line-bleed) 0 0;
    padding: 0;
    border: 1px solid #d8d8d8;
    background: #fff;
    box-sizing: border-box;
    overflow: visible;
    gap: 0;
  }

  body.page-index-testimv3 .sec2-attire-revolution .sec2-exhibition::after {
    content: "";
    position: absolute;
    top: 50%;
    left: var(--sec2-ex-line-start);
    width: var(--sec2-ex-line-w);
    height: 1px;
    margin: 0;
    background-color: #5b5b5b;
    transform: translateY(-50%);
    pointer-events: none;
  }

  body.page-index-testimv3 .sec2-attire-revolution .sec2-exhibition .sec2-shrine-title {
    position: absolute;
    top: 50%;
    left: calc(var(--sec2-ex-text-left) + var(--sec2-ex-text-shift-x));
    right: auto;
    z-index: 1;
    display: inline-block;
    width: auto;
    max-width: calc(var(--sec2-ex-line-start) - var(--sec2-ex-text-left) - 8px);
    margin: 0;
    padding: 0;
    font-family: var(--font-yumincho);
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0.12em;
    line-height: 1;
    color: #5b5b5b;
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
    transform: translateY(-50%);
  }

  body.page-index-testimv3 .sec2-attire-revolution .sec2-exhibition .sec2-shrine-title::after {
    content: none;
    display: none;
  }

  body.page-index-testimv3 .sec2-attire-revolution .sec2-exhibition:hover,
  body.page-index-testimv3 .sec2-attire-revolution .sec2-exhibition:focus-within {
    --sec2-ex-line-w: 82px;
  }

  body.page-index-testimv3 .sec2-attire-revolution .sec2-exhibition .sec2-td-wrapper {
    display: none;
  }
}

.sec2-td-wrapper {
  flex-direction: column;
  padding: var(--padding-8) var(--padding-0) var(--padding-0);
}
.sec2-memories-documentation {
  display: flex;
  align-items: flex-start;
  position: relative;
  flex-shrink: 0;
  padding: var(--padding-0) var(--padding-1) var(--padding-0) var(--padding-10);
  margin-top: -11.6px;
}
.sec2-div40 {
  width: 23.6px;
  position: relative;
  display: inline-block;
  white-space: nowrap;
  z-index: 2;
}
/* sec2-section1 内：指定セクションをページ中央に配置 */
.sec2-section1 > .contact-section,
.sec2-section1 > .feature-section,
.sec2-section1 > .sec2-professionalism {
  align-self: center;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
/* contact-section（testimv3） */
.contact-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 40px 0;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}
.contact-section .contact-cta-bar {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto 60px;
}
.contact-section .contact-cta-content {
  margin-left: auto;
  margin-right: auto;
}

/* LINE相談ボタン：:before に LINE アイコン画像 */
.button2::before {
  content: "";
  display: inline-block;
  width: 24px;
  height: 20px;
  margin-right: 10px;
  padding-right: 0;
  font-family: none;
  font-size: 0;
  line-height: 1;
  vertical-align: middle;
  background: url(../img/iocn-line-01.png) no-repeat center / contain;
}

.button2 .cta-btn-icon {
  display: none;
}

/* LINE相談ボタン：矢印とテキストの重なり解消・ホバーで右方向へ伸長 */
.contact-section .button2 {
  padding-right: 54px;
  box-sizing: border-box;
  white-space: nowrap;
}

.contact-section .button2::after {
  right: 28px;
  width: 14px;
  transition: right 0.3s ease, width 0.3s ease;
}

.contact-section .button2:hover::after {
  right: 12px;
  width: 30px;
}

/* feature-section（testimv3） */
.sec2-section1 > .feature-section {
  max-width: 1200px;
  padding: 100px 40px;
  margin-left: auto;
  margin-right: auto;
}
.sec2-section1 > .feature-section .feature-heading {
  text-align: center;
}
.sec2-section1 > .feature-section .feature-container {
  margin-left: auto;
  margin-right: auto;
}
.sec2-section1 > .feature-section .feature-sub {
  font-size: 19px;
  font-weight: bold;
}
body.page-index-testimv3 #kodawari .feature-card-decor,
body.page-index-testimv3 .sec3-gift .feature-card-decor {
  background-image: url(../img/ashirai_2.png);
}
.sec2-clip-path-group9 {
  width: 448.2px;
  height: 545.7px;
  position: relative;
  object-fit: cover;
  flex-shrink: 0;
  max-width: 100%;
}
@media screen and (max-width: 1300px) {
  .sec2-frame-wrapper3 {
    --sec2-promo-padding-x: 25px;
    --sec2-promo-image-max-width: 880px;
    --sec2-promo-gap: 18px;
    box-sizing: border-box;
  }
  .sec2-clip-path-group-group {
    --sec2-intro-right-space: 120px;
    padding-left: var(--padding-0);
    padding-bottom: 36px;
    box-sizing: border-box;
  }
  .sec2-intro-group {
    --sec2-intro-img-width: 72vw;
  }
  .sec2-frame-section > .sec2-shrine-photo {
    width: 50%;
    max-width: 50%;
  }
  .sec2-challenge > .sec2-group2 {
    width: 50%;
    max-width: 50%;
  }
  .sec2-professionalism {
    gap: 31px;
  }
  .sec2-styling-artistry {
    gap: 0;
    column-gap: 0;
    row-gap: 0;
    flex-wrap: wrap;
    justify-content: center;
  }
  .sec2-attire-revolution--moments {
    height: auto;
  }
}
/* 横幅が足りないときは縦積み（テキストと画像の重なり防止） */
@media screen and (max-width: 1100px) {
  .sec2-frame-section,
  .sec2-challenge {
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 40px;
    padding-left: 0;
  }
  .sec2-frame-section--reverse {
    flex-direction: column-reverse;
  }
  .sec2-challenge > .sec2-ordinary-inversion {
    width: 100%;
    max-width: 100%;
  }
  .sec2-shrine-text {
    width: 100%;
    max-width: 700px;
    padding-left: var(--sec2-shrine-text-inset, 25px);
    box-sizing: border-box;
  }
  .sec2-frame-section > .sec2-shrine-photo,
  .sec2-challenge > .sec2-group2 {
    width: 100%;
    max-width: 100%;
  }
  .sec2-frame-section > .sec2-shrine-photo {
    aspect-ratio: 16 / 10;
  }
  .sec2-challenge > .sec2-group2 .sec2-photo-stack,
  .sec2-challenge > .sec2-group2 .sec2-photo-stack > .sec2-shrine-photo {
    aspect-ratio: 720 / 480;
  }
  .sec2-challenge > .sec2-group2 .sec2-photo-stack {
    --sec2-overlay-left: 0%;
    --sec2-overlay-bottom: -45%;
    --sec2-overlay-overflow-h: 0.45;
    margin-bottom: calc(100% * 480 / 720 * 0.45 + 24px);
  }
  .sec2-challenge > .sec2-ordinary-inversion {
    position: relative;
    z-index: 2;
    padding-bottom: 40px;
    box-sizing: border-box;
    isolation: isolate;
  }
  .sec2-challenge > .sec2-group2 {
    position: relative;
    z-index: 1;
    margin-top: 40px;
    overflow: visible;
  }
  .sec2-challenge .sec2-memorization {
    position: relative;
    z-index: 3;
    flex-shrink: 0;
  }
}
@media screen and (max-width: 1125px) {
  .sec2-frame-wrapper3 {
    --sec2-promo-image-max-width: 820px;
    --sec2-promo-gap: 16px;
    --sec2-h3-line2-offset: 3.2em;
  }
  .sec2-group {
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
  }
  .sec2-frame-section,
  .sec2-challenge {
    gap: 36px;
  }
  .sec2-challenge {
    align-items: flex-start;
    gap: 56px;
  }
  .sec2-challenge > .sec2-group2 {
    width: 52%;
    max-width: 52%;
  }
  .sec2-frame-section > .sec2-shrine-photo {
    width: 52%;
    max-width: 52%;
  }
  .sec2-frame-parent4 {
    flex-wrap: wrap;
  }
  .sec2-exclusive-service {
    padding-left: 167px;
    padding-right: 169px;
    box-sizing: border-box;
  }
  .sec2-details {
    flex-wrap: wrap;
  }
  .sec2-group2 {
    box-sizing: border-box;
    min-width: 100%;
    gap: 184px;
    padding-left: 109px;
    padding-right: 72px;
  }
  .sec2-challenge > .sec2-group2 {
    min-width: 0;
    gap: 0;
    padding-left: 0;
    padding-right: 0;
  }
  .sec2-vertical-label {
    font-size: 15px;
    letter-spacing: 0.15em;
  }
  .sec2-passion.sec2-vertical-label.sec2-legacy-label {
    font-size: 15px;
  }
}
@media screen and (max-width: 800px) {
  .sec2-section1 {
    gap: 39px;
  }
  .sec2-section1-inner {
    padding-left: 21px;
    box-sizing: border-box;
  }
  .sec2-frame-parent {
    gap: 40px;
  }
  .sec2-group-parent {
    gap: 33px;
  }
  .sec2-clip-path-group-group {
    gap: var(--gap-16);
    --sec2-intro-right-space: 24px;
    padding-left: var(--padding-0);
    padding-bottom: 23px;
    box-sizing: border-box;
  }
  .sec2-intro-group {
    --sec2-intro-img-width: 100%;
    --sec2-intro-gap: var(--gap-16);
    align-self: flex-start;
    width: 100%;
  }
  .sec2-frame-section,
  .sec2-challenge {
    flex-direction: column;
    align-items: stretch;
    gap: 24px;
  }
  .sec2-frame-section:not(.sec2-frame-section--reverse) {
    width: calc(100% + var(--sec2-intro-right-space, 24px));
    margin-right: calc(-1 * var(--sec2-intro-right-space, 24px));
  }
  .sec2-frame-section--reverse {
    width: calc(100% + var(--sec2-intro-right-space, 24px));
    margin-left: calc(-1 * var(--sec2-intro-right-space, 24px));
    margin-right: 0;
  }
  .sec2-challenge {
    width: calc(100% + var(--right-pad, 24px));
    margin-right: calc(-1 * var(--right-pad, 24px));
  }
  .sec2-shrine-text {
    width: 100%;
    max-width: 700px;
    padding-right: 0;
    padding-bottom: 0;
  }

  .sec2-challenge > .sec2-ordinary-inversion {
    width: 100%;
    max-width: 100%;
    padding-right: 0;
    padding-bottom: 0;
  }
  .sec2-frame-section > .sec2-shrine-photo,
  .sec2-challenge > .sec2-group2 {
    width: 100%;
    max-width: 100%;
  }
  .sec2-frame-section > .sec2-shrine-photo {
    aspect-ratio: 16 / 10;
  }
  .sec2-challenge > .sec2-group2 .sec2-photo-stack,
  .sec2-challenge > .sec2-group2 .sec2-photo-stack > .sec2-shrine-photo {
    aspect-ratio: 720 / 480;
  }
  .sec2-challenge > .sec2-group2 {
    padding: 0;
  }
  .sec2-challenge > .sec2-ordinary-inversion {
    padding-bottom: 140px;
  }
  .sec2-challenge > .sec2-group2 {
    margin-top: 24px;
  }
  .sec2-challenge .sec2-overturn {
    gap: 46px;
  }
  .sec2-attire-revolution {
    --left-pad: 24px;
    --right-pad: 24px;
  }
  .sec2-fixed-label {
    right: 24px;
  }
  .sec2-fixed-label__text {
    font-size: 15px;
  }
  .sec2-professionalism {
    --left-pad: 24px;
    --right-pad: 24px;
  }
  .contact-section,
  .sec2-section1 > .feature-section {
    padding-left: 24px;
    padding-right: 24px;
  }
  .sec2-frame-section,
  .sec2-challenge {
    gap: 27px;
  }
  .sec2-shrine-text {
    gap: var(--gap-19);
  }
  .sec2-contact {
    font-size: 35px;
  }
  .sec2-navigation-header {
    flex-wrap: wrap;
  }
  .sec2-consultation {
    font-size: 32px;
  }
  .sec2-exclusive-service-parent {
    gap: var(--gap-24);
  }
  .sec2-exclusive-service {
    padding-left: 83px;
    padding-right: 84px;
    box-sizing: border-box;
  }
  .sec2-details {
    gap: var(--gap-15);
  }
  .sec2-empty-state-one,
  .sec2-empty-state-three,
  .sec2-empty-state-two {
    font-size: 31px;
  }
  .sec2-attire-revolution {
    --left-pad: 160px;
  }
  .sec2-professionalism {
    --left-pad: 40px;
    --right-pad: 40px;
  }
  .sec2-attire-revolution:not(.sec2-attire-revolution--moments) {
    --sec2-shell-pad-bottom: 175px;
    box-sizing: border-box;
  }
  .sec2-professionalism {
    gap: var(--gap-16);
  }
  .sec2-styling-artistry {
    gap: 0;
    column-gap: 0;
    row-gap: 0;
  }
}
@media screen and (max-width: 450px) {
  .sec2-section1 {
    gap: var(--gap-19);
  }
  .sec2-frame-parent {
    gap: var(--gap-20);
  }
  .sec2-group-parent {
    gap: var(--gap-16);
  }
  .sec2-frame-wrapper3 {
    --sec2-promo-min-height: 0;
    --sec2-promo-gap: 14px;
    --sec2-promo-image-max-width: 480px;
    --sec2-h3-line2-offset: 0;
  }
  .sec2-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--sec2-promo-gap);
    padding: 24px 0 40px;
    min-height: 0;
    box-sizing: border-box;
  }
  .sec2-h3 {
    flex-direction: column;
    align-items: center;
    justify-self: center;
    gap: 6px;
    text-align: center;
  }
  .sec2-h3-line {
    writing-mode: horizontal-tb;
    text-orientation: mixed;
    font-size: var(--fs-18);
    letter-spacing: 0.3em;
    line-height: 1.6;
  }
  .sec2-h3-line:nth-child(2) {
    margin-top: 0;
  }
  .sec2-clip-path-group-parent {
    width: 100%;
    max-width: var(--sec2-promo-image-max-width);
    justify-self: center;
  }
  .sec2-ashirai {
    bottom: 0;
    left: 0;
    width: min(200px, 48%);
    max-height: 50%;
  }
  .sec2-frame-section {
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
  }
  .sec2-contact {
    font-size: 26px;
  }
  .sec2-schedule-placeholder {
    font-size: 21px;
  }
  .sec2-button {
    font-size: var(--fs-16);
  }
  .sec2-vector-parent2 {
    padding-left: var(--padding-20);
    box-sizing: border-box;
  }
  .sec2-consultation {
    font-size: var(--fs-24);
  }
  .sec2-h33 {
    top: 50%;
    right: 10%;
    font-size: 25px;
    gap: 5px;
    letter-spacing: 0.18em;
  }
  .sec2-h33-line:nth-child(2) {
    margin-top: 2.6em;
  }
  .sec2-empty-state-one,
  .sec2-empty-state-three,
  .sec2-empty-state-two {
    font-size: var(--fs-24);
  }
  .sec2-overturn {
    gap: 23px;
  }
  .sec2-group2 {
    gap: 92px;
    padding: var(--padding-20);
    box-sizing: border-box;
  }
  .sec2-frame-section > .sec2-shrine-photo,
  .sec2-challenge > .sec2-group2 .sec2-photo-stack,
  .sec2-challenge > .sec2-group2 .sec2-photo-stack > .sec2-shrine-photo {
    width: 100%;
    max-width: 100%;
  }
  .sec2-challenge > .sec2-group2 {
    padding: 0;
  }
}

/* ===== Section 3 (Figma 8imlSdmANJaiPnmEl3lzcw) ===== */
.sec3-section {
  --sec3-color-text: #5b5b5b;
  --sec3-color-text-soft: #7d7368;
  --sec3-color-bg: #ffffff;
  --sec3-color-bg-soft: #faf6f1;
  --sec3-color-bg-alt: #f3ece2;
  --sec3-color-accent: #c7b093;
  --sec3-color-accent-2: #cebaa1;
  --sec3-color-deep: #815c41;
  --sec3-color-line: #e6dccf;
  --sec3-color-line-soft: #efe7da;
  --sec3-color-line-deep: #b89c7a;
  --sec3-color-white: #ffffff;

  font-family: var(--font-yumincho);
  color: var(--sec3-color-text);
  background: var(--sec3-color-bg);
  line-height: 1.85;
  letter-spacing: 0.04em;
  padding: 120px 0;
  padding-bottom: 0;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

.sec3-section * {
  box-sizing: border-box;
}

/* .sec3-inner は未使用のため定義削除（空ルール警告回避） */

.sec3-en-heading {
  font-size: 64px;
  font-weight: 400;
  font-style: normal;
  letter-spacing: 0.06em;
  color: var(--sec3-color-accent);
  text-align: center;
  margin: 0;
  line-height: 1.1;
}

.sec3-en-heading-dark {
  color: var(--sec3-color-deep);
}

.sec3-jp-heading {
  font-size: 28px;
  font-weight: 500;
  text-align: center;
  color: var(--sec3-color-text);
  margin: 0 0 32px;
  letter-spacing: 0.12em;
}

.sec3-jp-sub {
  text-align: center;
  font-size: 15px;
  color: var(--sec3-color-text-soft);
  margin: 16px 0 0;
  letter-spacing: 0.1em;
}

/* ---- 女性カメラマン紹介（画像2枚＋テキスト）
 * 数値はすべて px 固定。調整は各 @media 内を直接変更。
 * ---- */
.sec3-camera-team {
  align-self: stretch;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  padding: 72px 0;
  background: var(--sec3-color-bg);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  overflow-x: clip;
  box-sizing: border-box;
}
.sec3-camera-team-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.sec3-camera-team-layout {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 32px;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0 20px;
  box-sizing: border-box;
}
.sec3-camera-team-visual {
  position: relative;
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
  padding-bottom: 64px;
  overflow: visible;
}
.sec3-camera-team-main {
  display: block;
  width: 90%;
  height: auto;
  max-width: 100%;
  margin: 0;
  padding: 0;
  vertical-align: top;
  object-fit: contain;
  object-position: left top;
}
.sec3-camera-team-sub {
  position: absolute;
  top: auto;
  right: 6%;
  bottom: 0;
  left: auto;
  transform: translateY(18%);
  width: auto;
  height: auto;
  max-width: 190px;
  display: block;
  object-fit: contain;
  z-index: 2;
  box-shadow: none;
}
.sec3-camera-team-body {
  width: 100%;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.sec3-camera-team-text {
  margin: 0;
  font-size: 14px;
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.1em;
  color: var(--sec3-color-text);
  max-width: 100%;
  overflow-wrap: break-word;
}

/* 769px〜：横並び（テキスト列は残り幅で自動折り返し） */
@media screen and (min-width: 769px) {
  .sec3-camera-team {
    padding-top: 72px;
    padding-bottom: 72px;
  }
  .sec3-camera-team-layout {
    display: grid;
    grid-template-columns: 380px minmax(0, 1fr);
    align-items: center;
    column-gap: 28px;
    row-gap: 0;
    width: calc(100vw - 28px);
    max-width: calc(100vw - 28px);
    padding: 0;
  }
  .sec3-camera-team-visual {
    grid-column: 1;
    grid-row: 1;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding-bottom: 108px;
  }
  .sec3-camera-team-sub {
    top: 29%;
    left: 65%;
    right: auto;
    bottom: auto;
    transform: none;
    max-width: 48%;
  }
  .sec3-camera-team-body {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    max-width: 34em;
    padding-left: 0;
  }
  .sec3-camera-team-text {
    font-size: 15px;
    line-height: 2.2;
  }
}

/* 1024〜1699px：写真列をやや大きく（1281px以上は次の MQ で上書き） */
@media screen and (min-width: 1024px) and (max-width: 1699px) {
  .sec3-camera-team-layout {
    grid-template-columns: 520px minmax(0, 1fr);
  }
}

/* 769〜1200px：狭い画面はテキスト折り返し＋小写真分の余白（配置はそのまま） */
@media screen and (min-width: 769px) and (max-width: 1200px) {
  .sec3-camera-team-layout {
    column-gap: 24px;
  }
  .sec3-camera-team-body {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    padding-left: 80px;
  }
  .sec3-camera-team-text {
    width: 100%;
    max-width: 100%;
    overflow-wrap: break-word;
    word-break: normal;
  }
  .sec3-camera-team-sub {
    max-width: 46%;
  }
}

/* 1201〜1280px：写真列 520px・gap やや広め */
@media screen and (min-width: 1201px) and (max-width: 1280px) {
  .sec3-camera-team-layout {
    column-gap: 100px;
  }
  .sec3-camera-team-body {
    max-width: 34em;
    padding-left: 0;
  }
}

@media screen and (min-width: 1281px) {
  .sec3-camera-team-layout {
    grid-template-columns: 560px minmax(0, 1fr);
    column-gap: 150px;
    width: calc(100vw - 32px);
    max-width: calc(100vw - 32px);
    padding: 0 32px 0 0;
  }
  .sec3-camera-team-body {
    max-width: 34em;
    padding-left: 0;
  }
  .sec3-camera-team-text {
    font-size: 14px;
  }
}

@media screen and (min-width: 1700px) {
  .sec3-camera-team {
    padding-top: 90px;
    padding-bottom: 90px;
  }
  .sec3-camera-team-layout {
    grid-template-columns: 700px minmax(0, 1fr);
    column-gap: 400px;
  }
  .sec3-camera-team-visual {
    padding-bottom: 140px;
  }
  .sec3-camera-team-sub {
    top: 30%;
    left: 80%;
    max-width: 60%;
  }
  .sec3-camera-team-body {
    padding-left: 0;
  }
}

/* ---- 女性だけの挙式プロチーム（テキスト＋段差写真3枚＋縦書き）
 * 構造: .sec3-pro-team-layout > intro + .sec3-pro-team-media（gallery + vertical）
 * .sec3-pro-team-gallery 内の item / 画像サイズ・段差は変更しない。
 * ---- */
.sec3-pro-team-media {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  min-width: 0;
}
.sec3-pro-team {
  align-self: stretch;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 72px 0;
  background: var(--sec3-color-bg);
  overflow-x: clip;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.sec3-pro-team-layout {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 32px;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0 20px;
  box-sizing: border-box;
}
.sec3-pro-team-intro {
  /* align-self: stretch; */
  width: 100%;
  min-width: 0;
  max-width: none;
  overflow: visible;
}
.sec3-pro-team-intro .sec2-shrine-title {
  margin: 0 0 28px;
  overflow-wrap: break-word;
  word-break: normal;
}
.sec3-pro-team-lead {
  margin: 0;
  font-size: 14px;
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.1em;
  color: var(--sec3-color-text);
  max-width: 100%;
  overflow-wrap: break-word;
  word-break: normal;
}
.sec3-pro-team-gallery {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 22px;
  flex-shrink: 0;
  padding: 8px 80px 8px 0;
  overflow: visible;
}
.sec3-pro-team-item {
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0;
  flex-shrink: 0;
}
.sec3-pro-team-item img.sec3-pro-team-photo,
.sec3-pro-team-item > img:not(.sec3-pro-team-decor) {
  display: block;
  width: 196px;
  height: 400px;
  object-fit: cover;
  object-position: center top;
}
.sec3-pro-team-item--stylist {
  margin-top: 0;
}
.sec3-pro-team-item--coordinator {
  margin-top: 108px;
}
.sec3-pro-team-item--cameraman {
  position: relative;
  margin-top: 52px;
  overflow: visible;
}
.sec3-pro-team-decor {
  position: absolute;
  right: -75px;
  bottom: 52px;
  width: 110px;
  height: auto;
  z-index: 2;
  pointer-events: none;
  opacity: 0.85;
}

.sec3-pro-team-role {
  font-family: var(--font-yumincho);
  font-size: 15px;
  /* font-style: italic; */
  font-weight: 400;
  letter-spacing: 0.05em;
  color: var(--sec3-color-text);
  text-align: right;
  align-self: flex-end;
}
.sec3-pro-team-vertical {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.45em;
  margin: 0;
  padding: 0;
  white-space: nowrap;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.9;
  letter-spacing: 0.22em;
  color: var(--sec3-color-text);
}

/* 769px〜：2ブロック横並び（テキスト | 画像+縦書き）※グリッド3列は使わない */
@media screen and (min-width: 769px) {
  .sec3-pro-team {
    padding-top: 72px;
    padding-bottom: 72px;
    align-items: stretch;
  }
  .sec3-pro-team-layout {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 20px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0 40px 0 48px;
    box-sizing: border-box;
    overflow: visible;
    grid-template-columns: none;
    grid-template-rows: none;
  }
  /* 余白不足時はテキスト列だけ縮み、画像ブロックは縮めない */
  .sec3-pro-team-intro {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
    max-width: 34em;
    overflow: visible;
  }
  .sec3-pro-team-intro .sec2-shrine-title,
  .sec3-pro-team-lead {
    max-width: 100%;
  }
  .sec3-pro-team-media {
    flex: 0 0 auto;
    flex-direction: row;
    align-items: center;
    gap: 20px;
    overflow: visible;
  }
  .sec3-pro-team-lead {
    font-size: 15px;
    line-height: 2.2;
  }
  .sec3-pro-team-gallery {
    flex: 0 0 auto;
    justify-content: flex-start;
  }
  .sec3-pro-team-vertical {
    flex: 0 0 auto;
    margin: 0;
    font-size: 15px;
  }
}

/* 769px〜：横並び時は画面幅に応じてギャラリー画像を段階縮小（段差比率は維持） */
@media screen and (min-width: 769px) and (max-width: 900px) {
  .sec3-pro-team-gallery {
    gap: 12px;
    padding-right: 46px;
  }
  .sec3-pro-team-item img.sec3-pro-team-photo,
  .sec3-pro-team-item > img:not(.sec3-pro-team-decor) {
    width: 120px;
    height: 245px;
  }
  .sec3-pro-team-item--coordinator {
    margin-top: 66px;
  }
  .sec3-pro-team-item--cameraman {
    margin-top: 32px;
  }
  .sec3-pro-team-decor {
    width: 67px;
    right: -46px;
    bottom: 32px;
  }
}

@media screen and (min-width: 901px) and (max-width: 1000px) {
  .sec3-pro-team-gallery {
    gap: 14px;
    padding-right: 54px;
  }
  .sec3-pro-team-item img.sec3-pro-team-photo,
  .sec3-pro-team-item > img:not(.sec3-pro-team-decor) {
    width: 140px;
    height: 286px;
  }
  .sec3-pro-team-item--coordinator {
    margin-top: 77px;
  }
  .sec3-pro-team-item--cameraman {
    margin-top: 37px;
  }
  .sec3-pro-team-decor {
    width: 79px;
    right: -54px;
    bottom: 37px;
  }
}

@media screen and (min-width: 1001px) and (max-width: 1100px) {
  .sec3-pro-team-gallery {
    gap: 16px;
    padding-right: 61px;
  }
  .sec3-pro-team-item img.sec3-pro-team-photo,
  .sec3-pro-team-item > img:not(.sec3-pro-team-decor) {
    width: 160px;
    height: 327px;
  }
  .sec3-pro-team-item--coordinator {
    margin-top: 88px;
  }
  .sec3-pro-team-item--cameraman {
    margin-top: 42px;
  }
  .sec3-pro-team-decor {
    width: 90px;
    right: -61px;
    bottom: 42px;
  }
}

@media screen and (min-width: 1101px) and (max-width: 1200px) {
  .sec3-pro-team-gallery {
    gap: 18px;
    padding-right: 67px;
  }
  .sec3-pro-team-item img.sec3-pro-team-photo,
  .sec3-pro-team-item > img:not(.sec3-pro-team-decor) {
    width: 175px;
    height: 357px;
  }
  .sec3-pro-team-item--coordinator {
    margin-top: 96px;
  }
  .sec3-pro-team-item--cameraman {
    margin-top: 46px;
  }
  .sec3-pro-team-decor {
    width: 98px;
    right: -67px;
    bottom: 46px;
  }
}

@media screen and (min-width: 769px) and (max-width: 1200px) {
  .sec3-pro-team-layout {
    gap: 16px;
    padding-right: 36px;
  }
  .sec3-pro-team-media {
    gap: 16px;
  }
}

@media screen and (min-width: 1201px) and (max-width: 1280px) {
  .sec3-pro-team-layout {
    gap: 20px;
  }
  .sec3-pro-team-media {
    gap: 20px;
  }
  .sec3-pro-team-gallery {
    gap: 20px;
    padding-right: 72px;
  }
  .sec3-pro-team-item img.sec3-pro-team-photo,
  .sec3-pro-team-item > img:not(.sec3-pro-team-decor) {
    width: 185px;
    height: 377px;
  }
  .sec3-pro-team-item--coordinator {
    margin-top: 102px;
  }
  .sec3-pro-team-item--cameraman {
    margin-top: 49px;
  }
  .sec3-pro-team-decor {
    width: 104px;
    right: -71px;
    bottom: 49px;
  }
}

@media screen and (min-width: 1281px) {
  .sec3-pro-team-layout {
    padding: 0 40px 0 56px;
    gap: 24px;
  }
  .sec3-pro-team-gallery {
    padding-right: 80px;
  }
  .sec3-pro-team-media {
    gap: 24px;
  }
  .sec3-pro-team-lead {
    font-size: 14px;
  }
  .sec3-pro-team-vertical {
    font-size: 14px;
  }
}

@media screen and (min-width: 1700px) {
  .sec3-pro-team {
    padding-top: 90px;
    padding-bottom: 90px;
  }
  .sec3-pro-team-layout {
    padding: 0 32px 0 64px;
    gap: 80px;
  }
  .sec3-pro-team-media {
    gap: 28px;
  }
}

.sec3-pro-team-vertical-num,
.sec3-pro-team-vertical-text {
  display: inline-block;
}

/* ---- 挙式プラン（縦見出し＋左詳細＋右写真） ---- */
.sec3-ceremony-plan {
  align-self: stretch;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  padding: 80px 0 100px;
  background: var(--sec3-color-bg);
  overflow-x: clip;
  box-sizing: border-box;
}
.sec3-ceremony-plan-header {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 0;
  max-width: 1280px;
  padding: 0 20px;
  box-sizing: border-box;
}

.sec3-ceremony-plan-heading-wrap {
  /* 見出し背景 sec_9-ashirai.png … width のみ変更（height は常に auto） */
  --sec3-ceremony-plan-heading-bg-width: 240px;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 300px;
  padding: 20px 0;
  box-sizing: border-box;

}
.sec3-ceremony-plan-heading-bg {
  position: absolute;
  left: 80%;
  top: 50%;
  z-index: 0;
  width: var(--sec3-ceremony-plan-heading-bg-width);
  height: auto;
  max-width: none;
  object-fit: contain;
  transform: translate(-50%, -50%);
  opacity: 0.95;
  pointer-events: none;
}
.sec3-ceremony-plan-heading {
  position: relative;
  z-index: 1;
  margin: 0;
  padding: 36px 10px;
  background: #fff;
  writing-mode: vertical-rl;
  font-size: 28px;
  font-weight: normal;
  letter-spacing: 0.35em;
  line-height: 1.6;
  color: var(--sec3-color-text);
  box-sizing: border-box;
}
.sec3-ceremony-plan-body {
  --sec3-ceremony-info-ratio: 58%;
  --sec3-ceremony-body-gap: 72px;
  /* 1281px以上 … 下記「ブレイクポイント別」以外はここを編集 */
  --sec3-ceremony-plan-visual-width: 650px;
  --sec3-ceremony-plan-info-margin-left: 300px;
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  gap: var(--sec3-ceremony-body-gap);
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
.sec3-ceremony-plan-info {
  display: flex;
  flex-direction: column;
  gap: 40px;
  flex: 1 1 var(--sec3-ceremony-info-ratio);
  min-width: 0;
  max-width: calc(
    100% - var(--sec3-ceremony-plan-visual-width) - var(--sec3-ceremony-body-gap) -
      var(--sec3-ceremony-plan-info-margin-left)
  );
  margin-left: var(--sec3-ceremony-plan-info-margin-left);
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}
.sec3-ceremony-plan-summary {
  margin: 0;
  padding: 48px 40px;
  color: var(--sec3-color-text);
  /* background-color: var(--sec3-color-bg-soft); */
  background-image: url("../img/plan-bg.png");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  /* border: 1px solid var(--sec3-color-line-soft); */
  box-sizing: border-box;
}
.sec3-ceremony-plan-summary-main {
  box-sizing: border-box;
}

@media screen and (min-width: 541px) {
  /* PC表示は「summaryカード」+「contents/CTAは外」見え方に戻す */
  .sec3-ceremony-plan-summary {
    padding: 0;
    background: none;
  }
  .sec3-ceremony-plan-summary-main {
    padding: 48px 40px;
    background-image: url("../img/plan-bg.png");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
  }

  body.page-index-testimv3 .sec3-ceremony-plan-summary .sec3-ceremony-plan-note {
    font-size: 12px;
    line-height: 1.85;
  }
}
.sec3-ceremony-plan-summary :is(
  .sec3-ceremony-plan-num,
  .sec3-ceremony-plan-sep,
  .sec3-ceremony-plan-desc,
  .sec3-ceremony-plan-price-label,
  .sec3-ceremony-plan-price-value,
  .sec3-ceremony-plan-price-tax,
  .sec3-ceremony-plan-note
) {
  color: var(--sec3-color-text);
}
.sec3-ceremony-plan-name {
  margin: 0 0 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--sec3-color-text);
  font-size: 22px;
  font-weight: 500;
  letter-spacing: 0.12em;
  line-height: 1.6;
  color: var(--sec3-color-text);
}
.sec3-ceremony-plan-num {
  font-family: var(--font-yumincho);
  font-size: 1.15em;
  color: var(--sec3-color-accent);
  margin-right: 0.25em;
}
.sec3-ceremony-plan-sep {
  margin: 0 0.35em;
  color: var(--sec3-color-text-soft);
  letter-spacing: 0;
}
.sec3-ceremony-plan-desc {
  margin: 0 0 28px;
  font-size: 14px;
  line-height: 1.85;
  letter-spacing: 0.06em;
  color: var(--sec3-color-text-soft);
}
.sec3-ceremony-plan-price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: flex-end;
  gap: 0.15em 0.35em;
  margin: 0 0 12px;
  text-align: right;
}
.sec3-ceremony-plan-price-label {
  font-family: var(--font-yumincho);
  font-size: 14px;
  letter-spacing: 0.05rem;
  color: var(--sec3-color-text-soft);
}
.sec3-ceremony-plan-price-value {
  font-family: var(--font-yumincho);
  font-size: 42px;
  font-weight: 500;
  letter-spacing: 0.05rem;
  color: var(--sec3-color-deep);
  line-height: 1;
}
.sec3-ceremony-plan-price-tax {
  font-size: 12px;
  color: var(--sec3-color-text-soft);
  letter-spacing: 0.05rem;
}
.sec3-ceremony-plan-note {
  margin: 0;
  font-size: 12px;
  line-height: 1.85;
  text-align: right;
  color: var(--sec3-color-text-soft);
  letter-spacing: 0.04em;
}
.sec3-ceremony-plan-contents-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  font: inherit;
  color: inherit;
  text-align: left;
  cursor: pointer;
  box-sizing: border-box;
}
.sec3-ceremony-plan-contents-title {
  margin: 0 0 20px;
  font-size: 17px;
  font-weight: 500;
  letter-spacing: 0.14em;
  color: var(--sec3-color-text);
  padding-bottom: 12px;
  /* border-bottom: 1px solid var(--sec3-color-line); */
}
.sec3-ceremony-plan-contents-toggle .sec3-ceremony-plan-contents-title {
  margin: 0;
  padding-bottom: 0;
}
.sec3-ceremony-plan-contents-chevron {
  flex-shrink: 0;
  display: none;
  width: 8px;
  height: 8px;
  margin-right: 4px;
  border-right: 1px solid #c8c8c8;
  border-bottom: 1px solid #c8c8c8;
  transform: rotate(45deg);
  transition: transform 0.2s ease;
}
.sec3-ceremony-plan-contents-panel {
  display: block;
  box-sizing: border-box;
}
@media screen and (min-width: 541px) {
  .sec3-ceremony-plan-contents-toggle {
    display: block;
    pointer-events: none;
    cursor: default;
    margin-top: 30px;
        margin-bottom: 20px;
  }
  .sec3-ceremony-plan-contents-toggle .sec3-ceremony-plan-contents-title {
    margin: 0 0 20px;
    padding-bottom: 12px;
  }
  .sec3-ceremony-plan-contents:not(.is-open) .sec3-ceremony-plan-contents-panel {
    display: block;
  }
}
.sec3-ceremony-plan-features {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px 28px;
  margin-bottom: 50px;
}
.sec3-ceremony-plan-features li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 13px;
  line-height: 1.75;
  letter-spacing: 0.04em;
  color: var(--sec3-color-text);
}
/* アイコン画像 … src を差し替え（サイズは --sec3-ceremony-plan-icon-size で調整） */
.sec3-ceremony-plan-icon {
  --sec3-ceremony-plan-icon-size: 70px;
  flex-shrink: 0;
  display: block;
  width: var(--sec3-ceremony-plan-icon-size);
  height: auto;
  margin-top: 2px;
  object-fit: contain;
}
.sec3-ceremony-plan-feature-text {
  flex: 1;
  min-width: 0;
}
.sec3-ceremony-plan-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  max-width: 100%;
  padding: 18px 24px;
  font-size: 14px;
  letter-spacing: 0.12em;
}
.sec3-ceremony-plan-cta-arrow {
  font-family: var(--font-yumincho);
  font-size: 18px;
  line-height: 1;
}
.sec3-ceremony-plan-visual {
  flex: 0 0 var(--sec3-ceremony-plan-visual-width);
  width: var(--sec3-ceremony-plan-visual-width);
  margin: 0;
  margin-left: auto;
  align-self: flex-start;
}
.sec3-ceremony-plan-visual img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  margin: 0;
  object-fit: contain;
}

/* 2つ目のプラン（左写真・右テキスト） */
.sec3-ceremony-plan-body + .sec3-ceremony-plan-body {
  margin-top: 80px;
}
.sec3-ceremony-plan-body--reverse {
  flex-direction: row;
}
.sec3-ceremony-plan-body--reverse .sec3-ceremony-plan-visual {
  margin-left: 0;
  margin-right: 0;
}
.sec3-ceremony-plan-body--reverse .sec3-ceremony-plan-info {
  margin-left: 0;
  margin-right: var(--sec3-ceremony-plan-info-margin-left);
  max-width: calc(
    100% - var(--sec3-ceremony-plan-visual-width) - var(--sec3-ceremony-body-gap) -
      var(--sec3-ceremony-plan-info-margin-left)
  );
}

/* 挙式プラン：写真幅（--sec3-ceremony-plan-visual-width）・info余白（--sec3-ceremony-plan-info-margin-left） */
@media screen and (min-width: 1025px) and (max-width: 1280px) {
  .sec3-ceremony-plan-body {
    --sec3-ceremony-plan-visual-width: 480px;
    --sec3-ceremony-plan-info-margin-left: 60px;
  }
}

@media screen and (min-width: 769px) and (max-width: 1024px) {
  .sec3-ceremony-plan-body {
    --sec3-ceremony-plan-visual-width: 350px;
    --sec3-ceremony-plan-info-margin-left: 30px;
    --sec3-ceremony-body-gap: 40px;
  }
}

@media screen and (max-width: 768px) {
  .sec3-ceremony-plan-body {
    --sec3-ceremony-plan-visual-width: 100%;
    --sec3-ceremony-plan-info-margin-left: 64px;
    --sec3-ceremony-body-gap: 32px;
  }
}

/* ---- Special Gift（feature-container は kodawari と共通・style.css 準拠） ---- */
.sec3-gift {
  align-self: stretch;
  width: 100%;
  background: var(--sec3-color-bg);
  padding: 96px 48px;
  box-sizing: border-box;
}

.sec3-gift-header {
  text-align: center;
  margin: 0 auto 64px;
  max-width: 1100px;
}

.sec3-gift-sub {
  margin: 0 0 16px;
  font-size: 14px;
  letter-spacing: 0.12em;
  color: var(--sec3-color-text-soft);
}

.sec3-gift-header .sec3-en-heading {
  margin: 0;
}

/* kodawari（.sec2-section1 > .feature-section）と同じ見た目 */
.sec3-gift .feature-container {
  margin-left: auto;
  margin-right: auto;
}

.sec3-gift .feature-sub {
  font-size: 17px;
  font-weight: bold;
}

.sec3-gift .feature-card {
  display: flex;
  flex-direction: column;
}

.sec3-gift .feature-content {
  flex: 1 1 auto;
}

/* sec3-gift：feature-sub を feature-text の上に（スマホ/PC共通） */
.sec3-gift .feature-content {
  display: flex;
  flex-direction: column;
}
.sec3-gift .feature-sub {
  order: 1;
}

.sec3-gift .feature-sub .feature-sub-main {
  font-size: 0.9em;

}
.sec3-gift .feature-sub .feature-sub-accent {
  font-size: 1.1em;
}
.sec3-gift .feature-text {
  order: 2;
}

.sec3-gift-card-link {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.35em;
  width: auto;
  max-width: 100%;
  margin: 12px 0 0;
  padding: 0;
  border: 0;
  box-shadow: none;
  background: transparent;
  position: static;
  font-family: var(--font-yumincho);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.06em;
  color: var(--sec3-color-text-soft, #7d7368);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  transition: opacity 0.2s ease, color 0.2s ease;
}

.sec3-gift-card-link::after {
  content: none;
  display: none;
}

.sec3-gift-card-link-arrow {
  display: inline;
  font-family: var(--font-yumincho);
  font-size: 1em;
  line-height: 1;
  text-decoration: none;
}

/* sec3 内 contact-section（上部と同じCTA） */
.sec3-inner > .contact-section {
  align-self: stretch;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}

.sec3-inner > .contact-section .contact-cta-bar {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto 72px;
}

.sec3-cta-row {
  display: flex;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}

/* ---- Buttons ---- */
.sec3-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-width: 240px;
  padding: 16px 28px;
  font-size: 14px;
  letter-spacing: 0.1em;
  text-decoration: none;
  transition: all 0.25s ease;
  font-family: inherit;
  border: 1px solid transparent;
  cursor: pointer;
}

.sec3-btn-primary {
  background: var(--sec3-color-accent);
  color: var(--sec3-color-white);
  border-color: var(--sec3-color-accent);
}

.sec3-btn-primary:hover {
  background: var(--sec3-color-deep);
  border-color: var(--sec3-color-deep);
}

.sec3-btn-outline {
  background: var(--sec3-color-white);
  color: var(--sec3-color-deep);
  border-color: var(--sec3-color-accent);
}

.sec3-btn-outline:hover {
  background: var(--sec3-color-bg-alt);
}

.sec3-btn-line {
  background: #06c755;
  color: var(--sec3-color-white);
  border-color: #06c755;
}

.sec3-btn-line:hover {
  background: #05a548;
  border-color: #05a548;
}

.sec3-btn-large {
  min-width: 280px;
  padding: 20px 36px;
  font-size: 15px;
}

/* ---- 諏訪大社での挙式について ---- */
.sec3-suwa {
  /* plan-bg タイル幅（継ぎ目が気になる場合は数値を微調整） */
  --sec3-suwa-plan-bg-tile: 300px;
  align-self: stretch;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  position: relative;
  padding: 110px 48px;
  box-sizing: border-box;
  background-color: var(--sec3-color-bg);
  overflow-x: clip;
}

/* リピート背景は疑似要素に分離（つなぎ目対策：整数pxタイル＋半タイルずらし二重） */
.sec3-suwa::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-color: var(--sec3-color-bg);
  background-image: url("../img/plan-bg.png"), url("../img/plan-bg.png");
  background-repeat: repeat, repeat;
  background-size: var(--sec3-suwa-plan-bg-tile) auto, var(--sec3-suwa-plan-bg-tile) auto;
  background-position: 0 0, calc(var(--sec3-suwa-plan-bg-tile) / 2) calc(var(--sec3-suwa-plan-bg-tile) / 2);
  /* 1px級の境界線を視覚的にぼかす（比率は維持・引き延ばしなし） */
  filter: blur(0.4px);
}

.sec3-suwa-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 56px;
  width: 100%;
  box-sizing: border-box;
}

/* trust 以外の直下要素に幅を指定（trust は全幅のまま） */
.sec3-suwa-inner > :not(.sec3-trust) {
  width: 100%;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* sec3-suwa 内に配置した trust（背景・全幅は親に任せる） */
.sec3-suwa .sec3-trust {
  align-self: stretch;
  width: 100%;
  max-width: none;
  margin-left: 0;
  padding: 0;
  background: none;
  overflow: visible;
}

.sec3-suwa .sec3-trust::before {
  display: none;
}

.sec3-suwa-heading {
  margin: 0;
  padding: 0;
  align-self: center;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  font-size: 28px;
  font-weight: normal;
  letter-spacing: 0.28em;
  line-height: 1.85;
  color: var(--sec3-color-text);
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  white-space: nowrap;
  justify-content: center;
}

.sec3-suwa-heading span {
  display: inline-block;
}

.sec3-suwa-heading span:nth-child(2) {
  margin-top: 1.6em;
}

.sec3-suwa-main {
  position: relative;
  min-width: 0;
}

.sec3-suwa-photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin: 0 0 48px;
}

.sec3-suwa-photo {
  margin: 0;
}

.sec3-suwa-photo img {
  display: block;
  width: 100%;
  /* height: 260px; */
  object-fit: cover;
}

.sec3-suwa-photo figcaption {
  margin: 10px 0 0;
  font-size: 17px;
  letter-spacing: 0.1em;
  text-align: center;
  color: var(--sec3-color-text);
}

.sec3-suwa-lead {
  margin: 0 0 40px;
  font-size: 14px;
  line-height: 1.85;
  letter-spacing: 0.06em;
  text-align: left;
  color: var(--sec3-color-text);
}

.sec3-suwa-table-wrap {
  position: relative;
  width: 100%;
  margin: 0 0 40px;
  /* padding-bottom: 72px; */
  box-sizing: border-box;
  overflow: visible;
  /* 装飾画像の横幅（高さは auto で比率維持） */
  --sec3-suwa-decor-w: 130px;
}

.sec3-suwa-table-wrap .sec3-suwa-table {
  position: relative;
  z-index: 1;
  margin-bottom: 0;
}

/* テーブル領域（wrap）基準の絶対配置レイヤー */
.sec3-suwa-table-abs {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}

.sec3-suwa-abs-img {
  position: absolute;
  top: var(--sec3-suwa-abs-top, auto);
  right: var(--sec3-suwa-abs-right, auto);
  bottom: var(--sec3-suwa-abs-bottom, auto);
  left: var(--sec3-suwa-abs-left, auto);
  width: var(--sec3-suwa-abs-w, auto);
  height: auto;
  max-width: none;
  transform: var(--sec3-suwa-abs-transform, none);
  opacity: var(--sec3-suwa-abs-opacity, 0.9);
  pointer-events: none;
}

.sec3-suwa-table {
  width: 100%;
  border-collapse: collapse;
  margin: 0;
  font-size: 16px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid var(--sec3-color-line);
}

.sec3-suwa-table th,
.sec3-suwa-table td {
  padding: 16px 20px;
  border-bottom: 1px solid var(--sec3-color-line-soft);
  vertical-align: top;
  line-height: 1.85;
  text-align: left;
}

.sec3-suwa-table tr:last-child th,
.sec3-suwa-table tr:last-child td {
  border-bottom: none;
}

.sec3-suwa-table th {
  width: 28%;
  min-width: 120px;
  background: var(--sec3-color-line-deep);
  color: var(--sec3-color-white);
  font-weight: 500;
  letter-spacing: 0.1em;
  white-space: nowrap;
}

.sec3-suwa-table td {
  background: var(--sec3-color-white);
  color: var(--sec3-color-text);
}

.sec3-suwa-notes {
  margin: 0;
  width: 100%;
}

/* 912px以下：icon-pot.png をテーブル外（notes の下）に移動 */
@media screen and (max-width: 912px) {
  body.page-index-testimv3 {
    font-size: 14px;
  }

  body.page-index-testimv3 .s3-faq__side-title,
  body.page-index-testimv3 .s3-reports__side-title,
  body.page-index-testimv3 .s3-gallery__side-title {
    font-size: 17px;
  }

  body.page-index-testimv3 .s3-faq__side-script,
  body.page-index-testimv3 .s3-reports__side-script,
  body.page-index-testimv3 .s3-gallery__side-script {
    font-size: 14px;
  }

  body.page-index-testimv3 .sec3-suwa {
    background-color: #fff;
  }

  body.page-index-testimv3 .sec3-suwa::before {
    display: none;
    background-image: none;
  }

  body.page-index-testimv3 .sec3-suwa .sec3-trust {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding: 0;
    box-sizing: border-box;
    background-color: #fff;
    background-image: url("../img/plan-bg.png"), url("../img/plan-bg.png");
    background-repeat: repeat, repeat;
    background-size: var(--sec3-suwa-plan-bg-tile) auto, var(--sec3-suwa-plan-bg-tile) auto;
    background-position: 0 0,
      calc(var(--sec3-suwa-plan-bg-tile) / 2) calc(var(--sec3-suwa-plan-bg-tile) / 2);
  }

  body.page-index-testimv3 .sec3-suwa-inner {
    gap: 16px;
  }

  body.page-index-testimv3 .sec3-suwa-main > .sec3-suwa-lead {
    margin-bottom: 0;
  }

  body.page-index-testimv3 .sec3-suwa-table-abs {
    display: none;
  }

  body.page-index-testimv3 .sec3-suwa-table-wrap {
    padding-bottom: 0;
    margin-bottom: 12px;
  }

  body.page-index-testimv3 .sec3-suwa-notes .sec3-suwa-lead {
    margin: 0;
  }

  body.page-index-testimv3 .sec3-suwa-notes::after {
    content: "";
    display: block;
    width: 30vw;
    aspect-ratio: 1;
    margin: 0 0 0 auto;
    background: url("../img/icon-pot.png") no-repeat center / contain;
    opacity: 0.9;
    pointer-events: none;
  }

  /* photo-plan：展開メニュー（content_box.is-show）の背景のみ画面全幅 */
  body.page-index-testimv3 .s3-photo-plan-block .photo-plan .content_box.is-show {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .mincho,
  body.page-index-testimv3 .s3-h2,
  body.page-index-testimv3 .s3-h2.s3-h2--center {
    font-weight: bold;
  }

  /* photo-plan：Close ボタンは × とテキストを横並び（会食・お色直し・前撮りで統一） */
  body.page-index-testimv3 #s3-meal-content .s3-meal-expanded > .close-area .close-btn,
  body.page-index-testimv3 #s3-dress-content .close-area .close-btn,
  body.page-index-testimv3 #s3-photo-content .s3-photo-expanded > .close-area--photo-pc .close-btn,
  body.page-index-testimv3 #s3-photo-content .s3-photo-expanded__aside .close-area--photo-sp .close-btn,
  body.page-index-testimv3 .s3-photo-plan-block .photo-plan .content_box > .close-area .close-btn {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    width: auto;
    min-height: 28px;
    margin: 0;
    padding: 4px 0 4px 32px;
  }

  body.page-index-testimv3 #s3-meal-content .s3-meal-expanded > .close-area .close-btn::before,
  body.page-index-testimv3 #s3-meal-content .s3-meal-expanded > .close-area .close-btn::after,
  body.page-index-testimv3 #s3-dress-content .close-area .close-btn::before,
  body.page-index-testimv3 #s3-dress-content .close-area .close-btn::after,
  body.page-index-testimv3 #s3-photo-content .s3-photo-expanded > .close-area--photo-pc .close-btn::before,
  body.page-index-testimv3 #s3-photo-content .s3-photo-expanded > .close-area--photo-pc .close-btn::after,
  body.page-index-testimv3 #s3-photo-content .s3-photo-expanded__aside .close-area--photo-sp .close-btn::before,
  body.page-index-testimv3 #s3-photo-content .s3-photo-expanded__aside .close-area--photo-sp .close-btn::after,
  body.page-index-testimv3 .s3-photo-plan-block .photo-plan .content_box > .close-area .close-btn::before,
  body.page-index-testimv3 .s3-photo-plan-block .photo-plan .content_box > .close-area .close-btn::after {
    top: 50%;
    left: 16px;
    width: 24px;
  }

  body.page-index-testimv3 #s3-meal-content .s3-meal-expanded > .close-area .close-btn::before,
  body.page-index-testimv3 #s3-dress-content .close-area .close-btn::before,
  body.page-index-testimv3 #s3-photo-content .s3-photo-expanded > .close-area--photo-pc .close-btn::before,
  body.page-index-testimv3 #s3-photo-content .s3-photo-expanded__aside .close-area--photo-sp .close-btn::before,
  body.page-index-testimv3 .s3-photo-plan-block .photo-plan .content_box > .close-area .close-btn::before {
    transform: translate(-50%, -50%) rotate(45deg);
  }

  body.page-index-testimv3 #s3-meal-content .s3-meal-expanded > .close-area .close-btn::after,
  body.page-index-testimv3 #s3-dress-content .close-area .close-btn::after,
  body.page-index-testimv3 #s3-photo-content .s3-photo-expanded > .close-area--photo-pc .close-btn::after,
  body.page-index-testimv3 #s3-photo-content .s3-photo-expanded__aside .close-area--photo-sp .close-btn::after,
  body.page-index-testimv3 .s3-photo-plan-block .photo-plan .content_box > .close-area .close-btn::after {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  body.page-index-testimv3 #s3-meal-content .s3-meal-expanded > .close-area .close-btn > span,
  body.page-index-testimv3 #s3-dress-content .close-area .close-btn > span,
  body.page-index-testimv3 #s3-photo-content .s3-photo-expanded > .close-area--photo-pc .close-btn > span,
  body.page-index-testimv3 #s3-photo-content .s3-photo-expanded__aside .close-area--photo-sp .close-btn > span,
  body.page-index-testimv3 .s3-photo-plan-block .photo-plan .content_box > .close-area .close-btn > span {
    display: block;
    margin-top: 0;
    font-size: 10px;
    line-height: 1;
    letter-spacing: 0.06em;
    white-space: nowrap;
  }

  body.page-index-testimv3 #s3-dress-content .s3-plan-detail-bar .close-area {
    display: flex;
    justify-content: center;
    align-items: center;
    align-self: stretch;
    width: 100%;
    max-width: none;
    min-height: 0;
    margin-top: 8px;
    padding: 0;
  }

  body.page-index-testimv3 #s3-dress-content .s3-plan-detail-bar .close-area .close-btn {
    margin: 0;
  }

  body.page-index-testimv3 #s3-photo-content .s3-photo-expanded__aside .close-area--photo-sp {
    display: flex;
    justify-content: center;
    width: 100%;
    min-height: 0;
    margin: 24px 0 0;
    padding: 0;
  }

  body.page-index-testimv3 #s3-photo-content {
    padding-bottom: 0;
  }

  body.page-index-testimv3 #s3-photo-content .s3-photo-expanded__title {
    font-size: 14px;
  }

  /* FAQ / 挙式レポート / フォトギャラリー：左右余白 5% で統一 */
  body.page-index-testimv3 .s3-faq.s3-section,
  body.page-index-testimv3 .s3-reports.s3-section,
  body.page-index-testimv3 .s3-gallery.s3-section {
    padding-left: 5%;
    padding-right: 5%;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .s3-faq.s3-section > .s3-faq__layout.s3-inner,
  body.page-index-testimv3 .s3-reports.s3-section > .s3-reports__layout.s3-inner,
  body.page-index-testimv3 .s3-gallery.s3-section > .s3-gallery__layout.s3-inner {
    width: 100%;
    max-width: none;
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .s3-gallery__main {
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    margin-right: 0;
  }

  /* 見出し（__side）を各セクションの上に */
  body.page-index-testimv3 .s3-faq__layout.s3-inner,
  body.page-index-testimv3 .s3-reports__layout.s3-inner,
  body.page-index-testimv3 .s3-gallery__layout.s3-inner {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  body.page-index-testimv3 .s3-faq__main,
  body.page-index-testimv3 .s3-reports__main,
  body.page-index-testimv3 .s3-gallery__main {
    order: 2;
    width: 100%;
  }

  body.page-index-testimv3 .s3-faq__side,
  body.page-index-testimv3 .s3-reports__side,
  body.page-index-testimv3 .s3-gallery__side {
    order: 1;
    width: 100%;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: flex-start;
    gap: 0 12px;
    padding-left: 0;
    padding-bottom: 28px;
    margin-bottom: 0;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .s3-faq__side-title,
  body.page-index-testimv3 .s3-reports__side-title,
  body.page-index-testimv3 .s3-gallery__side-title {
    order: 1;
    flex: 0 1 auto;
    margin: 0;
    padding: 0;
    font-family: var(--s3-font-mincho);
    font-size: 17px;
    font-weight: bold;
    letter-spacing: 0.12em;
    line-height: 1.4;
    color: #4a4a4a;
    writing-mode: horizontal-tb;
    text-orientation: mixed;
  }

  body.page-index-testimv3 .s3-faq__side-script,
  body.page-index-testimv3 .s3-reports__side-script,
  body.page-index-testimv3 .s3-gallery__side-script {
    order: 2;
    flex: 0 1 auto;
    margin: 0;
    padding: 0;
    font-family: var(--s3-font-script);
    font-size: 14px;
    font-weight: 400;
    letter-spacing: 0.28em;
    line-height: 1;
    color: #a8a8a8;
    text-transform: uppercase;
    writing-mode: horizontal-tb;
    text-orientation: mixed;
    align-self: baseline;
  }

  /* 挙式レポート／フォトギャラリー：ローマ字を大文字にしない */
  body.page-index-testimv3 .s3-reports__side-script,
  body.page-index-testimv3 .s3-gallery__side-script {
    text-transform: none;
  }

  body.page-index-testimv3 .s3-faq__side-rule,
  body.page-index-testimv3 .s3-reports__side-rule,
  body.page-index-testimv3 .s3-gallery__side-rule {
    order: 3;
    display: block;
    width: 100%;
    max-width: none;
    height: 1px;
    min-height: 0;
    margin: 14px 0 0;
    padding: 0;
    background-color: #c8c8c8;
    align-self: stretch;
    flex-basis: 100%;
  }

  /* フォトギャラリー：2段（上段 5:6|19:15・下段左右反転 19:15|5:6） */
  body.page-index-testimv3 .s3-gallery__m-scroll-outer {
    padding: 0;
  }

  body.page-index-testimv3 .s3-gallery__m-scroll {
    gap: 0;
    padding: 0;
    scroll-padding-inline: 0;
  }

  body.page-index-testimv3 .s3-gallery__m-card {
    flex: 0 0 100%;
    scroll-snap-align: start;
  }

  body.page-index-testimv3 .s3-gallery__m-grid {
    --s3-gallery-m-gap: 8px;
    display: flex;
    flex-direction: column;
    gap: var(--s3-gallery-m-gap);
    width: 100%;
    margin: 0;
    padding: 0;
  }

  body.page-index-testimv3 .s3-gallery__m-row {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: var(--s3-gallery-m-gap);
    width: 100%;
  }

  /* 各列幅：19:15 と 5:6 を等高に並べる比率（38:25） */
  body.page-index-testimv3 .s3-gallery__m-row .s3-gallery__m-item:nth-child(1) {
    flex: 38 1 0;
    min-width: 0;
  }

  body.page-index-testimv3 .s3-gallery__m-row .s3-gallery__m-item:nth-child(2) {
    flex: 25 1 0;
    min-width: 0;
  }

  /* 上段：左右反転（5:6 左・19:15 右） */
  body.page-index-testimv3 .s3-gallery__m-row:not(.s3-gallery__m-row--flip) .s3-gallery__m-item:nth-child(1) {
    order: 2;
  }

  body.page-index-testimv3 .s3-gallery__m-row:not(.s3-gallery__m-row--flip) .s3-gallery__m-item:nth-child(2) {
    order: 1;
  }

  body.page-index-testimv3 .s3-gallery__m-item {
    position: static;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
  }

  body.page-index-testimv3 .s3-gallery__mobile .s3-gallery__thumb {
    display: block;
    width: 100%;
    height: auto;
    padding: 0;
    border: 0;
    background: transparent;
  }

  body.page-index-testimv3 .s3-gallery__mobile .s3-gallery__thumb img {
    display: block;
    width: 100%;
    height: auto;
    max-width: none;
    object-fit: cover;
    object-position: center;
  }

  body.page-index-testimv3 .s3-gallery__m-row .s3-gallery__m-item:nth-child(1) .s3-gallery__thumb img {
    aspect-ratio: 19 / 15;
  }

  body.page-index-testimv3 .s3-gallery__m-row .s3-gallery__m-item:nth-child(2) .s3-gallery__thumb img {
    aspect-ratio: 5 / 6;
  }

  /* 挙式レポート：sec3-trust-list と同型の横スライダー */
  body.page-index-testimv3 .s3-reports.s3-section {
    overflow: visible;
  }

  body.page-index-testimv3 .s3-reports__main {
    overflow: visible;
  }

  body.page-index-testimv3 .s3-reports__pc {
    display: none !important;
  }

  body.page-index-testimv3 .s3-reports__mobile {
    display: block;
  }

  body.page-index-testimv3 .s3-reports__mobile .s3-reports-list.s3-reports-slider {
    --s3-reports-slide-w: min(76vw, 292px);
    --s3-reports-slide-gap: 14px;
    --s3-reports-photo-h: calc(var(--s3-reports-slide-w) * 3 / 4);
    display: block;
    position: relative;
    margin: 0 0 32px;
    padding: 0 0 0 20px;
    overflow: hidden;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .s3-reports__mobile .s3-reports-list.s3-reports-slider > .swiper-wrapper {
    display: flex;
    align-items: stretch;
  }

  body.page-index-testimv3 .s3-reports__mobile .s3-reports-list.s3-reports-slider .swiper-slide {
    width: var(--s3-reports-slide-w);
    height: auto;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .s3-reports__mobile .s3-reports-list.s3-reports-slider .s3-report__image {
    margin: 0 0 14px;
  }

  body.page-index-testimv3 .s3-reports__mobile .s3-reports-list.s3-reports-slider .s3-report__image img {
    aspect-ratio: 4 / 3;
  }

  body.page-index-testimv3 .s3-reports__mobile .s3-reports-list.s3-reports-slider .s3-report__caption {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    font-style: normal;
    line-height: 1.6;
    letter-spacing: 0.06em;
    color: var(--s3-color-text);
  }

  body.page-index-testimv3 .s3-reports__mobile .sec3-trust-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    z-index: 5;
    top: calc(var(--s3-reports-photo-h) * 0.5);
    width: 38px;
    height: 38px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.82);
    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);
    cursor: pointer;
    transform: translateY(-50%);
    transition: background-color 0.2s ease, opacity 0.2s ease;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .s3-reports__mobile .sec3-trust-nav--prev {
    left: 26px;
  }

  body.page-index-testimv3 .s3-reports__mobile .sec3-trust-nav--next {
    right: 10px;
  }

  body.page-index-testimv3 .s3-reports__mobile .sec3-trust-nav.swiper-button-disabled {
    opacity: 0.35;
    cursor: default;
    pointer-events: none;
  }

  body.page-index-testimv3 .s3-reports__mobile .sec3-trust-nav-icon {
    display: block;
    width: 7px;
    height: 7px;
    border-right: 1.5px solid #7a7a7a;
    border-bottom: 1.5px solid #7a7a7a;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .s3-reports__mobile .sec3-trust-nav--prev .sec3-trust-nav-icon {
    transform: rotate(135deg);
    margin-left: 2px;
  }

  body.page-index-testimv3 .s3-reports__mobile .sec3-trust-nav--next .sec3-trust-nav-icon {
    transform: rotate(-45deg);
    margin-right: 2px;
  }

  body.page-index-testimv3 #s3-dress-content {
    padding-bottom: 10px;
  }

  body.page-index-testimv3 #s3-meal-content {
    padding-bottom: 50px;
  }

  /* お色直し：2枚画像を隙間なく画面全幅に */
  body.page-index-testimv3 .s3-dress.s3-photo-plan-block .photo-plan .s3-dress__images {
    gap: 0;
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    grid-template-columns: 1fr 1fr;
  }

  body.page-index-testimv3 .s3-dress.s3-photo-plan-block .photo-plan .s3-dress__images img {
    display: block;
    width: 100%;
    margin: 0;
    border-radius: 0;
  }

  body.page-index-testimv3 .s3-photo-plan-block .photo-plan .slider {
    padding-left: 20px;
    padding-top: 30px;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .s3-photo-plan-block .photo-plan .swiper.planimgs-slider {
    padding-bottom: 2.75rem;
  }
}

.sec3-suwa-decor {
  --sec3-suwa-abs-right: -70px;
  --sec3-suwa-abs-bottom: -10px;
  --sec3-suwa-abs-w: var(--sec3-suwa-decor-w);
}

/* ---- Supplement Cards ---- */
.sec3-supplement {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.sec3-supp-card {
  padding: 36px 28px;
  background: var(--sec3-color-bg-soft);
  border-top: 2px solid var(--sec3-color-accent);
}

.sec3-supp-title {
  font-size: 17px;
  font-weight: 500;
  margin: 0 0 16px;
  letter-spacing: 0.1em;
  color: var(--sec3-color-deep);
}

.sec3-supp-desc {
  font-size: 14px;
  line-height: 1.85;
  margin: 0;
}

/* ---- 3つの安心をご提供 ---- */
.sec3-trust {
  align-self: stretch;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  position: relative;
  padding: 120px 48px;
  box-sizing: border-box;
  background-color: #f5f3ef;
  background-image: url("../img/sec_6.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow-x: clip;
}

.sec3-trust::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(245, 243, 239, 0.9);
  pointer-events: none;
}

.sec3-trust-inner {
  position: relative;
  z-index: 1;
  max-width: 1100px;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box;
}

.sec3-trust-heading {
  margin-bottom: 72px;
}

.sec3-trust-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}

.sec3-trust-card {
  margin: 0;
  min-width: 0;
}

.sec3-trust-photo {
  margin: 0 0 24px;
}

.sec3-trust-photo img {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.sec3-trust-title {
  margin: 0 0 18px;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.65;
  letter-spacing: 0.08em;
  color: var(--sec3-color-text);
}

.sec3-trust-desc {
  margin: 0;
  font-size: 13px;
  line-height: 1.85;
  letter-spacing: 0.04em;
  color: var(--sec3-color-text);
  text-align: left;
}

/* trust / flow：PC・スマホ HTML 分離 */
.sec3-trust__mobile,
.sec3-flow__mobile {
  display: none;
}

.sec3-trust__mobile .sec3-trust-slider > .swiper-wrapper {
  box-sizing: border-box;
}

.sec3-trust__mobile .sec3-trust-nav {
  display: none;
}

/* ---- Consultation CTA ---- */
.sec3-consult {
  text-align: center;
  padding: 80px 32px;
  background: var(--sec3-color-bg-alt);
  position: relative;
}

.sec3-consult .sec3-en-heading {
  margin-bottom: 16px;
}

.sec3-consult-badge {
  display: inline-block;
  background: var(--sec3-color-deep);
  color: var(--sec3-color-white);
  font-size: 13px;
  letter-spacing: 0.2em;
  padding: 6px 18px;
  border-radius: 999px;
  margin: 0 0 32px;
}

.sec3-consult-actions {
  display: flex;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}

/* ---- Flow（神前式までの流れ） ---- */
.sec3-flow {
  align-self: stretch;
  width: 100%;
  padding: 0;
  padding-top: 100px;
}

.sec3-flow-sub {
  margin: 0 0 12px;
  text-align: center;
  font-size: 14px;
  letter-spacing: 0.2em;
  color: var(--sec3-color-text);
}

.sec3-flow-heading {
  margin-bottom: 56px;
}

/* PC：タブ切り替え */
.sec3-flow-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  max-width: 1000px;
  margin: 0 auto 56px;
  gap: 0;
}

.sec3-flow-tab {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0;
  padding: 16px 20px 20px;
  border: none;
  background: transparent;
  font-family: inherit;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--sec3-color-text-soft);
  cursor: pointer;
  transition: color 0.2s ease;
}

.sec3-flow-tab::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: #d8d4cc;
}

.sec3-flow-tab-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--sec3-color-accent);
  flex-shrink: 0;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.sec3-flow-tab.is-active {
  color: var(--sec3-color-deep);
}

.sec3-flow-tab.is-active .sec3-flow-tab-dot {
  opacity: 1;
}

.sec3-flow-tab.is-active::after {
  height: 3px;
  background: var(--sec3-color-accent);
}

.sec3-flow-tab:focus-visible {
  outline: 2px solid var(--sec3-color-accent);
  outline-offset: 4px;
}

/* スマホ：独立アコーディオン */
.sec3-flow-accordions {
  display: flex;
  flex-direction: column;
  gap: 20px;
  max-width: 1000px;
  margin: 0 auto 56px;
  padding: 0;
  box-sizing: border-box;
}

.sec3-flow-accordion {
  border: 1px solid #d4cfc6;
  background: #fff;
  box-sizing: border-box;
}

.sec3-flow-accordion-trigger {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 0;
  padding: 16px 44px 16px 20px;
  border: 0;
  background: transparent;
  font-family: inherit;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--sec3-color-text);
  text-align: center;
  cursor: pointer;
  box-sizing: border-box;
}

.sec3-flow-accordion-trigger:focus-visible {
  outline: 2px solid var(--sec3-color-accent);
  outline-offset: -2px;
}

.sec3-flow-accordion-label {
  display: block;
}

.sec3-flow-accordion-chevron {
  position: absolute;
  right: 16px;
  top: 50%;
  width: 8px;
  height: 8px;
  border-right: 1px solid #a8a8a8;
  border-bottom: 1px solid #a8a8a8;
  transform: translateY(-30%) rotate(45deg);
  transition: transform 0.2s ease;
  box-sizing: border-box;
}

.sec3-flow-accordion.is-open .sec3-flow-accordion-chevron {
  transform: translateY(-60%) rotate(-135deg);
}

.sec3-flow-panel[hidden] {
  display: none;
}

.sec3-flow-accordion .sec3-flow-panel {
  padding: 28px 20px 8px;
  box-sizing: border-box;
}

.sec3-flow-timeline {
  position: relative;
  max-width: 1000px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}

.sec3-flow-timeline::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: #c8c4bc;
  transform: translateX(-50%);
}

.sec3-flow-item {
  position: relative;
  width: 50%;
  padding: 0 40px;
  margin-bottom: 64px;
}

.sec3-flow-item--left {
  margin-right: 50%;
  padding-right: 60px;
  padding-left: 0;
  text-align: left;
}

.sec3-flow-item--right {
  margin-left: 50%;
  padding-left: 60px;
  padding-right: 0;
  text-align: left;
}

.sec3-flow-item::before {
  content: "";
  position: absolute;
  top: 22px;
  width: 40px;
  height: 0;
  border-top: 1px dashed #c8c4bc;
}

.sec3-flow-item--left::before {
  right: 20px;
}

.sec3-flow-item--right::before {
  left: 20px;
}

.sec3-flow-num {
  display: block;
  margin: 0 0 8px;
  font-family: var(--font-yumincho);
  font-size: 35px;
  /* font-style: italic; */
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.04em;
  color: #ddd6cb;
}

.sec3-flow-title {
  margin: 0 0 12px;
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.6;
  color: var(--sec3-color-text);
}

/* PC：番号とタイトルを横並び（タイトルは番号より小さく・本文色） */
.sec3-flow__pc .sec3-flow-item {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: 0.45em;
}

.sec3-flow__pc .sec3-flow-num {
  margin: 0;
  flex: 0 0 auto;
}

.sec3-flow__pc .sec3-flow-title {
  margin: 0 0 12px;
  flex: 1 1 auto;
  min-width: 0;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.06em;
  color: var(--sec3-color-text);
}

.sec3-flow__pc .sec3-flow-desc {
  flex: 0 0 100%;
  width: 100%;
}

.sec3-flow__pc .sec3-flow-item img {
  flex: 0 0 100%;
  width: 100%;
}

.sec3-flow-desc {
  margin: 0;
  font-size: 13px;
  line-height: 1.85;
  letter-spacing: 0.04em;
  color: var(--sec3-color-text);
}

.sec3-flow-item img {
  display: block;
  width: 100%;
  max-width: 360px;
  height: 220px;
  margin-top: 16px;
  object-fit: cover;
}

.sec3-flow-item--right img {
  margin-left: 0;
}

.sec3-flow-item--left img {
  margin-right: auto;
}

/* お問合せ〜当日まで：02（プランの決定）〜06を上に寄せ、反対側の空きを詰める */
#sec3-flow-panel-prep-pc .sec3-flow-timeline > .sec3-flow-item:nth-child(2) {
  margin-top: -66px;
}

#sec3-flow-panel-prep-pc .sec3-flow-timeline > .sec3-flow-item:nth-child(3) {
  margin-top: -88px;
}

#sec3-flow-panel-prep-pc .sec3-flow-timeline > .sec3-flow-item:nth-child(n + 4) {
  margin-top: -211px;
}

#sec3-flow-panel-prep-pc .sec3-flow-timeline > .sec3-flow-item:last-child {
  margin-bottom: 64px;
}

/* ---- Timeline ---- */
.sec3-timeline-groups {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
}

.sec3-timeline-group {
  background: var(--sec3-color-bg-soft);
  padding: 40px 32px;
  border-top: 2px solid var(--sec3-color-accent);
  min-height: 200px;
}

.sec3-timeline-shrine {
  font-size: 18px;
  font-weight: 500;
  margin: 0 0 20px;
  letter-spacing: 0.1em;
  color: var(--sec3-color-deep);
  text-align: center;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--sec3-color-line);
}

.sec3-timeline-steps {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* ===== Responsive ===== */
@media (max-width: 1024px) {
  .sec3-section {
    padding: 96px 0;
  }
  .sec3-inner {
    gap: 100px;
    /* padding: 0 32px; */
  }
  .sec3-en-heading {
    font-size: 52px;
  }
  .sec3-supplement,
  .sec3-trust__pc .sec3-trust-list {
    grid-template-columns: repeat(2, 1fr);
  }
  .sec3-ceremony-plan-features {
    gap: 16px 20px;
  }
}

@media (max-width: 768px) {
  .sec3-section {
    padding: 72px 0;
    font-size: 15px;
  }
  .sec3-inner {
    gap: 80px;
    padding: 0 20px;
  }
  body.page-index-testimv3 .sec3-inner {
    padding-left: 0;
    padding-right: 0;
  }
  .sec3-en-heading {
    font-size: 42px;
  }
  .sec3-jp-heading {
    font-size: 22px;
  }
  .sec3-camera-team {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    padding: 56px 0;
  }
  .sec3-camera-team-layout {
    gap: 32px;
    padding: 0 20px;
  }
  .sec3-pro-team {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    padding: 56px 0;
    align-items: stretch;
  }
  .sec3-pro-team-layout {
    display: flex;
    flex-direction: column;
    gap: 32px;
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    padding: 0 20px;
    grid-template-columns: none;
  }
  .sec3-pro-team-media {
    gap: 28px;
  }
  .sec3-pro-team-gallery {
    flex-wrap: wrap;
    row-gap: 28px;
    justify-content: center;
    padding: 8px 16px 8px 0;
  }
  .sec3-pro-team-item--coordinator,
  .sec3-pro-team-item--cameraman {
    margin-top: 0;
  }
  .sec3-pro-team-item img.sec3-pro-team-photo,
  .sec3-pro-team-item > img:not(.sec3-pro-team-decor) {
    width: 160px;
    height: 300px;
  }
  .sec3-pro-team-decor {
    right: -8px;
    bottom: 28px;
    width: 64px;
  }
  .sec3-pro-team-vertical {
    writing-mode: horizontal-tb;
    flex-direction: row;
    justify-self: center;
    gap: 0.6em;
    letter-spacing: 0.14em;
  }
  .sec3-inner > .sec2-frame-section--reverse {
    --sec2-intro-right-space: 24px;
  }
  .sec3-ceremony-plan {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    padding: 40px 0 56px;
  }
  .sec3-ceremony-plan-header {
    margin-bottom: 32px;
    padding: 0 20px;
    box-sizing: border-box;
  }
  .sec3-ceremony-plan-heading-wrap {
    --sec3-ceremony-plan-heading-bg-width: 160px;
    min-height: 220px;
    padding: 12px 20px;
  }
  .sec3-ceremony-plan-heading-bg {
    left: 75%;
  }
  .sec3-ceremony-plan-heading {
    padding: 0;
    font-size: 20px;
    letter-spacing: 0.28em;
  }
  .sec3-ceremony-plan-body {
    flex-direction: column;
  }
  .sec3-ceremony-plan-body + .sec3-ceremony-plan-body {
    margin-top: 56px;
  }
  .sec3-ceremony-plan-info {
    flex: 1 1 auto;
    max-width: none;
    margin-left: var(--sec3-ceremony-plan-info-margin-left);
    padding-left: 0;
    padding-right: 20px;
  }
  .sec3-ceremony-plan-body--reverse .sec3-ceremony-plan-info {
    margin-left: 0;
    margin-right: var(--sec3-ceremony-plan-info-margin-left);
    padding-left: 20px;
    padding-right: 0;
  }
  .sec3-ceremony-plan-visual {
    order: -1;
    flex: 0 0 auto;
    width: 100%;
    margin-left: 0;
  }
  .sec3-ceremony-plan-body--reverse .sec3-ceremony-plan-visual {
    order: -1;
  }
  .sec3-ceremony-plan-features {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .sec3-ceremony-plan-price {
    justify-content: flex-start;
    text-align: left;
  }
  .sec3-ceremony-plan-note {
    text-align: left;
  }
  .sec3-gift {
    padding: 56px 20px;
  }
  .sec3-inner > .contact-section .contact-cta-bar {
    margin-bottom: 48px;
  }
  .sec3-supplement {
    grid-template-columns: 1fr;
  }

  .sec3-trust__pc,
  .sec3-flow__pc {
    display: none !important;
  }

  .sec3-trust__mobile,
  .sec3-flow__mobile {
    display: block;
    /* padding-top: 30px; */
    padding-bottom: 30px;
  }

  /* sec3-trust-list：スマホ横スライダー（参考デザイン） */
  body.page-index-testimv3 .sec3-trust,
  body.page-index-testimv3 .sec3-suwa .sec3-trust {
    overflow: visible;
    padding-top: 20px;
  }

  body.page-index-testimv3 .sec3-trust-heading {
    margin-bottom: 28px;
    font-size: 19px;
  }

  body.page-index-testimv3 .sec3-trust__mobile .sec3-trust-list.sec3-trust-slider {
    --sec3-trust-slide-w: min(76vw, 292px);
    --sec3-trust-slide-gap: 14px;
    --sec3-trust-photo-h: calc(var(--sec3-trust-slide-w) * 3 / 4);
    display: block;
    position: relative;
    margin: 0;
    padding: 0 0 0 20px;
    overflow: hidden;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .sec3-trust__mobile .sec3-trust-list.sec3-trust-slider > .swiper-wrapper {
    display: flex;
    align-items: stretch;
  }

  body.page-index-testimv3 .sec3-trust__mobile .sec3-trust-list.sec3-trust-slider .swiper-slide {
    width: var(--sec3-trust-slide-w);
    height: auto;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .sec3-trust__mobile .sec3-trust-list.sec3-trust-slider .sec3-trust-photo {
    margin: 0 0 14px;
  }

  body.page-index-testimv3 .sec3-trust__mobile .sec3-trust-list.sec3-trust-slider .sec3-trust-photo img {
    aspect-ratio: 4 / 3;
  }

  body.page-index-testimv3 .sec3-trust__mobile .sec3-trust-list.sec3-trust-slider .sec3-trust-title {
    margin: 0 0 10px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.6;
    letter-spacing: 0.06em;
  }

  body.page-index-testimv3 .sec3-trust__mobile .sec3-trust-list.sec3-trust-slider .sec3-trust-desc {
    font-size: 12px;
    line-height: 1.8;
    letter-spacing: 0.03em;
  }

  body.page-index-testimv3 .sec3-trust__mobile .sec3-trust-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    z-index: 5;
    top: calc(var(--sec3-trust-photo-h) * 0.5);
    width: 38px;
    height: 38px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.82);
    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.1);
    cursor: pointer;
    transform: translateY(-50%);
    transition: background-color 0.2s ease, opacity 0.2s ease;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .sec3-trust__mobile .sec3-trust-nav--prev {
    left: 26px;
  }

  body.page-index-testimv3 .sec3-trust__mobile .sec3-trust-nav--next {
    right: 10px;
  }

  body.page-index-testimv3 .sec3-trust__mobile .sec3-trust-nav.swiper-button-disabled {
    opacity: 0.35;
    cursor: default;
    pointer-events: none;
  }

  body.page-index-testimv3 .sec3-trust__mobile .sec3-trust-nav-icon {
    display: block;
    width: 7px;
    height: 7px;
    border-right: 1.5px solid #7a7a7a;
    border-bottom: 1.5px solid #7a7a7a;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .sec3-trust__mobile .sec3-trust-nav--prev .sec3-trust-nav-icon {
    transform: rotate(135deg);
    margin-left: 2px;
  }

  body.page-index-testimv3 .sec3-trust__mobile .sec3-trust-nav--next .sec3-trust-nav-icon {
    transform: rotate(-45deg);
    margin-right: 2px;
  }

  /* sec3-flow：スマホ（.sec3-flow__mobile 内のみ） */
  body.page-index-testimv3 .sec3-flow {
    padding-top: 56px;
  }

  body.page-index-testimv3 .sec3-flow-sub {
    margin-bottom: 10px;
    font-size: 12px;
    letter-spacing: 0.14em;
  }

  body.page-index-testimv3 .sec3-flow-heading {
    margin-bottom: 28px;
    font-size: clamp(32px, 9vw, 40px);
  }

  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-accordions {
    gap: 16px;
    max-width: none;
    margin: 0 20px 32px;
  }

  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-accordion {
    border: none;
    background: transparent;
  }

  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-accordion-trigger {
    padding: 14px 40px 14px 16px;
    border: 1px solid #d4cfc6;
    background: #fff;
    font-family: var(--font-yumincho);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.06em;
    color: var(--sec3-color-text);
  }

  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-accordion-chevron {
    right: 14px;
  }

  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-accordion .sec3-flow-panel {
    padding: 20px 0 4px;
  }

  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-accordion.is-open .sec3-flow-panel {
    width: calc(100% + 40px);
    margin-left: -20px;
    margin-right: -20px;
    padding-top: 16px;
    padding-bottom: 4px;
  }

  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-accordion.is-open .sec3-flow-item,
  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-accordion.is-open .sec3-flow-item--left,
  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-accordion.is-open .sec3-flow-item--right {
    padding-right: 8px;
    padding-left: 44px;
  }

  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-timeline {
    max-width: none;
    margin: 0;
    padding: 0;
  }

  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-timeline::before {
    left: 28px;
    transform: none;
    width: 1px;
    background: #b8b4ac;
  }

  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-item,
  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-item--left,
  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-item--right {
    width: 100%;
    margin: 0 0 32px;
    padding: 0 20px 0 52px;
    margin-left: 0;
    margin-right: 0;
    text-align: left;
    box-sizing: border-box;
    overflow: hidden;
  }

  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-item::before {
    left: 28px;
    right: auto;
    top: 16px;
    width: 20px;
    border-top: 1px dashed #b8b4ac;
  }

  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-num {
    float: left;
    display: block;
    margin: 0 8px 0 0;
    font-family: var(--font-yumincho);
    font-size: clamp(28px, 8vw, 34px);
    font-style: normal;
    font-weight: 400;
    line-height: 1.1;
    letter-spacing: 0.02em;
    color: #c7b093;
  }

  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-title {
    display: block;
    margin: 0;
    padding-top: 0.35em;
    overflow: hidden;
    font-family: var(--font-yumincho);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.55;
    letter-spacing: 0.06em;
    color: var(--sec3-color-text);
  }

  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-desc {
    clear: left;
    margin: 10px 0 0;
    font-family: var(--font-yumincho);
    font-size: 12px;
    line-height: 1.8;
    letter-spacing: 0.03em;
    color: var(--sec3-color-text);
  }

  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-item:has(img) {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) minmax(96px, 38vw);
    column-gap: 10px;
    row-gap: 10px;
    align-items: start;
    overflow: visible;
  }

  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-item:has(img) .sec3-flow-num {
    float: none;
    grid-column: 1;
    grid-row: 1;
    margin: 0;
  }

  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-item:has(img) .sec3-flow-title {
    grid-column: 2 / 4;
    grid-row: 1;
    overflow: visible;
    padding-top: 0.35em;
  }

  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-item:has(img) .sec3-flow-desc {
    clear: none;
    grid-column: 1 / 3;
    grid-row: 2;
    margin: 10px 0 0;
    overflow: visible;
  }

  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-item:has(img) img {
    float: none;
    grid-column: 3;
    grid-row: 2;
    display: block;
    width: 100%;
    max-width: none;
    max-height: none;
    height: auto;
    margin: 10px 0 0;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    align-self: start;
  }

  body.page-index-testimv3 .sec3-flow__mobile .sec3-flow-item:last-child {
    margin-bottom: 8px;
  }

  .sec3-suwa .sec3-trust {
    padding-top: 40px;
  }
  .sec3-suwa {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    padding: 56px 20px;
  }
  .sec3-suwa-inner {
    gap: 32px;
  }
  .sec3-suwa-heading {
    font-size: 20px;
    letter-spacing: 0.24em;
  }
  .sec3-suwa-heading span:nth-child(2) {
    margin-top: 1.4em;
  }
  .sec3-suwa-photos {
    grid-template-columns: 1fr;
  }
  .sec3-suwa-table th,
  .sec3-suwa-table td {
    display: block;
    width: 100%;
    white-space: normal;
  }
  .sec3-suwa-table th {
    border-bottom: none;
    padding-bottom: 8px;
  }
  .sec3-suwa-table-wrap {
    padding-bottom: 56px;
    --sec3-suwa-decor-w: 88px;
  }

  /* index-testimv3：写真2列・表はPC同様（th/td横並び） */
  body.page-index-testimv3 .sec3-suwa-photos {
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 28px;
  }

  body.page-index-testimv3 .sec3-suwa-photo figcaption {
    font-size: 11px;
    letter-spacing: 0.06em;
    line-height: 1.5;
  }

  body.page-index-testimv3 .sec3-suwa-table th,
  body.page-index-testimv3 .sec3-suwa-table td {
    display: table-cell;
    width: auto;
    white-space: normal;
  }

  body.page-index-testimv3 .sec3-suwa-table th {
    width: 28%;
    min-width: 0;
    white-space: nowrap;
    border-bottom: 1px solid var(--sec3-color-line-soft);
    padding: 12px 10px;
    font-size: 12px;
  }

  body.page-index-testimv3 .sec3-suwa-table td {
    padding: 12px 10px;
    font-size: 12px;
  }

  body.page-index-testimv3 .sec3-suwa-table-wrap {
    padding-bottom: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .sec3-consult {
    padding: 56px 20px;
  }
  .sec3-timeline-groups {
    grid-template-columns: 1fr;
  }
  .sec3-btn {
    min-width: 220px;
    width: 100%;
    max-width: 360px;
  }
  .sec3-cta-row,
  .sec3-consult-actions {
    flex-direction: column;
    align-items: center;
  }
}

@media (max-width: 480px) {
  .sec3-section {
    padding: 0;
  }
  .sec3-inner {
    padding: 0 16px;
    gap: 64px;
  }
  body.page-index-testimv3 .sec3-inner {
    padding-left: 0;
    padding-right: 0;
  }
  .sec3-en-heading {
    font-size: 34px;
  }
  .sec3-jp-heading {
    font-size: 19px;
  }
  .sec3-supp-card {
    padding: 24px 18px;
  }
  .sec3-trust-title {
    font-size: 15px;
  }
}



.s3-root {
  margin: 0;
  padding: 0;
  font-family: var(--s3-font-mincho);
  color: var(--s3-color-text);
  font-weight: 300;
  line-height: 1.85;
  letter-spacing: 0.04em;
  font-size: 16px;
  background: var(--s3-color-bg);
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; padding: 0; margin: 0; }

.s3-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px;
}

.s3-section {
  padding: 96px 0;
}
.s3-section--soft {
  background: var(--s3-color-bg-soft);
}

/* eyebrow header */
.s3-eyebrow {
  text-align: center;
  padding: 36px 0 12px;
}
.s3-eyebrow__title {
  font-size: 14px;
  font-weight: 300;
  letter-spacing: 0.5em;
  margin: 0;
  color: var(--s3-color-text);
}

/* headings */
.s3-h2 {
  font-size: 26px;
  font-weight: 400;
  letter-spacing: 0.25em;
  margin: 0 0 24px;
  line-height: 1.6;
  color: var(--s3-color-text);
}
.s3-h2--center { text-align: center; letter-spacing: 0.25em; }
.s3-h2__x {
  display: inline-block;
  margin: 0 0.4em;
  font-family: var(--s3-font-script);
  font-style: italic;
  font-size: 0.9em;
  color: var(--s3-color-accent);
}

.s3-sub {
  font-size: 15px;
  letter-spacing: 0.2em;
  margin: 0 0 28px;
  color: var(--s3-color-text-soft);
}
.s3-sub--center { text-align: center; }

.s3-text {
  font-size: 16px;
  line-height: 1.85;
  letter-spacing: 0.06em;
  margin: 0 0 28px;
}
.s3-text--center { text-align: center; max-width: 760px; margin-left: auto; margin-right: auto; }

.s3-caption {
  font-size: 13px;
  letter-spacing: 0.25em;
  color: var(--s3-color-text);
  margin: 8px 0 0;
}
.s3-caption--center { text-align: center; }

.s3-note {
  font-size: 12px;
  letter-spacing: 0.1em;
  color: var(--s3-color-text-soft);
  opacity: 0.8;
}
.s3-note--block { display: block; margin: -12px 0 24px; }

.s3-script {
  font-family: var(--s3-font-script);
  font-style: italic;
  font-size: 18px;
  letter-spacing: 0.15em;
  color: var(--s3-color-accent);
  margin: 4px 0 24px;
}
.s3-script--center { text-align: center; }

/* buttons */
.s3-btn-wrap { margin: 28px 0 0; }
.s3-btn-wrap--center { text-align: center; }
.s3-btn-wrap--row { display: flex; gap: 16px; flex-wrap: wrap; }
.s3-btn-wrap--row .s3-btn { flex: 0 1 auto; }

.s3-btn {
  display: inline-block;
  border: 1px solid var(--s3-color-text);
  padding: 14px 36px;
  font-size: 14px;
  font-weight: 300;
  letter-spacing: 0.2em;
  color: var(--s3-color-text);
  background: transparent;
  transition: background 0.25s ease, color 0.25s ease;
  cursor: pointer;
  font-family: inherit;
}
.s3-btn:hover {
  background: var(--s3-color-text);
  color: #fff;
}
.s3-btn--primary {
  border-color: var(--s3-color-text);
  background: var(--s3-color-text);
  color: #fff;
  padding: 18px 52px;
  font-size: 15px;
}
.s3-btn--primary:hover {
  background: transparent;
  color: var(--s3-color-text);
}

/* two-column layout */
.s3-two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
}
.s3-two-col--reverse .s3-two-col__image { order: 2; }
.s3-two-col--reverse .s3-two-col__body { order: 1; }
.s3-two-col__image img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

/* Section 2–3: meal 展開内・feliscrear ボタン */
.s3-meal .s3-feliscrear__btn-wrap,
#s3-meal-content .s3-feliscrear__btn-wrap {
  margin: 0 0 1.5rem;
}

.s3-feliscrear__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  padding: 16px 20px;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.14em;
}

.s3-feliscrear__btn-label {
  flex: 1 1 auto;
  text-align: center;
}

.s3-feliscrear__btn-arrow {
  flex-shrink: 0;
  font-family: var(--s3-font-script);
  font-size: 18px;
  line-height: 1;
}

/* CTA ボタン共通（more-btn 準拠：枠線・背景・ホバー） */
.sec3-ceremony-plan-cta,
.s3-feliscrear__btn,
#s3-photo-content .s3-photo-expanded__cta,
.s3-reports__cta,
.s3-photo-plan-block .is-style-more_btn a,
.s3-photo-plan-block .more-btn {
  border: 0;
  box-shadow: 0 0 0 1px #d4d4d4;
  background: #fdfdfd;
  color: var(--s3-color-text);
  text-decoration: none;
  box-sizing: border-box;
  cursor: pointer;
  transition: background-color 0.25s ease, color 0.25s ease;
}

/* ページ内CTAの矢印は contact-section .button2::after と同じ見た目に統一 */
.sec3-ceremony-plan-cta,
.s3-feliscrear__btn,
#s3-photo-content .s3-photo-expanded__cta,
.s3-reports__cta,
.s3-photo-plan-block .is-style-more_btn a,
.s3-photo-plan-block .more-btn {
  position: relative;
  padding-right: 54px;
}

.sec3-ceremony-plan-cta::after,
.s3-feliscrear__btn::after,
#s3-photo-content .s3-photo-expanded__cta::after,
.s3-reports__cta::after,
.s3-photo-plan-block .is-style-more_btn a::after,
.s3-photo-plan-block .more-btn::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 28px;
  width: 14px;
  height: 5px;
  margin: 0;
  border: none;
  border-right: 2px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: translateY(-50%) skew(45deg);
  transition: right 0.3s ease, width 0.3s ease;
  pointer-events: none;
}

.sec3-ceremony-plan-cta:hover::after,
.s3-feliscrear__btn:hover::after,
#s3-photo-content .s3-photo-expanded__cta:hover::after,
.s3-reports__cta:hover::after,
.s3-photo-plan-block .is-style-more_btn a:hover::after,
.s3-photo-plan-block .more-btn:hover::after {
  right: 12px;
  width: 30px;
}


.sec3-ceremony-plan-cta-arrow,
.s3-feliscrear__btn-arrow,
#s3-photo-content .s3-photo-expanded__cta-arrow,
.s3-reports__cta-arrow {
  display: none;
}

.sec3-ceremony-plan-cta:hover,
.s3-feliscrear__btn:hover,
#s3-photo-content .s3-photo-expanded__cta:hover,
.s3-reports__cta:hover,
.s3-photo-plan-block .is-style-more_btn a:hover,
.s3-photo-plan-block .more-btn:hover,
body.page-index-testimv3 .contact-section .button2:hover,
body.page-index-testimv3 .contact-section .button2:focus-visible,
#s3-dress-content .s3-plan-detail-bar__btn:hover {
  background: var(--s3-btn-hover-bg);
  color: var(--s3-btn-hover-color);
  opacity: 1;
}

.sec3-gift-card-link:hover,
.sec3-gift-card-link:focus-visible {
  background: transparent;
  color: var(--sec3-color-text, #5b5b5b);
  opacity: 0.72;
  box-shadow: none;
}

body.page-index-testimv3 .contact-section .button2:hover,
body.page-index-testimv3 .contact-section .button2:focus-visible {
  border-color: var(--s3-btn-hover-bg);
}

body.page-index-testimv3 .contact-section .button2:hover::after,
body.page-index-testimv3 .contact-section .button2:focus-visible::after {
  right: 12px;
  width: 30px;
  border-right-color: currentColor;
  border-bottom-color: currentColor;
}

/* meal / dress / photo：概要 flex は白・展開（content_box.is-show）のみ #f8f8f8 */
.s3-meal.s3-photo-plan-block .photo-plan > li > .flex,
.s3-dress.s3-photo-plan-block .photo-plan > li > .flex,
.s3-photo.s3-photo-plan-block .photo-plan > li > .flex {
  background-color: #fff;
  margin-bottom: 60px;
}

.s3-meal.s3-photo-plan-block .photo-plan .content_box.is-show,
.s3-dress.s3-photo-plan-block .photo-plan .content_box.is-show,
.s3-photo.s3-photo-plan-block .photo-plan .content_box.is-show {
  background-color: #f8f8f8;
}

/* index-testimv3 のみ：style_content.css の .photo-plan>li 交互背景を無効化 */
body.page-index-testimv3 .s3-photo-plan-block .photo-plan > li,
body.page-index-testimv3 .s3-photo-plan-block .photo-plan > li:nth-child(2n-1) {
  background-color: transparent;
}

body.page-index-testimv3 .s3-photo-plan-block .photo-plan > li:nth-child(2n-1) {
  margin-right: 0;
  margin-left: 0;
}

@media (max-width: 768px) {
  body.page-index-testimv3 .s3-photo-plan-block .photo-plan > li:nth-child(2n-1) {
    margin-right: 0;
    margin-left: 0;
  }
}

/* meal 展開：フェリスクレール flex + 会場一覧 */
#s3-meal-content .s3-meal-expanded {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 40px;
  box-sizing: border-box;
}

#s3-meal-content .s3-meal-expanded__felis {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  margin: 40px auto 48px;
  padding: 0;
}

#s3-meal-content .s3-meal-expanded__felis-visual {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 16px;
  flex-shrink: 0;
  width: min(510px, 46%);
  box-sizing: border-box;
}

#s3-meal-content .s3-meal-expanded__felis-visual picture {
  display: block;
  width: 100%;
}

#s3-meal-content .s3-meal-expanded__felis-visual picture img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

#s3-meal-content .s3-meal-expanded__felis .exp {
  flex: 1 1 0;
  min-width: 0;
  padding-left: 80px;
  box-sizing: border-box;
}

/* 会食展開（PC）：Close を s3-meal-expanded__felis の上に配置 */
@media screen and (min-width: 769px) {
  body.page-index-testimv3 #s3-meal-content .s3-meal-expanded > .close-area {
    display: flex;
    justify-content: flex-end;
    width: 100%;
    min-height: 0;
    margin: 0 0 20px;
    padding: 0;
    position: static;
  }
}

#s3-meal-content .s3-meal-expanded__felis .exp h3::before {
  display: none;
  content: none;
}

#s3-meal-content .s3-felis-venues {
  width: 100%;
  margin: 0 auto;
  padding: 0;
  box-sizing: border-box;
}

#s3-meal-content .s3-venues__lead {
  margin: 0 0 20px;
}

#s3-meal-content .s3-venues__header {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  margin-bottom: 40px;
  gap: 12px;
}

.s3-venues__header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 40px;
  gap: 16px;
  flex-wrap: wrap;
}
.s3-venues__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 36px 28px;
}
.s3-venue__image img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: #eee;
}
.s3-venue__name {
  margin: 14px 0 0;
  font-size: 15px;
  letter-spacing: 0.15em;
}
.s3-venue__area {
  font-size: 13px;
  color: var(--s3-color-text-soft);
  margin-left: 4px;
}

/* Section 5–6: dress / photo（.photo-plan 流用・style_content.css） */
.sec3-inner > .s3-photo-plan-block.s3-section {
  align-self: stretch;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 0;
  overflow-x: clip;
  box-sizing: border-box;
}

.s3-photo-plan-block .photo-plan {
  list-style: none;
  margin: 0;
  padding: 0;
}

.s3-photo-plan-block .photo-plan > li {
  list-style: none;
}

.s3-photo-plan-block .photo-plan > li .flex {
  display: flex;
  align-items: center;
  box-sizing: border-box;
}

.s3-photo-plan-block .photo-plan li picture {
  display: block;
  flex-shrink: 0;
}

.s3-photo-plan-block .photo-plan li picture img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

/* お色直し：2枚横並び画像 */
.s3-dress.s3-photo-plan-block .photo-plan .s3-dress__images {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  flex-shrink: 0;
  width: 510px;
  max-width: 100%;
  box-sizing: border-box;
}

.s3-dress.s3-photo-plan-block .photo-plan .s3-dress__images img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 4;
  object-fit: cover;
}

.s3-photo-plan-block .photo-plan .exp .text,
.s3-photo-plan-block .photo-plan .exp .txt {
  margin: 0 0 1em;
}

.s3-photo-plan-block .swell-block-button {
  margin-top: 2rem;
  width: 100%;
}

.s3-photo-plan-block .is-style-more_btn a,
.s3-photo-plan-block .more-btn {
  display: block;
  width: 100%;
  padding: 14px 20px;
  text-align: center;
  font-size: 13px;
  letter-spacing: 0.12em;
}

/* content_box 開閉（https://e-mariage.co.jp/photo/ 準拠） */
.s3-photo-plan-block .photo-plan .content_box {
  display: none;
  max-height: 0;
  overflow: hidden;
  margin-top: 5px;
  opacity: 0;
  transform: translateY(-20px);
  transition: max-height 0.5s ease-out, opacity 0.5s ease-out, transform 0.5s ease-out;
  box-sizing: border-box;
}

.s3-photo-plan-block .photo-plan .content_box.is-show {
  display: block;
  max-height: none;
  overflow: visible;
  opacity: 1;
  transform: translateY(0);
  padding: 20px;
  width: 100%;
  padding-bottom: 2rem;
  box-sizing: border-box;
}

.s3-photo-plan-block .photo-plan .slider {
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  padding-top: 50px;
}

.s3-photo-plan-block .photo-plan .swiper.planimgs-slider {
  width: 100%;
  position: relative;
  padding-bottom: 3rem;
}

.s3-photo-plan-block .photo-plan .swiper-slide {
  display: flex;
  justify-content: center;
  align-items: center;
}

.s3-photo-plan-block .photo-plan .swiper-slide img {
  width: 100%;
  max-width: 350px;
  height: auto;
}

/* ページネーション（バー型） */
.s3-photo-plan-block .photo-plan .swiper-pagination {
  display: flex;
  gap: 6px;
  bottom: 11px !important;
  left: 0;
  width: auto;
  position: absolute;
  justify-content: flex-start;
}

.s3-photo-plan-block .photo-plan .swiper-pagination-bullet {
  width: 30px;
  height: 3px;
  background-color: #ddd;
  border-radius: 0;
  opacity: 1;
  transition: all 0.3s ease-in-out;
}

.s3-photo-plan-block .photo-plan .swiper-pagination-bullet-active {
  background-color: #a0b9c6;
  width: 60px;
}

/* 前後矢印（フォトページ準拠） */
.s3-photo-plan-block .photo-plan .swiper-button-next,
.s3-photo-plan-block .photo-plan .swiper-button-prev {
  display: none;
  position: absolute;
  right: 40px;
  bottom: -2px;
  z-index: 10;
  width: 40px;
  height: 40px;
  margin: 0 10px;
  left: auto;
  top: auto;
  color: transparent;
}

@media screen and (min-width: 769px) {
  .s3-photo-plan-block .photo-plan .swiper-button-next,
  .s3-photo-plan-block .photo-plan .swiper-button-prev {
    display: block;
  }
}

.s3-photo-plan-block .photo-plan .swiper-button-next::after,
.s3-photo-plan-block .photo-plan .swiper-button-prev::after {
  content: "";
  display: block;
  border-left: 1px solid #a1a1a1;
  border-bottom: 1px solid #a1a1a1;
  padding: 6px;
  position: absolute;
  bottom: 10px;
  left: 50%;
  font-size: 0;
}

.s3-photo-plan-block .photo-plan .swiper-button-prev::after {
  transform: translateX(-50%) rotate(45deg);
}

.s3-photo-plan-block .photo-plan .swiper-button-next {
  right: 0;
}

.s3-photo-plan-block .photo-plan .swiper-button-next::after {
  transform: translateX(-50%) rotate(-135deg);
}

/* includes・Close（page-photo.php インラインスタイル相当） */
.s3-photo-plan-block .photo-plan .includes {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 60px;
  width: 100%;
}

.s3-photo-plan-block .photo-plan .includes .includes_ttl {
  width: 100%;
}

.s3-photo-plan-block .photo-plan .includes .includes_txt {
  width: 100%;
}

.s3-photo-plan-block .photo-plan .includes h4 {
  font-size: 1rem;
  color: #999;
  margin: 0 0 5px;
  font-weight: 400;
}

.s3-photo-plan-block .photo-plan ul.plan-details {
  list-style: none;
  padding: 0;
  margin: 20px 0 0.6rem;
}

.s3-photo-plan-block .photo-plan ul.plan-details li {
  display: inline-block;
  border: 1px solid #d4d4d4;
  padding: 2px 8px;
  margin: 0 8px 8px 0;
  color: #8f8f8f;
  font-size: 13px;
}

.s3-photo-plan-block .photo-plan ul.text {
  list-style: none;
  padding: 0;
  margin: 0;
}

.s3-photo-plan-block .photo-plan ul.text li {
  margin-bottom: 0.35em;
  color: #5b5b5b;
  font-size: 14px;
  line-height: 1.85;
}

.s3-photo-plan-block .photo-plan .box-bg_w {
  background: #fff;
  width: fit-content;
  padding: 1.6rem 1.8rem;
}

.s3-photo-plan-block .photo-plan .studio-info-list {
  list-style: none;
  padding: 0 0 0 5px;
  margin: 20px 0 0;
}

.s3-photo-plan-block .photo-plan .studio-info-list li {
  position: relative;
  margin-bottom: 10px;
  font-weight: 400;
  color: #5b5b5b;
}

.s3-photo-plan-block .photo-plan .studio-info-list li::before {
  content: "- ";
  color: #5b5b5b;
}

.s3-photo-plan-block .photo-plan .b {
  font-weight: 600;
}

/* お色直し 展開エリア下段（本文＋ボタン＋Close 横並び） */
#s3-dress-content .s3-plan-detail-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 56px;
  width: 100%;
  max-width: 1100px;
  margin: 60px auto 0;
  padding: 0 40px;
  box-sizing: border-box;
}

#s3-dress-content .s3-plan-detail-bar__text {
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
  font-size: 14px;
  line-height: 1.85;
  letter-spacing: 0.06em;
  color: #5b5b5b;
}

#s3-dress-content .s3-plan-detail-bar__btns {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: min(100%, 240px);
}

#s3-dress-content .s3-plan-detail-bar__btn {
  display: block;
  width: 100%;
  padding: 14px 20px;
  border: 1px solid #d4d4d4;
  background: #fff;
  font-size: 14px;
  letter-spacing: 0.12em;
  line-height: 1.5;
  color: #5b5b5b;
  text-align: center;
  text-decoration: none;
  box-sizing: border-box;
  transition: background-color 0.25s ease, color 0.25s ease;
}

#s3-dress-content .close-area {
  position: relative;
  flex: 0 0 auto;
  width: 60px;
  min-height: 52px;
  margin: 0;
  max-width: none;
}

#s3-dress-content .close-btn {
  position: relative;
  left: auto;
  right: auto;
  top: auto;
  transform: none;
  display: block;
  width: 60px;
  height: auto;
  min-height: 0;
  margin: 0 auto;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  text-align: center;
  z-index: 1;
  color: #444;
  box-sizing: border-box;
}

#s3-dress-content .close-btn > span {
  display: block;
  margin-top: 40px;
  font-size: 10px;
  line-height: 1.3;
  letter-spacing: 0.06em;
}

#s3-dress-content .close-btn::before,
#s3-dress-content .close-btn::after {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 45px;
  height: 1px;
  background-color: #444;
  transform-origin: center;
}

#s3-dress-content .close-btn::before {
  transform: translateX(-50%) rotate(45deg);
}

#s3-dress-content .close-btn::after {
  transform: translateX(-50%) rotate(-45deg);
}

/* フォト 展開（シチュエーション紹介・スライダーなし） */
#s3-photo-content .s3-photo-expanded {
  width: 100%;
  max-width: 1100px;
  margin: 40px auto 0;
  padding: 0 40px 2rem;
  box-sizing: border-box;
}

#s3-photo-content .s3-photo-expanded__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 48px;
}

#s3-photo-content .s3-photo-expanded__title {
  margin: 0;
  flex: 1 1 0;
  min-width: 0;
  font-size: 22px;
  font-weight: 500;
  letter-spacing: 0.12em;
  line-height: 1.75;
  text-align: left;
  color: var(--s3-color-text);
}

#s3-photo-content .s3-photo-expanded__x {
  font-family: var(--s3-font-script);
}

/* photo：スマホは aside 内、PC は __body 直上（close-area--photo-pc） */
#s3-photo-content .s3-photo-expanded > .close-area--photo-pc {
  display: none;
}

#s3-photo-content .s3-photo-expanded__aside .close-area--photo-sp {
  display: flex;
  justify-content: flex-end;
  width: 100%;
  min-height: 5rem;
  margin: 32px 0 0;
  padding: 0;
  box-sizing: border-box;
}

#s3-photo-content .s3-photo-expanded__aside .close-area--photo-sp .close-btn,
#s3-photo-content .s3-photo-expanded > .close-area--photo-pc .close-btn {
  position: relative;
  left: auto;
  right: auto;
  top: auto;
  transform: none;
  display: block;
  width: 60px;
  height: auto;
  min-height: 0;
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  text-align: center;
  z-index: 1;
  color: #444;
  box-sizing: border-box;
}

#s3-photo-content .s3-photo-expanded__aside .close-area--photo-sp .close-btn > span,
#s3-photo-content .s3-photo-expanded > .close-area--photo-pc .close-btn > span {
  display: block;
  margin-top: 40px;
  font-size: 10px;
  line-height: 1.3;
  letter-spacing: 0.06em;
}

#s3-photo-content .s3-photo-expanded__aside .close-area--photo-sp .close-btn::before,
#s3-photo-content .s3-photo-expanded__aside .close-area--photo-sp .close-btn::after,
#s3-photo-content .s3-photo-expanded > .close-area--photo-pc .close-btn::before,
#s3-photo-content .s3-photo-expanded > .close-area--photo-pc .close-btn::after {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 45px;
  height: 1px;
  background-color: #444;
  transform-origin: center;
}

#s3-photo-content .s3-photo-expanded__aside .close-area--photo-sp .close-btn::before,
#s3-photo-content .s3-photo-expanded > .close-area--photo-pc .close-btn::before {
  transform: translateX(-50%) rotate(45deg);
}

#s3-photo-content .s3-photo-expanded__aside .close-area--photo-sp .close-btn::after,
#s3-photo-content .s3-photo-expanded > .close-area--photo-pc .close-btn::after {
  transform: translateX(-50%) rotate(-45deg);
}

#s3-photo-content .s3-photo-expanded__body {
  display: flex;
  align-items: flex-start;
  gap: 48px;
  margin-bottom: 56px;
}

#s3-photo-content .s3-photo-expanded__list-box {
  flex: 0 0 auto;
  width: min(100%, 300px);
  padding: 1.6rem 1.8rem;
  border: 1px solid #d4d4d4;
  background: #fff;
  box-sizing: border-box;
}

#s3-photo-content .s3-photo-expanded__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

#s3-photo-content .s3-photo-expanded__list li {
  margin: 0 0 10px;
  font-size: 14px;
  line-height: 1.9;
  letter-spacing: 0.06em;
  color: #5b5b5b;
}

#s3-photo-content .s3-photo-expanded__list li::before {
  content: "- ";
  color: #5b5b5b;
}

#s3-photo-content .s3-photo-expanded__list li:last-child {
  margin-bottom: 0;
}

#s3-photo-content .s3-photo-expanded__list-label {
  font-weight: bold;
  font-size: 17px;
  line-height: 1.5;
  letter-spacing: 0.06em;
  color: #5b5b5b;
}

#s3-photo-content .s3-photo-expanded__aside {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 32px;
}

#s3-photo-content .s3-photo-expanded__text {
  width: 100%;
  margin: 0;
  font-size: 14px;
  line-height: 1.85;
  letter-spacing: 0.06em;
  color: #5b5b5b;
}

/* フォト展開（PC）：Close を s3-photo-expanded__body の上に配置 */
@media screen and (min-width: 769px) {
  #s3-photo-content .s3-photo-expanded > .close-area--photo-pc {
    display: flex;
    justify-content: flex-end;
    width: 100%;
    max-width: none;
    min-height: 0;
    margin: 0 0 20px;
    padding: 0;
    position: static;
    box-sizing: border-box;
  }

  #s3-photo-content .s3-photo-expanded__aside .close-area--photo-sp {
    display: none;
  }

  body.page-index-testimv3 #s3-photo-content .s3-photo-expanded > .close-area--photo-pc {
    display: flex;
    justify-content: flex-end;
    width: 100%;
    min-height: 0;
    margin: 0 0 20px;
    padding: 0;
    position: static;
  }
}

#s3-photo-content .s3-photo-expanded__cta-wrap {
  margin: 0;
  width: 100%;
}

#s3-photo-content .s3-photo-expanded__cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  padding: 16px 20px;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.14em;
}

#s3-photo-content .s3-photo-expanded__cta-label {
  flex: 1 1 auto;
  text-align: center;
}

#s3-photo-content .s3-photo-expanded__cta-arrow {
  flex-shrink: 0;
  font-family: var(--s3-font-script);
  font-size: 18px;
  line-height: 1;
}

/* フォトプラン共通 Close（× の下に Close テキスト・style_content 上書き） */
.s3-photo-plan-block .photo-plan .content_box > .close-area {
  position: relative;
  display: flex;
  justify-content: center;
  width: 100%;
  max-width: 900px;
  margin: 2rem auto 0;
  min-height: 5rem;
}

/* meal：Close を s3-meal-expanded__felis の上に配置 */
#s3-meal-content .s3-meal-expanded > .close-area {
  position: static;
  display: flex;
  justify-content: flex-end;
  width: 100%;
  max-width: none;
  margin: 0;
  min-height: 0;
  padding: 0;
  box-sizing: border-box;
}

.s3-photo-plan-block .photo-plan .content_box > .close-area .close-btn,
#s3-meal-content .s3-meal-expanded > .close-area .close-btn {
  position: relative;
  left: auto;
  right: auto;
  top: auto;
  transform: none;
  display: block;
  width: 60px;
  height: auto;
  min-height: 0;
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  text-align: center;
  z-index: 1;
  color: #444;
  box-sizing: border-box;
}

.s3-photo-plan-block .photo-plan .content_box > .close-area .close-btn::before,
.s3-photo-plan-block .photo-plan .content_box > .close-area .close-btn::after,
#s3-meal-content .s3-meal-expanded > .close-area .close-btn::before,
#s3-meal-content .s3-meal-expanded > .close-area .close-btn::after {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 45px;
  height: 1px;
  background-color: #444;
  transform-origin: center;
}

.s3-photo-plan-block .photo-plan .content_box > .close-area .close-btn::before,
#s3-meal-content .s3-meal-expanded > .close-area .close-btn::before {
  transform: translateX(-50%) rotate(45deg);
}

.s3-photo-plan-block .photo-plan .content_box > .close-area .close-btn::after,
#s3-meal-content .s3-meal-expanded > .close-area .close-btn::after {
  transform: translateX(-50%) rotate(-45deg);
}

.s3-photo-plan-block .photo-plan .content_box > .close-area .close-btn > span,
#s3-meal-content .s3-meal-expanded > .close-area .close-btn > span {
  display: block;
  margin-top: 40px;
  font-size: 10px;
  line-height: 1.3;
  letter-spacing: 0.06em;
}

/* page-index-testimv3：Close ボタンは × とテキストを横並び（PC・スマホ共通） */
body.page-index-testimv3 #s3-meal-content .s3-meal-expanded > .close-area .close-btn,
body.page-index-testimv3 #s3-dress-content .close-area .close-btn,
body.page-index-testimv3 #s3-photo-content .s3-photo-expanded > .close-area--photo-pc .close-btn,
body.page-index-testimv3 #s3-photo-content .s3-photo-expanded__aside .close-area--photo-sp .close-btn,
body.page-index-testimv3 .s3-photo-plan-block .photo-plan .content_box > .close-area .close-btn {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  width: auto;
  min-height: 28px;
  height: auto;
  margin: 0;
  margin-left: auto;
  padding: 4px 0 4px 32px;
  text-align: left;
}

body.page-index-testimv3 #s3-dress-content .close-area {
  width: auto;
  min-height: 0;
}

body.page-index-testimv3 #s3-photo-content .s3-photo-expanded > .close-area--photo-pc,
body.page-index-testimv3 #s3-photo-content .s3-photo-expanded__aside .close-area--photo-sp,
body.page-index-testimv3 .s3-photo-plan-block .photo-plan .content_box > .close-area {
  min-height: 0;
}

body.page-index-testimv3 #s3-meal-content .s3-meal-expanded > .close-area .close-btn::before,
body.page-index-testimv3 #s3-meal-content .s3-meal-expanded > .close-area .close-btn::after,
body.page-index-testimv3 #s3-dress-content .close-area .close-btn::before,
body.page-index-testimv3 #s3-dress-content .close-area .close-btn::after,
body.page-index-testimv3 #s3-photo-content .s3-photo-expanded > .close-area--photo-pc .close-btn::before,
body.page-index-testimv3 #s3-photo-content .s3-photo-expanded > .close-area--photo-pc .close-btn::after,
body.page-index-testimv3 #s3-photo-content .s3-photo-expanded__aside .close-area--photo-sp .close-btn::before,
body.page-index-testimv3 #s3-photo-content .s3-photo-expanded__aside .close-area--photo-sp .close-btn::after,
body.page-index-testimv3 .s3-photo-plan-block .photo-plan .content_box > .close-area .close-btn::before,
body.page-index-testimv3 .s3-photo-plan-block .photo-plan .content_box > .close-area .close-btn::after {
  top: 50%;
  left: 16px;
  width: 24px;
}

body.page-index-testimv3 #s3-meal-content .s3-meal-expanded > .close-area .close-btn::before,
body.page-index-testimv3 #s3-dress-content .close-area .close-btn::before,
body.page-index-testimv3 #s3-photo-content .s3-photo-expanded > .close-area--photo-pc .close-btn::before,
body.page-index-testimv3 #s3-photo-content .s3-photo-expanded__aside .close-area--photo-sp .close-btn::before,
body.page-index-testimv3 .s3-photo-plan-block .photo-plan .content_box > .close-area .close-btn::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

body.page-index-testimv3 #s3-meal-content .s3-meal-expanded > .close-area .close-btn::after,
body.page-index-testimv3 #s3-dress-content .close-area .close-btn::after,
body.page-index-testimv3 #s3-photo-content .s3-photo-expanded > .close-area--photo-pc .close-btn::after,
body.page-index-testimv3 #s3-photo-content .s3-photo-expanded__aside .close-area--photo-sp .close-btn::after,
body.page-index-testimv3 .s3-photo-plan-block .photo-plan .content_box > .close-area .close-btn::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

body.page-index-testimv3 #s3-meal-content .s3-meal-expanded > .close-area .close-btn > span,
body.page-index-testimv3 #s3-dress-content .close-area .close-btn > span,
body.page-index-testimv3 #s3-photo-content .s3-photo-expanded > .close-area--photo-pc .close-btn > span,
body.page-index-testimv3 #s3-photo-content .s3-photo-expanded__aside .close-area--photo-sp .close-btn > span,
body.page-index-testimv3 .s3-photo-plan-block .photo-plan .content_box > .close-area .close-btn > span {
  display: block;
  margin-top: 0;
  font-size: 10px;
  line-height: 1;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

@media (min-width: 768px) {
  .s3-photo-plan-block .photo-plan .content_box > .close-area {
    justify-content: flex-end;
  }

  body.page-index-testimv3 .s3-photo-plan-block .photo-plan .content_box > .close-area .close-btn {
    margin: 0;
    margin-left: auto;
  }
}

.s3-photo__note {
  font-size: 13px;
  color: var(--s3-color-text-soft);
}

@media (max-width: 768px) {
  .s3-photo-plan-block .photo-plan > li .flex {
    flex-direction: column;
    align-items: stretch;
  }

  .s3-photo-plan-block .photo-plan li picture {
    width: 100%;
    max-width: none;
  }

  .s3-dress.s3-photo-plan-block .photo-plan .s3-dress__images {
    width: 100%;
    max-width: none;
  }

  .s3-photo-plan-block .photo-plan li .exp {
    width: 100%;
    padding-left: 0;
  }

  .s3-photo-plan-block .photo-plan .content_box.is-show {
    padding: 0;
    padding-bottom: 7rem;
  }

  .s3-photo-plan-block .photo-plan .slider {
    padding-top: 0;
  }

  /* スマホ：ページネーション右に prev / next を配置（PCは 769px 以上の既存レイアウト） */
  body.page-index-testimv3 .s3-photo-plan-block .photo-plan .swiper.planimgs-slider {
    position: relative;
    padding-bottom: 2.75rem;
    box-sizing: border-box;
  }

  body.page-index-testimv3 .s3-photo-plan-block .photo-plan .swiper-pagination {
    left: 0 !important;
    right: 88px !important;
    width: auto !important;
    max-width: calc(100% - 88px);
    bottom: 10px !important;
    justify-content: flex-start !important;
    gap: 2px;
  }

  body.page-index-testimv3 .s3-photo-plan-block .photo-plan .swiper-button-next,
  body.page-index-testimv3 .s3-photo-plan-block .photo-plan .swiper-button-prev {
    display: flex;
    align-items: center;
    justify-content: center;
    top: auto;
    bottom: 4px;
    width: 36px;
    height: 36px;
    margin: 0;
    color: transparent;
  }

  body.page-index-testimv3 .s3-photo-plan-block .photo-plan .swiper-button-prev {
    right: 44px;
    left: auto;
  }

  body.page-index-testimv3 .s3-photo-plan-block .photo-plan .swiper-button-next {
    right: 4px;
    left: auto;
  }

  body.page-index-testimv3 .s3-photo-plan-block .photo-plan .swiper-button-next::after,
  body.page-index-testimv3 .s3-photo-plan-block .photo-plan .swiper-button-prev::after {
    bottom: 50%;
    left: 50%;
    padding: 5px;
  }

  body.page-index-testimv3 .s3-photo-plan-block .photo-plan .swiper-button-prev::after {
    transform: translate(-50%, 50%) rotate(45deg);
  }

  body.page-index-testimv3 .s3-photo-plan-block .photo-plan .swiper-button-next::after {
    transform: translate(-50%, 50%) rotate(-135deg);
  }

  .s3-photo-plan-block .photo-plan .box-bg_w {
    width: 100%;
  }

  #s3-dress-content .s3-plan-detail-bar {
    flex-direction: column;
    align-items: stretch;
    gap: 28px;
    margin-top: 40px;
    padding: 0 20px 2rem;
  }

  #s3-dress-content .s3-plan-detail-bar__btns {
    width: 100%;
  }

  #s3-dress-content .close-area {
    width: 100%;
    min-height: 4rem;
  }

  #s3-dress-content .close-btn {
    margin: 0 auto;
  }

  #s3-meal-content .s3-meal-expanded {
    padding: 0 20px;
  }

  #s3-meal-content .s3-meal-expanded__felis {
    flex-direction: column;
    margin: 28px auto 36px;
    gap: 24px;
  }

  #s3-meal-content .s3-meal-expanded__felis-visual {
    width: 100%;
  }

  #s3-meal-content .s3-meal-expanded__felis .exp {
    padding-left: 0;
  }

  .s3-photo-plan-block .photo-plan .content_box > .close-area {
    padding: 0 20px;
  }

  #s3-photo-content .s3-photo-expanded {
    padding: 0 20px 2rem;
  }

  #s3-photo-content .s3-photo-expanded__head {
    flex-direction: column;
    align-items: center;
    gap: 16px;
  }

  #s3-photo-content .s3-photo-expanded__title {
    text-align: center;
  }

  #s3-photo-content .s3-photo-expanded__body {
    flex-direction: column;
    gap: 28px;
  }

  #s3-photo-content .s3-photo-expanded__list-box {
    width: 100%;
  }

  #s3-photo-content .s3-photo-expanded__list-label {
    font-size: 16px;
  }

  #s3-photo-content .s3-photo-expanded__aside {
    width: 100%;
  }
}

/* Section 8: FAQ（右縦書き見出し・アコーディオン） */
.s3-faq.s3-section {
  background: #fff;
}

.s3-faq__layout {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 72px;
  max-width: 1400px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

.s3-faq__main {
  flex: 1 1 0;
  min-width: 0;
}

.s3-faq__list {
  margin: 0;
}

.s3-faq__item {
  border: 0;
}

.s3-faq__item + .s3-faq__item {
  margin-top: 36px;
}

.s3-faq__item summary {
  list-style: none;
  cursor: pointer;
  padding: 0;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-family: var(--s3-font-mincho);
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.08em;
  line-height: 1.85;
  color: var(--s3-color-text);
}

.s3-faq__item summary::-webkit-details-marker {
  display: none;
}

.s3-faq__label {
  flex: 0 0 2.5em;
  font-family: var(--s3-font-mincho);
  font-style: normal;
  font-size: 1.05em;
  font-weight: 400;
  color: var(--s3-color-text-soft);
  letter-spacing: 0.06em;
}

.s3-faq__label--a {
  color: var(--s3-color-text-soft);
}

.s3-faq__q {
  flex: 0 1 auto;
  min-width: 0;
  max-width: calc(100% - 2.5em - 12px - 20px - 8px);
  color: var(--s3-color-text);
}

.s3-faq__toggle {
  position: relative;
  flex: 0 0 20px;
  margin-left: 8px;
  width: 20px;
  height: 20px;
  color: var(--s3-color-text-soft);
}

.s3-faq__toggle::before,
.s3-faq__toggle::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  background-color: currentColor;
  transform: translate(-50%, -50%);
}

.s3-faq__toggle::before {
  width: 14px;
  height: 1px;
}

.s3-faq__toggle::after {
  width: 1px;
  height: 14px;
  transition: opacity 0.2s ease;
}

.s3-faq__item[open] .s3-faq__toggle::after {
  opacity: 0;
}

.s3-faq__answer {
  display: grid;
  grid-template-columns: 2.5em 1fr;
  gap: 12px 20px;
  padding: 24px 0 0;
  font-family: var(--s3-font-mincho);
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.06em;
  color: var(--s3-color-text-soft);
  margin-left: 58px;
}

.s3-faq__answer p {
  margin: 0;
  line-height: 1.85;
}

/* 右サイド見出し（FAQ / 挙式レポート / フォトギャラリー共通）
   英字（左）｜縦線｜日本語（右・縦書き） */
.s3-faq__side,
.s3-reports__side,
.s3-gallery__side {
  flex: 0 0 auto;
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 22px;
  padding-left: 16px;
}

.s3-faq__side-rule,
.s3-reports__side-rule,
.s3-gallery__side-rule {
  display: block;
  width: 1px;
  background-color: #d2d2d2;
  flex-shrink: 0;
  align-self: stretch;
  min-height: 280px;
}

.s3-faq__side-script,
.s3-reports__side-script,
.s3-gallery__side-script {
  margin: 0.4em 0 0;
  padding: 0;
  font-family: var(--s3-font-mincho);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.34em;
  line-height: 1;
  color: #a8a8a8;
  writing-mode: vertical-rl;
  text-orientation: sideways;
  text-transform: uppercase;
}

/* 挙式レポート／フォトギャラリー：ローマ字を大文字にしない（FAQのみは従来通り） */
.s3-reports__side-script,
.s3-gallery__side-script {
  text-transform: none;
}

.s3-faq__side-title,
.s3-reports__side-title,
.s3-gallery__side-title {
  margin: 0;
  padding: 0;
  font-family: var(--s3-font-mincho);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.34em;
  line-height: 1.75;
  color: #5a5a5a;
  writing-mode: vertical-rl;
  text-orientation: upright;
}

/* Section 10: 挙式レポート（ギャラリー＋右縦書き見出し） */
.s3-reports.s3-section {
  background: #fff;
}

.s3-reports__layout {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 72px;
  max-width: 1400px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

.s3-reports__main {
  flex: 1 1 0;
  min-width: 0;
}

.s3-reports__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin: 0 0 48px;
  list-style: none;
  padding: 0;
}

/* 挙式レポート：PC・スマホ（912px）HTML 分離 */
.s3-reports__mobile {
  display: none;
}

.s3-reports__mobile .s3-reports-slider > .swiper-wrapper {
  box-sizing: border-box;
}

.s3-reports__mobile .sec3-trust-nav {
  display: none;
}

.s3-report {
  margin: 0;
  min-width: 0;
}

.s3-report__image {
  margin: 0;
}

.s3-report__image img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  display: block;
}

.s3-report__caption {
  text-align: center;
  margin: 14px 0 0;
  font-family: var(--s3-font-script);
  font-style: italic;
  font-size: 15px;
  letter-spacing: 0.15em;
  color: var(--s3-color-text-soft);
}

.s3-reports__cta-wrap {
  margin: 0;
  width: 100%;
}

.s3-reports__cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  padding: 16px 20px;
  font-family: var(--s3-font-mincho);
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.14em;
}

.s3-reports__cta-label {
  flex: 1 1 auto;
  text-align: center;
}

.s3-reports__cta-arrow {
  flex-shrink: 0;
  font-family: var(--s3-font-script);
  font-size: 18px;
  line-height: 1;
}

/* Section 11: フォトギャラリー（4列×2段・高さバランス＋右縦書き見出し） */
.s3-gallery.s3-section {
  background: #fff;
}

.s3-gallery__layout {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 28px;
  max-width: 1400px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

.s3-gallery__main {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  max-width: 100%;
}

/* PC / スマホは HTML を分離（互いに影響しない） */
.s3-gallery__mobile {
  display: none;
}

.s3-gallery__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  align-items: start;
  position: relative;
  margin: 0;
  padding: 0;
  list-style: none;
  width: 100%;
  box-sizing: border-box;
}

/* sec3-inner 内：FAQ / 挙式レポート / ギャラリー横幅を統一（1400px） */
.sec3-inner > .s3-faq.s3-section,
.sec3-inner > .s3-reports.s3-section,
.sec3-inner > .s3-gallery.s3-section {
  width: 100%;
  max-width: none;
  align-self: stretch;
  box-sizing: border-box;
}

.sec3-inner > .s3-faq .s3-faq__layout.s3-inner,
.sec3-inner > .s3-reports .s3-reports__layout.s3-inner,
.sec3-inner > .s3-gallery .s3-gallery__layout.s3-inner {
  max-width: 1100px;
  width: 100%;
  padding-left: 0;
  padding-right: 0;
}

.s3-gallery__item {
  position: relative;
  min-width: 0;
  overflow: hidden;
}

.s3-gallery__thumb {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  overflow: hidden;
}

.s3-gallery__thumb:focus-visible {
  outline: 2px solid var(--s3-color-text);
  outline-offset: 2px;
}

.s3-gallery__thumb img {
  width: 100%;
  max-width: none;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center;
  display: block;
  transition: opacity 0.25s ease;
}

.s3-gallery__thumb:hover img,
.s3-gallery__thumb:focus-visible img {
  opacity: 0.88;
}

/* PC：.c-gallery__list 準拠のモザイク（.s3-gallery__pc 内のみ） */
@media (min-width: 769px) {
  .s3-gallery__mobile {
    display: none;
  }

  .s3-gallery__pc .s3-gallery__grid {
    grid-template:
      "item1 item2 item3 item4"
      "item5 item6 item7 item8"
      / 1fr 1fr calc(400 / 1200 * 100%) 1fr;
    /* 写真2：col2上で写真7と同じ実幅 */
    --s3-gallery-pair-w-wide: calc(66.5% * 3 / 2);
    /* 写真2：高さ手動調整（auto＝幅×ratio / 例: 100% 110% 260px calc(100% + 12px)） */
    --s3-gallery-item2-h: auto;
    --s3-gallery-item2-ratio: 14 / 16;
    /* 写真6：高さ手動調整（100%＝セル高さ / 例: 110% calc(100% + 30.7%) 280px auto） */
    --s3-gallery-item6-h: 125%;
    --s3-gallery-item6-ratio: 1 / 1;
  }

  .s3-gallery__pc .s3-gallery__thumb img {
    height: auto;
    aspect-ratio: initial;
  }

  .s3-gallery__pc .s3-gallery__item:nth-child(1) {
    grid-area: item1;
  }

  .s3-gallery__pc .s3-gallery__item:nth-child(1) .s3-gallery__thumb img,
  .s3-gallery__pc .s3-gallery__item:nth-child(4) .s3-gallery__thumb img {
    aspect-ratio: 3 / 4;
    width: 100%;
    height: auto;
    object-fit: cover;
  }

  /* 写真2：写真7と同じ実幅・グリッド列左に密着・高さは --s3-gallery-item2-h */
  .s3-gallery__pc .s3-gallery__item:nth-child(2) {
    grid-area: item2;
    position: absolute;
    top: 0;
    left: 0;
    right: auto;
    width: var(--s3-gallery-pair-w-wide);
    height: var(--s3-gallery-item2-h);
  }

  .s3-gallery__pc .s3-gallery__item:nth-child(2) .s3-gallery__thumb {
    display: block;
    width: 100%;
    height: 100%;
  }

  .s3-gallery__pc .s3-gallery__item:nth-child(2) .s3-gallery__thumb img {
    width: 100%;
    height: 100%;
    aspect-ratio: var(--s3-gallery-item2-ratio);
    object-fit: cover;
  }

  .s3-gallery__pc .s3-gallery__item:nth-child(3) {
    grid-area: item3;
  }

  .s3-gallery__pc .s3-gallery__item:nth-child(4) {
    grid-area: item4;
  }

  .s3-gallery__pc .s3-gallery__item:nth-child(5) {
    grid-area: item5;
  }

  .s3-gallery__pc .s3-gallery__item:nth-child(6) {
    grid-area: item6;
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    width: 158%;
    height: var(--s3-gallery-item6-h);
  }

  .s3-gallery__pc .s3-gallery__item:nth-child(6) .s3-gallery__thumb {
    display: block;
    width: 100%;
    height: 100%;
  }

  .s3-gallery__pc .s3-gallery__item:nth-child(6) .s3-gallery__thumb img {
    width: 100%;
    height: 100%;
    aspect-ratio: var(--s3-gallery-item6-ratio);
    object-fit: cover;
  }

  .s3-gallery__pc .s3-gallery__item:nth-child(7) {
    grid-area: item7;
    position: absolute;
    right: 0;
    bottom: 0;
    width: 63%;
    height: calc(100% + 19.7% + 10px);
  }

  .s3-gallery__pc .s3-gallery__item:nth-child(7) .s3-gallery__thumb,
  .s3-gallery__pc .s3-gallery__item:nth-child(7) .s3-gallery__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .s3-gallery__pc .s3-gallery__item:nth-child(8) {
    grid-area: item8;
  }
}

/* フォトギャラリー・ライトボックス */
body.s3-gallery-lightbox-open {
  overflow: hidden;
}

.s3-gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 40px;
  box-sizing: border-box;
}

.s3-gallery-lightbox.is-open {
  display: flex;
}

.s3-gallery-lightbox__backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: rgba(0, 0, 0, 0.72);
  cursor: pointer;
}

.s3-gallery-lightbox__stage {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  max-width: 96vw;
  max-height: 96vh;
  box-sizing: border-box;
}

.s3-gallery-lightbox__figure {
  position: relative;
  flex: 0 1 auto;
  min-width: 0;
  margin: 0;
  padding: 10px;
  background: #fff;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.45);
}

.s3-gallery-lightbox__nav {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.55);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.2);
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

.s3-gallery-lightbox__nav[hidden] {
  display: none;
}

.s3-gallery-lightbox__nav:hover,
.s3-gallery-lightbox__nav:focus-visible {
  background: #fff;
  border-color: #fff;
}

.s3-gallery-lightbox__nav:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.s3-gallery-lightbox__nav-icon {
  display: block;
  width: 8px;
  height: 8px;
  border-right: 1.5px solid #7a7a7a;
  border-bottom: 1.5px solid #7a7a7a;
  box-sizing: border-box;
}

.s3-gallery-lightbox__nav--prev .s3-gallery-lightbox__nav-icon {
  transform: rotate(135deg);
  margin-left: 2px;
}

.s3-gallery-lightbox__nav--next .s3-gallery-lightbox__nav-icon {
  transform: rotate(-45deg);
  margin-right: 2px;
}

.s3-gallery-lightbox__img {
  display: block;
  width: auto;
  height: auto;
  max-width: min(92vw, 820px);
  max-height: min(90vh, 1200px);
  margin: 0 auto;
  object-fit: contain;
  vertical-align: top;
}

.s3-gallery-lightbox__caption {
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: 10px;
  margin: 0;
  padding: 16px 20px;
  background: rgba(0, 0, 0, 0.58);
  color: #fff;
  font-family: var(--s3-font-mincho);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.7;
  letter-spacing: 0.06em;
  text-align: center;
}

.s3-gallery-lightbox__caption[hidden] {
  display: none;
}

.s3-gallery-lightbox__close {
  position: absolute;
  top: -14px;
  right: -14px;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
  cursor: pointer;
}

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

.s3-gallery-lightbox__close::before,
.s3-gallery-lightbox__close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18px;
  height: 1px;
  background: #1a1a1a;
}

.s3-gallery-lightbox__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.s3-gallery-lightbox__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.s3-gallery-lightbox__close:hover,
.s3-gallery-lightbox__close:focus-visible {
  background: #f5f5f5;
}

@media screen and (max-width: 768px) {
  .s3-gallery-lightbox {
    padding: 16px 12px;
  }

  .s3-gallery-lightbox__stage {
    gap: 0;
    width: 100%;
    max-width: 100%;
  }

  .s3-gallery-lightbox__nav {
    position: absolute;
    top: 50%;
    z-index: 3;
    width: 38px;
    height: 38px;
    transform: translateY(-50%);
  }

  .s3-gallery-lightbox__nav--prev {
    left: 4px;
  }

  .s3-gallery-lightbox__nav--next {
    right: 4px;
  }

  .s3-gallery-lightbox__figure {
    width: 100%;
  }

  .s3-gallery-lightbox__img {
    max-width: 100%;
  }
}

/* Section 12: contact footer */
.s3-contact {
  background: var(--s3-color-bg-soft);
  padding: 100px 0 0;
  text-align: center;
}
.s3-contact__title {
  font-family: var(--s3-font-script);
  font-style: italic;
  font-size: 56px;
  letter-spacing: 0.15em;
  color: var(--s3-color-text);
  margin: 0 0 48px;
  font-weight: 400;
}
.s3-contact__info {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  max-width: 780px;
  margin: 0 auto 64px;
}
.s3-contact__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.s3-contact__icon {
  font-size: 24px;
  width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--s3-color-line);
  border-radius: 50%;
}
.s3-contact__link {
  font-size: 13px;
  letter-spacing: 0.15em;
  color: var(--s3-color-text);
}

.s3-contact__brand {
  border-top: 1px solid var(--s3-color-line);
  padding: 48px 24px;
  margin-top: 24px;
}
.s3-contact__logo {
  font-family: var(--s3-font-script);
  font-style: italic;
  font-size: 32px;
  letter-spacing: 0.15em;
  margin: 0 0 16px;
  color: var(--s3-color-text);
}
.s3-contact__address,
.s3-contact__tel {
  margin: 4px 0;
  font-size: 13px;
  letter-spacing: 0.1em;
  color: var(--s3-color-text-soft);
}
.s3-contact__bottom {
  background: var(--s3-color-text);
  height: 8px;
}

/* ----- responsive ----- */
@media (max-width: 1024px) {
  .s3-section { padding: 72px 0; }
  .s3-two-col { gap: 36px; }
  .s3-venues__grid,
  .s3-reports__grid { gap: 24px; }
  .s3-contact__title { font-size: 44px; }
}

@media (max-width: 768px) {
  .s3-root { font-size: 15px; }
  .s3-section { padding: 56px 0; }
  .s3-h2 { font-size: 21px; letter-spacing: 0.2em; }
  .s3-two-col {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .s3-two-col--reverse .s3-two-col__image { order: 1; }
  .s3-two-col--reverse .s3-two-col__body { order: 2; }
  .s3-venues__grid,
  .s3-reports__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
  .s3-gallery__layout {
    flex-direction: column;
    gap: 40px;
  }

  .s3-gallery__pc {
    display: none;
  }

  .s3-gallery__mobile {
    display: block;
  }

  .s3-gallery__main {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
  }

  .s3-gallery__m-scroll-outer {
    position: relative;
    padding: 0 0 8px;
  }

  .s3-gallery__m-scroll-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 50%;
    z-index: 2;
    width: 28px;
    height: 28px;
    margin: 0;
    padding: 0;
    border: 1px solid #d8d4cc;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
    transform: translateY(-50%);
    cursor: pointer;
  }

  .s3-gallery__m-scroll-btn:focus-visible {
    outline: 2px solid var(--s3-color-text);
    outline-offset: 2px;
  }

  .s3-gallery__m-scroll-btn--prev {
    left: 8px;
  }

  .s3-gallery__m-scroll-btn--next {
    right: 8px;
  }

  .s3-gallery__m-scroll-btn-icon {
    display: block;
    width: 7px;
    height: 7px;
    border-right: 1.5px solid #7a7a7a;
    border-bottom: 1.5px solid #7a7a7a;
    box-sizing: border-box;
  }

  .s3-gallery__m-scroll-btn--prev .s3-gallery__m-scroll-btn-icon {
    transform: rotate(135deg);
    margin-left: 2px;
  }

  .s3-gallery__m-scroll-btn--next .s3-gallery__m-scroll-btn-icon {
    transform: rotate(-45deg);
    margin-right: 2px;
  }

  .s3-gallery__m-scroll {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 20px;
    padding: 0 20px 4px;
    scrollbar-width: none;
  }

  .s3-gallery__m-scroll::-webkit-scrollbar {
    display: none;
  }

  .s3-gallery__m-card {
    flex: 0 0 min(82vw, 320px);
    scroll-snap-align: center;
    box-sizing: border-box;
  }

  .s3-gallery__m-grid {
    display: flex;
    flex-direction: column;
    gap: 6px;
    width: 100%;
    margin: 0;
    padding: 0;
  }

  .s3-gallery__m-row {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 6px;
    width: 100%;
  }

  .s3-gallery__m-row .s3-gallery__m-item:nth-child(1) {
    flex: 38 1 0;
    min-width: 0;
  }

  .s3-gallery__m-row .s3-gallery__m-item:nth-child(2) {
    flex: 25 1 0;
    min-width: 0;
  }

  .s3-gallery__m-row:not(.s3-gallery__m-row--flip) .s3-gallery__m-item:nth-child(1) {
    order: 2;
  }

  .s3-gallery__m-row:not(.s3-gallery__m-row--flip) .s3-gallery__m-item:nth-child(2) {
    order: 1;
  }

  .s3-gallery__m-item {
    position: static;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
  }

  .s3-gallery__mobile .s3-gallery__thumb {
    display: block;
    width: 100%;
    height: auto;
  }

  .s3-gallery__mobile .s3-gallery__thumb img {
    width: 100%;
    height: auto;
    max-width: none;
    object-fit: cover;
  }

  .s3-gallery__m-row .s3-gallery__m-item:nth-child(1) .s3-gallery__thumb img {
    aspect-ratio: 19 / 15;
  }

  .s3-gallery__m-row .s3-gallery__m-item:nth-child(2) .s3-gallery__thumb img {
    aspect-ratio: 5 / 6;
  }

  .s3-contact__info {
    grid-template-columns: repeat(2, 1fr);
    gap: 28px;
  }
  .s3-contact__title { font-size: 36px; }
  .s3-btn { padding: 12px 28px; font-size: 13px; }
  .s3-btn--primary { padding: 16px 40px; }
  .s3-faq__layout,
  .s3-reports__layout {
    flex-direction: column;
    gap: 40px;
  }

  .s3-faq__side,
  .s3-reports__side,
  .s3-gallery__side {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 12px 16px;
    padding-left: 0;
    padding-bottom: 8px;
  }

  .s3-faq__side-rule,
  .s3-reports__side-rule,
  .s3-gallery__side-rule {
    order: 3;
    width: 100%;
    max-width: 140px;
    height: 1px;
    min-height: 0;
    align-self: auto;
  }

  .s3-faq__side-script,
  .s3-faq__side-title,
  .s3-reports__side-script,
  .s3-reports__side-title,
  .s3-gallery__side-script,
  .s3-gallery__side-title {
    writing-mode: horizontal-tb;
    text-orientation: mixed;
    margin: 0;
    letter-spacing: 0.2em;
  }

  .s3-faq__side-script,
  .s3-reports__side-script,
  .s3-gallery__side-script {
    order: 2;
  }

  .s3-faq__side-title,
  .s3-reports__side-title,
  .s3-gallery__side-title {
    order: 1;
  }

  .s3-faq__item summary {
    font-size: 14px;
    gap: 10px;
  }

  .s3-faq__item summary .s3-faq__label {
    flex-basis: 2.2em;
  }

  .s3-faq__item summary .s3-faq__q {
    max-width: calc(100% - 2.2em - 10px - 20px - 8px);
  }

  .s3-faq__item summary .s3-faq__toggle {
    margin-left: 6px;
  }

  .s3-faq__answer {
    grid-template-columns: 2.2em 1fr;
    gap: 10px 14px;
    padding-right: 0;
    margin-left: 10px;
  }
}

@media (max-width: 480px) {
  .s3-inner { padding: 0 18px; }
  .s3-section { padding: 44px 0; }
  .s3-h2 { font-size: 19px; }
  .s3-text { font-size: 14.5px; line-height: 1.85; }
  .s3-btn-wrap--row { flex-direction: column; }
  .s3-btn-wrap--row .s3-btn { width: 100%; text-align: center; }
  .s3-contact__title { font-size: 30px; }
}

/* ----- embed: index-testimv3.php (.sec3-inner 内) ----- */
.sec3-inner > .s3-total-support {
  align-self: stretch;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  overflow-x: clip;
}

.sec3-inner > .s3-total-support.s3-root {
  margin-top: 0;
  padding: 0;
  background: var(--s3-color-bg);
  font-family: var(--s3-font-mincho);
  font-weight: 300;
  line-height: 1.85;
  letter-spacing: 0.04em;
  font-size: 16px;
  color: var(--s3-color-text);
  -webkit-font-smoothing: antialiased;
}

.sec3-inner > .s3-total-support .s3-h2,
.sec3-inner > .s3-total-support .s3-text,
.sec3-inner > .s3-total-support .s3-btn,
.sec3-inner > .s3-total-support .s3-contact {
  margin-bottom: 0;
}

/* index-testimv3.php：100vw ブレークアウト＋スクロールバー分の横はみ出し防止 */
html:has(body.page-index-testimv3) {
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html:has(body.page-index-testimv3) {
    scroll-behavior: auto;
  }
}

body.page-index-testimv3 {
  --s3-anchor-scroll-margin: 20px;
  overflow-x: clip;
  max-width: 100%;
}

@media screen and (min-width: 541px) {
  body.page-index-testimv3 {
    --s3-anchor-scroll-margin: 96px;
  }
}

body.page-index-testimv3 #kodawari,
body.page-index-testimv3 #ceremony-plan,
body.page-index-testimv3 #flow,
body.page-index-testimv3 #total-support,
body.page-index-testimv3 #faq,
body.page-index-testimv3 #gallery {
  scroll-margin-top: var(--s3-anchor-scroll-margin);
}

/* ページトップへ（全デバイス共通・円形＋上向きシェブロン） */
body.page-index-testimv3 #pagetop {
  display: none !important;
}

body.page-index-testimv3 .s3-jump-btn {
  position: fixed;
  right: 16px;
  bottom: 59px;
  z-index: 120;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  margin: 0;
  padding: 0;
  border: 1px solid #ccc;
  border-radius: 50%;
  background: #fff;
  box-shadow: none;
  color: #bdbdbd;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease,
    border-color 0.2s ease, background-color 0.2s ease;
  cursor: pointer;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

body.page-index-testimv3 .s3-jump-btn.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

body.page-index-testimv3 .s3-jump-btn:hover,
body.page-index-testimv3 .s3-jump-btn:focus-visible {
  border-color: #a8a8a8;
  background: #fff;
}

body.page-index-testimv3 .s3-jump-btn:focus-visible {
  outline: 2px solid #a8a8a8;
  outline-offset: 2px;
}

body.page-index-testimv3 .s3-jump-btn__icon {
  display: block;
  width: 8px;
  height: 8px;
  margin-top: 4px;
  border-right: 1.5px solid #bdbdbd;
  border-bottom: 1.5px solid #bdbdbd;
  box-sizing: border-box;
  transform: rotate(-135deg);
}

body.page-index-testimv3 .s3-jump-btn:hover .s3-jump-btn__icon,
body.page-index-testimv3 .s3-jump-btn:focus-visible .s3-jump-btn__icon {
  border-right-color: #8f8f8f;
  border-bottom-color: #8f8f8f;
}

/* スマホ：LINE予約などの固定フッターメニュー（#fix_bottom_menu）と重ならないよう上に配置 */
@media screen and (max-width: 768px) {
  body.page-index-testimv3:has(#fix_bottom_menu) .s3-jump-btn {
    bottom: calc(76px + env(safe-area-inset-bottom, 0px));
  }
}

@media screen and (min-width: 769px) {
  body.page-index-testimv3 .s3-jump-btn {
    right: 24px;
    bottom: 28px;
    width: 52px;
    height: 52px;
  }

  body.page-index-testimv3 .s3-jump-btn__icon {
    width: 9px;
    height: 9px;
    margin-top: 5px;
  }
}

/* index-testimv3.php のみ：footer 内 promise（レンタル）ブロックを非表示 */
body.page-index-testimv3 .p-top-salon__rental.p-rental.l-section {
  display: none;
}

/* LP本文テキスト統一（pのみ・見出し h1〜h6 は除外） */
body.page-index-testimv3 :where(
    .sec2-section1,
    .contact-section,
    .feature-section,
    .sec3-section,
    .s3-section,
    .s3-root
  )
  p:not(.sec2-fixed-label__text) {
  font-size: 16px;
  line-height: 1.85;
}

@media screen and (max-width: 768px) {
  body.page-index-testimv3 :where(
      .sec2-section1,
      .contact-section,
      .feature-section,
      .sec3-section,
      .s3-section,
      .s3-root
    )
    p:not(.sec2-fixed-label__text) {
    font-size: 14px;
    line-height: 1.85;
  }
}

/* 912px：フォトギャラリー（768px ブロックより後に置き、上書きを確実にする） */
@media screen and (max-width: 912px) {
  body.page-index-testimv3 .s3-gallery__m-scroll {
    gap: 0;
    padding: 0;
    scroll-padding-inline: 0;
  }

  body.page-index-testimv3 .s3-gallery__m-card {
    flex: 0 0 100%;
    scroll-snap-align: start;
  }

  body.page-index-testimv3 .s3-gallery__m-grid {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    aspect-ratio: auto;
    min-height: 0;
  }

  body.page-index-testimv3 .s3-gallery__m-row {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 8px;
    width: 100%;
  }

  body.page-index-testimv3 .s3-gallery__m-row .s3-gallery__m-item:nth-child(1) {
    flex: 38 1 0;
    min-width: 0;
  }

  body.page-index-testimv3 .s3-gallery__m-row .s3-gallery__m-item:nth-child(2) {
    flex: 25 1 0;
    min-width: 0;
  }

  body.page-index-testimv3 .s3-gallery__m-row:not(.s3-gallery__m-row--flip) .s3-gallery__m-item:nth-child(1) {
    order: 2;
  }

  body.page-index-testimv3 .s3-gallery__m-row:not(.s3-gallery__m-row--flip) .s3-gallery__m-item:nth-child(2) {
    order: 1;
  }

  body.page-index-testimv3 .s3-gallery__mobile .s3-gallery__thumb {
    width: 100%;
    height: auto;
  }

  body.page-index-testimv3 .s3-gallery__mobile .s3-gallery__thumb img {
    width: 100%;
    height: auto;
    aspect-ratio: auto;
    object-fit: cover;
  }

  body.page-index-testimv3 .s3-gallery__m-row .s3-gallery__m-item:nth-child(1) .s3-gallery__thumb img {
    aspect-ratio: 19 / 15;
  }

  body.page-index-testimv3 .s3-gallery__m-row .s3-gallery__m-item:nth-child(2) .s3-gallery__thumb img {
    aspect-ratio: 5 / 6;
  }
}

