main h1{color:#804000;display:inline-block;font-size:30px;letter-spacing:.02em;line-break:strict;line-height:1.3;margin:50px 0;overflow-wrap:break-word;position:relative;text-align:center;width:100%;word-break:auto-phrase;}
main h1:before{border-bottom:solid 1px #804000;border-top:solid 1px #804000;content:"";display:inline-block;height:5px;left:26%;position:absolute;top:50%;width:7vw;}
main h1:after{border-bottom:solid 1px #804000;border-top:solid 1px #804000;content:"";display:inline-block;height:5px;position:absolute;right:26%;top:50%;width:7vw;}
@media (max-width: 767px) {
  main h1:before,main h1:after{border:none;}
}


/* ==========================================================================
   1. グリッドレイアウト設定（親要素）
   ========================================================================== */
[id^="menu-"]:not([id$="-container"]){align-items:stretch;display:grid !important;gap:30px 20px;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));margin-bottom:15svh;margin-inline:auto;padding:0;width:98%;max-width:1480px;}
.sub-category-title{color:#c00;font-size:2em;margin-bottom:20px;margin-top:35px;padding-bottom:10px;position:relative;text-align:center;}
.sub-category-title::after{background-color:#804000;border-radius:2px;content:"";display:block;height:3px;margin:8px auto 0;width:60px;}


/* ==========================================================================
   2. カード本体 (.c-menu-card に統一)
   ========================================================================== */
.c-menu-card{background:#fff;border:1px solid #ccc;box-shadow:0 5px 5px rgba(0,0,0,.1);display:flex;flex-direction:column;height:100%;position:relative;text-align:center;}


/* ==========================================================================
   3. 画像エリア
   ========================================================================== */
.c-menu-card__img-wrapper{aspect-ratio:1 / 1;flex-shrink:0;overflow:hidden;position:relative;}

/* パスタ、スイーツ、コーヒーは4:3にする */
:is(#menu-pasta-container,#menu-lunch-pasta-container, #menu-sweets-container, #menu-drink-container) .c-menu-card__img-wrapper{aspect-ratio:4 / 3;}
.c-menu-card__img{height:100%;object-fit:cover;width:100%;}


/* ==========================================================================
   4. ボディ・テキストエリア
   ========================================================================== */
.c-menu-card__body{display:flex;flex-direction:column;flex-grow:1;font-weight:600;line-height:1.6;padding:10px;}
.c-menu-card__title{align-items:start;display:flex;font-size:1.4em;justify-content:center;line-height:1.2!important;margin:10px 0;min-height:2.8em;overflow-wrap:break-word;padding:0 !important;word-break:auto-phrase;}
.c-menu-card__info-area{display:flex;flex-direction:column;justify-content:start;}
.c-menu-card__desc{font-size:1.2em;font-weight:500;line-height:1.3;margin:.8em 0;min-height:3.7em;text-align:left;}
.c-menu-card__pizza-category{border:solid 1px #333;color:#333;margin-inline:auto;padding:2px 6px;width:100%;}
.c-menu-card__period{background-color:#f5f5f5;border:1px solid #ccc;display:block;margin:1em 0;padding:.5em 0;}
.c-menu-card__comment{color:#804000;margin-top:10px;min-height:2.5em;}


/* ==========================================================================
   5. フッター（価格・注釈）
   ========================================================================== */

.c-menu-card__price-num { color: #c00; font-size: 1.7em; font-weight: bold; }
.c-menu-card__price-tax { font-size: 1.4rem; }
.c-menu-card__note { color: #804000;font-size: 1.1em; font-weight: bold; min-height: 1.5em; margin-top: 1em; }
#menu-coffee .c-menu-card__note { min-height: 4.5em; }

/* ピザコンテナ内だけ価格を非表示にする設定 */
#menu-pizza-container .c-menu-card__price { display: none; }

/* ==========================================================================
   6. バッジ類
   ========================================================================== */
.c-menu-card__badge-top,.c-menu-card__badge-right-top,.c-menu-card__badge-ranking,.c-menu-card__badge-takeout{position:absolute;top:5px;width:20%;z-index:2;}
.c-menu-card__badge-top,.c-menu-card__badge-ranking{left:5px;}
.c-menu-card__badge-right-top{right:5px;}
.c-menu-card__badge-takeout{left:5px;}

/* --- スイーツセット案内 (c-sweets-set) --- */
.c-sweets-set{background:#fff;border:1px solid #ccc;box-shadow:2px 2px 8px rgba(0, 0, 0, .05);box-sizing:border-box;font-weight:600;margin:0 auto 15svh;padding:30px;width:100%;width:80%;}


/* ヘッダー部分 */
.c-sweets-set__header{border-bottom:2px solid #852;margin-bottom:20px;padding-bottom:10px;}
.c-sweets-set__title{color:#4b2c20;display:inline-block;font-size:1.7em;font-weight:bold;margin:0 15px 0 0;vertical-align:middle;}
.c-sweets-set__lead{color:#d7141a;display:inline-block;font-size:1.3em;font-weight:bold;margin:0;vertical-align:middle;}

/* ドリンクリスト */
.c-sweets-set__list{display:grid;gap:8px 24px;grid-template-columns:repeat(auto-fill, minmax(280px, 1fr));list-style:none;margin:0;padding:0;}
.c-sweets-set__list li{align-items:flex-start;border-bottom:1px dashed #eee;color:#333;display:flex;font-size:1.3em;line-height:1.5;padding:10px 0;}

/* 記号部分 */
.c-sweets-set__list li span{color:#852;flex-shrink:0;font-size:1.2rem;margin-right:10px;margin-top:2px;}

/* --- レスポンシブ (Mobile) --- */
@media (max-width: 767px) {
.c-sweets-set{padding:20px 15px;width:98%;}
.c-sweets-set__header{text-align:center;}
.c-sweets-set__title,.c-sweets-set__lead{display:block;margin-bottom:5px;margin-right:0;}
.c-sweets-set__list{grid-template-columns:1fr;}
.c-sweets-set__list li{font-size:1.4rem;padding:8px 0;}
}

/* コーヒーコンテナ内だけテイクアウトを右にする */
#menu-drink-container .c-menu-card__badge-takeout{left:auto;right:5px !important;}

/* 重なり調整 */
.c-menu-card__badge-top+.c-menu-card__badge-takeout{top:95px;}
#menu-coffee .c-menu-card__badge-top+.c-menu-card__badge-takeout{top:5px;}
.c-menu-card__badge-top+.c-menu-card__badge-ranking{top:55px;}

/* コーヒー補足情報の統合カード */
.c-coffee-extra{background:#fff;border:1px solid #ccc;box-shadow:2px 2px 8px rgba(0,0,0,.05);box-sizing:border-box;margin-bottom:40px;padding:30px;width:100%;}


/* 内部の各セクション */
.c-coffee-extra__section{font-weight:bold;width:100%;}

/* タイトルと価格の横並び配置 */
.c-coffee-extra__title{color:#4b2c20;display:inline-block;font-size:1.7em;margin-bottom:10px;margin-right:15px;}
.c-coffee-extra__price{color:#c00;display:inline-block;font-size:1.7em;}
.c-coffee-extra__price span{color:#666;font-size:1.3rem;margin-left:5px;}


/* 日替わりリスト */
.c-coffee-extra__list{display:grid;gap:10px;grid-template-columns:repeat(auto-fill, minmax(250px, 1fr));list-style:none;margin:0 0 20px;padding:20px 0;}
.c-coffee-extra__list li{border-bottom:1px dashed #ddd;font-size:1.3em;line-height:2;padding:5px 0;}
.c-coffee-extra__list li span{color:#804000;display:inline-block;width:100px;}

/* 注意書き */
.c-coffee-extra__alert{color:#d7141a;font-size:1.2em;}


/* ==========================================================================
   7. レイアウト高さ調整
   ========================================================================== */

/*トッピング*/
@media (max-width: 767px) {
 .c-menu-card__title,.c-menu-card__desc {margin:.5em 0!important;min-height:auto!important;}
}

/*ソース種類不要*/
:is(#menu-drink-container,#side-menu-container,#menu-sweets-container,#menu-ice-cream-container) .c-menu-card__sauce {display: none;}
#menu-pizza-container{
 .c-menu-card__note{margin-top: 0;}
}
#menu-index,#menu-lunch-pizza,#menu-basic{
 .c-menu-card__title{min-height:2.4em;}
.c-menu-card__desc{min-height:5.5em;text-indent: -0.5em;}
}

#menu-variety,#menu-deluxe,#menu-dessert{
 .c-menu-card__title{min-height:auto;}
}

#menu-drink-container{
 .c-menu-card__title{min-height:2.4em;}
 .c-menu-card__desc {margin: 0;}
}
#menu-soft-drink .c-menu-card__desc{min-height: 2.5em;}
#menu-salad{
 .c-menu-card__desc {margin: 0;min-height:10em;}
}
#menu-other{
 .c-menu-card__title{min-height:2.4em;}
 .c-menu-card__desc {margin: 0;min-height:4.6em;}
}
#menu-sweets,#menu-ice-cream{
 .c-menu-card__title{min-height:auto;}
 .c-menu-card__desc {margin: 0;min-height:3em;}
}

/* ==========================================================================
   8. ソースの色
   ========================================================================== */
.src-orange {color: #ffa500 !important; }
.src-tomato {color: #ff6347 !important; }
.src-brown {color: #934B02 !important; }
.src-deep-orange {color: #d2691e !important; }
.src-red {color: #d40000 !important; }
.src-green {color: #2e8b57 !important; }
.src-gray {color: #999999 !important; }

/* スマホ対応 */
@media (max-width: 767px) {
.c-coffee-extra{padding:20px 15px;}
.c-coffee-extra__title,.c-coffee-extra__price{display:block;margin-bottom:5px;}
.c-coffee-extra__list li span{width:120px;}
}

/* 紅茶、ホットはポットで出てくる */
.c-menu-notice{border:2px solid #d7141a;font-size:1.5em;font-weight:bold;margin:-10px auto 30px;margin-inline:auto;max-width:800px;padding:20px;text-align:center;}

/* --- フレッシュ情報セクション (c-fresh-info) --- */
.c-fresh-info{align-items:center;background:#fafff7;border:1px solid #d0e0c0;border-radius:8px;display:flex;gap:30px;justify-content:space-between;margin-bottom:40px;margin-inline:auto;padding:25px;width:70%;}


/* ロゴ・画像共通設定 */
.c-fresh-info__logo,.c-fresh-info__visual{flex:0 0 auto;}
:is(.c-fresh-info__logo,.c-fresh-info__logo, .c-fresh-info__visual) img{display:block;height:auto;margin:0 auto;width:100%;max-width:200px;}
.c-fresh-info__body{flex:1;text-align:center;}
.c-fresh-info__lead{color:#2e552a;font-size:1.8rem;font-weight:bold;line-height:1.7;margin:0;}

/*インデックス*/
 #menu-index-container{margin-top: 50px;}

/* --- レスポンシブ (Mobile) --- */
@media (max-width: 767px) {
 #menu-index-container{width: calc(100% - 30px - 2vw);}
.c-fresh-info{flex-direction:column;gap:15px;padding:20px;width:99%;}
.c-fresh-info__visual,.c-fresh-info__logo{display:none;}
.c-fresh-info__body{width:100%;}
.c-fresh-info__lead{font-size:1.5rem;text-align:center;}
[id^="menu-"]{gap:15px 10px;grid-template-columns:repeat(auto-fill, minmax(150px, 1fr));margin-inline:auto;width:95%;}
.c-menu-card__title{margin-bottom:10px; min-height:0;}
}