/* ===== リセット・ベース ===== */
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:"Noto Serif JP","游明朝","Yu Mincho","ヒラギノ明朝 ProN","Hiragino Mincho ProN",serif;color:#333;font-size:15px;line-height:1.8;background:#fffcf7;}
a{color:#333;text-decoration:none;transition:.25s;}
img{max-width:100%;height:auto;vertical-align:bottom;}
ul{list-style:none;}

/* ===== 固定ヘッダー ===== */
.l-header{
  position:fixed;top:0;left:0;width:100%;z-index:1000;
  display:flex;justify-content:space-between;align-items:center;
  padding:12px 20px;
  background:rgba(255,255,255,.95);
  box-shadow:0 1px 4px rgba(0,0,0,.08);
  transition:background .3s;
}
.l-header.is-transparent{background:transparent;box-shadow:none;}
.l-header__logo img{height:36px;width:auto;transition:.3s;}
.l-header__logo .logo-white{display:none;}
.l-header.is-transparent .logo-color{display:none;}
.l-header.is-transparent .logo-white{display:block;}
.l-header.is-transparent .c-gnav a{color:#fff;}
.l-header.is-transparent .c-gnav a span{color:rgba(255,255,255,.7);}
.l-header.is-transparent .c-gnav a:hover{color:#ffd700;}
.l-header__right{display:flex;align-items:center;gap:0;}
.c-gnav{display:none;}
@media(min-width:1080px){
  .l-header{padding:0 30px;}
  .c-gnav{display:flex;align-items:center;gap:0;}
  .c-gnav a{
    display:flex;flex-direction:column;align-items:center;
    padding:22px 18px;font-size:14px;font-weight:700;color:#333;
    letter-spacing:.05em;position:relative;
  }
  .c-gnav a span{font-size:11px;color:#999;font-weight:400;margin-top:2px;}
  .c-gnav a:hover{color:#c4171b;}
}
.c-headBtn{display:block;margin-left:10px;transition:.25s;}
.c-headBtn:hover{opacity:.85;transform:scale(1.02);}
.c-headBtn__img{height:56px;width:auto;display:block;border-radius:2px;}

/* ===== セクション共通 ===== */
.l-container{max-width:1100px;margin:0 auto;padding:0 20px;}
.section-title{
  font-size:22px;font-weight:700;letter-spacing:.1em;
  padding-bottom:12px;margin-bottom:30px;
  display:inline-block;position:relative;
}
.section-title::after{
  content:"";position:absolute;bottom:0;left:0;
  width:100%;height:3px;background:#4a8c5c;
}

/* ===== 下層ページ共通 ===== */
.p-pageHero{
  position:relative;width:100%;height:350px;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
}
.p-pageHero img{width:100%;height:100%;object-fit:cover;position:absolute;top:0;left:0;}
.p-pageHero::after{
  content:"";position:absolute;top:0;left:0;width:100%;height:100%;
  background:rgba(30,25,20,.45);
}
.p-pageHero__title{
  position:relative;z-index:1;color:#fff;text-align:center;
}
.p-pageHero__title h1{
  font-size:42px;font-weight:700;letter-spacing:.15em;
  text-shadow:0 2px 10px rgba(0,0,0,.4);
}
.p-pageHero__title p{
  font-size:14px;letter-spacing:.1em;margin-top:8px;
  text-shadow:0 1px 4px rgba(0,0,0,.3);
}
@media(max-width:767px){
  .p-pageHero{height:250px;}
  .p-pageHero__title h1{font-size:28px;}
}

/* パンくず */
.c-breadcrumb{
  padding:15px 0;font-size:13px;color:#999;
  border-bottom:1px solid #eee;margin-bottom:40px;
}
.c-breadcrumb a{color:#999;}
.c-breadcrumb a:hover{color:#c4171b;}

/* 下層コンテンツ */
.l-pageContent{padding:0 0 80px;}
.l-pageContent h2{
  font-size:28px;font-weight:700;letter-spacing:.1em;
  margin-bottom:10px;
}
.l-pageContent h2 small{
  display:block;font-size:14px;font-weight:400;color:#999;margin-top:4px;
}
.l-pageContent__heading{
  margin-bottom:50px;padding-bottom:20px;border-bottom:1px solid #ddd;
}

/* ===== LINK ===== */
.s-link{padding:50px 0 60px;}
.s-link__banners{display:flex;flex-direction:column;gap:20px;}
@media(min-width:768px){.s-link__banners{flex-direction:row;gap:30px;}}
.s-link__banners li{flex:1;}
.s-link__banners a{display:block;border-radius:3px;overflow:hidden;transition:.25s;}
.s-link__banners a:hover{opacity:.85;transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1);}
.s-link__banners img{width:100%;height:auto;display:block;}

/* ===== INFORMATION + MAP ===== */
.s-info{padding:80px 0 40px;text-align:center;}
.s-info__logo{margin-bottom:40px;}
.s-info__logo img{width:150px;height:auto;}
.info-dl{margin:0;}
.info-dl__item{display:flex;flex-direction:column;padding:14px 0;border-bottom:1px solid #ddd;}
.info-dl__item:first-child{border-top:1px solid #ddd;}
.info-dl__item dt{font-size:12px;color:#999;letter-spacing:.1em;margin-bottom:4px;font-weight:400;}
.info-dl__item dd{font-size:14px;line-height:1.8;margin:0;padding-left:1em;}
.s-info__grid{display:flex;flex-direction:column;gap:40px;text-align:left;}
@media(min-width:768px){.s-info__grid{flex-direction:row;gap:60px;}}
.s-info__col{flex:1;}
.s-info__col h3{font-size:18px;font-weight:700;letter-spacing:.1em;padding-bottom:10px;margin-bottom:20px;border-bottom:1px solid #ccc;display:inline-block;}
.s-info__col p{margin-bottom:8px;font-size:14px;line-height:1.9;}
.s-info__col strong{font-weight:700;}
.s-info__map{width:100%;height:400px;border:0;}

/* ===== フッター ===== */
.l-footer{background:#fffcf7;padding:30px 0 0;text-align:center;}
.l-footer__sns{display:flex;justify-content:center;gap:15px;margin-bottom:20px;}
.l-footer__sns a{color:#666;font-size:20px;transition:.25s;}
.l-footer__sns a:hover{color:#c4171b;}
.l-footer__nav{display:flex;justify-content:center;flex-wrap:wrap;gap:0;padding:15px 0;font-size:13px;}
.l-footer__nav a{padding:0 15px;color:#666;border-right:1px solid #ccc;}
.l-footer__nav a:last-child{border-right:none;}
.l-footer__nav a:hover{color:#c4171b;}
.l-footer__copy{background:#fffcf7;color:#999;font-size:12px;padding:15px 0 20px;}

/* ===== ページトップ ===== */
.c-pageTop{
  position:fixed;bottom:30px;right:30px;z-index:100;
  width:44px;height:44px;background:#c4171b;color:#fff;
  border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:18px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.15);transition:.25s;
}
.c-pageTop:hover{background:#a0131a;transform:translateY(-3px);}

/* ===== ユーティリティ ===== */
.pc-only{display:none;}
@media(min-width:1080px){.pc-only{display:inline;}}
.sp-only{display:inline;}
@media(min-width:1080px){.sp-only{display:none;}}

/* ===== メニューページ用 ===== */
.menu-cats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:15px;
  margin-bottom:60px;
}
.menu-cats a{
  display:block;text-align:center;padding:14px 10px;
  border:1px solid #ccc;font-size:14px;letter-spacing:.05em;
  transition:.25s;
}
.menu-cats a:hover{border-color:#c4171b;color:#c4171b;background:rgba(196,23,27,.04);}
@media(max-width:767px){.menu-cats{grid-template-columns:repeat(2,1fr);}}

/* メニューセクション */
.menu-section{margin-bottom:70px;scroll-margin-top:90px;}
.menu-section__time{font-size:14px;color:#666;margin-bottom:30px;}
.menu-item{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:10px 0;border-bottom:1px dotted #ddd;font-size:14px;
}
.menu-item span{white-space:nowrap;margin-left:20px;color:#c4171b;font-weight:700;}

/* コースメニュー */
.menu-course{
  margin-bottom:35px;padding-bottom:25px;border-bottom:1px solid #eee;
}
.menu-course__name{
  font-size:17px;font-weight:700;
  padding-left:15px;border-left:4px solid #e8a735;
  margin-bottom:15px;
}
.menu-course__detail{
  padding-left:20px;margin-bottom:15px;
  font-size:14px;line-height:2;color:#555;
}
.menu-course__price{
  text-align:right;font-size:20px;font-weight:700;color:#333;
  letter-spacing:.05em;
}

/* 予約ボタン */
.btn-reserve{
  display:table;margin:25px auto 0;padding:14px 40px;
  background:transparent;color:#c4171b;font-size:14px;letter-spacing:.12em;
  border:1px solid #c4171b;cursor:pointer;transition:.25s;
  text-align:center;min-width:240px;
}
.btn-reserve::before{content:"＞　";font-size:12px;}
.btn-reserve:hover{background:#c4171b;color:#fff;}

/* アラカルトセクション */
.menu-alacarte-head{
  font-size:22px;font-weight:700;letter-spacing:.1em;
  padding-bottom:12px;margin:0 0 40px;
  display:inline-block;position:relative;
}
.menu-alacarte-head::after{
  content:"";position:absolute;bottom:0;left:0;
  width:100%;height:3px;background:#4a8c5c;
}
.menu-alacarte-cat{
  font-size:16px;font-weight:700;letter-spacing:.08em;
  padding-left:14px;border-left:4px solid #4a8c5c;
  margin:35px 0 15px;
}
.menu-alacarte-item{
  padding:12px 0;
  border-bottom:1px solid #eee;
  margin-bottom:0;
}
.menu-alacarte-item__name{
  font-size:14px;font-weight:700;margin-bottom:4px;
}
.menu-alacarte-item__desc{
  font-size:12px;color:#888;line-height:1.7;padding-left:1em;
}
.menu-alacarte-note{
  margin-top:20px;padding:12px 15px;background:#faf8f5;
  font-size:12px;color:#999;line-height:1.9;
}

/* ===== ニュースページ用 ===== */
.news-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:30px;
}
.news-card{border:1px solid #eee;overflow:hidden;transition:.25s;}
.news-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.08);transform:translateY(-3px);}
.news-card__thumb{width:100%;height:180px;background:#f5f5f5;overflow:hidden;}
.news-card__thumb img{width:100%;height:100%;object-fit:cover;}
.news-card__body{padding:20px;}
.news-card__meta{font-size:12px;color:#999;margin-bottom:8px;}
.news-card__title{font-size:15px;font-weight:700;line-height:1.6;}
@media(max-width:767px){.news-grid{grid-template-columns:1fr;}}

/* ===== コンタクトフォーム用 ===== */
.contact-info{
  background:#f9f6f2;padding:40px;margin-bottom:50px;text-align:center;
}
.contact-info__tel{font-size:32px;font-weight:700;color:#c4171b;margin:15px 0 5px;letter-spacing:.05em;}
.contact-info__note{font-size:13px;color:#999;}
.contact-form dl{margin-bottom:20px;}
.contact-form dt{font-size:14px;font-weight:700;margin-bottom:6px;display:flex;align-items:center;gap:8px;}
.contact-form dt .required{
  font-size:11px;background:#c4171b;color:#fff;padding:1px 8px;border-radius:2px;font-weight:400;
}
.contact-form dd{margin:0;}
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form select,
.contact-form textarea{
  width:100%;padding:12px 15px;border:1px solid #ddd;font-size:14px;
  font-family:inherit;background:#fff;transition:.25s;
}
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{
  border-color:#c4171b;outline:none;
}
.contact-form textarea{height:180px;resize:vertical;}
.contact-form__submit{
  display:block;margin:30px auto 0;padding:16px 60px;
  background:#c4171b;color:#fff;border:none;font-size:16px;
  font-family:inherit;cursor:pointer;letter-spacing:.1em;transition:.25s;
}
.contact-form__submit:hover{background:#a0131a;}

/* ===== 商品ページ用 ===== */
.item-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:30px;
}
.item-card{border:1px solid #eee;overflow:hidden;transition:.25s;}
.item-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.08);transform:translateY(-3px);}
.item-card__thumb{width:100%;height:220px;background:#f5f5f5;overflow:hidden;}
.item-card__thumb img{width:100%;height:100%;object-fit:cover;}
.item-card__body{padding:20px;}
.item-card__name{font-size:15px;font-weight:700;margin-bottom:8px;}
.item-card__price{font-size:16px;color:#c4171b;font-weight:700;}
@media(max-width:767px){.item-grid{grid-template-columns:1fr;}}

/* ===== ACCESSページ専用 ===== */
.access-photo{margin-bottom:50px;}
.access-photo img{width:100%;height:auto;border-radius:4px;}

.access-highlights{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
  margin-bottom:60px;
}
.access-highlights__item{
  text-align:center;padding:30px 15px;
  background:#fff;border:1px solid #eee;border-radius:4px;
  transition:.25s;
}
.access-highlights__item:hover{background:#f5f0e8;}
.access-highlights__icon{font-size:28px;margin-bottom:8px;}
.access-highlights__label{font-size:12px;color:#999;letter-spacing:.1em;margin-bottom:8px;}
.access-highlights__text{font-size:15px;line-height:1.7;}
@media(max-width:767px){.access-highlights{grid-template-columns:1fr;}}

.access-detail{margin-bottom:60px;}
.access-detail__title{
  font-size:20px;font-weight:700;letter-spacing:.08em;
  padding-bottom:12px;margin-bottom:25px;
  border-bottom:2px solid #c4171b;
}
.access-table{width:100%;border-collapse:collapse;}
.access-table th,.access-table td{
  padding:16px 15px;border-bottom:1px solid #eee;
  font-size:14px;line-height:1.8;text-align:left;vertical-align:top;
}
.access-table th{
  width:140px;font-weight:700;color:#666;
  background:#faf8f5;white-space:nowrap;
}
.access-table td a{color:#c4171b;}
.access-table td a:hover{text-decoration:underline;}
@media(max-width:767px){
  .access-table th{width:100px;font-size:13px;padding:12px 10px;}
  .access-table td{font-size:13px;padding:12px 10px;}
}

.access-map{margin-bottom:40px;}
.access-map__iframe{width:100%;height:450px;border:0;border-radius:4px;}
.access-map__note{
  margin-top:15px;padding:15px 20px;background:#faf8f5;
  border-radius:4px;font-size:14px;color:#666;
}
.access-map__note strong{color:#333;}
