/* ===== リセット・ベース ===== */
*{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:16px;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;}

/* ===== 固定ヘッダー ===== */
.stp-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;
}
.stp-header.is-transparent{background:transparent;box-shadow:none;}
.stp-header__logo img{height:36px;width:auto;transition:.3s;}
.stp-header__logo .logo-white{display:none;}
.stp-header.is-transparent .logo-color{display:none;}
.stp-header.is-transparent .logo-white{display:block;}
.stp-header.is-transparent .stp-gnav a{color:#fff;}
.stp-header.is-transparent .stp-gnav a span{color:rgba(255,255,255,.7);}
.stp-header.is-transparent .stp-gnav a:hover{color:#ffd700;}
.stp-header__right{display:flex;align-items:center;gap:0;}
.stp-gnav{display:none;}
@media(min-width:1080px){
  .stp-header{padding:0 30px;}
  .stp-gnav{display:flex;align-items:center;gap:0;}
  .stp-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;
  }
  .stp-gnav a span{font-size:11px;color:#999;font-weight:400;margin-top:2px;}
  .stp-gnav a:hover{color:#c4171b;}
}
.stp-headBtn{display:block;margin-left:10px;transition:.25s;}
.stp-headBtn:hover{opacity:.85;transform:scale(1.02);}
.stp-headBtn__img{height:56px;width:auto;display:block;border-radius:2px;}
@media(max-width:1079px){.stp-headBtn{display:none;}}

/* ===== ハンバーガーボタン ===== */
.stp-hamburger{
  display:flex;flex-direction:column;justify-content:space-between;
  width:28px;height:20px;
  background:none;border:none;cursor:pointer;
  padding:0;margin-left:14px;flex-shrink:0;
}
.stp-hamburger span{
  display:block;width:100%;height:2px;background:#333;
  border-radius:1px;transition:.3s;
}
@media(min-width:1080px){.stp-hamburger{display:none;}}

/* ===== ドロワーメニュー ===== */
.stp-drawer{
  position:fixed;top:0;left:0;width:100%;height:100%;
  z-index:1999;pointer-events:none;
}
.stp-drawer.is-open{pointer-events:auto;}
.stp-drawer__overlay{
  position:absolute;top:0;left:0;width:100%;height:100%;
  background:rgba(0,0,0,.5);opacity:0;transition:.3s;
}
.stp-drawer.is-open .stp-drawer__overlay{opacity:1;}
.stp-drawer__panel{
  position:absolute;top:0;right:0;
  width:280px;height:100%;background:#fff;
  transform:translateX(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);
  display:flex;flex-direction:column;overflow-y:auto;
}
.stp-drawer.is-open .stp-drawer__panel{transform:translateX(0);}
.stp-drawer__head{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 20px;border-bottom:1px solid #eee;
}
.stp-drawer__head img{height:28px;width:auto;}
.stp-drawer__close{
  background:none;border:none;cursor:pointer;
  font-size:24px;color:#aaa;padding:4px;line-height:1;
}
.stp-drawer__close:hover{color:#333;}
.stp-drawer__nav{flex:1;padding:8px 0;}
.stp-drawer__nav a{
  display:flex;justify-content:space-between;align-items:center;
  padding:15px 24px;font-size:16px;font-weight:700;letter-spacing:.08em;
  color:#333;border-bottom:1px solid #f0ebe4;transition:.2s;
}
.stp-drawer__nav a span{font-size:16px;color:#999;font-weight:400;}
.stp-drawer__nav a:hover{background:#faf8f5;color:#c4171b;}
.stp-drawer__tel{padding:20px;border-top:2px solid #f0ebe4;margin-top:auto;}
.stp-drawer__tel a{display:block;}
.stp-drawer__tel img{width:100%;height:auto;display:block;border-radius:4px;}

/* ===== セクション共通 ===== */
.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;
  padding-top:70px; /* 固定ヘッダー分のオフセット */
}
.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:16px;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:16px;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:16px;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:16px;color:#999;letter-spacing:.1em;margin-bottom:4px;font-weight:400;}
.info-dl__item dd{font-size:16px;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:16px;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:16px;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:16px;color:#666;margin-bottom:30px;}
.menu-section__photo{width:100%;height:300px;object-fit:cover;border-radius:4px;margin-bottom:30px;display:block;}
@media(max-width:767px){.menu-section__photo{height:200px;}}
.menu-item{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:10px 0;border-bottom:1px dotted #ddd;font-size:16px;
}
.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:16px;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:16px;letter-spacing:.12em;
  border:1px solid #c4171b;cursor:pointer;transition:.25s;
  text-align:center;min-width:240px;
}
.btn-reserve::before{content:"＞　";font-size:16px;}
.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:16px;font-weight:700;margin-bottom:4px;
}
.menu-alacarte-item__desc{
  font-size:16px;color:#888;line-height:1.7;padding-left:1em;
}
.menu-alacarte-note{
  margin-top:20px;padding:12px 15px;background:#faf8f5;
  font-size:16px;color:#999;line-height:1.9;
}

/* ===== 投稿詳細ページ用 ===== */
.p-article{max-width:800px;margin:0 auto;padding:60px 0 80px;}
.p-article__header{margin-bottom:40px;padding-bottom:30px;border-bottom:1px solid #eee;}
.p-article__cat{
  display:inline-block;padding:3px 14px;margin-bottom:14px;
  background:#4a8c5c;color:#fff;font-size:16px;letter-spacing:.08em;
}
.p-article__title{
  font-size:28px;font-weight:700;line-height:1.6;letter-spacing:.05em;
  margin-bottom:15px;
}
.p-article__meta{font-size:16px;color:#aaa;letter-spacing:.05em;}

/* 本文スタイル */
.p-article__body{line-height:2;font-size:16px;color:#333;}
.p-article__body h2{
  font-size:20px;font-weight:700;letter-spacing:.06em;
  padding:12px 18px;margin:50px 0 20px;
  border-left:4px solid #4a8c5c;background:#f5f8f5;
}
.p-article__body h3{
  font-size:17px;font-weight:700;letter-spacing:.05em;
  margin:35px 0 12px;padding-bottom:8px;
  border-bottom:1px solid #ddd;
}
.p-article__body p{margin-bottom:22px;}
.p-article__body img{
  width:100%;height:auto;margin:30px 0;border-radius:2px;
  display:block;
}
.p-article__body ul,.p-article__body ol{
  padding-left:1.5em;margin-bottom:22px;line-height:2;
}
.p-article__body li{margin-bottom:6px;}
.p-article__body blockquote{
  margin:30px 0;padding:20px 25px;
  background:#faf8f5;border-left:4px solid #e8a735;
  font-style:italic;color:#666;font-size:16px;line-height:1.9;
}
.p-article__body .info-box{
  padding:20px 25px;margin:30px 0;
  background:#f5f8f5;border:1px solid #d0e4d4;
  font-size:16px;line-height:1.9;
}
.p-article__body .info-box__title{
  font-weight:700;color:#4a8c5c;margin-bottom:8px;font-size:16px;
}

/* 前後の記事ナビ */
.p-article__nav{
  display:flex;justify-content:space-between;gap:20px;
  margin-top:60px;padding-top:40px;border-top:1px solid #eee;
}
.p-article__nav a{
  display:block;flex:1;padding:18px 20px;border:1px solid #ddd;
  font-size:16px;color:#555;line-height:1.6;transition:.2s;
  text-decoration:none;
}
.p-article__nav a:hover{border-color:#4a8c5c;color:#4a8c5c;}
.p-article__nav__prev::before{content:"← ";color:#aaa;}
.p-article__nav__next{text-align:right;}
.p-article__nav__next::after{content:" →";color:#aaa;}
.p-article__back{
  display:table;margin:30px auto 0;
  padding:12px 40px;border:1px solid #888;
  font-size:16px;color:#555;letter-spacing:.08em;transition:.2s;
}
.p-article__back:hover{border-color:#333;color:#333;}
@media(max-width:767px){
  .p-article__title{font-size:20px;}
  .p-article__body h2{font-size:17px;}
  .p-article__nav{flex-direction:column;}
}

/* ===== ニュースページ用 ===== */
.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:16px;color:#999;margin-bottom:8px;}
.news-card__title{font-size:16px;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:16px;color:#999;}
.contact-form dl{margin-bottom:20px;}
.contact-form dt{font-size:16px;font-weight:700;margin-bottom:6px;display:flex;align-items:center;gap:8px;}
.contact-form dt .required{
  font-size:16px;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:16px;
  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-intro{line-height:2;margin-bottom:50px;text-align:center;}
.item-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:30px;
}
.item-card{border:1px solid #eee;overflow:hidden;transition:.25s;display:block;color:#333;}
.item-card:hover{box-shadow:0 6px 20px rgba(0,0,0,.1);transform:translateY(-3px);}
.item-card__thumb{
  width:100%;height:220px;background:#f5f5f5;overflow:hidden;position:relative;
}
.item-card__thumb img{width:100%;height:100%;object-fit:cover;transition:.4s;}
.item-card:hover .item-card__thumb img{transform:scale(1.05);}
.item-card__badge{
  position:absolute;top:12px;left:12px;
  background:#c4171b;color:#fff;font-size:16px;padding:3px 10px;letter-spacing:.05em;
}
.item-card__badge--soldout{background:#999;}
.item-card__body{padding:18px 20px;}
.item-card__name{font-size:16px;font-weight:700;margin-bottom:6px;line-height:1.5;}
.item-card__desc{font-size:16px;color:#888;margin-bottom:10px;line-height:1.6;}
.item-card__price{font-size:17px;color:#c4171b;font-weight:700;letter-spacing:.02em;}
.item-card__price--soldout{color:#999;}
@media(max-width:767px){.item-grid{grid-template-columns:repeat(2,1fr);gap:15px;}}

/* 商品詳細 */
.p-item{padding:60px 0 80px;}
.p-item__inner{
  display:flex;gap:60px;align-items:flex-start;
}
@media(max-width:767px){.p-item__inner{flex-direction:column;gap:30px;}}

/* 商品画像 */
.p-item__gallery{flex:0 0 48%;max-width:48%;}
.p-item__main-img{
  width:100%;aspect-ratio:1;overflow:hidden;background:#f9f5ef;
  border:1px solid #eee;margin-bottom:12px;
}
.p-item__main-img img{width:100%;height:100%;object-fit:cover;}
.p-item__thumbs{display:flex;gap:8px;}
.p-item__thumb{
  width:72px;height:72px;border:2px solid transparent;overflow:hidden;
  cursor:pointer;background:#f5f5f5;flex-shrink:0;
}
.p-item__thumb.is-active{border-color:#c4171b;}
.p-item__thumb img{width:100%;height:100%;object-fit:cover;}
@media(max-width:767px){.p-item__gallery{flex:0 0 100%;max-width:100%;}}

/* 商品情報 */
.p-item__info{flex:1;}
.p-item__cat{
  display:inline-block;padding:2px 12px;margin-bottom:12px;
  border:1px solid #4a8c5c;color:#4a8c5c;font-size:16px;letter-spacing:.05em;
}
.p-item__name{
  font-size:26px;font-weight:700;letter-spacing:.05em;line-height:1.5;
  margin-bottom:8px;
}
.p-item__name-en{font-size:16px;color:#aaa;letter-spacing:.1em;margin-bottom:20px;}
.p-item__tagline{
  font-size:16px;color:#888;font-style:italic;margin-bottom:20px;line-height:1.7;
}
.p-item__price-box{
  padding:18px 0;border-top:1px solid #eee;border-bottom:1px solid #eee;
  margin-bottom:25px;
}
.p-item__price-label{font-size:16px;color:#999;margin-bottom:4px;}
.p-item__price{font-size:28px;font-weight:700;color:#c4171b;letter-spacing:.03em;}
.p-item__price small{font-size:16px;color:#aaa;margin-left:6px;}
.p-item__sku{margin-bottom:25px;}
.p-item__sku label{display:block;font-size:16px;color:#555;margin-bottom:8px;font-weight:700;}
.p-item__sku select{
  width:100%;padding:10px 14px;border:1px solid #ccc;background:#fff;
  font-size:16px;font-family:inherit;
}
.p-item__qty{display:flex;align-items:center;gap:15px;margin-bottom:30px;}
.p-item__qty label{font-size:16px;color:#555;font-weight:700;}
.p-item__qty-ctrl{display:flex;align-items:center;border:1px solid #ccc;}
.p-item__qty-ctrl button{
  width:38px;height:38px;border:none;background:#f5f5f5;
  font-size:18px;cursor:pointer;line-height:1;
}
.p-item__qty-ctrl input{
  width:50px;text-align:center;border:none;border-left:1px solid #ccc;border-right:1px solid #ccc;
  height:38px;font-size:16px;font-family:inherit;
}
.p-item__cart-btn{
  display:block;width:100%;padding:16px;margin-bottom:12px;
  background:#c4171b;color:#fff;border:none;
  font-size:16px;letter-spacing:.12em;cursor:pointer;
  font-family:inherit;text-align:center;transition:.25s;
}
.p-item__cart-btn:hover{background:#a0131a;}
.p-item__cart-btn:disabled{background:#ccc;cursor:default;}
.p-item__fav-btn{
  display:block;width:100%;padding:14px;
  background:#fff;color:#555;border:1px solid #ccc;
  font-size:16px;letter-spacing:.08em;cursor:pointer;
  font-family:inherit;text-align:center;transition:.25s;
}
.p-item__fav-btn:hover{border-color:#c4171b;color:#c4171b;}
.p-item__meta{margin-top:25px;font-size:16px;color:#888;line-height:2;}
.p-item__meta span{display:inline-block;margin-right:20px;}
.p-item__demo-note{
  margin-top:15px;padding:10px 15px;background:#fdf5e6;
  border:1px solid #f0d090;font-size:16px;color:#b07a00;line-height:1.8;
}

/* 商品説明タブ */
.p-item__tabs{margin-top:60px;}
.p-item__tab-nav{display:flex;border-bottom:2px solid #eee;}
.p-item__tab-btn{
  padding:12px 28px;font-size:16px;letter-spacing:.05em;
  border:none;background:none;cursor:pointer;color:#888;
  border-bottom:2px solid transparent;margin-bottom:-2px;transition:.2s;
  font-family:inherit;
}
.p-item__tab-btn.is-active{color:#333;border-bottom-color:#4a8c5c;font-weight:700;}
.p-item__tab-panel{padding:30px 0;display:block;line-height:2;font-size:16px;border-bottom:1px solid #eee;}
.p-item__tab-panel:last-child{border-bottom:none;}
.p-item__section-title{
  font-size:16px;font-weight:700;letter-spacing:.08em;
  padding:10px 16px;margin-bottom:20px;
  background:#f9f5ef;border-left:4px solid #4a8c5c;
}
.p-item__tab-panel p{margin-bottom:16px;}
.p-item__spec-table{width:100%;border-collapse:collapse;font-size:16px;}
.p-item__spec-table th{
  width:140px;padding:12px 16px;background:#f9f5ef;
  font-weight:700;border:1px solid #eee;vertical-align:top;
}
.p-item__spec-table td{
  padding:12px 16px;border:1px solid #eee;line-height:1.8;
}

/* 関連商品 */
.p-item__related{margin-top:70px;padding-top:50px;border-top:1px solid #eee;}
.p-item__related-title{
  font-size:20px;font-weight:700;letter-spacing:.08em;
  margin-bottom:30px;text-align:center;
}

/* ===== 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:16px;color:#999;letter-spacing:.1em;margin-bottom:8px;}
.access-highlights__text{font-size:16px;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:16px;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:16px;color:#666;
}
.access-map__note strong{color:#333;}

/* ===== カートフロー共通 ===== */
/* ステップナビ */
.p-cart-steps{
  display:flex;justify-content:center;align-items:center;
  gap:0;margin:40px auto 50px;max-width:700px;
}
.p-cart-steps__item{
  flex:1;text-align:center;font-size:16px;color:#bbb;
  letter-spacing:.06em;line-height:1.4;position:relative;
}
.p-cart-steps__item::after{
  content:"";position:absolute;top:16px;left:50%;right:-50%;
  height:2px;background:#e0dbd4;z-index:0;
}
.p-cart-steps__item:last-child::after{display:none;}
.p-cart-steps__num{
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:50%;
  background:#e0dbd4;color:#aaa;font-size:16px;font-weight:700;
  margin-bottom:6px;position:relative;z-index:1;
}
.p-cart-steps__item.is-active .p-cart-steps__num{background:#c4171b;color:#fff;}
.p-cart-steps__item.is-done .p-cart-steps__num{background:#4a8c5c;color:#fff;}
.p-cart-steps__item.is-active{color:#333;}
.p-cart-steps__item.is-done{color:#4a8c5c;}
@media(max-width:600px){
  .p-cart-steps__item{font-size:10px;}
  .p-cart-steps__num{width:26px;height:26px;font-size:12px;}
}

/* カート共通レイアウト */
.p-cart-layout{
  display:grid;grid-template-columns:1fr 320px;gap:40px;
  align-items:start;
}
@media(max-width:900px){.p-cart-layout{grid-template-columns:1fr;}}

/* カート商品テーブル */
.p-cart-table{width:100%;border-collapse:collapse;font-size:16px;}
.p-cart-table th{
  padding:12px 15px;background:#f9f5ef;font-weight:700;
  border-bottom:2px solid #e0dbd4;font-size:16px;letter-spacing:.06em;
}
.p-cart-table td{
  padding:16px 15px;border-bottom:1px solid #eee;vertical-align:middle;
}
.p-cart-table .p-cart-table__product{display:flex;align-items:center;gap:15px;}
.p-cart-table__thumb{width:80px;height:80px;object-fit:cover;border-radius:2px;flex-shrink:0;}
.p-cart-table__name{font-size:16px;font-weight:700;margin-bottom:4px;}
.p-cart-table__sku{font-size:16px;color:#888;}
.p-cart-table__qty-ctrl{display:flex;align-items:center;border:1px solid #ccc;width:fit-content;}
.p-cart-table__qty-ctrl button{
  width:30px;height:30px;border:none;background:#f5f5f5;
  font-size:16px;cursor:pointer;line-height:1;
}
.p-cart-table__qty-ctrl input{
  width:42px;text-align:center;border:none;
  border-left:1px solid #ccc;border-right:1px solid #ccc;
  height:30px;font-size:16px;font-family:inherit;
}
.p-cart-table__remove{
  background:none;border:none;cursor:pointer;color:#bbb;
  font-size:18px;transition:.2s;
}
.p-cart-table__remove:hover{color:#c4171b;}

/* 注文サマリーパネル */
.p-cart-summary{
  background:#f9f5ef;padding:28px;border-radius:4px;
  position:sticky;top:90px;
}
.p-cart-summary__title{
  font-size:16px;font-weight:700;letter-spacing:.08em;
  padding-bottom:12px;border-bottom:1px solid #ddd;margin-bottom:18px;
}
.p-cart-summary__row{
  display:flex;justify-content:space-between;
  font-size:16px;margin-bottom:12px;line-height:1.6;
}
.p-cart-summary__row--total{
  font-size:18px;font-weight:700;
  padding-top:14px;border-top:2px solid #ccc;margin-top:8px;
}
.p-cart-summary__note{font-size:16px;color:#888;margin-top:10px;line-height:1.8;}
.p-cart-summary__btn{
  display:block;width:100%;padding:15px;margin-top:22px;
  background:#c4171b;color:#fff;border:none;
  font-size:16px;letter-spacing:.1em;cursor:pointer;
  font-family:inherit;text-align:center;transition:.25s;
  text-decoration:none;
}
.p-cart-summary__btn:hover{background:#a0131a;color:#fff;}
.p-cart-summary__btn--back{
  display:block;text-align:center;margin-top:12px;
  font-size:16px;color:#888;text-decoration:underline;
}
.p-cart-summary__btn--back:hover{color:#c4171b;}

/* フォーム共通 */
.p-cart-form{max-width:720px;}
.p-cart-form__section{margin-bottom:44px;}
.p-cart-form__section-title{
  font-size:16px;font-weight:700;letter-spacing:.08em;
  padding:10px 16px;margin-bottom:24px;
  background:#f9f5ef;border-left:4px solid #4a8c5c;
}
.p-cart-form__row{display:flex;gap:16px;margin-bottom:18px;flex-wrap:wrap;}
.p-cart-form__field{flex:1;min-width:200px;}
.p-cart-form__field--full{width:100%;flex:none;}
.p-cart-form__label{
  display:block;font-size:16px;font-weight:700;
  color:#555;margin-bottom:7px;
}
.p-cart-form__label .required{
  display:inline-block;margin-left:6px;padding:1px 6px;
  background:#c4171b;color:#fff;font-size:16px;border-radius:2px;font-weight:400;
}
.p-cart-form__input,
.p-cart-form__select,
.p-cart-form__textarea{
  width:100%;padding:10px 14px;
  border:1px solid #ccc;background:#fff;
  font-size:16px;font-family:inherit;line-height:1.6;
  transition:border-color .2s;
  -webkit-appearance:none;appearance:none;
}
.p-cart-form__input:focus,
.p-cart-form__select:focus,
.p-cart-form__textarea:focus{outline:none;border-color:#4a8c5c;}
.p-cart-form__textarea{height:100px;resize:vertical;}
.p-cart-form__hint{font-size:16px;color:#999;margin-top:5px;}
.p-cart-form__radio-group{display:flex;flex-direction:column;gap:10px;}
.p-cart-form__radio{
  display:flex;align-items:center;gap:10px;
  padding:14px 16px;border:1px solid #ddd;cursor:pointer;
  transition:.2s;
}
.p-cart-form__radio:hover{border-color:#4a8c5c;background:#fafdf9;}
.p-cart-form__radio input[type="radio"]{accent-color:#4a8c5c;width:16px;height:16px;}
.p-cart-form__radio-text{font-size:16px;}
.p-cart-form__radio-sub{font-size:16px;color:#888;}
.p-cart-form__submit{
  display:block;width:100%;max-width:360px;padding:16px;
  margin:40px auto 0;
  background:#c4171b;color:#fff;border:none;
  font-size:16px;letter-spacing:.12em;cursor:pointer;
  font-family:inherit;text-align:center;transition:.25s;
}
.p-cart-form__submit:hover{background:#a0131a;}
.p-cart-demo-note{
  margin:0 0 30px;padding:12px 16px;background:#fdf5e6;
  border:1px solid #f0d090;font-size:16px;color:#b07a00;line-height:1.8;
}

/* 注文確認ページ */
.p-confirm-block{margin-bottom:40px;border:1px solid #eee;border-radius:4px;overflow:hidden;}
.p-confirm-block__head{
  padding:14px 20px;background:#f9f5ef;font-size:16px;font-weight:700;
  letter-spacing:.06em;border-bottom:1px solid #eee;
  display:flex;justify-content:space-between;align-items:center;
}
.p-confirm-block__edit{font-size:16px;color:#888;text-decoration:underline;cursor:pointer;font-weight:400;}
.p-confirm-block__edit:hover{color:#c4171b;}
.p-confirm-block__body{padding:20px;}
.p-confirm-dl{display:grid;grid-template-columns:140px 1fr;gap:0;}
.p-confirm-dl dt,.p-confirm-dl dd{
  padding:10px 0;border-bottom:1px solid #f0ebe4;
  font-size:16px;line-height:1.7;
}
.p-confirm-dl dt{font-weight:700;color:#666;}
.p-confirm-dl dd{color:#333;}
.p-confirm-total{
  background:#f9f5ef;padding:24px 20px;border-radius:4px;margin-bottom:40px;
}
.p-confirm-total__row{
  display:flex;justify-content:space-between;
  font-size:16px;padding:8px 0;border-bottom:1px solid #e8e3dc;
}
.p-confirm-total__row:last-child{border-bottom:none;}
.p-confirm-total__row--grand{font-size:20px;font-weight:700;padding-top:14px;}
.p-confirm-agree{
  text-align:center;margin-bottom:30px;font-size:16px;color:#666;line-height:2;
}
.p-confirm-agree a{color:#c4171b;text-decoration:underline;}

/* 注文完了ページ */
.p-completion{text-align:center;padding:60px 20px;}
.p-completion__icon{font-size:60px;margin-bottom:20px;}
.p-completion__title{
  font-size:26px;font-weight:700;letter-spacing:.1em;margin-bottom:16px;
}
.p-completion__msg{font-size:16px;color:#555;line-height:2;margin-bottom:40px;}
.p-completion__box{
  display:inline-block;background:#f9f5ef;
  padding:24px 40px;border-radius:4px;margin-bottom:40px;
  text-align:left;min-width:300px;
}
.p-completion__box-row{display:flex;justify-content:space-between;gap:40px;font-size:16px;margin-bottom:10px;}
.p-completion__box-row:last-child{margin-bottom:0;}
.p-completion__box-label{color:#888;font-weight:700;}
.p-completion__box-val{color:#333;}
.p-completion__back{
  display:inline-block;padding:13px 40px;
  border:2px solid #333;color:#333;font-size:16px;letter-spacing:.1em;
  transition:.25s;margin-top:20px;
}
.p-completion__back:hover{background:#333;color:#fff;}


/* ===== WordPress / SWELL compatibility ===== */
body.stp-site,
body.stp-site #content,
body.stp-site #main_content,
body.stp-site .l-mainContent,
body.stp-site .l-content {
  background:#fffcf7;
}
body.stp-site .l-mainContent,
body.stp-site .l-content,
body.stp-site #content { padding:0; }
body.stp-site .l-container { width:auto; }
body.admin-bar .stp-header { top:32px; }
@media(max-width:782px){ body.admin-bar .stp-header { top:46px; } }
body.stp-site .l-footer { margin-top:0; }
body.stp-site .p-mainVisual { margin-top:0; }
body.stp-site .p-mainVisual__slide img { width:100%; height:100%; object-fit:cover; }
.stp-empty-list { padding:18px 0; color:#777; border-bottom:1px solid #eee; }


/* ===== CONTACT page (static preview parity) ===== */
/* The static preview uses the page heading, then one full-width telephone card,
   then the form itself without an additional outer card. */
.stp-contact-page .p-pageHero{margin-top:0;}
.stp-contact{padding-bottom:28px;}
.stp-contact .l-pageContent__heading{margin-bottom:50px;}

/* Full-width telephone card: matches contact.html .contact-info */
.stp-contactCallout{
  width:100%;
  text-align:center;
  background:#f9f6f2;
  padding:40px;
  margin:0 0 50px;
  border:0;
  box-shadow:none;
}
.stp-contactCallout h3{
  font-size:20px;
  font-weight:400;
  letter-spacing:.08em;
  margin:0;
}
.stp-contactCallout p{font-size:13px;color:#666;margin:5px 0 0;}
.stp-contactCallout__tel{
  display:inline-block;
  color:#c4171b;
  font-size:32px;
  font-weight:700;
  line-height:1.25;
  letter-spacing:.05em;
  margin:15px 0 5px;
}
.stp-contactCallout__tel:hover{color:#a0131a;}
.stp-contactCallout__hours{font-size:16px!important;color:#999!important;letter-spacing:0;margin-top:0!important;}

/* Form: same open layout as the static preview */
.stp-contact__form{width:100%;max-width:none;margin:0;}
.stp-contact__formLead{margin:0 0 30px;font-size:14px;line-height:1.8;}
.stp-contact__formLead p{margin:0;}
.stp-contact__requiredMark{color:#c4171b;font-weight:700;}
.stp-contact__form .wpcf7{width:100%;}
.stp-contact__form .wpcf7 form{margin:0;}
.stp-contact__form .st-contact-form p{margin:0 0 20px;}
.stp-contact__form .st-contact-form label{
  display:block;
  color:#333;
  font-size:16px;
  font-weight:700;
  letter-spacing:0;
  line-height:1.6;
}
.stp-contact__form .st-contact-form .required{
  display:inline-block;
  background:#c4171b;
  color:#fff;
  border-radius:2px;
  font-size:13px;
  font-weight:400;
  line-height:1;
  padding:4px 8px;
  margin-left:8px;
  vertical-align:1px;
  letter-spacing:.04em;
}
.stp-contact__form .st-contact-form .wpcf7-form-control-wrap{display:block;margin-top:7px;}
.stp-contact__form .st-contact-form input[type="text"],
.stp-contact__form .st-contact-form input[type="email"],
.stp-contact__form .st-contact-form input[type="tel"],
.stp-contact__form .st-contact-form input[type="date"],
.stp-contact__form .st-contact-form input[type="number"],
.stp-contact__form .st-contact-form select,
.stp-contact__form .st-contact-form textarea{
  display:block;
  width:100%!important;
  max-width:none!important;
  min-height:0;
  background:#fff!important;
  color:#333!important;
  border:1px solid #ddd!important;
  border-radius:0!important;
  box-shadow:none!important;
  font-family:inherit!important;
  font-size:16px!important;
  line-height:1.6!important;
  padding:12px 15px!important;
}
.stp-contact__form .st-contact-form input::placeholder,
.stp-contact__form .st-contact-form textarea::placeholder{color:#aaa;opacity:1;}
.stp-contact__form .st-contact-form select{height:52px!important;}
.stp-contact__form .st-contact-form textarea{min-height:180px!important;resize:vertical;}
.stp-contact__form .st-contact-form input:focus,
.stp-contact__form .st-contact-form select:focus,
.stp-contact__form .st-contact-form textarea:focus{
  outline:none!important;
  border-color:#c4171b!important;
  box-shadow:0 0 0 2px rgba(196,23,27,.10)!important;
}
.stp-contact__form .st-contact-form .form-submit{text-align:center;margin:30px 0 0;}
.stp-contact__form .st-contact-form input[type="submit"]{
  min-width:190px;
  appearance:none;
  border:0!important;
  border-radius:0!important;
  background:#c4171b!important;
  color:#fff!important;
  font-family:inherit!important;
  font-size:16px!important;
  font-weight:400!important;
  letter-spacing:.1em;
  line-height:1!important;
  padding:16px 60px!important;
  cursor:pointer;
  transition:background .2s ease;
}
.stp-contact__form .st-contact-form input[type="submit"]:hover{background:#a0131a!important;}
.stp-contact__form .wpcf7-not-valid-tip{margin-top:7px;color:#c4171b;font-size:14px;}
.stp-contact__form .wpcf7-response-output{margin:28px 0 0!important;padding:12px 16px!important;border-color:#c4171b!important;}
.stp-contact__help{text-align:center;color:#aaa;font-size:12px;line-height:1.8;margin:15px 0 0;}
.stp-contact__help a{color:#aaa;text-decoration:none;}
.stp-contact__empty{padding:24px;background:#faf8f4;text-align:center;color:#888;}
@media(max-width:767px){
  .stp-contactCallout{padding:30px 18px;margin-bottom:38px;}
  .stp-contactCallout h3{font-size:18px;}
  .stp-contactCallout__tel{font-size:28px;}
  .stp-contactCallout__hours{font-size:13px!important;line-height:1.8;}
  .stp-contact__formLead{font-size:14px;}
  .stp-contact__form .st-contact-form p{margin-bottom:20px;}
  .stp-contact__form .st-contact-form input[type="text"],
  .stp-contact__form .st-contact-form input[type="email"],
  .stp-contact__form .st-contact-form input[type="tel"],
  .stp-contact__form .st-contact-form input[type="date"],
  .stp-contact__form .st-contact-form input[type="number"],
  .stp-contact__form .st-contact-form select,
  .stp-contact__form .st-contact-form textarea{font-size:16px!important;padding:12px 14px!important;}
  .stp-contact__form .st-contact-form textarea{min-height:170px!important;}
  .stp-contact__form .st-contact-form input[type="submit"]{width:190px;min-width:0;padding:16px 20px!important;}
}

/* v0.40: preview parity header breakpoint fix
   Desktop/tablet must use top navigation like the preview. Drawer is mobile-only. */
@media (min-width: 768px) {
  .stp-header {
    padding: 0 16px !important;
  }

  .stp-gnav {
    display: flex !important;
    align-items: center !important;
    gap: 0 !important;
  }

  .stp-gnav a {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    padding: 18px 10px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    color: #333 !important;
    letter-spacing: .05em !important;
    position: relative !important;
    white-space: nowrap !important;
  }

  .stp-gnav a span {
    font-size: 10px !important;
    color: #999 !important;
    font-weight: 400 !important;
    margin-top: 2px !important;
  }

  .stp-headBtn {
    display: block !important;
    margin-left: 8px !important;
  }

  .stp-headBtn__img {
    height: 50px !important;
    width: auto !important;
  }

  .stp-hamburger {
    display: none !important;
  }

  .stp-drawer,
  .stp-drawer.is-open,
  .stp-drawer[aria-hidden="false"] {
    display: none !important;
    pointer-events: none !important;
    visibility: hidden !important;
  }

  body.is-drawer-open {
    overflow: auto !important;
  }
}

@media (max-width: 767px) {
  .stp-gnav {
    display: none !important;
  }

  .stp-headBtn {
    display: none !important;
  }

  .stp-hamburger {
    display: flex !important;
  }
}

/* v0.40: keep broken/legacy related product block hidden without touching Welcart PHP. */
.stp-wc-product-page .stp-wc-related,
.stp-wc-related,
.p-item__related.stp-wc-related {
  display: none !important;
}


/* v0.41: サイドメニュー完全停止。ヘッダーはpreview同様、上部メニューのみ。 */
.stp-hamburger,
.stp-drawer,
.stp-drawer.is-open,
.stp-drawer__overlay,
.stp-drawer__panel,
.stp-drawer__head,
.stp-drawer__nav,
.stp-drawer__tel {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.is-drawer-open {
  overflow: auto !important;
}

.stp-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 0 16px !important;
}

.stp-header__logo {
  flex: 0 0 auto !important;
}

.stp-header__right {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 0 !important;
  min-width: 0 !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: none !important;
}

.stp-header__right::-webkit-scrollbar {
  display: none !important;
}

.stp-gnav {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  flex-wrap: nowrap !important;
  gap: 0 !important;
  min-width: max-content !important;
}

.stp-gnav a {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
  padding: 18px 10px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: .05em !important;
  line-height: 1.25 !important;
  white-space: nowrap !important;
}

.stp-gnav a span {
  display: block !important;
  margin-top: 2px !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  color: #999 !important;
  white-space: nowrap !important;
}

.stp-headBtn {
  display: block !important;
  flex: 0 0 auto !important;
  margin-left: 8px !important;
}

.stp-headBtn__img {
  height: 50px !important;
  width: auto !important;
}

@media (min-width: 1080px) {
  .stp-header {
    padding: 0 30px !important;
  }

  .stp-gnav a {
    padding: 22px 18px !important;
    font-size: 14px !important;
  }

  .stp-gnav a span {
    font-size: 11px !important;
  }

  .stp-headBtn__img {
    height: 56px !important;
  }
}

@media (max-width: 767px) {
  .stp-header {
    padding: 8px 10px !important;
    gap: 8px !important;
  }

  .stp-header__logo img {
    height: 28px !important;
  }

  .stp-header__right {
    flex: 1 1 auto !important;
  }

  .stp-gnav a {
    padding: 12px 8px !important;
    font-size: 11px !important;
  }

  .stp-gnav a span {
    font-size: 9px !important;
  }

  .stp-headBtn__img {
    height: 40px !important;
  }
}

/* =========================================================
   v0.76 CONTACT refactor
   - Contact Form 7 / WP本文のフォーム出力を優先
   - テーマ側はpreviewに合わせた見た目だけ調整
   ========================================================= */
.stp-contact-page .p-pageHero {
  margin-top: 0;
}

.stp-contact-page .c-breadcrumb {
  margin-bottom: 40px;
}

.stp-contact {
  padding: 0 0 80px;
}

.stp-contact .l-pageContent__heading {
  margin-bottom: 50px;
}

.stp-contactCallout.contact-info {
  width: 100%;
  background: #f9f6f2;
  text-align: center;
  padding: 40px;
  margin: 0 0 50px;
  border: 0;
  box-shadow: none;
}

.stp-contactCallout__title {
  margin: 0;
  font-size: 16px;
  color: #333;
  line-height: 1.8;
  letter-spacing: .04em;
}

.stp-contactCallout__lead {
  margin: 5px 0 0;
  font-size: 13px;
  color: #666;
  line-height: 1.8;
}

.stp-contactCallout .stp-contactCallout__tel,
.stp-contactCallout .contact-info__tel {
  display: inline-block;
  color: #c4171b;
  font-size: 32px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .05em;
  margin: 15px 0 5px;
}

.stp-contactCallout .stp-contactCallout__tel:hover,
.stp-contactCallout .contact-info__tel:hover {
  color: #a0131a;
}

.stp-contactCallout .stp-contactCallout__hours,
.stp-contactCallout .contact-info__note {
  margin: 0;
  color: #999 !important;
  font-size: 16px !important;
  line-height: 1.8;
  letter-spacing: 0;
}

.stp-contact__form {
  width: 100%;
  max-width: none;
  margin: 0;
}

.stp-contact__formLead {
  margin: 0 0 30px;
  font-size: 14px;
  line-height: 1.8;
}

.stp-contact__formLead p {
  margin: 0;
}

.stp-contact__requiredMark {
  color: #c4171b;
  font-weight: 700;
}

/* Contact Form 7: plain paragraph/label markup */
.stp-contact__form .wpcf7,
.stp-contact__form .wpcf7 form,
.stp-contact__form .wpcf7-form {
  width: 100%;
  margin: 0;
}

.stp-contact__form .wpcf7 p {
  margin: 0 0 20px;
}

.stp-contact__form .wpcf7 label,
.stp-contact__form .st-contact-form label,
.stp-contact__form .contact-form label {
  display: block;
  margin: 0;
  color: #333;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.6;
}

.stp-contact__form .wpcf7-form-control-wrap {
  display: block;
  margin-top: 7px;
}

/* Contact Form 7: dl/table_01 markup from current form */
.stp-contact__form .table_01,
.stp-contact__form .table_01 .tbody {
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.stp-contact__form .table_01 dl,
.stp-contact__form .contact-form dl {
  display: block;
  margin: 0 0 20px;
  padding: 0;
  border: 0;
}

.stp-contact__form .table_01 dt,
.stp-contact__form .contact-form dt {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 6px;
  padding: 0;
  background: transparent;
  border: 0;
  color: #333;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
}

.stp-contact__form .table_01 dd,
.stp-contact__form .contact-form dd {
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

/* Required / optional badges */
.stp-contact__form .required,
.stp-contact__form .hisu,
.stp-contact__form .wpcf7 .required {
  display: inline-block;
  background: #c4171b;
  color: #fff;
  border-radius: 2px;
  font-size: 13px;
  font-weight: 400;
  line-height: 1;
  padding: 4px 8px;
  margin-left: 8px;
  vertical-align: 1px;
  letter-spacing: .04em;
}

.stp-contact__form .ninni,
.stp-contact__form .optional {
  display: inline-block;
  background: #aaa;
  color: #fff;
  border-radius: 2px;
  font-size: 13px;
  font-weight: 400;
  line-height: 1;
  padding: 4px 8px;
  margin-left: 8px;
  vertical-align: 1px;
}

.stp-contact__form input[type="text"],
.stp-contact__form input[type="email"],
.stp-contact__form input[type="tel"],
.stp-contact__form input[type="date"],
.stp-contact__form input[type="number"],
.stp-contact__form select,
.stp-contact__form textarea {
  display: block;
  width: 100% !important;
  max-width: none !important;
  min-height: 0;
  background: #fff !important;
  color: #333 !important;
  border: 1px solid #ddd !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  font-family: inherit !important;
  font-size: 16px !important;
  line-height: 1.6 !important;
  padding: 12px 15px !important;
}

.stp-contact__form select {
  height: 52px !important;
}

.stp-contact__form textarea {
  min-height: 180px !important;
  resize: vertical;
}

.stp-contact__form input::placeholder,
.stp-contact__form textarea::placeholder {
  color: #aaa;
  opacity: 1;
}

.stp-contact__form input:focus,
.stp-contact__form select:focus,
.stp-contact__form textarea:focus {
  outline: none !important;
  border-color: #c4171b !important;
  box-shadow: 0 0 0 2px rgba(196, 23, 27, .10) !important;
}

.stp-contact__form input[type="submit"],
.stp-contact__form button[type="submit"],
.stp-contact__form .contact-form__submit {
  display: block;
  min-width: 190px;
  appearance: none;
  border: 0 !important;
  border-radius: 0 !important;
  background: #c4171b !important;
  color: #fff !important;
  font-family: inherit !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  letter-spacing: .1em;
  line-height: 1 !important;
  padding: 16px 60px !important;
  margin: 30px auto 0 !important;
  cursor: pointer;
  transition: background .2s ease;
  text-align: center;
}

.stp-contact__form input[type="submit"]:hover,
.stp-contact__form button[type="submit"]:hover,
.stp-contact__form .contact-form__submit:hover {
  background: #a0131a !important;
}

.stp-contact__form .wpcf7-not-valid-tip {
  margin-top: 7px;
  color: #c4171b;
  font-size: 14px;
}

.stp-contact__form .wpcf7-response-output {
  margin: 28px 0 0 !important;
  padding: 12px 16px !important;
  border-color: #c4171b !important;
}

.stp-contact__help {
  text-align: center;
  color: #aaa;
  font-size: 12px;
  line-height: 1.8;
  margin: 15px 0 0;
}

.stp-contact__help a {
  color: #aaa;
  text-decoration: none;
}

.stp-contact__empty {
  padding: 24px;
  background: #faf8f4;
  text-align: center;
  color: #888;
}

@media (max-width: 767px) {
  .stp-contactCallout.contact-info {
    padding: 30px 18px;
    margin-bottom: 38px;
  }

  .stp-contactCallout .stp-contactCallout__tel,
  .stp-contactCallout .contact-info__tel {
    font-size: 28px;
  }

  .stp-contactCallout .stp-contactCallout__hours,
  .stp-contactCallout .contact-info__note {
    font-size: 13px !important;
  }

  .stp-contact__formLead {
    font-size: 14px;
  }

  .stp-contact__form input[type="text"],
  .stp-contact__form input[type="email"],
  .stp-contact__form input[type="tel"],
  .stp-contact__form input[type="date"],
  .stp-contact__form input[type="number"],
  .stp-contact__form select,
  .stp-contact__form textarea {
    font-size: 16px !important;
    padding: 12px 14px !important;
  }

  .stp-contact__form textarea {
    min-height: 170px !important;
  }

  .stp-contact__form input[type="submit"],
  .stp-contact__form button[type="submit"],
  .stp-contact__form .contact-form__submit {
    width: 190px;
    min-width: 0;
    padding: 16px 20px !important;
  }
}


/* ===== ACCESS Google review card ===== */
.stp-googleReview {
  margin: 0 auto 56px;
  padding: 30px 32px 24px;
  background: #fff;
  border: 1px solid rgba(70, 55, 40, .12);
  border-radius: 4px;
  box-shadow: 0 8px 24px rgba(67, 45, 25, .08);
}
.stp-googleReview__head {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: flex-start;
  margin-bottom: 22px;
}
.stp-googleReview__eyebrow {
  margin: 0 0 4px;
  font-size: 20px;
  line-height: 1.5;
  letter-spacing: .02em;
  color: #26211d;
}
.stp-googleReview__scoreRow {
  display: flex;
  align-items: center;
  gap: 12px;
}
.stp-googleReview__score {
  display: inline-block;
  font-size: 46px;
  line-height: 1;
  font-weight: 400;
  letter-spacing: .02em;
  color: #26211d;
}
.stp-googleReview__stars,
.stp-googleReview__miniStars {
  color: #f6b400;
  letter-spacing: .08em;
  white-space: nowrap;
}
.stp-googleReview__count {
  margin: 6px 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: #6f655f;
}
.stp-googleReview__write {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 190px;
  padding: 12px 18px;
  border-radius: 3px;
  background: #4285f4;
  color: #fff;
  font-size: 14px;
  line-height: 1.3;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(66, 133, 244, .22);
}
.stp-googleReview__write:hover {
  color: #fff;
  opacity: .9;
  transform: translateY(-1px);
}
.stp-googleReview__g {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #fff;
  color: #4285f4;
  font-family: Arial, sans-serif;
  font-weight: 700;
  line-height: 1;
}
.stp-googleReview__cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.stp-googleReview__card {
  min-width: 0;
  padding: 18px 18px 16px;
  background: #fff;
  border: 1px solid rgba(70, 55, 40, .13);
  border-radius: 5px;
  box-shadow: 0 3px 10px rgba(67, 45, 25, .06);
}
.stp-googleReview__cardTop {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.stp-googleReview__avatar {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border-radius: 50%;
  background: #f1f4fb;
  color: #4285f4;
  font-family: Arial, sans-serif;
  font-size: 18px;
  font-weight: 700;
}
.stp-googleReview__cardName {
  margin: 0;
  font-size: 13px;
  line-height: 1.45;
  font-weight: 700;
  color: #332a24;
}
.stp-googleReview__cardMeta {
  margin: 0;
  font-size: 11px;
  line-height: 1.45;
  color: #8d837b;
}
.stp-googleReview__miniStars {
  margin: 0 0 8px;
  font-size: 12px;
}
.stp-googleReview__body {
  margin: 0;
  font-size: 13px;
  line-height: 1.8;
  color: #4a4038;
}
.stp-googleReview__moreWrap {
  margin-top: 18px;
  text-align: center;
}
.stp-googleReview__more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  letter-spacing: .04em;
  color: #4d443e;
  text-decoration: none;
}
.stp-googleReview__more::after {
  content: '›';
  font-size: 18px;
  line-height: 1;
}
.stp-googleReview__more:hover {
  color: #c4171b;
}
.l-footer__copy .l-footer__copyright,
    .l-footer__copy .l-footer__credit {
        display: block;
    }

    .l-footer__copy .l-footer__credit {
        margin-top: 4px;
        font-size: 10px;
        letter-spacing: 0.08em;
        opacity: 0.8;
    }
@media (max-width: 900px) {
  .stp-googleReview__cards {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 767px) {
  .stp-googleReview {
    margin-bottom: 40px;
    padding: 24px 18px 20px;
  }
  .stp-googleReview__head {
    display: block;
  }
  .stp-googleReview__summary {
    margin-bottom: 18px;
  }
  .stp-googleReview__write {
    width: 100%;
    min-width: 0;
  }
  .stp-googleReview__eyebrow {
    font-size: 18px;
  }
  .stp-googleReview__score {
    font-size: 42px;
  }
}