@charset "utf-8";

@font-face {
  font-family: 'AngelicaC'; /* フォント名 */
  src: url('../assets/AngelicaC.woff2?v=0') format('woff2'),
       url('../assets/AngelicaC.woff?v=0') format('woff'),
       url('../assets/AngelicaC.ttf?v=0')   format('truetype'); /* 通常のフォントファイル */
  font-weight: normal; /* 通常のウェイト */
  font-style: normal; /* 通常のスタイル */
}


html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

body {
  line-height: 1;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}

nav ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: '';
  content: none;
}

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

/* change colours to suit your needs */
ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
}

/* change colours to suit your needs */
mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold;
}

del {
  text-decoration: line-through;
}

abbr[title],
dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* change border colour to suit your needs */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0;
}

input,
select {
  vertical-align: middle;
}

/*以上がリセットCSS*/

/* 予約ボタン（回転SVG） */
.reserve-button {
    position: fixed;
    bottom: 20px;
    right: 20px;
    width: 150px;
    height: 150px;
    z-index: 2300;
    cursor: pointer;
    transform: translate(-20px, -20px);
    fill: #fff;
    color: #fff;
  }
  
  .reserve-button svg {
    width: 100%;
    height: 100%;
    fill: #fff;
  }
  
  .reserve-button.dark-mode svg,
  .reserve-button.dark-mode text {
    fill: #a2212a;
    color: #a2212a;
  }
  
  .reserve-button text {
    fill: #fff;
    letter-spacing: 2px;
  }
  
  .reserve-button svg g.rotate-text {
    animation: spin-text 20s linear infinite;
    transform-origin: center center;
  }
  
  @keyframes spin-text {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
  }
  
  /* オーバーレイメニュー */
  .menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: #a2212a;
    display: none;
    z-index: 2000;
  }
  
  .menu-overlay.active {
    display: block;
  }
  
  .menu-overlay.active ~ .reserve-button {
    background-color: white !important;
    color: #a2212a !important;
  }
  
  .menu-overlay .menu-center.overlay-version {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    font-family: 'AngelicaC';
    z-index: 2100;
  }
  
  .menu-overlay .menu-center .top-link,
  .menu-overlay .menu-center .bottom-label {
    writing-mode: vertical-rl;
    font-size: 20px;
    color: white;
  }
  
  .menu-overlay .menu-center .bottom-label {
    font-family: fot-klee-pro, sans-serif;
    font-weight: 600;
  }
  
  .menu-overlay .menu-close {
    position: fixed;
    top: 49%;
    left: 50%;
    transform: translate(-50%, -52%);
    font-size: 64px;
    color: white;
    cursor: pointer;
    z-index: 2200;
    font-family: 'Helvetica Neue', system-ui, sans-serif;
    font-weight: 100;
    text-decoration: none;
  }
  
  .overlay-nav-row {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -51%);
    width: 85%;
    display: flex;
    justify-content: space-between;
    z-index: 2100;
    padding: clamp(120px, 18vh, 220px) 0;
  }
  
  .overlay-nav-row .nav-left,
  .overlay-nav-row .nav-right {
    display: flex;
    flex-direction: row;
    
  }
  .overlay-nav-row .nav-left{
    margin: 0;
    transform: translateX(-5%);
    gap: clamp(1vw, 6vw, 150px);
  }
  .overlay-nav-row .nav-right {
    margin: 0;
    transform: translateX(-2%);
    gap: clamp(1vw, 8vw, 150px);
  }
  .overlay-nav-row a {
    color: white;
    font-size: 20px;
    font-family: 'Times New Roman',     /* 英語用（スペース必ずクオート） */
    fot-klee-pro,          /* 日本語用（ハイフンのみならクオート省略可） */
    sans-serif;
    font-weight: 400;
    text-decoration: none;
    cursor: pointer;
    white-space: nowrap;
  }
  
/* --- iOS端末向けにdvh対応（必要なら） --- */
@supports (-webkit-touch-callout: none) {
    @media screen and (max-width: 1024px) and (orientation: portrait) {
      .menu-center,
      .menu-center.overlay-version {
        height: 100dvh;
      }
    }
  }

  @media screen and (min-width: 768px) and (max-width: 1024px) {
    /* nav-left/nav-right の項目間隔を少し狭く */
  .menu-overlay .overlay-nav-row .nav-left,
  .menu-overlay .overlay-nav-row .nav-right {
    gap: 2rem !important;
  }

  /* ×ボタンと隣接する項目には最低1emの余白を確保 */
  .menu-overlay .overlay-nav-row .nav-left a:last-child {
    margin-right: 1em !important;
  }
  .menu-overlay .overlay-nav-row .nav-right a:first-child {
    margin-left: 1em !important;
  }
  }
  

  /* --- 中央固定メニュー（通常） --- */
.menu-center {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 999;
    color: #B38A5A;
    font-family: 'AngelicaC';
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    height: 100vh;
    pointer-events: none;
  }
  
  .menu-center .top-link,
  .menu-center .menu-icon {
    pointer-events: auto;
  }
  
  .top-link,
  .bottom-label {
    font-size: 20px;
    writing-mode: vertical-rl;
    transform: rotate(0deg);
    color: #B38A5A;
    text-decoration: none;
  }

  .top-link{
    margin-top: 25px;
  }
  
  .bottom-label {
    font-family: fot-klee-pro, sans-serif;
    font-weight: 600;
    margin-bottom: 25px;
  }
  
  .menu-icon {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    cursor: pointer;
  }
  
  .menu-icon .line {
    width: 30px;
    height: 2.5px;
    background: #B38A5A;
    margin-bottom: 2px;
  }
  
  .menu-icon .eight {
    font-size: 48px;
    color: #B38A5A;
    transition: transform 0.3s ease;
    transform-origin: center;
  }
  
  .menu-icon:hover .eight {
    transform: rotate(90deg) translateX(-3px) translateY(2px);
  }
  
  .menu-label {
    font-size: 16px;
    color: #B38A5A;
    margin-top: -2px;
  }
  
/* News リンク本体を相対配置に */
.nav-link--news {
  position: relative;
  display: inline-block;     /* 必要に応じて */
}

/* + を小さく・右上に */
.nav-link--news-plus {
  position: absolute;
  top: 0;                    /* 親要素の上端 */
  right: -0.7em;             /* 文字 1 つ分くらい右へ */
  font-size: 0.7em;          /* 本文の60% サイズ */
  line-height: 0.9;            /* 高さを合わせる */
}

  /* スクロール */
  .scroll-container {
  height: 100svh;                   /* 最新ブラウザでの正確なビューポート高さ */
  height: 100vh;                    /* フォールバック */
  overflow-y: auto;                 /* スクロール可能に */
  overflow-x: hidden;               /* 横スクロールを無効化 */
  scroll-snap-type: y mandatory;    /* 垂直方向に強制スナップ */
  overscroll-behavior-y: contain;   /* バウンス時の伝播抑制 */
  scroll-behavior: smooth;          /* 滑らかなスクロール */
  -webkit-overflow-scrolling: auto; /* iOS慣性スクロールを無効化 */
}

/* 各スナップ要素 */
.snap {
  height: 100svh;       /* セクションをビューポートいっぱいに */
  height: 100vh;        /* フォールバック */
  scroll-snap-align: start;  /* 上端揃えでスナップ */
  scroll-snap-stop: always;  /* 大きなスクロールでも必ず止める */
}

  

  /*メニュー縦書きタイトル*/
  .fixed-page-label {
    position: fixed;
    top: 30px;
    left: 50px;
    writing-mode: vertical-rl;
    text-orientation: mixed;
    font-size: 20px;
    font-weight: bold;
    color: white;
    z-index: 999;
    font-family: 'AngelicaC', serif;
    letter-spacing: 0.1em;
    user-select: none;
    pointer-events: none;
  }
  
/* === 共通レイアウト対策 === */
html, body {
    overflow-x: hidden;
  }

  /* --- セクションの高さ調整（1〜6共通） --- */
.section-1,
.section-2,
.section-3,
.section-4,
.section-5,
.section-6 {
  height: 100vh;
  min-height: 100vh;
  overflow: hidden;
  box-sizing: border-box;
}

  /*section-1*/
  .section-1 {
    background-color: #a2212a;
    color: white;
  }
  
  .content-wrapper-1 {
    display: flex;
    width: 100%;
    height: 100%;
  }
  
  .left-1{
    width: 70%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .right-1 {
    width: 50%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  
  .left-1 {
    justify-content: center;
  }
  
  .title-1 {
    font-size: 3vw;
    font-family: 'AngelicaC', serif;
    text-align: center;
    color: white;
    letter-spacing: 0.1em;

  }
  
  .right-1 {
    flex-direction: column;
    justify-content: flex-start;
    padding: 10% 8% 0 8%;
  }
  
  .motion-1 {
    width: 60%;
    margin-bottom: 40px;
    margin-top: -10vh;
    padding-left: 60%;
  }
  
  .paragraph-1 {
    z-index: 2;
    position: relative;
    padding-left: 15%;
    width: 100%;
    display: flex;
    justify-content: center;
    padding-top: 55px;
  }

  .text-1 {
    font-size: 0.8vw;
    line-height: 2;
    text-align: left;
    white-space: pre-line;
    font-family: fot-klee-pro, sans-serif;
    letter-spacing: 0.05em;
  }
  
  /*section-2*/
  .section-2 {
    background-color: #e8e9e9;
    color: #a2212a;
  }
  
  .content-wrapper-2 {
    display: flex;
    width: 100%;
    height: 100%;
  }
  
  .left-2, .right-2 {
    width: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  
  .left-2 {
    flex-direction: column;
    text-align: center;
    font-family: fot-klee-pro, sans-serif;
    margin-left: 4vw;
  }
  
  .title-2 {
    font-size: 3vw;
    font-family: 'AngelicaC', sans-serif;
    margin-bottom: 10px;
  }
  
  .subtext-2 {
    font-size: 1.1vw;
    line-height: 1.5;
    white-space: nowrap;
  }
  
  .right-2 {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 0 8%;
    text-align: center;
    font-family: fot-klee-pro, sans-serif;
  }
  
  .heading-2 {
    font-size: 1.6vw;
    margin-bottom: 40px;
    letter-spacing: 0.15em;
  }
  
  .body-2 {
    font-size: 1vw;
    line-height: 1.5;
    letter-spacing: 0.05em;
    
  }  

  .heading-2,
.body-2 {
  text-align: left;
  align-self: flex-start;
  margin-left: 8vw;
}

.fixed-page-label.active-red {
    color: #a2212a;
  }

/* --- 3枚目 --- */
.section-3{
    background-color: #a2212a;
    color: white;
}

.content-wrapper-3 {
    display: flex;
    width: 100%;
    height: 100%;
  }

.left-3 {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    padding-left: 15%;
    white-space: nowrap;
  }
  
  .left-3 .title-3 {
    font-size: 3vw;
    color: white;
    font-family: 'AngelicaC', sans-serif;
  }
  
  .right-3 {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding-left: 10vw;
    gap: 30px;
  }
  
  .right-3 .promise-label {
    display: flex;
    align-items: center;
    gap: 20px;
    padding-left: 5%;
  }

  .right-3 .promise-image {
    align-self: center; /* ← 中央寄せに必要 */
  }
  
  .right-3 .promise-label .number-3 {
    font-size: 3.2vw;
    color: #b38a5a;
    font-family: 'AngelicaC', sans-serif;
  }
  
  .right-3 .promise-label .text-3 {
    font-size: 1.3vw;
    color: white;
    font-family: fot-klee-pro, sans-serif;
    letter-spacing: 0.05em;
  }
  
  .promise-image img{
    width: 48%;
    height: auto;
    padding-left: 29%;
  }  

 /* --- 4枚目共通レイアウト --- */
.section-4 {
    background-color: #a2212a;
    color: white;
  }
  
.content-wrapper-4{
    position: relative;
    display: flex;
    width: 100%;
    height: 100%;
    box-sizing: border-box
  }

  .left-4,
  .right-4 {
    display: flex;
    flex-direction: column;
    height: 100%;
    justify-content: flex-start;
  }
  
  .left-4 {
    display: flex;
    flex-direction: column;
    justify-content: space-between; /* 上下間隔調整 */
    
  }
  
  
  .right-4 {
    padding: 10% 12% 5% 5%;
    align-items: center;
  }
  
  .number-4-1,
  .number-4-2 {
    font-size: 3.2vw;
    color: #b38a5a;
    font-family: 'AngelicaC', sans-serif;
    margin-right: 1vw;
  }
  
  .text-4-1,
  .text-4-2 {
    font-size: 1.25vw;
    color: white;
    font-family: fot-klee-pro, sans-serif;
    letter-spacing: 0.05em;
    
  }

  .label-row-4-1,
  .label-row-4-2 {
    display: flex;
    align-items: center;
    margin-bottom: 1vw;
    white-space: nowrap;
  }
  
  .text-4-left-1{
    padding-top: 24%;
    padding-left: 25%;

  }

  .heading-4-1 {
    font-size: 1.4vw;
    margin-bottom: 0.5vw;
    color: white;
    font-family: fot-klee-pro, sans-serif;
    white-space: nowrap;
  }
  
  .body-4-1 {
    font-size: 1vw;
    line-height: 1.5;
    color: white;
    font-family: fot-klee-pro, sans-serif;
    white-space: nowrap;
  }
  
  .right-all-4-2{
    flex-direction: column;
    padding-left: 50%;
    width: 120%;
    
}

.image-4-1 {
    margin-top: auto;
    padding-left: 0;
margin-bottom: -2px;
object-fit: contain;
  }
  
  
  .image-4-1 img {
    width: 95%;
    max-width: 95%;
    height: auto;
    align-self: flex-end;
    padding-left: 0;
    width: 90vw;
  }
  
  
  
  .video-4-2 video {
    width: 60%;
    margin-top: 60px;
    align-self: center;
    max-width: 90%;
    width: 60vw;
    height: auto;
    max-height: 60vh;
    object-fit: cover;
  }

  @media screen and (max-height: 600px) {
    .video-4-2 video {
      width: 60vw;
    }

   
  }
  
  

  /* --- 5枚目レイアウト --- */
.section-5 {
    background-color: #a2212a;
    color: white;
    min-height: 500px;
  }
  
  .content-wrapper-5 {
    display: flex;
    width: 100%;
    height: 100%;
  }
  
  .left-5,
  .right-5 {
    width: 70%;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 8% 5%;
    margin-top: 5vh;
  }
  
  .left-5 {
    margin-left: 2vw;
  }

  .label-row-5-1,
  .label-row-5-2 {
    display: flex;
    align-items: center;
    margin-bottom: 2vw;
  }
  
  .number-5-1,
  .number-5-2 {
    font-size: 3.2vw;
    color: #b38a5a;
    font-family: 'AngelicaC', sans-serif;
    margin-right: 1vw;
  }
  
  .text-5-1,
  .text-5-2 {
    font-size: 1.3vw;
    color: white;
    font-family: fot-klee-pro, sans-serif;
    letter-spacing: 0.05em;
  }
  
  .spot-label-5-1 {
    font-size: 1.1vw;
    color: white;
    margin-bottom: 1vh;
    font-family: fot-klee-pro, sans-serif;
  }
  
  .image-5-1 {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 2vh;
    margin-bottom: 2vh;
  }
  
  
  .image-5-1 img {
    width: 85%;
    height: auto;
    object-fit: contain;
    margin-right: 10%;
  }
  
  
  .image-note-5-1 {
    font-size: 1.1vw;
    color: white;
    text-align: right;
    margin-top: 1vh;
    margin-right: 15%;
    font-family: fot-klee-pro, sans-serif;
  }
  
  .image-5-2 {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 2vh;
    margin-bottom: 2vh;
    
    
  }
  
  .right-5 .image-5-2 {
    justify-content: flex-start;
  }
  

  
  .image-5-2 img {
    width: 85%;
    height: auto;
    object-fit: contain;
  }
  

  /* --- 5枚目画像調整（中央寄せ & 上下間隔最適化）--- */
.image-5-1,
.image-5-2 {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 2vh;
  margin-bottom: 2vh;
}

.image-5-1 img,
.image-5-2 img {
  width: 85%;
  height: auto;
  object-fit: contain;
}

/* --- オーバーレイ画像表示 --- */
.image-overlay-5 {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.65);
    backdrop-filter: blur(8px);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 3000;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
  }
  
  .image-overlay-5 img {
    max-width: 90vw;
    max-height: 90vh;
    object-fit: contain;
    border-radius: 6px;
  }
  
  .image-overlay-5.active {
    opacity: 1;
    pointer-events: auto;
  }


/* --- 6枚目レイアウト --- */
.section-6 {
        background-color: #a2212a;
        color: white;
        padding: 3vh 0;
        height: 100vh;
        box-sizing: border-box;
        overflow-y:hidden; /* ← はみ出す代わりに中だけスクロール */
      }
  
  .content-wrapper-6 {
    display: flex;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
  }
  
  .right-6 {
    width: 70vw;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 8% 5%;
    margin-left: 15%;
    margin-right: 2%;
    max-width: 70vw;
    height: auto;

  }
  .left-6 iframe {
    width: 80vw;
    height: auto;
    max-width: 100%;
    max-height: 60vh;
    object-fit: cover;
    aspect-ratio: 16 / 9;
  }

  .left-6{
    width: 80%;
    display: flex;
    justify-content: flex-start;
   
    flex-direction: column;
    transform: translate(10%, 20%);
  }
  
  .label-row-6-1,
  .label-row-6-2,
  .label-row-6-3 {
    display: flex;
    align-items: center;
    margin-bottom: 1.5vw;
  }
  
  .number-6-1,
  .number-6-2,
  .number-6-3 {
    font-size: 3.2vw;
    color: #b38a5a;
    font-family: 'AngelicaC', sans-serif;
    margin-right: 1vw;
    white-space: nowrap;
  }
  
  .text-6-1,
  .text-6-2,
  .text-6-3 {
    font-size: 1.6vw;
    color: white;
    font-family: fot-klee-pro, sans-serif;
    letter-spacing: 0.05em;
  }
  
 
  
  .label-row-6-2,
  .label-row-6-3 {
    margin-bottom: 0.5vw; /* ← 見出しと本文の間隔を狭く */
  }
  

  .body-6-2 {
    font-size: 1.2vw;
    line-height: 1.1;
    font-family: fot-klee-pro, sans-serif;
    color: white;
    white-space: pre-line;
    margin-bottom: 8vh;
    max-width: 100%;
    padding-left: 0.5vw;
  }

  .body-6-3{
    font-size: 1.2vw;
    line-height: 1.1;
    font-family: fot-klee-pro, sans-serif;
    color: white;
    white-space: pre-line;
    margin-bottom: 2vh;
    max-width: 100%;
    padding-left: 0.5vw;
  }
  
  /*.table-6-3 {
    width: 80%;
    margin-top: 1.5vh;
    border-collapse:collapse;
    font-size: 0.95vw;
    color: white;
    font-family: fot-klee-pro, sans-serif;
    
  }
  
  .table-6-3 td {
    border: 1px solid #b38a5a;
    padding: 0.8em 1.2em;
    white-space: nowrap;
    text-align: center;
  }
  
  .note-6-3 {
    font-size: 0.8vw;
    color: white;
    margin-top: 1.2vh;
    line-height: 1.2;
    white-space: normal;
    max-width: 90%;
  word-break: break-word;
  overflow-wrap: break-word;
  display: inline-block;
  max-width: 35em; 
    font-family: fot-klee-pro, sans-serif;
  }*/
  
/* ============ Mobile 一覧レイアウト（max-width:768px） ============ */
@media screen and (max-width: 768px) {

/* 1. 予約ボタンを左下に */
.reserve-button {
  right: auto !important;
  left: 20px !important;
  bottom: 20px !important;
  transform: none !important;
}

.reserve-button {
  width: 80px !important;
  height: 80px !important;
}
.reserve-button svg {
  width: 100% !important;
  height: 100% !important;
}

.menu-center {
  position: static !important;
  display: block   !important;
  transform: none  !important;
}

/* ── 上端リンクを画面上端に固定 ── */
.menu-center .top-link {
  position: fixed    !important;
  top:      10px        !important;
  right:    18px      !important;
  z-index: 10000     !important;
  white-space: nowrap!important;
  font-size:   14px  !important;
  line-height: 1     !important;
  margin:      0     !important;
  padding:     4px 0 !important;
}

/* ── ハンバーガーを画面縦中央に固定 ── */
.menu-center .menu-icon {
  position: fixed    !important;
  top:      50%      !important;
  right:    18px      !important;
  transform: translateY(-50%) !important;
  z-index: 10000     !important;
  display: flex      !important;
  flex-direction: column!important;
  align-items:    center   !important;
  margin:         0        !important;
  padding:        0        !important;
}
.menu-center .menu-icon .line {
  width:  20px !important;
  height: 2px  !important;
  margin: 1px 0 !important;
}
.menu-center .menu-icon .eight {
  font-size:   32px !important;
  line-height: 1    !important;
}
.menu-center .menu-icon .menu-label {
  font-size:   10px !important;
  line-height: 1     !important;
  white-space: nowrap!important;
  margin:      1px 0 !important;
  padding:     0     !important;
}

/* ── 下端ラベルを画面下端に固定 ── */
.menu-center .bottom-label {
  position: fixed    !important;
  bottom:   10px        !important;
  right:    18px      !important;
  z-index: 10000     !important;
  white-space: nowrap!important;
  font-size:   14px  !important;
  line-height: 1     !important;
  margin:      0     !important;
  padding:     4px 0 !important;
}


/* 3. 全スライドを縦レイアウトに切り替え */
.slide-content,
.content-wrapper-1,
.content-wrapper-2,
.content-wrapper-3,
.content-wrapper-4,
.content-wrapper-5,
.content-wrapper-6 {
  flex-direction: column !important;
  align-items: flex-start !important;
}
/* 各カラムを幅100%に */
.slide-content > div,
.content-wrapper-1 > div,
.content-wrapper-2 > div,
.content-wrapper-3 > div,
.content-wrapper-4 > div,
.content-wrapper-5 > div,
.content-wrapper-6 > div {
  width: 100% !important;
}

/* モバイル版: オーバーレイメニュー */

  /* PC用縦バーは隠し、オーバーレイ用縦バー（overlay-version）を表示 */
 
  .menu-overlay .menu-center.overlay-version {
    display: flex !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    align-items: center !important;
    background-color: #a2212a !important;
    z-index: 2000 !important;
    padding: 0 20px !important;
    box-sizing: border-box !important;
  }

 /* 閉じるボタン（×） */
 .menu-overlay.active .menu-close {
  display: block !important;
  position: fixed !important;
  top: 50% !important;               /* 垂直中央 */
  right: 18px !important;             /* 右から18px */
  left: auto !important;              /* 左位置クリア */
  transform: translate(0, -72%) !important; /* 縦方向中央合わせ */
  font-size: 43px !important;
  color: white !important;
  z-index: 2100 !important;
  cursor: pointer !important;
}


  /* メニュー項目: 縦並び、左から20px、中央縦配置 */
  .menu-overlay .overlay-nav-row {
    position: fixed !important;
    top: 50% !important;
    left: 80px !important;
    transform: translateY(-50%) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 32px !important; /* 広めの間隔 */
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    z-index: 2000 !important;
  }

  .menu-overlay .overlay-nav-row .nav-left,
  .menu-overlay .overlay-nav-row .nav-right {
    display: flex !important;
    flex-direction: column !important;
    gap: 40px !important;
  }

  .menu-overlay .overlay-nav-row a {
    color: white !important;
    font-size: 24px !important; /* 文字サイズ大きく */
    text-decoration: none !important;
    line-height: 1.2 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* プラス記号の位置調整 */
  .menu-overlay .overlay-nav-row .nav-link--news-plus {
    position: absolute !important;
    top: 0 !important;
    left: 5.5em !important;
    font-size: 0.7em !important;
    line-height: 1 !important;
  }

/* Toggle between main and overlay menus using :has */
/* main menu hidden when overlay active */
body:has(.menu-overlay.active) .menu-center:not(.overlay-version) {
  display: none !important;
}
/* overlay-version shown only when overlay active */
body:has(.menu-overlay.active) .menu-center.overlay-version {
  display: flex !important;
}
/* overlay-version hidden when overlay not active */
body:not(:has(.menu-overlay.active)) .menu-center.overlay-version {
  display: none !important;
}


.content-wrapper-1 {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  gap: 0px !important;
  margin: 0 !important;
  max-height:100vh ;
  max-width: 100% !important;
  width: 95%;
  transform: translateY(-8%);
}
.section-1 .title-1 {
  width: 95% !important;
  text-align: right !important;
  font-size: 6vw !important;
  margin: 0 !important;
  color: white !important;
  letter-spacing: 0.1em !important;
  top: 50px;
  transform: translate(-5%, 30%) !important;
}
.section-1 .right-1 {
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  gap: 10px !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  transform: translateY(-10%) !important;
}
.section-1 .motion-1 {
  width: 80% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding-left: 0 !important;
  margin-top: 10px !important;
}
.section-1 .paragraph-1 {
  width: 100% !important;
  display: block !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}
.section-1 .text-1 {
  font-size: 2.9vw !important;
  line-height: 1.8 !important;
  text-align: left !important;
  margin: 0 !important;
  white-space: pre-line !important;
  font-feature-settings: "palt";
  font-family: fot-klee-pro, sans-serif !important;
  max-width: 80% !important;
  transform: translateX(8%);
}




.snap2.section-2 .content-wrapper-2 {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;    /* タイトル右揃え */
  justify-content: flex-start !important;
  padding: 10% 0 0 0 !important;        /* 画面上10%から */
  box-sizing: border-box !important;
  gap: 10px !important;                /* タイトルとサブテキスト間隔 */
}
.snap2.section-2 .title-2 {
  font-size: 6vw !important;           /* タイトル大きく */
  text-align: right !important;
  margin: 0 -35% 10px 0 !important;
}
.snap2.section-2 .subtext-2 {
  font-size: 3vw !important;
  line-height: 0.7 !important;
  text-align: right !important;
  margin: 0 -38% 20px 0 !important;
  white-space: pre-line !important;
}
/* 下部見出しと本文を左寄せ、左マージン10% */
.snap2.section-2 .right-2 {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 0 0 10% !important;
  box-sizing: border-box !important;
  gap: 20px !important;
  transform: translate(8%,15%) !important;
}
.snap2.section-2 .heading-2 {
  font-size: 4.3vw !important;
  margin: 0 !important;
  letter-spacing: 0.15em !important;
  text-align: left !important;
}
.snap2.section-2 .body-2 {
  font-size: 2.9vw !important;
  line-height: 1.7 !important;
  font-feature-settings: "palt";
  letter-spacing: normal;
  text-align: left !important;
  margin: 0 !important;
  width: 76%;
}


/* === Section-3 Mobile Adjustments === */

.snap3.section-3 .content-wrapper-3 {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important; /* 左寄せ */
  padding: 10% 60px 0 20px !important; /* 右に余白を増やして縦バーと重ならない */  /* 上10%, 横20px */
  gap: 20px !important;               /* 要素間隔 */
  box-sizing: border-box !important;

  align-items: flex-end !important;  /* タイトルとグループを右揃え */
  gap: 30px !important;              /* タイトルと数字グループ間隔を拡大 */
}
.snap3.section-3 .title-3 {
  font-size: 8vw !important;           /* タイトル大きく */
  text-align: right !important;        /* 右揃え */
  width: 100% !important;
  
  margin: 30px 0 0 0 !important; /* 上30px、下0 */
}
.snap3.section-3 .promise-label {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important; /* 右揃え */
  gap: 10px !important;                /* 数字と文字の間隔 */
  width: 100% !important;
  margin: 20px 0 !important;           /* グループをもっと下に移動 */
  transform: translateX(-3%);
}
.snap3.section-3 .number-3 {
  font-size: 6vw !important;           /* 数字をさらに大きく */
}
.snap3.section-3 .text-3 {
  font-size: 3.4vw !important;           /* 文字を大きく */
}
.snap3.section-3 .promise-image {
  display: flex !important;
  justify-content: center !important;  /* 画像中央 */
  width: 100% !important;
}
.snap3.section-3 .promise-image img {
  width: 90% !important;               /* 画像を大きく */
  height: auto !important;
  margin: 0 auto !important;
  transform: translate(-11%, 10px) !important; 
  max-width: 90%;
}

 /* Section-4 Mobile: 強制左寄せ */
 .snap4.section-4 .right-4,
 .snap4.section-4 .right-all-4-2 {
   display: flex !important;
   flex-direction: column !important;
   align-items: flex-start !important;
   width: 100% !important;
   padding: 0 !important;
   box-sizing: border-box !important;
 }
 /* 右カラムのパディングをリセットし左揃え */
 .snap4.section-4 .right-4 {
   padding: 0 !important;
   width: 100% !important;
   align-items: flex-start !important;
   margin: 0 !important;
   transform: translate(5%,-13%) !important;
 }
 /* === Section-4 Mobile Adjustments === */
 /* 全体を縦積みに */
 .snap4.section-4 .content-wrapper-4 {
   display: flex !important;
   flex-direction: column !important;
   align-items: flex-start !important;
   padding: 0 !important;
   box-sizing: border-box !important;
   transform: translateX(-15px) !important;
 }
 /* 02のラベル（数字＋テキスト）を上に、左寄せ */
 .snap4.section-4 .label-row-4-1 {
   display: flex !important;
   justify-content: flex-start !important;
   align-items: center !important;
   gap: 10px !important;
   margin: 10px 0 0 20px !important;
   padding: 0 !important;
   width: calc(100% - 40px) !important;

 }
 .snap4.section-4 .number-4-1,
 .snap4.section-4 .number-4-2 {
   font-size: 6vw !important;
   margin-right: 5px !important;
   margin-top: 5px;
 }
 .snap4.section-4 .text-4-1,
 .snap4.section-4 .text-4-2 {
   font-size: 3.6vw !important;
   color: white !important;
 }

 .snap4.section-4 .left-4{
  margin: 0 !important;
  transform: translateY(-10%) !important;
 }
 /* 見出し、本文を左揃え */
 .snap4.section-4 .heading-4-1 {
   font-size: 3.2vw !important;
   text-align: left !important;
   margin: 10px 0 0 20px !important;
   width: calc(100% - 40px) !important;
   transform: translateX(-20px);
 }
 .snap4.section-4 .body-4-1 {
   font-size: 2.5vw !important;
   line-height: 1.6 !important;
   text-align: right !important;
   margin: 5px 0 0 20px !important;
   width: 80% !important;
    transform: translateX(-5px);
    font-feature-settings: "palt";
 }
 /* 画像を左寄せで少し小さく */
 .snap4.section-4 .image-4-1 img {
   width: 80% !important;
   margin: 20px 0 0 40px !important;
   object-fit: contain !important;
max-width: 80%; 
  }

 /* 03のラベルも左寄せ */
 .snap4.section-4 .label-row-4-2 {
   display: flex !important;
   justify-content: flex-start !important;
   align-items: center !important;
   gap: 10px !important;
   width: calc(100% - 40px) !important;
   margin: 20px 0 0 20px !important;
   padding: 0 !important;
 }
 /* 動画を一番下、左寄せ */
 .snap4.section-4 .video-4-2 video {
   width: 84vw !important;
   max-width: 90% !important;
   display: block !important;
   margin: 20px auto 0 20px !important; /* 左寄せ: right auto */
   height: auto !important;
   object-fit: cover !important;
    max-height: 60vh !important;
 }


 /* === Section-5 Mobile Adjustments === */

/* 左カラム全体を20%左、5%上に移動 */
.snap5.section-5 .left-5 {
  transform: translate(-16%, -5%) !important;
}

/* 04 のラベル（数字＋テキスト）を右揃え */
.snap5.section-5 .label-row-5-1 {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 10px !important;
  width: calc(100% - 40px) !important;
  margin: 10px 20px 0 0 !important;
  padding: 0 !important;
  transform: translateX(5%);
}
.snap5.section-5 .number-5-1 {
  font-size: 6.5vw !important;  /* 0.5vw 小さく */
  margin-right: 5px !important;
}
.snap5.section-5 .text-5-1 {
  font-size: 3.5vw !important;  /* 0.5vw 小さく */
}

/* おすすめスポットラベルを右揃え */
.snap5.section-5 .spot-label-5-1 {
  text-align: left !important;
  font-size: 2.8vw !important;  /* 0.5vw 小さく */
  margin: 20px 0 0 0  !important;
  width: calc(100% - 40px) !important;
  transform: translate(35%,0);
}

/* マップ画像を小さく */
.snap5.section-5 .image-5-1 img {
  width: 65% !important;       /* 10% 縮小 */
  height: auto !important;
  margin: 10px 20px 0 auto !important;
  display: block !important;
}

/* クリック案内文を画像下右揃え */
.snap5.section-5 .image-note-5-1 {
  text-align: right !important;
  font-size: 2.8vw !important;   /* 0.5vw 小さく */
  margin: 5px 20px 0 0 !important;
  width: calc(100% - 25px) !important;
}

.snap5.section-5 .right-5 {
  transform: translate(00%, -30%) !important;
}

/* 右カラムラベル（05）を左揃え */
.snap5.section-5 .right-5 .label-row-5-2 {
  display: flex !important;
  justify-content: flex-start !important;
  align-items: center !important;
  gap: 10px !important;
  width: calc(100% - 40px) !important;
  margin: 15px 0 0 20px !important; /* 上に移動 */
  padding: 0 !important;
}
.snap5.section-5 .number-5-2 {
  font-size: 6.5vw !important;  /* 0.5vw 小さく */
  margin-right: 5px !important;
}
.snap5.section-5 .text-5-2 {
  font-size: 3.5vw !important;  /* 0.5vw 小さく */
  font-feature-settings: "palt" 1 !important; /* 旧字を表示 */
}

/* 右カラム画像をその下に、横中央に */
.snap5.section-5 .image-5-2 {
  width: 100% !important;
  display: flex !important;
  justify-content: center !important;
  margin: 15px auto 0 auto !important; /* 上へ移動 */
  max-width: 100%;
}
.snap5.section-5 .image-5-2 img {
  width: 75% !important;       /* 10% 縮小 */
  height: auto !important;
  object-fit: contain !important;
  transform: translateX(-10%);
}

/* === Section-6 Mobile Adjustments === */
.content-wrapper-6 {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important; /* 中央寄せ */
    padding: 0 !important;
    box-sizing: border-box !important;
    gap: 50px !important; /* 要素間隔 */
    margin: 0 !important;
    width: 100% !important;
  }
  /* 06 のラベル行 */
  .left-6 {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    align-items: right !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: translate(8%, 22%);
  }
  .snap6.section-6 .label-row-6-1 {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 10px !important;
    width: calc(100% - 40px) !important;
    margin: 10px 20px 0 0 !important;
    padding: 0 !important;
    transform: translateX(-15%);
  }
  .snap6.section-6 .number-6-1 {
    font-size: 8vw !important;
    margin-right: 5px !important;
  }
  .snap6.section-6 .text-6-1 {
    font-size: 3.3vw !important;
    text-align: right !important;
  }

  /* 埋め込み動画 */
  .snap6.section-6 .left-6 iframe {
    width: 60vw !important;
    height: auto !important;
    display: block !important;
    margin: 10px auto !important;
    transform: translateX(-5%);
    aspect-ratio: 16 / 9 !important;
  }
  .snap6.section-6 .right-6 {
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    align-items: right !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: translate(0%,35%);
    gap: 15px !important; /* 要素間隔 */
  }
  /* 07 のラベル行 */
  .snap6.section-6 .label-row-6-2 {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 10px !important;
    width: calc(100% - 40px) !important;
    margin: -50px 0px 0 -30px !important;  /* 上余白を30pxに調整 */
    padding: 0 !important;
  }
  .snap6.section-6 .number-6-2 {
    font-size: 8vw !important;
    margin-right: 5px !important;
  }
  .snap6.section-6 .text-6-2 {
    font-size: 3.3vw !important;
  }
  .snap6.section-6 .body-6-2 {
    font-size: 2.8vw !important;       /* 文字サイズを小さく */
    line-height: 1.0 !important;    /* 行間を広げる */
    text-align: right !important;
    margin: -5px 0 0 -85px !important;
    font-feature-settings: "palt";
    letter-spacing: 0.05em !important; /* 文字間を少し広げる */
  }

  /* 08 のラベル行 */
  .snap6.section-6 .label-row-6-3 {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 10px !important;
    width: calc(100% - 60px) !important;
    margin: 40px 40px 0 0 !important;
    padding: 0 !important;
    transform: translateX(-5%);
  }
  .snap6.section-6 .number-6-3 {
    font-size: 8vw !important;
    margin-right: 5px !important;
  }
  .snap6.section-6 .text-6-3 {
    font-size: 3.3vw !important;
  }
  .snap6.section-6 .body-6-3 {
    font-size: 2.8vw !important;       /* 文字サイズを小さく */
    line-height: 1.0 !important;    /* 行間を広げる */
    text-align: right !important;
    margin: -5px 20px 0 0 !important;
    transform: translateX(-10%);
    font-feature-settings: "palt";
    letter-spacing: 0.05em !important; /* 文字間を少し広げる */
  }

  /* テーブル */
  .snap6.section-6 .table-6-3 {
    width: 60vw !important;
    height: auto !important;
    max-width: calc(100% - 40px) !important;
    margin: 20px 20px 0 auto !important;
    transform: translateX(-18%);
  }

/* テーブルセルの高さを確保 */
.snap6.section-6 .table-6-3 td {
  padding: 0.8em 2.5em !important;
  font-size: 2.1vw !important;  /* td 内文字サイズ */
    text-align: center !important;
}

.note-6-3{
  font-size: 1.8vw !important; /* 0.2vw 小さく */
  margin: 5px 20px 0 0 !important;
  line-height: 1.2 !important;
  text-align: right !important;
  max-width: calc(100% - 40px) !important;
  word-break: break-word !important;
  overflow-wrap: break-word !important;
  display: inline-block !important;
  max-width: 33em !important; /* 自動改行の幅を約25文字相当で制限 */
  transform: translateX(-6%);
}

}

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .right-1 {
    width: 70%;
    margin-left: 50px;
    padding: 0 5%;
    transform: translate(-5%, 20%);
  }
  
  .text-1{
    font-size: 1.4vw;
    line-height: 1.8;
    text-align: left;
    margin: 0;
    white-space: pre-line;
    letter-spacing: 0.05em;
    font-family: fot-klee-pro, sans-serif;
    max-width: 90%;
    transform: translateX(8%);
  }

  /* 左カラムの埋め込み動画幅を70%、上部から10%下げる */
  .left-6 iframe{
    width: 90%;
    margin-top: 10%;
    aspect-ratio: 16 / 9;
max-width: 90%;
  }

  /* 右カラム本文の幅を80%に調整 */
  .right-6 {
    width: 70%;
margin-left: 50px;
    padding: 0 5%;
    transform: translate(10%, 20%);
  }
}

