@charset "UTF-8";
/*
    Template: swell
    Theme Name: SWELL CHILD
    Theme URI: https://swell-theme.com/
    Description: SWELLの子テーマ
    Version: 1.0.0
    Author: LOOS WEB STUDIO
    Author URI: https://loos-web-studio.com/

    License: GNU General Public License
    License URI: http://www.gnu.org/licenses/gpl.html
*/

@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&display=swap");

/* カフェからのひとこと：装飾デザイン */
.custom-cafe-message {
  background-color: #f8f9fa; /* 薄いグレー（背景） */
  border-left: 4px solid #007bff; /* 左側のアクセントライン（青） */
  color: #333; /* 文字色 */
  padding: 15px 20px; /* 内側の余白 */
  margin-bottom: 30px; /* 本文との間の余白 */
  font-weight: bold; /* 太字 */
  border-radius: 4px; /* 角を少し丸める */
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); /* 軽い影 */
  position: relative;
}

/* 擬似要素を使って「💡」などのアイコンを添える（エンジニアっぽい工夫） */
.custom-cafe-message::before {
  content: "💡";
  margin-right: 10px;
}

/* 画像も含めたコンテナ全体 */
.custom-cafe-container {
  margin-bottom: 30px;
  text-align: center; /* 中央寄せにしてみる */
}

/* 画像のスタイリング */
.custom-cafe-image img {
  max-width: 100%;
  height: auto;
  border-radius: 8px; /* 角丸 */
  margin-bottom: 10px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

.custom-menu-list {
  background: #fdfaf5;
  padding: 20px;
  border: 1px dashed #d3b59b;
  margin-top: 20px;
}

.custom-menu-list h3 {
  font-size: 1.1rem;
  margin-top: 0;
  color: #5d4037;
  border-bottom: 2px solid #d3b59b;
  display: inline-block;
}

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

.custom-menu-list li {
  display: flex;
  justify-content: space-between; /* メニュー名と価格を両端に */
  padding: 8px 0;
  border-bottom: 1px solid #eee;
}

.original-btn {
  /* デザイン仕様の反映 */
  background-color: #23a6f0;
  color: #ffffff !important; /* テーマの干渉を防ぐ */
  border-radius: 5px;
  padding: 10px 20px; /* 上下10、左右20 */

  /* テキストスタイル */
  font-family: "Montserrat", sans-serif;
  font-weight: 700; /* Bold */
  font-size: 14px;
  line-height: 22px;
  letter-spacing: 0.2px;

  /* ボタンとしての基本設定 */
  display: inline-block;
  text-decoration: none;
  text-align: center;
  transition: opacity 0.3s; /* ホバー時の動き */
  border: none;
  cursor: pointer;
  transition: all 0.3s ease; /* 変化をなめらかにする */
}

.original-btn:hover {
  opacity: 0.8;
  background-color: #1a8ad6; /* 少し濃い青にする */
  transform: translateY(-2px); /* 2pxだけ上に浮かす */
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* 軽い影をつける */
}

/* Heroセクションの土台（修正版） */
.my-hero-section {
  width: 100%;
  min-height: 640px;
  background-size: cover;
  background-position: center;
  position: relative;
  z-index: 1;

  /* 上下のパディングはFigma通りに保持 */
  padding-top: 76px;
  padding-bottom: 10px;

  /* 中央寄せの魔法 */
  display: flex;
  flex-direction: column;
  justify-content: center; /* 垂直方向中央 */
  align-items: center; /* 水平方向中央 */
  text-align: center; /* テキスト自体の中央揃え */
}

/* 黒いオーバーレイ（35%）を背景画像の上に重ねる */
.my-hero-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.35); /* 000000 35% */
  z-index: -1; /* 文字の後ろに配置 */
}

/* テキストエリア（中身）の幅を制限する */
.hero-content-inner {
  padding: 112px 0;
  z-index: 2;
  position: relative;

  /* FigmaのW1440から左右パディング(387+352)を引くと約701px。
       これを最大幅に設定することで、デザインの意図を汲みつつ中央に寄せます。
    */
  max-width: 700px;
  width: 100%;
  margin: 0 auto; /* 念のための中央寄せ */
}

/* タイトルのスタイル */
.hero-title {
  color: #ffffff;
  font-family: "Montserrat", sans-serif;
  font-weight: 700; /* Bold */
  font-size: 58px !important;
  line-height: 80px !important;
  letter-spacing: 0.2px;
  margin-top: 40px !important;
  margin-bottom: 24px !important;
  margin-left: auto;
  margin-right: auto;

  /* --- 見出し装飾を打ち消すための追加（リセット） --- */
  background: none !important; /* 背景を消す */
  border: none !important; /* 枠線や左の線を消す */
  padding: 0 !important; /* テーマが付与した余白を消す */
  text-align: center; /* 中央寄せを維持 */
}

/* SWELLなどのテーマで「::before」などに装飾がある場合も消す */
.hero-title::before,
.hero-title::after {
  content: none !important;
}

/* 説明文のスタイル */
.hero-description {
  color: #ffffff;
  font-family: "Montserrat", sans-serif;
  font-weight: 400; /* Regular */
  font-size: 20px;
  line-height: 30px;
  letter-spacing: 0.2px;

  /* ここが重要：Figmaの横幅を再現 */
  max-width: 530px;
  width: 100%;

  margin-top: 24px; /* 上24 */
  margin-bottom: 24px; /* 下24 */
  margin-left: auto;
  margin-right: auto;
}

/* ボタンの外枠（余白の制御） */
.hero-btn-wrap {
  margin-top: 24px; /* 上24 */
  margin-bottom: 40px; /* 下40 */
  margin-left: auto;
  margin-right: auto;
}

/* 画面幅が768px以下（スマホ・タブレット）になった時の設定 */
@media screen and (max-width: 768px) {
  .my-hero-section {
    /* スマホでは高さを自動調整にし、パディングを上下均等にする */
    min-height: 350px;
    padding-top: 60px;
    padding-bottom: 60px;
    /* 左右のパディングをリセットして、中身を中央に寄せる */
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  .hero-content-inner {
    padding: 0;
    max-width: 100%; /* 横幅いっぱいまで使えるようにする */
  }

  .hero-title {
    /* スマホ用にフォントサイズを下げる */
    font-size: 36px !important;
    line-height: 1.2 !important;

    /* タイトルを「GROSERIES」と「DELIVERY」で改行させやすくする */
    max-width: 300px;
    margin-left: auto;
    margin-right: auto;
    word-wrap: break-word;
  }

  .hero-description {
    /* 説明文も読みやすいサイズに調整 */
    font-size: 16px !important;
    line-height: 1.5 !important;
    max-width: 100%;
    margin-top: 15px;
    margin-bottom: 20px;
  }
}

/* PCでは改行タグを隠す */
.sp-only {
  display: none;
}

/* スマホ(768px以下)では改行タグを表示する */
@media screen and (max-width: 768px) {
  .sp-only {
    display: block;
  }
}

/* 全体のフレーム (W1440 x H814) */
.contact-frame {
  width: 100%;
  min-height: 814px;
  background-color: #f3f3f3; /* 背景色は適宜調整 */
  display: flex;
  justify-content: center;
  padding: 0 195px; /* 左右パディング */
}

/* テキストエリア (W1050) */
.contact-text-container {
  width: 1050px;
  height: 100%;
}

/* 上のテキストエリア (W625 x H134) */
.contact-header {
  width: 625px;
  margin: 0 auto;
  padding-top: 112px; /* 上パディング */
  padding-bottom: 80px; /* カードエリアとの間隔調整 */
  text-align: center;
}

/* カードエリア (W985) */
.card-area {
  display: flex;
  justify-content: center;
  align-items: center; /* 中央のカードを基準に上下を揃える */
  width: 985px;
  margin: 0 auto;
  gap: 0; /* Gapなし */
}

/* 共通のカード設定 */
.contact-card {
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

/* 左右のカード (W327 x H343) */
.side-card {
  width: 327px;
  height: 343px;
  background: #ffffff;
  padding: 30px 0;
}

/* 中央のカード (W329 x H403) */
.center-card {
  width: 329px;
  height: 403px;
  background: #252b42; /* 背景黒 */
  color: #ffffff;
  padding: 0; /* 上下パディングなし */
}

/* ==========================================================================
   カフェメニュー 一覧ページのカテゴリーナビ
   ========================================================================== */

/* カフェメニューページのタイトルヘッダーの下に余白を作る */
.l-mainContent .c-pageTitle {
  margin-bottom: 30px;
}

.p-postList__item .cafe-menu-price {
  margin: 4px 0;
  font-weight: bold;
}

.p-postList__item .cafe-menu-price span {
  font-size: 1.2rem;
  margin-right: 2px;
}

.cafe-menu-nav {
  margin-bottom: 30px;
  text-align: center;
}
.cafe-menu-nav__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.cafe-menu-nav__item a {
  display: block;
  padding: 8px 20px;
  background-color: #f7f7f7; /* ボタンの背景色 */
  color: #333;
  border: 1px solid #e0e0e0;
  border-radius: 20px; /* 丸みのあるボタンに */
  font-size: 0.9rem;
  text-decoration: none;
  transition: all 0.3s ease;
}
/* マウスを乗せたときと、今選ばれているボタンの見た目（SWELLグリーンに変更） */
.cafe-menu-nav__item a:hover,
.cafe-menu-nav__item.is-active a {
  background-color: #28a745; /* SWELLのメイングリーン */
  color: #fff; /* 文字色は白のまま */
  border-color: #28a745; /* 枠線の色もグリーンに */
}

/* ==========================================================================
   カフェメニュー 個別詳細ページ（single-cafe_menu）のスタイル
   ========================================================================== */

/* メニュータイトル */
.cafe-menu-detail-title {
  font-size: 1.4rem !important; /* SWELLのh1スタイルに勝つために!importantをつけておきます */
  padding-bottom: 5px;
}

/* 価格ボックス */
.cafe-menu-detail-price {
  margin-bottom: 25px;
  padding: 10px;
  background: #f7f7f7;
  border-left: 4px solid #28a745; /* あなたが選んだ綺麗なグリーン */
  font-size: 1.2rem;
  font-weight: bold;
}
.cafe-menu-detail-price span {
  font-size: 1.6rem;
  color: #333;
  margin-right: 2px;
}

/* アイキャッチ画像 */
.cafe-menu-detail-thumbnail {
  margin-bottom: 30px;
  text-align: center;
}
.cafe-menu-detail-thumbnail img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}
