/* ============================================
   たねいち産直ふれあい広場 
   ============================================ */

/* --- 1. ベース設定 --- */
:root {
    /* カラーパレット */
    --main-bg: #fdfcf8;
    --text-color: #5a4d3e;
    --accent-color: #7b9c65;
    --accent-hover: #5e7a4c;
    --sub-bg: #f2efe6;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/*pタグやliタグにも直接 Noto Sans JP を指定 */
body, p, li, a, dd, dt, th, td {
    font-family: "Noto Sans JP", sans-serif; 
    color: var(--text-color);
    line-height: 1.8;
    letter-spacing: 0.05em;
}

/* bodyの背景設定（チェック柄） */
body {
    background-color: var(--main-bg);
    background-image: 
        linear-gradient(rgba(200, 180, 160, 0.1) 1px, transparent 1px),
        linear-gradient(90deg, rgba(200, 180, 160, 0.1) 1px, transparent 1px);
    background-size: 40px 40px;
}

/*タイトルやロゴなどは Zen Maru Gothic*/
header, 
footer,
h1, h2, h3, h4, h5, h6,
.logo, 
.section-title,
.card-title,
.btn,
.global-nav a {
    font-family: "Zen Maru Gothic", sans-serif;
}

/* --- 2. ヘッダー --- */
header {
    background-color: #d5e7f3;
    backdrop-filter: blur(5px); /* すりガラス効果いらないかも */
    position: sticky;
    top: 0;
    z-index: 1000;
    border-bottom: 1px solid #e0ddd5;
}

.header-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo {
    font-size: 22px;
    font-weight: bold;
    color: #5a4d3e;
    text-decoration: none;
    margin-left: 2%;
}

.global-nav {
    display: flex;
    gap: 30px;
    list-style: none;
}

.global-nav a {
    color: var(--text-color);
    text-decoration: none;
    font-size: 15px;
    font-weight: bold;
    transition: color 0.3s;
}

.global-nav a:hover {
    color: var(--accent-color);
}

/* ハンバーガーメニュー（モバイル用） */
.menu-toggle {
    display: none;
    background: none;
    border: none;
    flex-direction: column;
    cursor: pointer;
    gap: 6px;
}
.menu-toggle span {
    width: 30px; height: 2px; background-color: var(--text-color);
}

/* --- 3. メインビジュアル --- */
.main-visual {
    /* 写真がないときは仮の色、あれば写真を表示 */
    background-color: var(--sub-bg); 
    background-image: url(../img/main9.png); 
    background-size: cover;
    background-position: center;
    color: #fff;
    text-align: center;
    /* 上下の余白をたっぷりとる */
    padding: 140px 20px;
    margin-bottom: 64px;
    position: relative;
}

/* 写真の上に少し暗いフィルターをかけて文字を読みやすくする */
.main-visual::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.1);
}

.main-visual h1, .main-visual p {
    position: relative; /* フィルターより上に表示 */
    z-index: 1;
    text-shadow: 0 2px 5px rgba(0,0,0,0.3);
}

.main-visual h1 {
    font-size: 3.5rem; /* PCでは大きく */
    margin-bottom: 20px;
    font-weight: 700;
     font-family: "Zen Maru Gothic", sans-serif; /* Googleフォント適用 */
}


/* --- 3. メインビジュアル --- */

/* h1全体の設定：マステ風 */
.main-visual h1 {
    /* マステの色（クリーム色で少し透けさせる） */
    background-color: rgba(255, 253, 230, 0.8);
    
    /* マステの質感を出す */
    background-image: linear-gradient(
        45deg, 
        rgba(255, 255, 255, 0.5) 25%, 
        transparent 25%, 
        transparent 50%, 
        rgba(255, 255, 255, 0.5) 50%, 
        rgba(255, 255, 255, 0.5) 75%, 
        transparent 75%, 
        transparent
    );
    background-size: 4px 4px; /* 目立たない程度の細かい模様 */

    /* 文字の設定 */
    font-size: 3.5rem;
    font-weight: 700;
    color: var(--text-color);
    line-height: 1.4;
    
    /* 配置と余白 */
    display: inline-block; /* 文字の長さに合わせて背景を切る */
    padding: 15px 50px; /* テープの余白（横に長く） */
    margin-bottom: 20px;
    
    /* ★マステっぽさのポイント★ */
    transform: rotate(-2deg); /* 手で貼ったように少し斜めにする */
    box-shadow: 2px 3px 5px rgba(0,0,0,0.15); /* 浮いているような影 */
    border-radius: 2px; /* 角を少しだけ丸く（テープを切った感じ） */
    
    /* 以前の影などをリセット */
    text-shadow: none;
    border: none;
}

/* テープの両端に「ちぎった跡」をつける（擬似要素） */
.main-visual h1::before,
.main-visual h1::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 10px; /* ギザギザの幅 */
    background-size: 10px 20px;
    background-repeat: repeat-y;
}

/* 左側のギザギザ */
.main-visual h1::before {
    left: -5px;
    background-image: radial-gradient(circle, transparent 70%, rgba(255, 253, 230, 0.9) 75%);
}

/* 右側のギザギザ */
.main-visual h1::after {
    right: -5px;
    background-image: radial-gradient(circle, transparent 70%, rgba(255, 253, 230, 0.9) 75%);
}

/* スマホ表示の調整 */
@media (max-width: 768px) {
    .main-visual h1 {
        font-size: 1.8rem;
        padding: 10px 20px; /* スマホでは余白を調整 */
        width: 80%; /* 画面幅の85%くらいの長さに */
        transform: rotate(-2deg); /* 傾きを少し緩やかに */
    }
}

/* --- 施設概要の3枚画像（ポラロイド風） --- */
.about-images {
    display: flex;
    margin-top: 12px;
    justify-content: center; /* 真ん中に寄せる */
    gap: 20px; /* 写真同士の間隔 */
    flex-wrap: wrap; /* スマホなどで狭くなったら折り返す */
}

.about-photo {
    width: 30%; /* 3枚並べるので幅は30%くらい */
    min-width: 140px; /* 小さくなりすぎないように */
    background: #fff; /* 写真の白いフチ */
    padding: 8px 8px 25px 8px; /* 下の余白を多めにしてポラロイド風に */
    box-shadow: 0 4px 10px rgba(0,0,0,0.15); /* 影をつけて浮かせる */
    transition: transform 0.3s;
    
    /* 写真を重ねて貼ったような動きを出す */
    position: relative;
    margin-bottom: 20px;
}

.about-photo img {
    width: 100%;
    height: 140px; /* 正方形っぽくトリミング */
    object-fit: cover; /* 画像が歪まないようにする */
    display: block;
}

/* ★可愛さのポイント：写真をバラバラに傾ける */

/* 1枚目：左に傾ける */
.about-photo:nth-child(1) {
    transform: rotate(-3deg);
    z-index: 1;
}

/* 2枚目：右に傾けて、ちょっと上にズラす */
.about-photo:nth-child(2) {
    transform: rotate(2deg) translateY(-10px);
    z-index: 2;
}

/* 3枚目：左に傾ける */
.about-photo:nth-child(3) {
    transform: rotate(-4deg);
    z-index: 1;
}

/* ホバーしたときに動く */
.about-photo:hover {
    transform: scale(1.1) rotate(0deg); /* 拡大して真っ直ぐに */
    z-index: 10; /* 最前面に持ってくる */
    box-shadow: 0 10px 20px rgba(0,0,0,0.2);
}

/* スマホ表示の調整 */
@media (max-width: 768px) {
    .about-images {
        gap: 10px;
    }
    
    .about-photo {
        width: 45%; /* スマホでは2列（または大きく）表示 */
        min-width: auto;
    }
    
    /* スマホでは3枚目が1個だけ余るので真ん中にする */
    .about-photo:nth-child(3) {
        margin-top: -20px; /* ギュッと寄せる */
    }
}

/* スマホだけbr */

@media (min-width: 768px) {
.br_sp{
        display: none;
    }}



/* --- 4. 共通セクション設定 --- */
.container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
}

.section {
    margin-bottom: 48px; /* セクション間の余白を大きく */
}

.section-title {
    font-size: 28px;
    text-align: center;
    margin-bottom: 32px;
    color: var(--text-color);
    position: relative;
    display: inline-block;
    width: 100%;
}

/* タイトルの装飾（上下に短い線） */
.section-title::before,
.section-title::after {
    content: '';
    display: block;
    width: 40px;
    height: 1px;
    background-color: var(--accent-color);
    margin: 10px auto;
}



/* --- 5. カードデザイン --- */
.card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 40px; /* カード同士の間隔を広げる */
}

.card {
    background: #fff;
    border-radius: 12px; /* 角丸を少し控えめに */
    overflow: hidden;
    /* 影を薄く広げることで浮遊感を出す */
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    transition: transform 0.4s ease, box-shadow 0.4s ease;
    border: 1px solid rgba(0,0,0,0.03); /* 薄い枠線 */
}

.card:hover {
    transform: translateY(-8px);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.1);
}

.card-image {
    width: 100%;
    height: 220px;
    background-color: #eee;
    /* 画像設定の強制上書き */
    background-size: cover !important;
    background-position: center !important;
}

.card-content {
    padding: 25px;
    text-align: center; /* 中身を中央揃えに */
}

.card-title {
    font-size: 18px;
    margin-bottom: 15px;
    color: var(--text-color);
    font-weight: 700;
}

.card-text {
    font-size: 14px;
    color: #888;
    line-height: 1.8;
    margin-bottom: 20px;
    text-align: left; /* 文章は左揃え */
}

/* ボタンのデザイン変更 */
/* 書き換え箇所 */
.btn {
    display: inline-block;
    padding: 8px 24px;
    /* 背景を塗りつぶして目立たせる */
    background-color: #e68a5c; /* オレンジ */
    color: #fff !important; /* 文字は白 */
    text-decoration: none;
    border: none;
    border-radius: 50px;
    font-size: 12px;
    font-weight: bold;
    letter-spacing: 0.1em;
    box-shadow: 0 4px 0 #c46d42; /* 下に厚みを持たせる */
    transition: all 0.2s;
    margin-top: 4px;
    margin-bottom: 4px;
}

.btn:hover {
    background-color: #f09b70;
    transform: translateY(2px); /* 押したときに沈む */
    box-shadow: 0 2px 0 #c46d42; /* 影が減る */
}

/* スマホのボタン調整（既存のスマホエリアに追加・上書き） */
@media (max-width: 768px) {
    .btn {
        padding: 6px 18px;
        font-size: 12px;
        box-shadow: 0 3px 0 #c46d42;
    }
}

/* --- 6. その他（お知らせ・アクセス） --- */
.info-box {
    background-color: #fff;
    border: 1px solid #e0ddd5;
    padding: 40px;
    border-radius: 8px;
    text-align: center;
}

.access-row {
    display: flex;
    flex-wrap: wrap;
    gap: 60px;
    align-items: flex-start;
}
.access-info, .access-map { flex: 1; min-width: 300px; }

/* --- 7. フッター --- */
footer {
    background-color: var(--sub-bg); /* 背景を明るいグレーベージュに */
    color: var(--text-color);
    padding: 60px 20px;
    margin-top: 100px;
}

.footer-container {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 40px;
}

.footer-section h3 {
    font-size: 16px;
    margin-bottom: 20px;
    color: var(--accent-color);
}

.footer-section ul { list-style: none; }
.footer-section li { margin-bottom: 12px; }
.footer-section a {
    color: var(--text-color);
    text-decoration: none;
    font-size: 14px;
}

.footer-bottom {
    text-align: center;
    margin-top: 60px;
    font-size: 12px;
    color: #aaa;
}

/* --- 8. スマホ対応 --- */
@media (max-width: 768px) {
    .menu-toggle { display: flex;
        padding: 0px 0px 0px 14%; }
    .global-nav {
        display: none; /* JSで制御する前提 */
        flex-direction: column;
        background: #fff;
        position: absolute;
        top: 100%; left: 0; right: 0;
        padding: 20px;
        box-shadow: 0 5px 10px rgba(0,0,0,0.1);
    }
    .global-nav.active { display: flex; }
    
    .main-visual h1 { font-size: 26px; }
    .card-grid { gap: 20px; }
    .section-title { font-size: 18px;
    margin-bottom: 20px; }
    .section.container{
        margin-left: 3%;
        margin-right: 3%;
    }
    .section{
        margin-bottom: 30px;
    }
    p{font-size: 14px;}
    li{
        font-size: 12px;
    }
    .logo{
        font-size: 18px;
    }
.section.container.infomation{
padding: 20px !important;
}

    /* スマホでカードを2列に並べる設定 */
    .card-grid {
        grid-template-columns: repeat(2, 1fr); /* 強制的に2列にする */
        gap: 10px; /* カード同士の間隔を狭める */
    }

    /* 2列にするとカードが小さくなるので、中身のサイズ調整 */
    .card-image {
        height: 120px; /* 画像の高さを少し低くしてバランスを取る */
    }

    .card-content {
        padding: 10px; /* 内側の余白を減らす */
    }

    .card-title {
        font-size: 14px; /* タイトルが改行しすぎないよう調整 */
        margin-bottom: 8px;
    }

    .card-text {
        font-size: 12px; /* 説明文を小さく */
        line-height: 1.4; /* 行間を少し詰める */
        margin-bottom: 10px;
    }

    /* ボタン小さく調整 */
    .btn {
        padding: 6px 15px;
        font-size: 11px;
        margin-top: 5px !important;
    }

    .main-visual {        
      padding: 120px 10px;
      background-image: url(../img/main_sp.png); 
     
}
 
}


/*インスタ調整*/
.instagram-media-rendered{
        min-width: 1000px;

    }


@media (max-width: 768px){
   .instagram-media-rendered{
        min-width: 326px !important;
        height: 420px;

    }
}


/* 背景 */
body {
    font-family: "Zen Maru Gothic", sans-serif;
    color: var(--text-color);
    line-height: 1.8;
    letter-spacing: 0.05em;

    /* ベースの色 */
    background-color: #fdfcf8;
    
    /* チェック柄を作る記述 */
    background-image: 
        linear-gradient(rgba(200, 180, 160, 0.1) 1px, transparent 1px),
        linear-gradient(90deg, rgba(200, 180, 160, 0.1) 1px, transparent 1px);
    background-size: 40px 40px; /* マスの大きさ */
}

/* 各セクションの白い背景部分の角を丸くする */
.section.container {
    background-color: #efd8848a; /* 背景は白のまま */
    padding: 50px; /* 少し内側に余裕を持たせる */
    border-radius: 20px; /* 角を丸くする */
    box-shadow: 0 5px 15px rgba(233, 213, 185, 0.3); /* 柔らかい影をつける */
}

@media (max-width: 768px) {
  .section.container{
        padding: 12px;
        border-radius: 15px;
    }}






    /* ============================================
   たねいち産直ふれあい広場 - テナント紹介ページ
   ============================================ */

   /* --- テナント紹介ページ（マップ＆リスト） --- */

/* 全体のレイアウト（左右2カラム） */
.tenant-layout {
    display: flex;
    gap: 40px; /* マップとリストの間隔 */
    align-items: flex-start; /* 上揃え */
    justify-content: space-between;
}

/* --- 左側：マップエリア --- */
.tenant-map-area {
    flex: 1; /* 幅を自動調整 */
    text-align: center;
}

.map-placeholder img {
    border: 2px solid var(--text-color); /* マップを茶色の線で囲む */
    border-radius: 8px;
    box-shadow: 4px 4px 0 rgba(0,0,0,0.1); /* 影をつけてポップに */
    margin-bottom: 20px;
    background-color: #fff;
}


/* --- 右側：リストエリア --- */
.tenant-list-area {
    flex: 1; /* 幅を自動調整 */
}

.list-header {
    border-bottom: 3px solid #8e3e1f; /* 見出しの下に太い茶色の線 */
    margin-bottom: 15px;
    padding-bottom: 5px;
}

.list-header h3 {
    font-size: 18px;
    margin: 0;
    font-family: "Zen Maru Gothic", sans-serif;
}

.list-header .sub-text {
    font-size: 12px;
    font-weight: normal;
    color: var(--accent-hover);
}

/* リストのデザイン */
.tenant-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.tenant-list li {
    display: flex; /* 横並びにする */
    align-items: center;
    padding: 12px 0;
    border-bottom: 2px solid #8e3e1f; /* お手本の画像を意識した太めの線 */
    transition: background-color 0.2s;
}

.tenant-list li:hover {
    background-color: rgba(255, 255, 255, 0.5); /* ホバー時に少し白く光る */
}

/* 店名のリンクデザイン */
.shop-name {
    width: 120px; /* 店名の幅を固定して揃える */
    flex-shrink: 0; /* 幅が縮まないようにする */
    color:var(--accent-color) ;
    font-weight: bold;
    text-decoration: none;
    font-family: "Zen Maru Gothic", sans-serif;
    font-size: 16px;
    position: relative;
}

.shop-name:hover {
    text-decoration: underline;
    color: var(--accent-hover); /* ホバー時はオレンジに */
}

/* 説明文のデザイン */
.shop-desc {
    font-size: 14px;
    color: var(--text-color);
}

/* 注釈 */
.list-note {
    margin-top: 20px;
    font-size: 12px;
    color: #666;
    margin-bottom: 20px;
}

.section.container.tenant-section {
        margin-top: 54px;
    }

/* --- スマホ対応 --- */
@media (max-width: 768px) {
    .tenant-layout {
        flex-direction: column; /* 縦並びにする */
        gap: 30px;
    }

    .tenant-map-area, 
    .tenant-list-area {
        width: 100%;
    }

    /* スマホではリストを見やすく調整 */
    .tenant-list li {
        flex-direction: column; /* 店名と説明を縦に積むか、横のままか */
        align-items: flex-start;
        gap: 5px;
    }
    
    .shop-name {
        width: 100%;
        font-size: 18px; /* 店名を大きくしてタップしやすく */
    }

    .section.container.tenant-section {
        padding: 20px !important;
        margin-top: 32px;
    }
}


 /* ============================================
   たねいち産直ふれあい広場 - 各テナント詳細
   ============================================ */

   /* 1. タイトル周り */
.detail-title {
    font-size: 32px;
    text-align: center;
    color: var(--accent-color); /* 抹茶色 */
    margin: 0 0 30px 0;
    font-weight: 700;
    /* 二重線で強調 */
    border-bottom: 3px double var(--accent-color);
    display: inline-block;
    padding-bottom: 5px;
}
/* タイトルを中央揃えにするための調整 */
.detail-page {
    text-align: center;
}


/* 2. メイン画像 */
.detail-main-img {
   width: 70%;            /* 横幅を画面の70%にする */
    max-width: 800px;      /* 最大でも800pxまで */
    margin: 0 auto 30px;   /* 上下は0と30px、左右は自動（auto）で中央寄せ */
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}
.detail-main-img img {
    width: 100%;
    height: auto;
    display: block;
}

/* 3. 説明文 */
.detail-text {
    text-align: left; /* 文章は左揃え */
    margin-bottom: 40px;
    font-size: 15px;
}
.detail-text p {
    margin-bottom: 15px;
}

/* 4. メニュー表（緑の枠） */
.menu-box {
    text-align: left;
    border: 3px solid var(--accent-color); /* 抹茶色の太枠 */
    background-color: #fff;
    padding: 20px;
    margin-bottom: 40px;
    border-radius: 8px; /* 角を少し丸く */
}

.menu-box-title {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 15px;
    color: var(--text-color);
}

.menu-grid {
    display: flex; /* 横並びにする */
    justify-content: space-between;
    padding: 15px 0;
}

/* 区切り線 */
.menu-grid.border-bottom {
    border-bottom: 1px dashed var(--accent-color); /* 点線で区切る */
}

.menu-grid ul {
    list-style: none;
    width: 24%; /* 4列なので25%弱 */
    padding-left: 10px; /* ちょっとインデント */
}

.menu-grid li {
    font-size: 14px;
    margin-bottom: 5px;
    position: relative;
}

/* リストの頭に小さな・をつける */
.menu-grid li::before {
    content: '・';
    margin-right: 2px;
}

.menu-note {
    text-align: right;
    font-size: 13px;
    margin-top: 10px;
    color: #666;
}

/* 5. サブ画像（3枚並び） */
.detail-sub-images {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 40px;
}

.sub-img-item {
    width: 32%; /* 3等分 */
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.sub-img-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.section .container .detail-page{
    margin-top: 32px;
}

/* --- スマホ対応 (詳細ページ) --- */
@media (max-width: 768px) {
    .detail-title {
        font-size: 24px;
    }
    
    /* メニュー表をスマホで見やすく */
    .menu-grid {
        flex-wrap: wrap; /* 折り返し許可 */
    }
    .menu-grid ul {
        width: 48%; /* 2列にする */
        margin-bottom: 10px;
    }
    
    .detail-sub-images {
        gap: 8px;
    }

    .detail-main-img {
   width: 90%;          
}
}

/* 天ぷら屋メニュー用の微調整 */

/* メニュー全体の枠調整 */
.menu-box.tenpura-menu {
    padding: 30px;
    background: #fff;
    border: 3px solid #7b9c65; /* 抹茶色の枠 */
    border-radius: 8px;
}

/* カテゴリごとの区切り */
.menu-section {
    margin-bottom: 40px;
    border-bottom: 1px dashed #ccc;
    padding-bottom: 32px;
}
.menu-section:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

/* カテゴリタイトル */
.menu-category-title {
    font-size: 20px;
    color: #5a4d3e;
    margin-bottom: 20px; 
    padding-left: 10px;
    border-left: 5px solid #e68a5c;
    font-weight: bold;
}

/* 商品リスト（グリッド表示） */
.menu-grid-list {
    display: grid;
    /* 自動で列を作る（最低幅150px確保） */
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 25px 20px; 
    list-style: none;
    padding: 0;
    margin: 0;
}

/* 商品ごとのスタイル */
.menu-grid-list li {
    font-size: 15px;
    display: flex;
    align-items: baseline; /* 文字のベースラインで揃える */
    /* 左右に広げず、左寄せにする */
    justify-content: flex-start; 
    border-bottom: 1px solid #f2efe6;
    padding-bottom: 4px;
}

.menu-grid-list li span {
    font-weight: bold;
    color: #e68a5c;
    margin-left: 10px; 
    /* 値段が改行されないようにする */
    white-space: nowrap; 
}


/* 焼き鳥用の幅広設定 */
.menu-grid-list.wide-type {
    /* 焼き鳥は名前が長いので列の幅を広めに確保 */
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}

/* ドーナツ用のリスト */
.menu-desc { font-size: 14px; margin-bottom: 15px; }
.menu-simple-list { list-style: none; padding: 0; }
.menu-simple-list li {
    font-size: 15px; 
    margin-bottom: 15px; 
    border-bottom: 1px solid #eee;
    display: inline-block;
    padding-right: 20px;
}
.menu-simple-list li span { 
    font-weight: bold;
    color: #e68a5c; 
    margin-left: 15px; /* 名前と値段の間隔 */
}

/* 注釈 */
.menu-note {
    font-size: 12px;
    color: #888;
    text-align: right;
    margin-top: 10px;
}

/* スマホ用の調整 */
@media (max-width: 768px) {
    .menu-box.tenpura-menu { padding: 15px; }
    
    .menu-grid-list {
        grid-template-columns: 1fr; /* スマホでは1列にして読みやすく */
        gap: 15px; /* 縦の間隔 */
    }
    
    .menu-grid-list li {
        font-size: 14px;
    }
}

/* --- 食の館（食堂）専用スタイル --- */

/* 1. 枠のデザイン */
.menu-box.syokudo-menu {
    padding: 30px;
    background: #fff;
    border: 3px solid #7b9c65;
    border-radius: 8px;
}

/* 2. 麺類・ご飯物メニュー（横4列） */
.menu-grid-list.four-columns {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px 10px; 
}

/* 3. お得セットメニュー */
.menu-grid-list.set-menu-list {
    display: grid; /* グリッドレイアウトに変更 */
    grid-template-columns: repeat(2, 1fr); /* PCでは横2列 */
    gap: 15px 40px; /* 縦の隙間15px、横の隙間40px */
}

.menu-grid-list.set-menu-list li {
    display: flex;
    flex-wrap: wrap; 
    align-items: baseline;
    border-bottom: 1px solid #eee;
    padding-bottom: 5px;
}

/* セットメニュー内の文字色設定 */
.menu-grid-list.set-menu-list li span {
    color: var(--text-color); /* 茶色 */
    font-weight: normal;      /* 細字 */
    margin: 0;
}

/* 値段だけオレンジ太字 */
.menu-grid-list.set-menu-list li span.set-price {
    color: #e68a5c;
    font-weight: bold;
    margin-left: 10px;
}

/* セット名 */
.set-name { margin-right: 10px; }

/* セット内容 */
.set-content {
    font-size: 14px;
    margin-right: auto;
}


/* 4. 写真2枚の調整 */
.detail-sub-images.two-images {
    justify-content: center;
    gap: 30px;
}
.detail-sub-images.two-images .sub-img-item {
    width: 48%;
    max-width: 400px;
}


/* 5. スマホ対応 */
@media (max-width: 768px) {
    .menu-box.syokudo-menu { padding: 15px; }

    /* 麺類：スマホでは2列 */
    .menu-grid-list.four-columns {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }
    .menu-grid-list.four-columns li {
        font-size: 13px;
        flex-direction: column;
        align-items: flex-start;
    }
    .menu-grid-list.four-columns li span {
        margin-left: 0;
        font-size: 12px;
    }

    /* セットメニュー：スマホでは1列に戻す */
    .menu-grid-list.set-menu-list {
        grid-template-columns: 1fr; /* 1列 */
        gap: 15px;
    }

    .set-content {
        width: 100%; 
        font-size: 12px;
        margin-top: 2px;
    }
    
    /* 写真のスマホ対応 */
    .detail-sub-images.two-images {
        flex-direction: column;
        align-items: center;
    }
    .detail-sub-images.two-images .sub-img-item {
        width: 100%;
    }
}

/* --- HIRONO GELATO 専用スタイル --- */

/* 1. 営業情報の枠（本文中） */
.shop-info-box {
    background-color: #fdfcf8;
    border: 2px dashed #b9cfab; /* ステッチ風の枠 */
    padding: 20px;
    margin: 20px 0;
    text-align: center;
    border-radius: 8px;
}
.shop-info-box p { margin-bottom: 5px; }
.shop-info-box .note { font-size: 13px; color: #e68a5c; font-weight: bold; }


/* 2. メニュー枠のデザイン */
.menu-box.gelato-menu {
    padding: 30px;
    background: #fff;
    border: 3px solid #7b9c65;
    border-radius: 8px;
}

/* 3. サイズ・値段リスト */
.menu-grid-list.price-row {
    display: flex;
    justify-content: center; /* 中央寄せ */
    gap: 30px; /* 間隔 */
    flex-wrap: wrap;
}

.menu-grid-list.price-row li {
    font-size: 18px; /* 少し大きめに */
    border-bottom: 2px solid #f2efe6;
    padding-bottom: 5px;
}

.menu-grid-list.price-row li span {
    color: #e68a5c;
    font-weight: bold;
    font-size: 20px; /* 値段を強調 */
    margin-left: 10px;
}


/* 4. フレーバーリスト */
.menu-grid-list.flavor-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* PCでは2列 */
    gap: 15px 30px;
}

.menu-grid-list.flavor-list li {
    background-color: #f9f9f9; /* 薄い背景をつけて可愛く */
    padding: 10px 15px;
    border-radius: 30px; /* 丸っこくする */
    text-align: center;
    font-weight: bold;
    color: #5a4d3e;
}


/* 5. スマホ対応 */
@media (max-width: 768px) {
    .menu-box.gelato-menu { padding: 15px; }

    /* 値段リスト：スマホでは縦並びか、狭めて横並びか */
    .menu-grid-list.price-row {
        gap: 15px;
        flex-direction: column; /* 縦に積む */
        align-items: center;
    }

    /* フレーバーリスト：スマホでは1列 */
    .menu-grid-list.flavor-list {
        grid-template-columns: 1fr;
        gap: 10px;
    }
}


/* --- おばちゃん店 専用スタイル --- */

/* 1. 枠のデザイン */
.menu-box.ohukuro-menu {
    padding: 30px;
    background: #fff;
    border: 3px solid #7b9c65;
    border-radius: 8px;
}

/* 2. リスト（2列表示） */
.menu-grid-list.two-columns {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* PCでは2列 */
    gap: 15px 40px; /* 縦・横の隙間 */
    list-style: none;
    margin: 0;
    padding: 0;
}

.menu-grid-list.two-columns li {
    display: flex;
    justify-content: space-between; /* 名前と値段を離す */
    border-bottom: 1px solid #f2efe6;
    padding-bottom: 5px;
    font-size: 15px;
}

.menu-grid-list.two-columns li span {
    font-weight: bold;
    color: #e68a5c; /* 値段はオレンジ */
    margin-left: 10px;
}

/* 3. 揚げ玉サービスの強調エリア */
.service-info {
    margin-top: 20px;
    padding: 10px;
    background-color: #fff8e1; /* 薄い黄色 */
    border: 1px dashed #e68a5c; /* オレンジの点線 */
    text-align: center;
    border-radius: 5px;
    font-weight: bold;
    color: #5a4d3e;
}


/* 4. スマホ対応 */
@media (max-width: 768px) {
    .menu-box.ohukuro-menu { padding: 15px; }

    /* スマホでは1列にする */
    .menu-grid-list.two-columns {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .menu-grid-list.two-columns li {
        font-size: 14px;
    }
}

/* --- どんぐり（雑貨店）専用スタイル --- */

/* 1. 営業情報の枠（ジェラート店と同じですが、念のため記述） */
.shop-info-box {
    background-color: #fdfcf8;
    border: 2px dashed #b9cfab;
    padding: 20px;
    margin: 20px 0;
    text-align: center;
    border-radius: 8px;
}
.shop-info-box p { margin-bottom: 5px; }


/* 2. 枠のデザイン */
.menu-box.donguri-menu {
    padding: 30px;
    background: #fff;
    border: 3px solid #7b9c65;
    border-radius: 8px;
}

/* 3. 商品リスト */
.menu-grid-list.donguri-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* 2列表示 */
    gap: 15px 40px;
    list-style: none;
    margin-bottom: 30px;
}

.menu-grid-list.donguri-list li {
    font-size: 16px;
    padding-bottom: 8px;
    border-bottom: 1px dashed #ccc; /* 点線で優しく区切る */
    position: relative;
    padding-left: 20px; /* アイコン分の隙間 */
}

/* リストの頭に丸をつける */
.menu-grid-list.donguri-list li::before {
    content: '●';
    color: #7b9c65; /* 抹茶色 */
    position: absolute;
    left: 0;
    top: 0;
    font-size: 14px;
}

/* 4. 注釈ボックス */
.donguri-note-box {
    background-color: #f9f9f9;
    padding: 15px;
    border-radius: 8px;
    text-align: center;
}

.donguri-note-box p {
    font-size: 14px;
    margin-bottom: 5px;
}

.donguri-note-box .highlight {
    color: #e68a5c; /* オレンジ */
    font-weight: bold;
    font-size: 16px; /* 少し大きく */
}


/* 5. スマホ対応 */
@media (max-width: 768px) {
    .menu-box.donguri-menu { padding: 15px; }

    /* スマホでは1列 */
    .menu-grid-list.donguri-list {
        grid-template-columns: 1fr;
        gap: 10px;
    }
}

/* --- 喫茶ふれあい 専用スタイル --- */

/* 1. 本文中の強調表示 */
.highlight-text {
    color: #e68a5c; /* オレンジ */
    font-weight: bold;
    font-size: 1.1em;
    background: linear-gradient(transparent 70%, #fff8e1 70%); /* 下線マーカー風 */
}

/* 2. 枠のデザイン */
.menu-box.kissa-menu {
    padding: 30px;
    background: #fff;
    border: 3px solid #7b9c65;
    border-radius: 8px;
}

/* 3. メニューリスト（2列・3列の使い分け） */
.menu-grid-list.two-columns {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px 40px;
}

.menu-grid-list.three-columns {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* ドリンクは3列でコンパクトに */
    gap: 10px 20px;
}

/* リストアイテムの共通スタイル */
.menu-grid-list li {
    display: flex;
    justify-content: space-between;
    border-bottom: 1px solid #f2efe6;
    padding-bottom: 2px;
    font-size: 15px;
}
.menu-grid-list li span {
    color: #e68a5c;
    font-weight: bold;
    margin-left: 10px;
}

/* 4. ランチの補足情報（黄色い背景） */
.menu-desc.highlight-bg {
    background-color: #fff8e1;
    padding: 10px;
    border-radius: 5px;
    font-size: 14px;
    margin-bottom: 20px;
}

/* 5. ケーキセットの特別枠 */
.special-menu-item {
    background-color: #fdfcf8;
    border: 2px solid #e68a5c; /* オレンジ枠 */
    padding: 15px;
    border-radius: 8px;
}

.special-name {
    font-size: 18px;
    font-weight: bold;
    color: #5a4d3e;
    margin-bottom: 5px;
    border-bottom: 1px dashed #ccc;
    padding-bottom: 5px;
    display: flex;
    justify-content: space-between;
}
.special-name span { color: #e68a5c; }

.special-desc {
    font-size: 13px;
    line-height: 1.6;
}


/* 6. スマホ対応 */
@media (max-width: 768px) {
    .menu-box.kissa-menu { padding: 15px; }

    /* リストを全て1列に */
    .menu-grid-list.two-columns,
    .menu-grid-list.three-columns {
        grid-template-columns: 1fr;
        gap: 10px;
    }
}

/* --- ニシヤマ（青果・惣菜）専用スタイル --- */

/* 1. 売り切れ注意ボックス（赤っぽい枠で注意喚起） */
.shop-info-box.alert-box {
    background-color: #fffafaf0; /* ほんのり赤白 */
    border: 2px dashed #e68a5c; /* オレンジの点線 */
    color: #5a4d3e;
}
.highlight-alert {
    color: #d9534f; /* 赤文字 */
    font-weight: bold;
    font-size: 1.1em;
    border-bottom: 1px solid #d9534f;
    display: inline-block;
    padding-bottom: 2px;
}


/* 2. 枠のデザイン */
.menu-box.nishiyama-menu {
    padding: 30px;
    background: #fff;
    border: 3px solid #7b9c65;
    border-radius: 8px;
}

/* 3. 唐揚げプッシュエリア */
.karaage-section {
    background-color: #fff8e1; /* 薄い黄色背景 */
    border: 2px solid #e68a5c; /* オレンジ枠 */
    border-radius: 8px;
    padding: 20px;
    text-align: center;
    margin-bottom: 30px;
    box-shadow: 0 3px 6px rgba(0,0,0,0.05);
}

.karaage-title {
    color: #e68a5c; /* オレンジ文字 */
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 10px;
}

/* 4. シンプルな商品リスト */
.menu-grid-list.simple-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center; /* 中央揃えで見やすく */
}

.menu-grid-list.simple-list li {
    font-size: 18px;
    font-weight: bold;
    border-bottom: 1px dashed #ccc;
    padding-bottom: 5px;
    width: 100%;
    max-width: 400px; /* 横に広がりすぎないように */
    text-align: center;
}

/* 5. 注釈ボックス */
.menu-note-box {
    margin-top: 30px;
    text-align: center;
    font-weight: bold;
    color: #5a4d3e;
    background: #f2efe6;
    padding: 15px;
    border-radius: 30px; /* 吹き出しっぽく丸く */
}


/* 6. スマホ対応 */
@media (max-width: 768px) {
    .menu-box.nishiyama-menu { padding: 15px; }

    .karaage-title { font-size: 16px; }
    
    .menu-grid-list.simple-list li {
        font-size: 15px;
    }
}

/* --- 丸魚（鮮魚店）専用スタイル --- */

/* 1. 本文中の強調（炭火焼など） */
.highlight-fish {
    background: linear-gradient(transparent 70%, #b3e5fc 70%); /* 水色のマーカー */
    font-weight: bold;
}

/* 2. 発送情報のボックス（海っぽい水色） */
.shop-info-box.shipping-box {
    background-color: #e1f5fe; /* 薄い水色 */
    border: 2px dashed #29b6f6; /* 濃い水色の点線 */
    color: #01579b; /* 濃い青文字 */
}

.shipping-title {
    font-weight: bold;
    font-size: 1.1em;
    margin-bottom: 5px;
}


/* 3. 枠のデザイン */
.menu-box.maruuo-menu {
    padding: 30px;
    background: #fff;
    border: 3px solid #7b9c65; /* 共通の抹茶色枠 */
    border-radius: 8px;
}

/* 4. 魚リスト（グリッド表示） */
.menu-grid-list.fish-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* PCでは3列 */
    gap: 15px 20px;
    list-style: none;
    margin-bottom: 30px;
}

.menu-grid-list.fish-list li {
    font-size: 16px;
    font-weight: bold;
    text-align: center;
    border: 1px solid #b3e5fc; /* 薄い水色の枠で囲む */
    background-color: #fafafe;
    padding: 10px;
    border-radius: 4px;
    color: #5a4d3e;
}

/* 5. 注釈ボックス（魚バージョン） */
.menu-note-box.fish-note {
    background-color: #f2efe6;
    padding: 20px;
    border-radius: 8px;
    text-align: center;
}
.menu-note-box.fish-note p {
    margin-bottom: 10px;
}
.contact-note {
    font-weight: bold;
    color: #e68a5c; /* 問い合わせはオレンジで目立たせる */
}


/* 6. スマホ対応 */
@media (max-width: 768px) {
    .menu-box.maruuo-menu { padding: 15px; }

    /* スマホでは2列にして見やすく */
    .menu-grid-list.fish-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 10px;
    }
}

/* --- 観光・名所ページ専用スタイル --- */

/* グリッドレイアウト */
.spot-grid {
    display: grid;
    /* PCでは2列（または3列）にして見やすく */
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 40px;
}

/* カードデザイン */
.spot-card {
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    /* ふんわり浮かせる */
    box-shadow: 0 5px 15px rgba(0,0,0,0.05);
    border: 1px solid #eee;
    display: flex;
    flex-direction: column;
}

/* 画像エリア */
.spot-img {
    width: 100%;
    height: 220px;
    position: relative; /* 番号を重ねるための基準 */
    overflow: hidden;
}

.spot-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s;
}

/* ホバー時に画像を少しズーム */
.spot-card:hover .spot-img img {
    transform: scale(1.05);
}

/* 番号バッジ（①などを可愛く） */
.spot-number {
    position: absolute;
    top: 10px;
    left: 10px;
    background-color: #e68a5c; /* オレンジ */
    color: #fff;
    font-family: "Zen Maru Gothic", sans-serif;
    font-weight: bold;
    font-size: 18px;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%; /* 丸くする */
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    border: 2px solid #fff; /* 白いフチをつける */
}

/* テキストエリア */
.spot-content {
    padding: 25px;
}

.spot-title {
    font-size: 20px;
    color: #7b9c65; /* 抹茶色 */
    margin-bottom: 15px;
    border-bottom: 2px dashed #b9cfab;
    padding-bottom: 5px;
    display: inline-block;
}

.spot-desc {
    font-size: 14px;
    line-height: 1.8;
    color: #666;
}

/* マップ画像エリア */
.kankou-map-area {
    margin-bottom: 40px;
    text-align: center;
}
.kankou-map-area img {
    max-width: 100%;
    border-radius: 8px;
    border: 4px solid #fff;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

/* スマホ対応 */
@media (max-width: 768px) {
    .spot-grid {
        grid-template-columns: 1fr; /* 1列 */
        gap: 30px;
    }

    .spot-img {
        height: 180px;
    }
}

/* --- お問い合わせページ専用スタイル --- */

/* フォーム全体を囲むエリア */
.contact-wrapper {
    max-width: 800px; /* 横幅を広げすぎない */
    margin: 0 auto;
}

/* 説明文 */
.contact-desc {
    text-align: center;
    margin-bottom: 40px;
}
.required-note {
    font-size: 13px;
    color: #e68a5c; /* オレンジ */
    font-weight: bold;
}

/* フォームのデザイン */
.contact-form {
    background-color: #fff;
    padding: 40px;
    border-radius: 20px;
    border: 3px solid #b9cfab; /* 薄い抹茶色の枠 */
}

/* ひとつの入力項目の塊 */
.form-item {
    margin-bottom: 30px;
}

/* ラベル（項目名） */
.form-label {
    display: block;
    font-weight: bold;
    color: #5a4d3e; /* 茶色 */
    margin-bottom: 10px;
    font-family: "Zen Maru Gothic", sans-serif;
}

/* 必須マーク（※） */
.required {
    color: #e68a5c; /* オレンジ */
    margin-left: 5px;
    font-size: 14px;
}

/* 入力欄（テキスト・メール）共通 */
.form-input,
.form-textarea {
    width: 100%; /* 横幅いっぱい */
    padding: 15px;
    border: 2px solid #e0ddd5; /* 薄いグレーの線 */
    border-radius: 8px; /* 角丸 */
    font-size: 16px;
    background-color: #fdfcf8;
    transition: all 0.3s;
    font-family: "Noto Sans JP", sans-serif; /* 入力文字は読みやすく */
}

/* 入力しようとした時（フォーカス時）のデザイン */
.form-input:focus,
.form-textarea:focus {
    outline: none;
    border-color: #7b9c65; /* 抹茶色になる */
    background-color: #fff;
    box-shadow: 0 0 0 3px rgba(123, 156, 101, 0.2); /* ふわっと光る */
}

/* プレースホルダー（例：〜）の色 */
::placeholder {
    color: #bbb;
}

/* 送信ボタンエリア */
.form-submit {
    text-align: center;
    margin-top: 40px;
}

/* 送信ボタン（共通btnを少し大きく） */
.submit-btn {
    width: 200px;
    padding: 12px;
    font-size: 16px;
    border: none;
    cursor: pointer;
}


/* スマホ対応 */
@media (max-width: 768px) {
    .contact-form {
        padding: 20px; /* 余白を狭く */
    }
    
    .form-input,
    .form-textarea {
        padding: 12px;
        font-size: 15px;
    }

    .submit-btn {
        width: 100%; /* スマホではボタンを押しやすく幅一杯に */
    }
}


/* --- アクセスページ専用スタイル --- */

/* 1. マップ埋め込みエリア */
.map-wrapper {
    border: 4px solid #fff;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
    border-radius: 8px;
    overflow: hidden;
}

.map-link-btn {
    background-color: #5a4d3e; /* 地図ボタンは落ち着いた茶色で */
    box-shadow: 0 3px 0 #3e352a;
}
.map-link-btn:hover {
    background-color: #736350;
    box-shadow: 0 1px 0 #3e352a;
}

/* 2. 目印の看板エリア */
.landmark-area {
    text-align: center;
    margin-bottom: 50px;
}

.landmark-text {
    font-size: 18px;
    color: #e68a5c; /* オレンジ */
    font-weight: bold;
    margin-bottom: 10px;
    font-family: "Zen Maru Gothic", sans-serif;
}

.landmark-img {
    display: inline-block;
    padding: 10px;
    background: #fff;
    border: 1px solid #ddd;
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
    transform: rotate(2deg); /* 写真を少し傾けて可愛く */
    max-width: 400px;
    width: 100%;
}
.landmark-img img {
    width: 100%;
    height: auto;
    display: block;
}

/* 3. 交通案内グリッド（左右2列） */
.transport-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* PCでは2列 */
    gap: 40px;
}

/* 案内ボックス */
.transport-box {
    background: #fff;
    border: 2px dashed #b9cfab; /* 緑の点線枠 */
    border-radius: 12px;
    padding: 30px;
}

/* タイトル（列車・お車） */
.transport-title {
    font-size: 20px;
    color: #7b9c65; /* 抹茶色 */
    border-bottom: 2px solid #f2efe6;
    padding-bottom: 10px;
    margin-bottom: 20px;
    font-weight: bold;
    display: flex;
    align-items: center;
}

/* アイコン装飾（擬似要素で文字の前に丸をつける） */
.transport-title::before {
    content: '';
    display: inline-block;
    width: 12px;
    height: 12px;
    background-color: #e68a5c;
    border-radius: 50%;
    margin-right: 10px;
}

/* 経路リスト */
.transport-list {
    list-style: none;
}

.transport-list li {
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px dashed #eee;
    font-size: 15px;
    line-height: 1.8;
}
.transport-list li:last-child {
    border-bottom: none;
    margin-bottom: 0;
}

/* 経路名（八戸方面から、など） */
.route-name {
    display: block;
    font-weight: bold;
    color: #5a4d3e;
    margin-bottom: 5px;
    font-size: 16px;
}

/* 矢印（⇒） */
.arrow {
    color: #e68a5c; /* オレンジ */
    font-weight: bold;
    margin: 0 5px;
}

/* 注釈・時間 */
.note { font-size: 13px; color: #888; }
.time { font-weight: bold; color: #e68a5c; margin-left: 5px; font-size: 0.8rem;}


/* 4. スマホ対応 */
@media (max-width: 768px) {
    /* 交通案内を縦並びに */
    .transport-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }
    
    .transport-box {
        padding: 20px;
    }
    
    /* 看板画像の傾きを少し戻す */
    .landmark-img {
        transform: rotate(0deg);
        max-width: 100%;
    }
}