/* ロッジくるま LP専用スタイル */
.lk-lp-container {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  color: #333;
  background-color: #fff;
  max-width: 640px; /* スマホ幅に最適化 */
  margin: 0 auto;
}

.lk-content-inner {
  padding: 0 20px;
}

/* 共通パーツ */
.lk-section-title {
  color: #ff6600;
  font-size: 1.5rem;
  margin-bottom: 20px;
  text-align: center;
}

.lk-cta-btn {
  display: block;
  background-color: #e60000;
  color: #fff !important;
  text-decoration: none !important;
  padding: 20px;
  border-radius: 50px;
  font-weight: bold;
  font-size: 1.25rem;
  text-align: center;
  box-shadow: 0 4px 15px rgba(0,0,0,0.2);
  margin: 20px auto;
}

/* 各セクション */
.lk-hero-section {
  text-align: center;
  background: #fff;
}

.lk-hero-img {
  width: 100%;
  height: auto;
}

.lk-hero-body {
  padding: 20px;
}

.lk-main-title {
  font-size: 1.6rem;
  color: #003366;
  margin: 0 0 10px 0;
  line-height: 1.3;
}

.lk-price-section {
  background-color: #fdfaf5;
  padding: 40px 0;
  text-align: center;
}

.lk-price-highlight {
  background: #fff;
  border: 2px dashed #ff6600;
  padding: 20px;
  border-radius: 12px;
  margin-bottom: 15px;
}

.lk-price-before {
  text-decoration: line-through;
  color: #999;
  font-size: 0.9rem;
  margin: 0;
}

.lk-price-after {
  color: #e60000;
  font-size: 2.2rem;
  font-weight: bold;
  margin: 0;
}

.lk-price-unit {
  font-size: 1rem;
}

.lk-points-section {
  background-color: #003366;
  color: #fff;
  padding: 40px 0;
}

.lk-point-card {
  background: rgba(255,255,255,0.1);
  padding: 15px;
  border-radius: 8px;
  margin-bottom: 20px;
  text-align: left;
}

.lk-point-label {
  color: #ffcc00;
  margin: 0 0 5px 0;
  font-size: 1.1rem;
}

.lk-point-desc {
  font-size: 0.9rem;
  margin: 0;
}

.lk-lodge-section {
  padding: 40px 0;
  text-align: center;
}

.lk-lodge-img {
  width: 100%;
  border-radius: 10px;
  margin-bottom: 20px;
}

.lk-mt-40 {
  margin-top: 40px;
}


.page-section {
max-width: 1360px;
margin: auto;
}

.content-box h1, .about_str h3,.content-box h4, .access_text h4, #winter h4 {text-align: center;padding: 40px 8px 20px;font-size: 24px;}

.content-box h1 span, .about_str h3 span, .content-box h4 span, .access_text h4 span, #winter h4 span {
background: linear-gradient(transparent 70%, #83e4dd45 70%);
font-weight: 600;
}

.content-box p {
text-align: center;
padding: 10px 8px;
line-height: 2.2em;
}

.content-box p span {
border-bottom: 2px dashed #a2d7bb;
padding: 0 0 3px 0;
}

.contactbox {
display: flex;
justify-content: space-evenly;
}

.content_btn {
margin: 10px;
padding: 6px 12px;
border-radius: 0.5rem;
background: #ffffff;
border: solid 1px #30585596;
box-shadow: 2px 2px 4px 0px #5f5f5f36;
}

.content_btn.tel {
letter-spacing: 0.1em;
font-size: 24px;
}

.content_btn.mail {
font-size: 22px;
}

.content_btn.access {
font-size: 22px;
text-align: center;
width: 100%;
max-width: 230px;
margin: 20px auto;
}

.content_btn a {
color: #000;
font-family: 'Noto Serif', serif;
}

.content_btn i {
color: #305855;
font-size: 1.5rem;
}

.contents-wrap {
display: flex;
justify-content: space-evenly;
padding: 6px 12px;
width: 100%;
max-width: 900px;
margin: 25px auto;
}

.design_content2 {
width: 100%;
max-width: 900px;
}

.event {
display: flex;
justify-content: space-around;
padding: 6px 12px;
width: 100%;
max-width: 900px;
margin: auto;
}

.contents-img, .contents-text {
padding: 20px;
}

.contents-img a img:hover {
-webkit-transition: all 1.0s;
-moz-transition: all 1.0s;
transition: all 1.0s;
-webkit-transform:  scale(1.05);
-moz-transform:  scale(1.05);
-ms-transform:  scale(1.05);
transform:  scale(1.05);
}

.contents-img img {
width: 100%;
max-width: 450px;
}

.contents-text {
width: 50%;
}

.contents-text h2 a:hover {
color: #8a8a8a;
}

.photo, .event__c {
width: 90%;
margin: auto;
}

.photo img {
width: 100%;
box-shadow: 2px 2px 4px 0px #21212136;
border-radius: 4px;
}

.stepBox h2 {
font-size: 20px;
font-weight: 600;
}

.stepBox_wrap p span {
border-bottom: 1px dotted #cccccc;
padding-bottom: 2px;
line-height: 1.8em;
}

.event__c li {
text-align: center;
}

#access {
width: 100%;
max-width: 900px;
margin: auto;
}

.googlemap {
width: 100%;
text-align: center;
}

.access_text {
text-align: center;
font-size: 22px;
font-weight: 800;
}

.contents-wrap.plan {
background-color: #fff;
border-radius: 20px;
box-shadow: 3px 3px 10px 0px #21212136;
}

.contents-wrap.plan.text7, .contents-wrap.plan.text9 {
display: flex;
flex-direction: row-reverse;
}

@media only screen and (max-width: 768px){
.contactbox {
  display: flex;
  width: 250px;
  text-align: center;
  flex-direction: column;
  align-items: stretch;
  margin: auto;
}

.content_btn {
  height: 30px;
  font-size: 20px !important;
}

.contents-wrap {
  display: flex;
  flex-direction: column;
  width: 90%;
  align-items: center;
  padding: 0;
}

.contents-img, .contents-text {
  width: 100%;
}

.event {
  display: flex;
  flex-direction: column;
  padding: 0;
}

.photo, .event__c {
  width: 90%;
  margin: auto;
}

.photo img {
  width: 100%;
  /* max-width: 450px; */
}
}

/* 勉強合宿 */
/* レイアウトコンテナ */
.features {
  padding: 60px 20px;
  display: flex;
  justify-content: center;
}

.container {
  display: flex;
  gap: 24px;
  max-width: 1100px;
  width: 100%;
}

/* カードスタイル */
.card {
  background: #ffffff;
  flex: 1;
  padding: 50px 30px;
  border-radius: 10px;
  text-align: center;
  /* 非常に薄い影でフラットな清潔感を出す */
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* アイコンの外枠 */
.icon-wrapper {
  width: 64px;
  height: 64px;
  background-color: #f0f2f5;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 24px;
}

/* タイトル */
.card-title {
  font-size: 1.3rem;
  font-weight: 700;
  margin-bottom: 16px;
  letter-spacing: 0.02em;
}

/* 説明文 */
.card-text {
  font-size: 0.95rem;
  color: #555;
  text-align: center;
  word-break: break-all;
}

/* レスポンシブ対応（スマホサイズ） */
@media (max-width: 850px) {
  .container {
      flex-direction: column;
      align-items: center;
  }
  
  .card {
      width: 100%;
      max-width: 400px; /* スマホで広がりすぎないように調整 */
  }
}


/* セクション全体の余白 */
.access {
  padding: 80px 20px;
  max-width: 1200px;
  margin: 0 auto;
}

/* ヘッダー部分（中央揃え） */
.access-header {
  text-align: center;
  margin-bottom: 50px;
}

.section-title {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 10px;
}

.section-subtitle {
  font-size: 1rem;
  color: #666;
}

/* 2カラムレイアウトのコンテナ */
.access-container {
  display: flex;
  gap: 40px;
  align-items: flex-start;
}

/* 左側コンテンツボックス */
.access-content {
  flex: 1;
  background-color: #f4f7f9;
  padding: 40px;
  border-radius: 8px;
}

.content-title {
  font-size: 1.5rem;
  margin-bottom: 20px;
  font-weight: 700;
}

.content-description {
  font-size: 1rem;
  margin-bottom: 30px;
  color: #444;
}

/* リスト部分 */
.feature-list {
  list-style: none;
  padding: 0;
}

.feature-list li {
  display: flex;
  gap: 12px;
  margin-bottom: 20px;
  align-items: flex-start;
}

.check-icon {
  color: #2c3e50;
  font-weight: bold;
}

.feature-list strong {
  display: block;
  margin-bottom: 4px;
  font-size: 1.1rem;
}

.feature-list p {
  font-size: 0.9rem;
  color: #666;
  margin: 0;
}

/* 右側画像ボックス */
.access-image {
  flex: 1;
}

.access-image img {
  width: 100%;
  height: auto;
  border-radius: 12px;
  display: block;
}

/* スマホ対応 */
@media (max-width: 992px) {
  .access-container {
      flex-direction: column;
  }

  .access-content, .access-image {
      width: 100%;
  }
}

/* 共通ヘッダー設定 */
.section-header {text-align: center;margin-bottom: 0;}

.main-title {
font-size: 28px;
font-weight: bold;
margin-bottom: 8px;
}

.sub-title {
color: #666;
font-size: 16px;
}

/* ロケーション・アクセス セクション */
.access-section {
padding: 60px 20px;
max-width: 1100px;
margin: 0 auto;
}

.access-container {
display: flex;
gap: 30px;
align-items: stretch;
}

.access-info-box {
flex: 1;
background-color: #f1f5f9;
padding: 40px;
border-radius: 8px;
}

.info-title {
font-size: 20px;
font-weight: bold;
margin-bottom: 20px;
}

.info-desc {
font-size: 14px;
color: #444;
margin-bottom: 30px;
line-height: 1.7;
}

.info-item {
display: flex;
gap: 15px;
margin-bottom: 20px;
}

.check-mark {
color: #2c3e50;
font-weight: bold;
transform: rotate(45deg) scaleX(-1); /* Lの文字を左右反転・回転させてチェックに見せる */
display: inline-block;
margin-top: 4px;
}

.item-label {
font-size: 16px;
font-weight: bold;
margin-bottom: 4px;
}

.item-text {
font-size: 13px;
color: #666;
}

.access-image-box {
flex: 1;
}

.access-image-box img {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 8px;
}

/* 3つのエリア セクション */
.area-section {
padding: 60px 20px;
max-width: 1100px;
margin: 0 auto;
}

.area-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 20px;
max-width: 850px;
margin: 0 auto;
}

.area-card {
border: 1px solid #e2e8f0;
border-radius: 8px;
overflow: hidden;
background: #fff;
}

.area-image {
height: 240px;
background: #eee;
}

.area-image img {
width: 100%;
height: 100%;
object-fit: cover;
}

.area-content {
padding: 20px;
}

.area-title {
font-size: 19px;
font-weight: bold;
margin-bottom: 8px;
}

.area-desc {
font-size: 15px;
/* color: #666; */
}

/* レスポンシブ */
@media (max-width: 768px) {
.access-container {
  flex-direction: column;
}
.area-grid {
  grid-template-columns: 1fr;
}
}

/* 客室・料金セクション全体 */
.rooms-section {padding: 40px 15px;max-width: 1100px;margin: 0 auto;}

.rooms-container {
  display: flex;
  gap: 30px;
  align-items: flex-start;
  background-color: #494949;
  padding: 40px;
}

/* 画像グループ */
.rooms-images-wrapper {
flex: 1;
display: flex;
flex-direction: column;
gap: 20px;
}

/* 画像エリア */
.rooms-image {
width: 100%;
}

.rooms-image img {width: 100%;height: auto;border-radius: 8px;display: block;}

/* 情報エリア */
.rooms-info {
flex: 1.2;
display: flex;
flex-direction: column;
gap: 20px;
}

/* 料金カード */
.price-card {background-color: #ffffff;padding: 12px;border-radius: 12px;}

.price-header {
margin-bottom: 15px;
display: flex;
align-items: baseline;
gap: 8px;
}

.price-amount {font-size: 32px;font-weight: 800;color: #fa6a00;}

.price-unit {
font-size: 13px;
color: #666;
}

.price-desc {font-size: 18px;color: #444;/* margin-bottom: 25px; */line-height: 1.8;}

/* チェックリスト */
.check-list {
list-style: none;
padding: 0;
}

.check-list li {
font-size: 14px;
margin-bottom: 12px;
display: flex;
align-items: center;
gap: 10px;
}

.check-icon {
color: #fa6a00;
font-weight: bold;
}

/* ボタングループ */
.rooms-button-group {
  display: flex;
  gap: 12px;
  margin-top: 25px;
  flex-wrap: wrap;
}

.rooms-button {
  background-color: #373535;
  color: #fff;
  border: none;
  border-radius: 0;
  padding: 12px 24px;
  font-size: 0.95rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s ease;
  text-decoration: none;
  display: inline-block;
  text-align: center;
  flex: 1;
  min-width: 150px;
}

.rooms-button:hover {
  background-color: #fff;
  color: #373535;
  border: 1px solid #373535;
  text-decoration: none;
}

/* 暖房費セクション */
.heating-info {
background-color: #edf2f7;
padding: 30px;
border-radius: 12px;
}

.heating-title {
font-size: 16px;
font-weight: bold;
margin-bottom: 10px;
}

.heating-desc {
font-size: 14px;
margin-bottom: 20px;
}

/* 計算ボックス（白枠部分） */
.calculation-box {
background-color: #ffffff;
padding: 20px;
border-radius: 8px;
}

.calc-label {
font-size: 13px;
color: #666;
margin-bottom: 10px;
}

.calc-formula {
margin-bottom: 10px;
}

.formula-text {
font-size: 18px;
font-weight: bold;
}

.formula-result {
font-size: 22px;
font-weight: 800;
color: #469739; /* 計算結果を強調する緑色 */
margin-left: 5px;
}

.calc-note {
font-size: 12px;
color: #777;
}

/* レスポンシブ対応 */
@media (max-width: 900px) {
  .rooms-container {
    flex-direction: column-reverse;
    padding: 20px;
}
.rooms-images-wrapper, .rooms-image, .rooms-info {
  width: 100%;
}
}

/* チェックインセクション全体の背景と余白 */
.flexible-check {
  padding: 60px 20px;
  /* background-color: #ffffff; */ /* 白背景 */
  /* margin-top: 50px; */
}

.check-container {
  max-width: 1100px;
  margin: 0 auto;
  border: 1px solid #f0f0f0; /* 外側の薄い枠線 */
  background-color: #ffffff;
  border-radius: 12px;
  padding: 40px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.02);
}

.check-main-title {
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 30px;
  color: #333;
}

/* アイテムを横に並べる */
.check-flex-box {
  display: flex;
  gap: 40px;
}

.check-item {
  flex: 1;
  display: flex;
  align-items: flex-start;
  gap: 15px;
}

/* アイコンの四角い背景（薄いグレー） */
.check-icon-bg {
  background-color: #f1f5f9;
  min-width: 48px;
  height: 48px;
  border-radius: 8px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
}

.check-text-content {
  display: flex;
  flex-direction: column;
}

.check-sub-title {
  font-size: 1.15rem;
  font-weight: 700;
  margin-bottom: 8px;
  color: #333;
}

.check-description {
  font-size: 0.95rem;
  color: #666;
  line-height: 1.6;
}

/* スマホ表示：縦並び */
@media (max-width: 768px) {
  .check-flex-box {
      flex-direction: column;
      gap: 30px;
  }
  
  .check-container {
      padding: 25px;
  }
}


/* 食事セクション全体のスタイル */
.meal-section {
  padding: 60px 20px;
  max-width: 1100px;
  margin: 0 auto;
}

/* コンテナ設定 */
.meal-container {
  display: flex;
  justify-content: center;
  width: 100%;
}

/* グレーの背景ボックス */
.meal-box {
  background-color: #f4f7f8; /* 画像に近い非常に薄い青みのあるグレー */
  border-radius: 12px;
  padding: 50px 40px;
  text-align: center;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* アイコン：濃い緑色の円形 */
.meal-icon-circle {
  width: 56px;
  height: 56px;
  background-color: #3d5a5a; /* 画像に近いダークグリーンの色味 */
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 24px;
}

/* ボックス内のタイトル */
.meal-box-title {
  font-size: 1.4rem;
  font-weight: 700;
  margin-bottom: 16px;
  color: #333;
}

/* ボックス内の説明文 */
.meal-description {
  font-size: 1rem;
  color: #555;
  line-height: 1.8;
  max-width: 700px; /* 読みやすい幅に制限 */
  margin: 0 auto;
}

/* スマホ表示の微調整 */
@media (max-width: 768px) {
  .meal-box {
      padding: 35px 20px;
  }
  .meal-box-title {
      font-size: 1.2rem;
  }
  .meal-description {
      font-size: 0.95rem;
  }
}

/* ランチセクションのラッパー */
.lunch-wrapper {
  background-color: #f8f7f7;
}

/* セクション全体のレイアウト */
.lunch-solution {
  padding: 80px 20px;
  display: flex;
  justify-content: center;
  margin-bottom: 30px;
}

.lunch-container {
  max-width: 1100px;
  width: 100%;
  display: flex;
  gap: 50px;
  align-items: center;
}

/* 左側：画像とタグ */
.lunch-image-wrapper {
  flex: 1;
  position: relative;
}

.main-lunch-img {
  width: 100%;
  border-radius: 15px;
  display: block;
}

.image-tags {
  position: absolute;
  top: 20px;
  left: 20px;
  display: flex;
  gap: 8px;
}

.image-tags span {
  background: rgba(255, 255, 255, 0.9);
  padding: 6px 14px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: bold;
  color: #333;
}

/* 右側：テキスト */
.lunch-text-content {
  flex: 1;
}

.kanji-badge {
  display: inline-block;
  border: 1px solid #3d5a5a;
  color: #3d5a5a;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 12px;
  margin-bottom: 20px;
  font-weight: bold;
}

.lunch-main-title {
  font-size: 34px;
  font-weight: bold;
  line-height: 1.2;
  margin-bottom: 15px;
  color: #1a1a1a;
}

.hashtags {
  color: #888;
  font-size: 14px;
  margin-bottom: 30px;
}

/* 黒いボックス */
.black-card {
  background-color: #494949;
  color: #fff;
  padding: 20px;
  border-radius: 15px;
  position: relative;
}

.solve-badge {
  background-color: #fa6a00; /* 黄緑色のバッジ */
  color: #ffffff;
  padding: 6px 16px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: bold;
  display: inline-block;
  margin-bottom: 20px;
}

.black-card-title {
  font-size: 25px;
  margin-bottom: 15px;
  margin-top: 0;
  color: #ffffff;
  font-weight: bold;
}

.black-card-text {
  font-size: 0.95rem;
  line-height: 1.6;
  color: #ffffff;
  margin-bottom: 25px;
}

/* 内側の枠 */
.inner-info-box {
  background-color: #ffffff;
  padding: 20px;
  border-radius: 12px;
  display: flex;
  gap: 15px;
  margin-bottom: 20px;
}

.check-circle {
  width: 24px;
  height: 24px;
  border: 1px solid #f3c30c;
  color: #ffffff;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 12px;
  flex-shrink: 0;
  background-color: #f3c30c;
}

.inner-text strong {
  display: block;
  margin-bottom: 5px;
  font-size: 18px;
  color: #469739;
}

.inner-text p {
  font-size: 15px;
  color: #121212;
  margin: 0;
}

/* スマホ対応 */
@media (max-width: 900px) {
  .lunch-container {
      flex-direction: column;
  }
  .lunch-main-title {
      font-size: 26px;
  }
}


/* セクション全体の余白 */
.meal-intro-text {
  text-align: center;
  margin: 0 auto 20px auto;
  max-width: 800px;
  padding: 0 20px;
}

.meal-intro-text p {
  font-size: 1rem;
  color: #444;
  line-height: 1.8;
  margin-bottom: 12px;
}

.meal-intro-text p:last-child {
  margin-bottom: 0;
}

.lunch-menu-section {
  padding: 0 20px 0 20px;
  margin: 0 auto;
}

/* グリッドレイアウト */
.menu-grid {
  display: flex;
  gap: 24px;
  justify-content: center;
}

/* カード単体のスタイル */
.menu-card {
  flex: 1;
  background: #fff;
  border-radius: 12px;
  overflow: hidden; /* 画像の角を丸めるため */
  box-shadow: 0 4px 20px rgb(0 0 0 / 17%);
  border: 1px solid #f0f0f0;
}

/* 画像エリア */
.menu-image {
  width: 100%;
  aspect-ratio: 4 / 3; /* 画像の比率を一定に保つ */
  overflow: hidden;
}

.menu-image img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* 枠に合わせてクロップ */
  transition: transform 0.3s ease;
}

/* マウスホバーで画像を少し拡大する演出（任意） */
.menu-card:hover .menu-image img {
  transform: scale(1.05);
}

/* テキストエリア */
.menu-content {
  padding: 24px 20px;
}

.menu-title {
  font-size: 1.2rem;
  font-weight: 800;
  margin-bottom: 12px;
  color: #1a1a1a;
}

.menu-desc {
  font-size: 0.9rem;
  color: #666;
  line-height: 1.6;
  margin: 0;
}

/* スクロール通知（PCでは非表示） */
.menu-scroll-notice {
  display: none;
}

/* スマホ対応（横スクロール） */
@media (max-width: 786px) {
  .menu-scroll-notice {
      display: block;
      text-align: center;
      color: #666;
      font-size: 0.9rem;
      margin-bottom: 16px;
      padding: 0 20px;
  }

  .menu-grid {
      overflow-x: auto;
      overflow-y: hidden;
      flex-wrap: nowrap;
      justify-content: flex-start;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: thin;
      padding-bottom: 10px;
  }

  .menu-grid::-webkit-scrollbar {
      height: 6px;
  }

  .menu-grid::-webkit-scrollbar-track {
      background: #f0f0f0;
      border-radius: 3px;
  }

  .menu-grid::-webkit-scrollbar-thumb {
      background: #ccc;
      border-radius: 3px;
  }

  .menu-card {
      flex: 0 0 auto;
      width: 280px;
      min-width: 280px;
      max-width: none;
  }
}

/* メニュー表セクション */
.menu-table-section {
  padding: 60px 20px;
  max-width: 1100px;
  margin: 0 auto;
}

.menu-table-container {
  margin-top: 30px;
}

.menu-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 30px;
  background-color: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
}

.menu-table thead {
  background-color: #3d5a5a;
  color: #fff;
}

.menu-table th {
  padding: 16px 12px;
  font-size: 1rem;
  font-weight: 700;
  text-align: center;
  border: 1px solid #2c4242;
}

.menu-table th.meal-time {
  background-color: #2c4242;
  width: 120px;
}

.menu-table td {
  padding: 20px 12px;
  border: 1px solid #e2e8f0;
  vertical-align: top;
}

.menu-table td.meal-time {
  background-color: #f8fafc;
  font-weight: 700;
  color: #3d5a5a;
  text-align: center;
  width: 120px;
}

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

.menu-list li {
  font-size: 0.9rem;
  color: #444;
  line-height: 1.8;
  margin-bottom: 6px;
  padding-left: 0;
}

.menu-list li:last-child {
  margin-bottom: 0;
}

/* レスポンシブ対応 */
@media (max-width: 900px) {
  .menu-table-container {
    overflow-x: auto;
  }
  
  .menu-table {
    min-width: 600px;
    font-size: 0.85rem;
  }
  
  .menu-table th,
  .menu-table td {
    padding: 12px 8px;
  }
  
  .menu-table th.meal-time,
  .menu-table td.meal-time {
    width: 100px;
  }
  
  .menu-list li {
    font-size: 0.8rem;
    line-height: 1.6;
  }
}

/* 注釈セクション全体のスタイル */
.meal-note {
  padding: 20px;
  max-width: 1100px;
  margin: 0 auto;
}

.note-container {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  padding: 20px;
  /* 背景を白、または非常に薄いグレーにして他のコンテンツと馴染ませる */
  background-color: #ffffff;
}

/* アイコンの四角い背景（これまでのセクションと統一） */
.note-icon-bg {
  background-color: #f1f5f9;
  min-width: 40px;
  height: 40px;
  border-radius: 8px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
}

.note-text-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.note-title {
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 4px;
  color: #333;
}

.note-description {
  font-size: 0.95rem;
  color: #555;
  line-height: 1.6;
}

/* スマホ表示：アイコンとテキストのバランス調整 */
@media (max-width: 768px) {
  .note-container {
      padding: 15px 10px;
  }
  .note-description {
      font-size: 0.9rem;
  }
}

/* セクション全体の背景と余白 */
.amenity-section {
  padding: 15px 20px;
  background-color: #fcfcfc;
}

/* 2カラムのグリッド */
.amenity-grid {
  display: flex;
  gap: 30px;
  max-width: 1100px;
  margin: 0 auto;
}

/* カード単体のスタイル */
.amenity-card {
  flex: 1;
  background: #ffffff;
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 4px 20px rgb(0 0 0 / 17%);
  display: flex;
  flex-direction: column;
}

/* アイコンとタイトルの並び */
.amenity-top {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 15px;
}

.amenity-icon-box {
  width: 40px;
  height: 40px;
  background-color: #3d5a5a; /* ダークグリーン */
  border-radius: 8px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
}

.amenity-card-title {
  font-size: 1.25rem;
  font-weight: 800;
  color: #1a1a1a;
}

/* 説明文 */
.amenity-card-desc {
  font-size: 16px;
  color: #555;
  line-height: 1.6;
  margin-bottom: 20px;
  min-height: 4.8em; /* 左右のテキスト量を揃えるための目安 */
}

/* メイン画像 */
.amenity-main-image {
  width: 100%;
  /* aspect-ratio: 16 / 9; */
  border-radius: 0;
  /* overflow: hidden; */
  margin-bottom: 20px;
}

.amenity-main-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.amenity-main-image iframe {
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 10px;
}

/* 下部のグレー背景の注釈 */
.amenity-footer-note {
  background-color: #f4f7f8;
  padding: 12px 16px;
  border-radius: 6px;
  font-size: 0.85rem;
  color: #272727;
  display: flex;
  gap: 8px;
  line-height: 1.5;
  margin-top: auto; /* カード内で下端に固定 */
}

.info-mark {
  color: #3d5a5a;
  font-weight: bold;
}

/* アクセスボタンコンテナ */
.access-button-container {
  max-width: 1100px;
  margin: 20px auto 0 auto;
  padding: 0 20px 40px 20px;
  text-align: center;
}

.access-button {
  background-color: #373535;
  color: #fff;
  border: none;
  border-radius: 0;
  padding: 14px 32px;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s ease;
  text-decoration: none;
  display: inline-block;
  text-align: center;
}

.access-button:hover {
  background-color: #fff;
  color: #373535;
  border: 1px solid #373535;
  text-decoration: none;
}

/* スマホ対応 */
@media (max-width: 850px) {
  .amenity-grid {
      flex-direction: column;
  }
  .amenity-card-desc {
      min-height: auto;
  }
  .access-button-container {
    padding: 0 20px 30px 20px;
  }
}

/* アメニティ一覧セクション全体のスタイル */
.amenity-list-section {
  padding: 60px 20px;
  max-width: 1100px;
  margin: 0 auto;
}

/* コンテナ：PCでは横並び */
.amenity-list-container {
  display: flex;
  gap: 60px;
  margin-top: 30px;
}

/* 各カラムの幅設定 */
.amenity-list-column {
  flex: 1;
  max-width: 500px;
  margin: 0 auto;
}

/* アイコンとタイトルのグループ */
.list-title-group {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}

.list-icon {
  display: flex;
  align-items: center;
}

.list-title {
  font-size: 1.15rem;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0;
}

/* チェックリストのスタイル */
.check-item-list {
  list-style: none;
  padding: 20px 15px;
  margin: 0;
  min-height: 160px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  background-color: #fafafa;
  border-radius: 8px;
}

.check-item-list li {
  font-size: 0.95rem;
  color: #444;
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  background-color: #fff;
  border-radius: 6px;
  /* box-shadow: 0 2px 4px rgba(0,0,0,0.05); */
  /* transition: transform 0.2s ease, box-shadow 0.2s ease; */
}

/* .check-item-list li:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
} */

.check-item-list li:last-child {
  margin-bottom: 0;
}

.check-mark {
  color: #fa6a00;
  font-weight: bold;
  font-size: 0.9rem;
}

/* スマホ表示：縦並び */
@media (max-width: 768px) {
  .amenity-list-container {
      flex-direction: column;
      gap: 40px;
  }
}

/* 画面いっぱいに広がる背景の設定 */
.hero-full-screen {
  position: relative;
  width: 100%;
  min-height: 100vh; /* 画面の縦いっぱいに広げる */
  display: flex;
  align-items: center;
  justify-content: center;
  background-image: url('your-main-background.jpg'); /* ここにメイン背景画像 */
  background-size: cover;
  background-position: center;
  background-attachment: fixed; /* スクロール時に背景を固定（オプション） */
  padding: 60px 20px;
}

/* 背景を暗くして文字を読みやすくする重ね合わせ */
.hero-full-screen::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.4); /* 暗さの調整 */
  z-index: 1;
}

.hero-overlay-content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1200px;
  text-align: center;
}

.hero-main-title {
  color: #fff;
  font-size: 3rem;
  font-weight: 900;
  margin-bottom: 10px;
}

.hero-sub-title {
  color: #eee;
  margin-bottom: 50px;
}

/* カードを横に並べるコンテナ */
.points-flex-container {
  display: flex;
  gap: 20px;
  justify-content: center;
}

.visual-card {
  flex: 1;
  height: 450px;
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
  position: relative;
  box-shadow: 0 20px 40px rgba(0,0,0,0.3);
}

.card-inner-img {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
}

.card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(transparent 50%, rgba(0,0,0,0.8));
  padding: 30px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  text-align: left;
  color: #fff;
}

/* 中央の黒背景カード */
.highlight-dark {
  background: #1a1a1a;
}
.highlight-dark .card-overlay {
  background: none;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.point-tag {
  background: #d4f24d;
  color: #000;
  padding: 4px 12px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 15px;
  display: inline-block;
}

.visual-card h3 {
  font-size: 1.4rem;
  font-weight: 800;
  line-height: 1.4;
  margin-bottom: 10px;
}

.visual-card p {
  font-size: 0.9rem;
  color: rgba(255,255,255,0.8);
}

/* スマホ表示：縦並び */
@media (max-width: 850px) {
  .points-flex-container {
      flex-direction: column;
      align-items: center;
  }
  .visual-card {
      width: 100%;
      max-width: 400px;
      height: 350px;
  }
}

/* セクション全体のレイアウト */
.facility-camp-section {
  padding: 80px 20px;
  max-width: 1200px;
  margin: 0 auto;
}

/* イントロ部分（2カラム） */
.facility-intro {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 50px;
  gap: 40px;
}

.intro-left {
  flex: 1;
}

.main-heading {
  font-size: 2.8rem;
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.intro-right {
  flex: 1;
  color: #666;
  line-height: 1.8;
  padding-top: 10px;
}

/* グリッドレイアウト */
.facility-grid {
  display: flex;
  gap: 24px;
}

.facility-item {
  flex: 1;
  display: flex;
  flex-direction: column;
}

/* 画像・アイコン部分 */
.facility-thumb {
  width: 100%;
  aspect-ratio: 16 / 10;
  border-radius: 20px;
  overflow: hidden;
  margin-bottom: 25px;
}

.facility-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 中央の黒背景アイコンエリア */
.facility-item.dark-mode .facility-thumb {
  background-color: #1a1a1a;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* ラベル（黄緑色） */
.facility-label {
  display: inline-block;
  background-color: #d4f24d;
  color: #000;
  font-size: 11px;
  font-weight: 800;
  padding: 3px 12px;
  border-radius: 20px;
  margin-bottom: 15px;
}

/* テキスト詳細 */
.facility-name {
  font-size: 1.25rem;
  font-weight: 800;
  line-height: 1.4;
  margin-bottom: 15px;
  color: #1a1a1a;
}

.facility-text {
  font-size: 0.9rem;
  color: #666;
  line-height: 1.6;
}

/* レスポンシブ対応 */
@media (max-width: 900px) {
  .facility-intro {
      flex-direction: column;
      gap: 20px;
  }
  .main-heading {
      font-size: 2rem;
  }
  .facility-grid {
      flex-direction: column;
      gap: 40px;
  }
  .facility-thumb {
      aspect-ratio: 16 / 9;
  }
}

/* セクション全体 */
.plan-suggestion-section {
  padding: 80px 20px;
  background-color: #edf2f7;
  max-width: 1200px;
  margin: 0 auto;
}

.plan-main-title {
  font-size: 2.5rem;
  font-weight: 900;
  text-align: center;
  color: #2c4242;
  margin-bottom: 50px;
  line-height: 1.2;
}

/* 上段グリッド */
.plan-top-grid {
  display: flex;
  gap: 20px;
  margin-bottom: 20px;
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
}

.plan-card {
  flex: 1;
  background: #fff;
  border-radius: 24px;
  padding: 30px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.03);
  position: relative;
}

.plan-card-content {
  position: relative;
}

.plan-card-left {
  width: 100%;
  /* padding-right: 200px; */
}

.plan-card-image {
  position: absolute;
  top: -10px;
  right: 0;
  width: 140px;
  height: 140px;
  border-radius: 12px;
  overflow: hidden;
  /* box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); */
}

.plan-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* カード内ヘッダー */
.plan-card-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
}

.plan-icon {
  width: 36px;
  height: 36px;
  background: #f0f4f4;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.plan-tag-text strong {
  font-size: 0.85rem;
  color: #333;
}

.plan-tag-text span {
  font-size: 0.75rem;
  color: #999;
}

.quote-mark {
  font-size: 3rem;
  color: #d1dfdf;
  font-family: serif;
  line-height: 1;
  margin-bottom: -10px;
}

.plan-name {
  font-size: 1.25rem;
  font-weight: 800;
  margin-bottom: 10px;
}

.price-start {
  font-weight: 700;
  color: #fa6a00;
  margin-bottom: 15px;
  font-size: 22px;
  margin-top: 0;
}

.plan-desc {
  font-size: 15px;
  /* color: #666; */
  line-height: 1.6;
  margin-bottom: 20px;
}

.plan-footer-info {
  font-size: 15px;
  /* color: #888; */
  border-top: 1px solid #f0f0f0;
  padding-top: 15px;
}

/* 実績画像カード */
.plan-image-card {
  flex: 1;
  border-radius: 24px;
  background-size: cover;
  background-position: center;
  position: relative;
  overflow: hidden;
  min-height: 300px;
}

.image-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(transparent 40%, rgba(0,0,0,0.7));
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 30px;
  color: #fff;
}

.image-card-title {
  font-size: 1.5rem;
  font-weight: 900;
}

/* 下段グリッド */
.plan-bottom-grid {
  display: flex;
  gap: 20px;
}

.sub-info-card {
  flex: 1;
  background: #eef5f5;
  border-radius: 24px;
  padding: 20px 30px;
  display: flex;
  align-items: center;
  gap: 20px;
}

.sub-info-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
}

.sub-info-icon.yellow { background-color: #d4f24d; }
.sub-info-icon.green { background-color: #e2f24d; } /* 部屋タイプの色 */

.sub-info-body {
  flex: 1;
  display: flex;
  justify-content: center;
}

.info-button {
  background-color: #373535;
  color: #fff;
  border: none;
  border-radius: 0;
  padding: 12px 24px;
  font-size: 0.95rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s ease;
  width: 100%;
  max-width: 200px;
  text-decoration: none;
  display: inline-block;
  text-align: center;
}

.info-button:hover {
  background-color: #fff;
  color: #373535;
  border: 1px solid #373535;
  text-decoration: none;
}

.sub-info-body h4 {
  font-size: 1.1rem;
  font-weight: 800;
  margin-bottom: 2px;
}

.sub-info-body p {
  font-size: 0.9rem;
  font-weight: 700;
  color: #3d5a5a;
}

.sub-info-body span {
  font-size: 0.75rem;
  font-weight: 400;
  color: #888;
}

/* スマホ対応 */
@media (max-width: 850px) {
  .plan-top-grid, .plan-bottom-grid {
      flex-direction: column;
  }
  .plan-main-title { font-size: 1.8rem; }
  .sp-only { display: block; }
  .plan-card-left {
    padding-right: 0;
  }
  .plan-card-image {
    position: relative;
    top: auto;
    right: auto;
    width: 100%;
    height: 200px;
    margin-top: 20px;
  }

  .amenity-list-column {
      flex: 1;
      max-width: 100%;
      margin: 0;
  }
}

/* ライブ・イベント拠点カードスタイル */
.event-base-card {
max-width: 1000px;
margin: 40px auto;
padding: 30px;
background-color: #ffffff;
border-radius: 15px;
box-shadow: 0 2px 10px rgb(0 0 0 / 28%);
}

.event-base-card__header {
display: flex;
align-items: center;
margin-bottom: 20px;
padding-bottom: 15px;
border-bottom: 1px solid #e0e0e0;
}

.event-base-card__icon {
display: inline-block;
width: 40px;
height: 40px;
margin-right: 15px;
background-color: #FAA500;
border-radius: 8px;
font-size: 24px;
line-height: 40px;
text-align: center;
flex-shrink: 0;
}

.event-base-card__title {
font-size: 20px;
font-weight: 600;
color: #333;
margin: 0;
line-height: 1.5;
}

.event-base-card__content {display: flex;gap: 45px;margin-bottom: 20px;justify-content: center;}

.event-base-card__images {
/* flex-shrink: 0; */
/* width: 45%; */
}

.event-base-card__images img {
width: 100%;
height: auto;
border-radius: 8px;
object-fit: cover;
}

.event-base-card__text {/* flex: 1; */text-align: center;align-items: center;/* flex-direction: column-reverse; */}

.event-base-card__text p {
font-size: 16px;
line-height: 1.8;
color: #212121;
margin: 0;
}

.event-base-card__access {display: flex;align-items: center;gap: 8px;margin: 0;margin-top: 25px;padding: 0 20px;background-color: #e9e9e9;border-radius: 8px;/* border-left: 4px solid #FAA500; */}

.event-base-card__access-icon {
display: inline-block;
width: 60px;
height: 60px;
object-fit: contain;
vertical-align: middle;
}

.event-base-card__access-icon--car {
width: 28px;
height: 28px;
}

.event-base-card__access-icon--clock {
width: 60px;
height: 60px;
}

.event-base-card__access-text {
font-size: 16px;
color: #333;
font-weight: 500;
}

.event-base-card__access-time {
font-size: 25px;
color: #fa6a00;
font-weight: 700;
}

.event-base-card__access-note {
font-size: 16px;
color: #555;
}

.event-base-card__hashtags {
display: flex;
gap: 10px;
flex-wrap: wrap;
margin-top: 20px;
padding-top: 20px;
border-top: 1px solid #e0e0e0;
}

.event-base-card__hashtag {
display: inline-block;
padding: 6px 15px;
background-color: #90EE90;
color: #333;
border-radius: 5px;
font-size: 14px;
font-weight: 500;
}

.wifi_flex {
display: flex;
}

/* スマホ向けのスタイル */
@media (max-width: 767px) {
.event-base-card {
    /* margin: 30px 15px; */
    padding: 5px;
    margin: 10px;
    margin-bottom: 20px;
}

.event-base-card__header {
    flex-direction: column;
    align-items: flex-start;
}

.event-base-card__icon {
    margin-bottom: 10px;
    margin-right: 0;
}

.event-base-card__title {
    font-size: 18px;
}

.event-base-card__content {
    flex-direction: column;
    gap: 20px;
}

.event-base-card__images {
    width: 100%;
}

.event-base-card__images img {
    width: 100%;
}

.event-base-card__text p {
    font-size: 15px;
    padding: 10px;
}

.event-base-card__access {
    flex-wrap: wrap;
    padding: 12px 15px;
    gap: 6px;
    margin-top: 10px;
}

.event-base-card__access-icon {
    width: 20px;
    height: 20px;
}

.event-base-card__access-icon--car {
    width: 22px;
    height: 22px;
}

.event-base-card__access-icon--clock {
    width: 50px;
    height: 50px;
}

.event-base-card__access-text,
.event-base-card__access-note {
    font-size: 14px;
}

.event-base-card__access-time {
    font-size: 18px;
}

.event-base-card__hashtags {
    gap: 8px;
}

.event-base-card__hashtag {
    font-size: 13px;
    padding: 5px 12px;
}

.wifi_flex {
    display: flex;
    flex-direction: column;
}
}


/* Q&Aセクション全体のコンテナ */
/* 全体コンテナ */
.ski-qa-container {max-width: 900px;margin: 20px auto;padding: 0 20px;font-family: "Helvetica Neue", Arial, sans-serif;}


/* ヘッダー部分 */
.ski-qa-header {
text-align: center;
margin-bottom: 10px;
}


.ski-qa-sub {
display: block;
color: #218321;
font-weight: bold;
letter-spacing: 0.1em;
font-size: 14px;
margin-bottom: 5px;
}


.ski-qa-title {
font-size: 28px;
color: #333;
position: relative;
display: inline-block;
padding-bottom: 15px;
}


.ski-qa-title::after {
content: "";
position: absolute;
left: 50%;
bottom: 0;
transform: translateX(-50%);
width: 60px;
height: 2px;
border-radius: 5px;
background-color: #a0dba0; /* アクセントの緑色 */
}


/* 各質問の枠 */
.ski-qa-item {
background: #fff;
border: 2px solid #b9d9c1;
border-radius: 12px;
margin-bottom: 15px;
overflow: hidden;
transition: all 0.3s ease;
}


.ski-qa-item[open] {
border-color: #218321;
box-shadow: 0 5px 15px rgba(45, 90, 39, 0.1);
}


/* 質問エリア */
.ski-qa-question {
padding: 20px 25px;
list-style: none;
cursor: pointer;
font-weight: bold;
font-size: 17px;
color: #333;
display: flex;
align-items: center;
position: relative;
}


/* Qアイコン */
.ski-qa-icon {
background: #218321;
color: #fff;
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 4px;
margin-right: 15px;
font-size: 20px;
flex-shrink: 0;
}


/* 開閉の矢印 */
.ski-qa-question::after {
content: "▼";
position: absolute;
right: 25px;
font-size: 12px;
color: #218321;
transition: transform 0.3s;
}


.ski-qa-item[open] .ski-qa-question::after {
transform: rotate(180deg);
}


.ski-qa-question::-webkit-details-marker {
display: none;
}


/* 回答エリア */
.ski-qa-answer {
padding: 0 25px 25px 68px; /* Qアイコンの幅に合わせて左余白を調整 */
font-size: 15px;
line-height: 1.8;
color: #555;
display: flex;
position: relative;
}


/* Aアイコン（テキストのみ） */
.ski-qa-icon-a {
position: absolute;
left: 25px;
color: #e35122; /* Aは少し目立つオレンジ系で差別化（不要なら緑へ） */
font-weight: bold;
font-size: 25px;
line-height: 1;
}


.ski-qa-answer p {
margin: 0;
}


/* スマホ調整 */
@media (max-width: 600px) {
.ski-qa-question {
  font-size: 15px;
  padding: 15px;
}
.ski-qa-answer {
  padding-left: 55px;
}
.ski-qa-icon-a {
  left: 15px;
}

.ski-qa-question::after {
  position: absolute;
  right: 5px;
}

.flexible-check {
padding: 0;
margin-top: 50px;
}
}

.inner-info-box-02 {background-color: #ffffff;/* padding: 20px; */border-radius: 12px;display: flex;flex-direction: column; /* 項目を縦に並べる */gap: 5px; /* 項目間の隙間 */margin-bottom: 20px;margin-top: 30px;}

/* 追加：チェックとテキストを横並びにするためのラップ要素 */
.info-item-02 {display: flex;align-items: center; /* 上下中央揃え */gap: 10px; justify-content: center;/* チェックとテキストの間の距離 */}

/* パソコン表示時：左寄せ */
@media (min-width: 768px) {
  .info-item-02 {
    justify-content: flex-start;
  }
  
  .student-plan-text {
    text-align: left !important;
  }
}

.check-circle-02 {
width: 24px;
height: 24px;
/* border: 1px solid #e3c942; */
background-color: #4CAF50;
color: #ffffff;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
font-size: 17px;
flex-shrink: 0; /* 折り返しを防ぐ */
}

.inner-text-02 strong {
display: block;
margin-bottom: 5px;
font-size: 18px;
color: #4b4b4b;
font-weight: bold;
}

.icon-base-card {
width: 30px;
height: 30px;
}

.btn-reservation {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 250px;
  min-width: 220px;
  padding: 10px 20px;
  border-radius: 50px;
  background: linear-gradient(135deg, #ff9a44 0%, #fc6076 100%);
  color: #fff;
  text-decoration: none;
  font-weight: bold;
  font-size: 16px;
  letter-spacing: 0.05em;
  box-shadow: 0 8px 20px rgba(252, 96, 118, 0.3);
  transition: all 0.3s ease;
  cursor: pointer;
}

.price-wrap {
display: flex;
flex-direction: column;
width: 30%;
}

.price-box {
  border: 2px solid red;
  padding: 15px;
  text-align: center;
  background-color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  /* min-width: 300px; */
  border-radius: 8px;
  margin-bottom: 20px;
}
.price-label {
  color: black;
  font-size: 14px;
  /* margin-bottom: 8px; */
}
.price-original {
  color: red;
  text-decoration: line-through;
  font-size: 18px;
  /* margin-bottom: 12px; */
}
.price-current {
  color: black;
  font-size: 25px;
  font-weight: bold;
  /* margin-bottom: 8px; */
}
.price-range {
  font-size: 24px;
}
.price-tax {
  color: black;
  font-size: 12px;
}

.price-box-01 {

}

.price-box-02 {
  margin-left: 20px;
}

/* スマホ調整 */
@media (max-width: 600px) {
  .price-wrap {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.price-box {
  padding: 5px;
  margin-bottom: 10px;
}

.info-item-02
 {
    align-items: baseline;
    margin-right: auto;
text-align: left;
}

.event-base-card__text-02
 {
    display: flex;
    flex-direction: column-reverse;
}

.inner-info-box-02 {
  flex-direction: column-reverse;
}

.inner-info-box-02 {
  margin-top: 0;
  margin-bottom: 0;
}

.btn-reservation {
  margin: 0 auto;
  margin-bottom: 25px;
}

.lunch-solution {
  padding: 30px 10px;
}

.student-plan-text {
  text-align: left !important;
}

/* パソコン表示時：左寄せ */
@media (min-width: 768px) {
  .info-item-02 {
    justify-content: flex-start;
  }
  
  .student-plan-text {
    text-align: left !important;
  }
}
}

/* PCサイズ（画面幅768px以上）かつホバー可能なデバイスの時だけホバー動作を有効にする */
@media (min-width: 768px) and (hover: hover) {
  .btn-reservation:hover {
    transform: translateY(-5px); /* 上に5px浮かす */
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.15); /* 浮遊感を出す影 */
  }

  .amenity-card {
    max-width: 500px;
    margin: 0 auto;
  }
}

/* スマホ（タッチデバイス）ではホバーを無効にする */
@media (max-width: 767px), (hover: none) {
  .btn-reservation:hover {
    transform: none;
    box-shadow: 0 8px 20px rgba(252, 96, 118, 0.3);
  }
}


@media (max-width: 768px) {
  .slp-price-label-normal {
    max-width: 200px;
  }
}
