@charset "UTF-8";
/* CSS Document */
/* TEST-20260110-2207 */

/* ========================================
    リセットcss
========================================= */
*{
	margin: 0;
	padding: 0;
	list-style: none;
	text-decoration: none;
}

/* ========================================
	全体設計
========================================= */

*,
*::before,
*::after { box-sizing: border-box; }

img { max-width: 100%; height: auto; }

body {
    margin: 0; overflow-x: hidden; 
	color:#030000;
	font-size: 14px;
	line-height:1;
	background-color: #cfbca9;
    font-family: "Kaisei Opti", serif;
}

img {
    max-width: 100%;
    height: auto;
}

.kaisei-opti-regular {
  font-family: "Kaisei Opti", serif;
  font-weight: 400;
  font-style: normal;
}

.kaisei-opti-bold {
  font-family: "Kaisei Opti", serif;
  font-weight: 700;
  font-style: normal;
}

.rocknroll-one-regular {
  font-family: "RocknRoll One", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.wdxl-lubrifont-jp-n-regular {
  font-family: "WDXL Lubrifont JP N", sans-serif;
  font-weight: 400;
  font-style: normal;
}

:root{
  --menu-width: 960px;
}

/* 右下固定：トップへ戻る */
.to-top{
  position: fixed;
  right: 20px;
  bottom: 50px;
  z-index: 9999;
  width: 64px;            /* 画像サイズに合わせて調整OK */
  height: 64px;
  display: grid;
  place-items: center;
  cursor: pointer;
}

.to-top img{
  width: 100%;
  height: 100%;
  display: block;
}

/* スマホは少し小さく */
@media (max-width: 767px){
  .to-top{
    width: 54px;
    height: 54px;
    right: 14px;
    bottom: 14px;
  }
}

header .row{ margin-left: 0; margin-right: 0; }
header .col{ padding-left: 0; padding-right: 0; }


/* ========================================
	ヘッダー
========================================= */
.header_image{
  width: 100%;
  height: auto;
  display: block;
}


.style_logo{
    margin-left: auto;
    margin-right: auto;
    display: block;
    width: 192px;
    padding-top: 20px;
}

.style_nav{
    background: url("images/line/line_back.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  height: auto;          /* ← ここが重要 */
  padding: 40px 12px;    /* 余白で見た目を作る */
  display: flex;
  justify-content: center;
  align-items: center;
}
.style_nav ul{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 8px 14px;
  padding: 0;            /* ← padding-top:30px をやめる */
  margin: 0;
}


.style_nav ul li a{
  font-weight: bold;
  color: #060e0f;
  display: flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  font-size: clamp(16px, 3.2vw, 30px); /* 端末に合わせて縮む */
  padding: 10px 18px;
}

.style_nav ul li a:hover{
    color:chocolate;
}
/* ========================================
	メニューナビ
========================================= */

h2{
    text-align: center;
	font-size: 36px;
	margin: 30px 0px;
}

nav.menu ul{
	display: flex;
	flex-wrap: wrap;
	justify-content:center;
	gap:5px 10px;
	padding:0;
	margin: 0 auto;
}

nav.menu ul li{
	width: 400px;
	height: 50px;
	margin-bottom: 20px;
	list-style: none;
}

nav.menu ul li a{
	font-size: 20px;
	font-weight: bold;
	text-align: center;
	background-color: #770000;
	border: 5px solid #FFFFDD;
	border-radius: 30px;
	color: #fff;
	margin-right:10px;
	line-height: 50px;
	padding:0 5px;
	display: block;
	margin-bottom: 50px;
	text-decoration: none;
}
nav.menu ul li a:hover{
	background-color: #977355;
    transform: translateY(-2px);
}

/* ========================================
	メニュー中身
========================================= */


div.menu-wrapper{
	width: 80%;             
    margin: 0 auto;           
}

.menu-wrapper{
  width: min(1100px, 100%);
  margin: 0 auto;
  padding: 0 16px;
}

.menu-section {
    width: 90%;
    max-width: 1290px;
    margin: 60px auto;
    padding: 40px 32px;
}

.menu-section .row {
    margin-left: 0;
    margin-right: 0;
}

div.menu-detail{
    display: flex;
    align-items: center;      
    text-align: center; 
    width: 90%;
    max-width: 850px; /* PCで統一幅 */
    margin: 0 auto 80px auto;
}

div.menu{
	margin-top: 30px;
    width: 90%;
    max-width: 960px;
    margin: 60px auto;
    padding: 20px 10px 20px 20px;
    box-sizing: border-box;
	background-color: #b49f85;
    justify-content: center;
	align-items: center;
}

h3{
	font-size: 2rem;
    margin-bottom: 10px;
	text-decoration: underline 3px double rgba(207,175,102);
	margin-top: 5px;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}

h3 span{
	font-size: 18px;
}

.menu-detail p,
.menu-detail dl {
    font-size: 1.1rem;
}



p{
	margin-bottom: 10px;
	text-decoration: underline 2px solid rgba(222,210,185,0.6);
    opacity: 0.9; 
    text-align: left;
}

dl{
	display: grid;
	grid-template-columns: 1fr auto;
	gap:4px 16px;
	max-width: 600px;
    font-weight: bold;
}



dt{
	font-size: 25px;
    font-weight: 300;
    text-align: left;
}

dt span{
	font-size: 18px;
	text-decoration: underline 2px solid rgba(222,210,185,0.6);
}

dt span.ice_hot{
	font-size: 20px;
	text-decoration: none;
}

dt span.dt_detail{
	font-size: 15px;
}

dd{
	font-size: 20px;
	text-align: right;
    margin-bottom: 10px;
}


.menu-img {
  width: 100%;
  height: 220px;          /* 基準となる高さ */
  object-fit: contain;   /* ← トリミングしない */
  background-color: #cfbca9;/* 余白が気になる場合の背景 */
　display: block;
  margin: 0 auto;
}

.menu-img--boost{
  transform: scale(1.35); /* 好みで 1.05〜1.25 くらい */
  transform-origin: center;
}

.menu-section .row{
  justify-content: center;
}

.menu-section .col{
  text-align: center;
}




@media (max-width: 767px) {
    
    .style_nav ul li a{
    font-size: 18px;
    padding: 10px 6px;
  }
    .menu-detail {
    max-width: 90%;
    margin: 40px auto;
    }
    .menu-img {
    max-width: 180px;
     height: 160px;
    }
    .menu-detail h3 {
    font-size: 1.6rem;
    }
    .menu-detail dl {
    font-size: 1rem;
    }

    /* まず dt/dd を横並びにしている指定を無効化（保険） */
    .menu dl{
    display: block;
    }

    /* メニュー名：1行固定、…は出さない、代わりに文字を少し小さく */
    .menu dl dt{
    white-space: nowrap;
    overflow: visible;          /* ← hidden をやめる */
    text-overflow: clip;        /* ← ellipsis をやめる */
    font-size: clamp(14px, 4.2vw, 18px); /* 画面に合わせて縮む */
    margin: 10px 0 2px;
    }

    /* 括弧（ICE/HOTなど）は下へ */
    .menu dl dt .ice_hot,
    .menu dl dt .dt_detail{
    display: block;
    white-space: normal;
    font-size: 0.9em;
    margin-top: 2px;
    }

    /* 金額：下に落として左寄せ（float/右寄せを潰す） */
    .menu dl dd{
    display: block;
    float: none;
    text-align: left;
    margin: 2px 0 8px;
    font-size: 0.95em;
    }

    nav.menu ul li{
    width: 100%;
    max-width: 360px; /* ボタンの見た目を保ちたい場合 */
    margin-bottom: 12px;
    }

    nav.menu ul li a{
    font-size: clamp(14px, 4vw, 18px);
    white-space: nowrap;
    }
    
  /* dt内の説明文（span）は折り返しOKにする */
  .menu dl dt span{
    display: block;
    white-space: normal;     /* ← これが重要 */
    word-break: break-word; /* 日本語の長文対策 */
    max-width: 100%;
  }
    

}


@media (max-width: 992px){
    nav.menu ul li{
    width: 100%;
    max-width: 360px; /* ボタンの見た目を保ちたい場合 */
    margin-bottom: 12px;
    }

    nav.menu ul li a{
    font-size: clamp(14px, 4vw, 18px);
    white-space: nowrap;
    }
}

@media (max-width: 1200px){
    nav.menu ul li{
    width: 100%;
    max-width: 360px; /* ボタンの見た目を保ちたい場合 */
    margin-bottom: 12px;
    }

    nav.menu ul li a{
    font-size: clamp(17px, 4vw, 18px);
    white-space: nowrap;
    }
}

/* ========================================
  HOME
========================================= */
.home{
  width: min(960px, 100%);
  margin: 0 auto;
  padding: 24px 16px 60px;
}

.home-hero{
  background-color: #b49f85; /* メニュー枠と揃えるなら同系色 */
  padding: 24px 20px;
  border-radius: 16px;
}

.home-lead{
  text-align: center;
  font-size: clamp(18px, 3vw, 26px);
  line-height: 2;
  margin-bottom: 16px;
  text-decoration: none;
  white-space: normal;
  overflow-wrap: anywhere;
}


.home-photo{
  margin: 0;
}

.home-photo img{
  width: 100%;
  max-width: 860px;
  display: block;
  margin: 0 auto;
  border-radius: 14px;
}

/* 店舗情報ブロック */
/* 店舗情報 全体を大きく */
.home-info{
  margin-top: 24px;
  background: rgba(255,255,255,0.25);
  border-radius: 18px;
  padding: 22px 20px;
}

.home-info__list{
  display: block;
  max-width: none;
  width: 100%;
}
/* 店舗情報タイトル */
.home-info__title{
  font-size: clamp(24px, 3.2vw, 32px);
  text-align: center;
  margin: 10px 0 20px;
  letter-spacing: 0.08em;
}

/* 各行 */
.home-info__row{
  display: grid;
  grid-template-columns: 140px 1fr; /* 120でもOK */
  gap: 14px;
  align-items: baseline;           /* ← ここがポイント */
  padding: 18px 0;
  border-top: 1px dashed rgba(0,0,0,0.25);
}


/* 項目名（dt） */
.home-info__row dt{
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.05em;
  white-space: nowrap;
}

/* 内容（dd） */
.home-info__row dd{
  margin: 0;
  font-size: 20px;
  line-height: 1.7;
  text-align: left;
}


.home-info__list{
  margin: 0;
}


.home-info__row:first-child{
  border-top: none;
}


.home-info__row dd strong{
  font-weight: 700;
  display: inline-block;
  margin-bottom: 4px;
}

/* 営業情報：dt + dd を横1列 */
.home-info__row--single{
  grid-template-columns: 120px 1fr;
}


.home-info__link{
  color: inherit;
  text-decoration: none;
  font-size: 25px;
  font-weight: 700;
  letter-spacing: 0.05em;
}

.home-info__link:hover{
    color:#fff;
}

.home-info__row--contact{
  grid-template-columns: 120px 1fr;
  align-items: center;
}

.home-contact{
  display: flex;
  flex-wrap: wrap;
  gap: 18px 22px;
  align-items: center;
  min-width: 0;
}


.home-sns{
  flex-wrap: wrap;
  align-items: center;
  display: flex;
  gap: 20px;
  margin-left: 10px;
}


.home-info__btn{
  padding: 8px 16px;
  background: #770000;
  font-weight: 700;
  font-size: 15px;
  transition: background-color 0.2s ease, transform 0.2s ease;
  background-color: #770000;
  border: 5px solid #FFFFDD;
  border-radius: 30px;
  color: #fff;
  text-decoration:none;
}

.home-info__btn:hover{
  background: #977355;
  transform: translateY(-2px);
  text-decoration: none;
  color:#fff;
}

/* すごく小さい画面：2列→1列にして読みやすく */

@media (max-width: 420px){
  .home-info__row{
    grid-template-columns: 1fr;
  }

  .home-info__row dt{
    font-size: 17px;
  }

  .home-info__row dd{
    font-size: 17px;
  }
}

/* =========================
  ACCESS
========================= */
.access{
  width: min(960px, 100%);
  margin: 0 auto;
  padding: 24px 16px 80px;
}

.access-title{
  text-align: center;
  font-size: clamp(24px, 3vw, 34px);
  margin: 10px 0 18px;
}

.access-card{
  background: #b49f85;
  border-radius: 18px;
  padding: 18px 18px 14px;
}

.access-list{
  display: block;      /* ← dl共通のgridを無効化 */
  max-width: none;
  margin: 0;
}

.access-row{
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 14px;
  padding: 14px 0;
  border-top: 1px dashed rgba(0,0,0,0.25);
  align-items: baseline;
}

.access-row:first-child{
  border-top: none;
}

.access-row dt{
  font-size: 18px;
  font-weight: 700;
  white-space: nowrap;
}

.access-row dd{
  margin: 0;
  font-size: 18px;
  line-height: 1.7;
  text-align: left;
}

.access-note{
  text-decoration: none; /* pの下線を消したい場合 */
  margin: 10px 0 0;
  font-size: 14px;
  line-height: 1.7;
  opacity: .9;
}

.access-actions{
  margin-top: 14px;
  display: flex;
  justify-content: center;
}

.access-btn{
  display: inline-block;
  padding: 10px 16px;
  background: #770000;
  text-decoration: none;
  font-weight: 700;
  background-color: #770000;
  border: 5px solid #FFFFDD;
  border-radius: 30px;
  color: #fff;
}
.access-btn:hover{
  text-decoration: none;
  color:#fff;
  background: #977355;
  transform: translateY(-2px);
}

.access-map{
  margin-top: 18px;
  border-radius: 18px;
  overflow: hidden;
}

.access-map iframe{
  width: 100%;
  height: 420px;
  border: 0;
  display: block;
}

@media (max-width: 420px){
  .access-row{
    grid-template-columns: 1fr;
  }
}

