/* =========================================================
   FluxCore Pro Generated Custom CSS
   Auto generated from fc_pages.layout_json advanced.custom_css
   Last updated: 2026-10-19 11:57:41
========================================================= */

/* =========================================================
   Page: header / HEADER ページ
========================================================= */

/* Block: global_header / sec_1782112078518 */
.global-header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  width: 100%;
  min-height: 78px;
  padding: 14px 34px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 28px;
  align-items: center;
  background: rgba(16, 23, 24, .88);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(12px);
}
.header-logo {
  font-family: var(--font-serif);
  color: var(--gold-light);
  font-size: 22px;
  font-weight: 900;
  letter-spacing: .14em;
  white-space: nowrap;
}
.header-logo img { max-height: 46px; width: auto; object-fit: contain; }
.desktop-nav { display: flex; justify-content: center; align-items: center; gap: 22px; }
.desktop-nav a {
  color: var(--text-on-dark-muted);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .06em;
  position: relative;
  white-space: nowrap;
}
.desktop-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -8px;
  width: 0;
  height: 1px;
  background: var(--gold-light);
  transition: width .25s ease;
}
.desktop-nav a:hover::after, .desktop-nav a.active::after { width: 100%; }
.header-btns { display: flex; align-items: center; gap: 12px; }
.btn-header-tel { color: var(--text-on-dark); font-weight: 800; font-size: 13px; }
.btn-header-reserve, .course-list-reserve, .slf-reserve-btn, .btn-menu-more, .btn-recruit-link, .btn-job-apply, .btn-submit-contact, .btn-nab-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 4px;
  border: 1px solid var(--gold);
  background: var(--gold);
  color: #111;
  font-weight: 800;
  padding: 12px 22px;
  cursor: pointer;
}
.btn-header-reserve:hover, .course-list-reserve:hover, .slf-reserve-btn:hover, .btn-menu-more:hover, .btn-recruit-link:hover, .btn-job-apply:hover, .btn-submit-contact:hover, .btn-nab-back:hover {
  background: var(--gold-light);
  border-color: var(--gold-light);
  color: #111;
}
.menu-trigger {
  display: none;
  align-items: center;
  justify-content: center;
  line-height: 1;
  border: 1px solid var(--line);
  background: transparent;
  color: var(--gold-light);
  width: 42px;
  height: 42px;
  border-radius: 4px;
}
.mobile-nav-overlay {
  position: fixed;
  inset: 0;
  z-index: 2000;
  background: rgba(16, 23, 24, .96);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 22px;
  opacity: 0;
  visibility: hidden;
  transition: opacity .25s ease, visibility .25s ease;
}
.mobile-nav-overlay.active { opacity: 1; visibility: visible; }
.mobile-nav-overlay a { font-size: 18px; color: var(--text-main); }
@media (max-width: 992px) {
  .global-header { display: flex; min-height: 68px; padding: 12px 18px; }
  .desktop-nav, .header-btns { display: none; }
  .menu-trigger { display: inline-flex; margin-left: auto; }
  .header-logo { font-size: 18px; }
}


/* =========================================================
   Page: index / 長岡市の創作居酒屋・マグロ料理
========================================================= */

/* Block: custom_html / sec_1788152463901 */
/* 01を貼ったカスタムHTMLブロックの「セクション個別 CSS」へ。
   同じ欄の既存CSSだけを置換。styleタグは不要。 */
body:has(#tc3-hero) { margin: 0; }
body:has(#tc3-hero) .global-header { box-sizing: border-box; }
body .custom-html-wrapper:has(#tc3-hero),
body .custom-html-inner:has(> #tc3-hero) {
  width: 100% !important; max-width: none !important; padding: 0 !important;
  margin: 0 !important; background: transparent !important; opacity: 1; transform: none;
}
#tc3-hero, #tc3-hero * { box-sizing: border-box; }
#tc3-hero {
  position: relative; isolation: isolate; width: 100%; overflow: hidden;
  margin: 0; background: #392016; color: #fffaf0;
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
}
#tc3-hero .tc3-hero-photo {
  position: absolute; inset: 0; width: 100%; height: 100%; max-width: none;
  display: block; object-fit: cover; object-position: center; z-index: -2;
}
#tc3-hero::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(90deg, rgba(47,23,14,.02) 0%, rgba(47,23,14,.08) 34%, rgba(47,23,14,.72) 53%, rgba(47,23,14,.97) 100%);
}
#tc3-hero .tc3-hero-inner {
  width: min(100%, 1680px); min-height: 650px; margin: auto;
  padding: 64px 5% 80px; display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 32px;
}
#tc3-hero .tc3-hero-copy { grid-column: 2; min-width: 0; }
#tc3-hero .tc3-eyebrow { margin: 0 0 22px; font-size: 14px; line-height: 1.5; letter-spacing: .13em; font-weight: 800; color: #f8cc32; }
#tc3-hero h1 { margin: 0; color: #fffaf0; font-size: clamp(40px, 5.3vw, 82px); font-weight: 900; line-height: 1.16; letter-spacing: 0; font-family: inherit; text-wrap: initial; }
#tc3-hero h1 > span { display: block; white-space: nowrap; }
#tc3-hero .tc3-hero-lead { margin: 20px 0 24px; font-size: clamp(24px, 2.55vw, 36px); font-weight: 800; line-height: 1.55; letter-spacing: 0; color: #fffaf0; }
#tc3-hero .tc3-hero-text { margin: 0; font-size: 16px; line-height: 2; font-weight: 600; color: #fff3df; }
#tc3-hero .tc3-phrase { display: inline-block; white-space: nowrap; }
#tc3-hero .tc3-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
#tc3-hero .tc3-button {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  min-height: 54px; max-width: 100%; padding: 14px 20px; border: 1px solid transparent;
  border-radius: 8px; font-size: 16px; line-height: 1.5; font-weight: 800;
  text-decoration: none; white-space: nowrap; transition: background .2s;
}
#tc3-hero .tc3-button svg { width: 16px; height: 16px; flex: 0 0 16px; fill: none; stroke: currentColor; stroke-width: 2; }
#tc3-hero .tc3-button-cream { color: #47291d; background: #fff4dd; }
#tc3-hero .tc3-button-cream:hover { background: #f8cc32; }
#tc3-hero .tc3-button-outline { color: #fffaf0; background: rgba(39,20,12,.24); border-color: #ead5b7; }
#tc3-hero .tc3-button-outline:hover { background: #6d402c; }
#tc3-hero .tc3-hero-stamp {
  position: absolute; left: 5%; bottom: 65px; display: grid; place-content: center;
  width: 118px; height: 76px; border: 2px solid #f8cc32; border-radius: 50%;
  color: #f8cc32; background: rgba(34,17,8,.38); transform: rotate(-12deg);
  text-align: center; font-size: 16px; font-weight: 800; line-height: 1.25;
}
#tc3-hero .tc3-hero-stamp strong { font-size: 21px; }
#tc3-hero .tc3-hero-scroll { position: absolute; bottom: 22px; left: 50%; transform: translateX(-50%); display: inline-flex; align-items: center; gap: 12px; min-height: 44px; color: #fff4dd; font-size: 14px; letter-spacing: .12em; text-decoration: none; }
#tc3-hero .tc3-hero-scroll span { width: 44px; height: 1px; background: #f8cc32; }
#tc3-hero a:focus-visible { outline: 3px solid #f8cc32; outline-offset: 4px; }
#tc3-hero-next { display: block; height: 0; scroll-margin-top: 16px; }
@media (min-width: 768px) and (max-width: 991px) {
  #tc3-hero .tc3-hero-lead { font-size: 22px; }
}
/* スマホ：写真→コピー→ボタン。無理な縮小や単語の途中の改行を避けます。 */
@media (max-width: 767px) {
  #tc3-hero .tc3-hero-inner { display: block; min-height: 0; padding: 180px 20px 82px; }
  #tc3-hero .tc3-hero-photo { object-position: 35% top; }
  #tc3-hero::before { background: linear-gradient(180deg, rgba(47,23,14,0) 0%, rgba(47,23,14,.12) 22%, rgba(47,23,14,.91) 43%, #392016 77%); }
  #tc3-hero .tc3-eyebrow { margin-bottom: 16px; }
  #tc3-hero h1 { font-size: clamp(36px, 9.6vw, 58px); line-height: 1.22; }
  #tc3-hero .tc3-hero-lead { font-size: clamp(20px,5.4vw,26px); margin: 18px 0; }
  #tc3-hero .tc3-hero-text { font-size: 16px; line-height: 1.85; }
  #tc3-hero .tc3-hero-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 24px; }
  #tc3-hero .tc3-button { gap: 6px; padding: 12px 8px; min-height: 52px; }
  #tc3-hero .tc3-button svg { width: 14px; height: 14px; flex-basis: 14px; }
  #tc3-hero .tc3-hero-stamp { top: 82px; bottom: auto; left: 20px; width: 105px; height: 68px; }
  #tc3-hero .tc3-hero-scroll { bottom: 12px; }
}
@media (max-width: 359px) {
  #tc3-hero .tc3-hero-actions { grid-template-columns: minmax(0,1fr); }
}

/* Block: custom_html / sec_1788144273081 */
/* 02を貼ったカスタムHTMLブロックの「セクション個別 CSS」を全置換。
   この2ブロック以外のCSS、ヒーロー、フッターは変更しません。 */
body .custom-html-wrapper:has(#tc4-about),
body .custom-html-inner:has(> #tc4-about) {
  width: 100% !important; max-width: none !important; margin: 0 !important;
  padding: 0 !important; background: transparent !important; opacity: 1; transform: none;
}
#tc4-about, #tc4-about * { box-sizing: border-box; }
#tc4-about {
  width: 100%; margin: 0; padding: 76px 5% 64px; background: #fff9ed; color: #472d20;
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 16px; line-height: 1.9;
}
#tc4-about .tc4-about-inner { max-width: 1160px; margin: 0 auto; }
#tc4-about .tc4-about-intro { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(32px,5vw,80px); align-items: start; }
#tc4-about .tc4-about-heading, #tc4-about .tc4-about-copy { min-width: 0; }
#tc4-about .tc4-eyebrow { margin: 0 0 20px; font-size: 14px; font-weight: 800; line-height: 1.5; letter-spacing: .14em; color: #86561e; }
#tc4-about .tc4-label { display: inline-block; margin: 0 0 20px; padding: 3px 0 5px; border-bottom: 3px solid #e9b92e; color: #6f4930; font-size: 14px; font-weight: 700; line-height: 1.5; }
#tc4-about h2 { margin: 0; font-family: inherit; font-size: clamp(30px,3.65vw,50px); font-weight: 900; line-height: 1.5; letter-spacing: 0; color: #472d20; text-wrap: initial; }
#tc4-about h2 > span { display: block; white-space: nowrap; }
#tc4-about .tc4-about-copy p { margin: 0 0 16px; font-size: 16px; font-weight: 500; line-height: 1.95; color: #614531; letter-spacing: 0; }
#tc4-about .tc4-about-copy .tc4-lead { margin-top: 0; color: #472d20; font-size: 18px; font-weight: 700; line-height: 1.9; }
#tc4-about .tc4-phrase { display: inline-block; white-space: nowrap; }
#tc4-about .tc4-points { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 24px 0 0; list-style: none; }
#tc4-about .tc4-points li { padding: 6px 12px; border: 1px solid #d8c39e; border-radius: 3px; font-size: 14px; font-weight: 700; line-height: 1.5; white-space: nowrap; background: #f8efd9; color: #624128; }
#tc4-about .tc4-photo-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; margin-top: 48px; }
#tc4-about .tc4-photo-link { display: block; min-width: 0; color: #472d20; text-decoration: none; border-bottom: 2px solid #dcbf80; }
#tc4-about .tc4-photo-window { overflow: hidden; background: #ecdfc7; aspect-ratio: 16 / 10; }
#tc4-about .tc4-photo-window img { display: block; width: 100%; height: 100%; max-width: 100%; object-fit: cover; object-position: center; transition: transform .25s ease; }
#tc4-about .tc4-photo-caption { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 0; }
#tc4-about .tc4-photo-caption > div { min-width: 0; }
#tc4-about .tc4-photo-title { margin: 0 0 6px; color: #472d20; font-size: 22px; font-weight: 800; line-height: 1.6; letter-spacing: 0; }
#tc4-about .tc4-photo-cta { display: block; color: #795638; font-size: 14px; font-weight: 700; line-height: 1.6; }
#tc4-about .tc4-photo-caption svg { width: 38px; height: 38px; flex: 0 0 38px; padding: 9px; border: 1px solid #ccae6c; border-radius: 50%; fill: none; stroke: currentColor; stroke-width: 2; }
#tc4-about .tc4-photo-link:hover img { transform: scale(1.025); }
#tc4-about .tc4-photo-link:hover .tc4-photo-cta { text-decoration: underline; text-underline-offset: 4px; }
#tc4-about .tc4-photo-link:hover svg { background: #f4c542; border-color: #f4c542; }
#tc4-about .tc4-photo-link:focus-visible { outline: 3px solid #9a5e22; outline-offset: 5px; }
#tc4-about .tc4-note { margin: 20px 0 0; color: #785b43; font-size: 14px; line-height: 1.8; word-break: normal; word-break: auto-phrase; text-wrap: balance; }
@media (max-width: 900px) {
  #tc4-about .tc4-about-intro { grid-template-columns: minmax(0,1fr); gap: 28px; }
}
/* スマホ：見出し→紹介文→料理写真→店内写真の順。 */
@media (max-width: 600px) {
  #tc4-about { padding: 44px 20px 40px; }
  #tc4-about .tc4-eyebrow { margin-bottom: 14px; }
  #tc4-about .tc4-label { margin-bottom: 14px; }
  #tc4-about h2 { font-size: clamp(28px,7.8vw,42px); line-height: 1.5; }
  #tc4-about .tc4-about-copy .tc4-lead { font-size: 16px; }
  #tc4-about .tc4-about-copy p { font-size: 16px; line-height: 1.9; }
  #tc4-about .tc4-points { margin-top: 20px; gap: 8px; }
  #tc4-about .tc4-photo-links { grid-template-columns: minmax(0,1fr); gap: 28px; margin-top: 32px; }
  #tc4-about .tc4-photo-caption { padding: 16px 0; gap: 12px; }
  #tc4-about .tc4-photo-title { font-size: 20px; }
  #tc4-about .tc4-note { margin-top: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  #tc4-about .tc4-photo-window img { transition: none; }
  #tc4-about .tc4-photo-link:hover img { transform: none; }
}

/* Block: image_grid / sec_1788149454923 */
/* 画像挿入パーツ（⑦ image_grid） */
.image-grid-section {padding: 90px 20px; background: #101718; color: #fff7ea;}
.image-grid-container {max-width: 1120px; margin: 0 auto;}
.image-grid-header {max-width: 820px; margin: 0 auto 34px; text-align: center;}
.image-grid-title {font-family: 'Shippori Mincho', serif; font-size: clamp(1.5rem, 3vw, 2.2rem); font-weight: 900; letter-spacing: 0.1em; color: var(--gold-light); margin: 0 0 12px;}
.image-grid-desc {font-size: 14px; line-height: 1.9; color: #e0c8a0; margin: 0;}
.image-grid {display: grid; gap: 16px;}
.image-grid-pc-2 {grid-template-columns: repeat(2, 1fr);}
.image-grid-pc-3 {grid-template-columns: repeat(3, 1fr);}
.image-grid-pc-4 {grid-template-columns: repeat(4, 1fr);}
.image-grid-item {overflow: hidden;}
.image-grid-item img {display: block; width: 100%; height: auto;}
/* 画像の形（CSSで調整可能） */
.image-grid-shape-square .image-grid-item img {aspect-ratio: 1 / 1; height: auto; object-fit: cover;}
.image-grid-shape-circle .image-grid-item img {aspect-ratio: 1 / 1; height: auto; object-fit: cover; border-radius: 999px;}
.image-grid-shape-rounded .image-grid-item img {border-radius: 12px;}
.image-grid-shape-free .image-grid-item img {border-radius: 0;}
.image-grid-empty {text-align: center; color: var(--text-sub); font-size: 13px; padding: 40px 20px; border: 1px dashed var(--line); border-radius: 8px;}
@media (max-width: 768px) {
  .image-grid-section {padding: 64px 15px;}
  .image-grid {gap: 12px;}
  .image-grid-sp-1 {grid-template-columns: 1fr;}
  .image-grid-sp-2 {grid-template-columns: repeat(2, 1fr);}
}

/* Block: custom_html / sec_1788149486140 */
/* 01を貼ったブロックの「セクション個別CSS」を、この内容で全置換。
   サイト全体のCSSは置き換えません。ほかのブロックには影響しません。 */
body .custom-html-wrapper:has(#tc5-dog-lunch),
body .custom-html-inner:has(> #tc5-dog-lunch) {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  opacity: 1;
  transform: none;
}
#tc5-dog-lunch, #tc5-dog-lunch * { box-sizing: border-box; }
#tc5-dog-lunch {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  margin: 0;
  padding: 84px 24px 76px;
  background: #fff1cb;
  color: #472d20;
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 16px;
  line-height: 1.9;
  text-align: center;
}
#tc5-dog-lunch .tc5-lunch-inner {
  position: relative;
  z-index: 1;
  max-width: 900px;
  margin: 0 auto;
}
#tc5-dog-lunch .tc5-eyebrow {
  margin: 0 0 20px;
  color: #795028;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.6;
  letter-spacing: .12em;
}
#tc5-dog-lunch .tc5-badge {
  display: inline-flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 4px 16px;
  margin: 0 0 28px;
  padding: 9px 20px;
  border: 1px solid #d6b56b;
  border-radius: 999px;
  background: #fffaf0;
  color: #69431f;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
}
#tc5-dog-lunch .tc5-badge span { white-space: nowrap; }
#tc5-dog-lunch h2 {
  margin: 0;
  padding: 0;
  border: 0;
  color: #472d20;
  font-family: inherit;
  font-size: clamp(32px, 4.5vw, 58px);
  font-weight: 900;
  line-height: 1.5;
  letter-spacing: 0;
  text-wrap: initial;
}
#tc5-dog-lunch .tc5-title-top { display: block; white-space: nowrap; }
#tc5-dog-lunch .tc5-title-main { display: block; }
#tc5-dog-lunch .tc5-title-main > span {
  display: inline-block;
  white-space: nowrap;
  background: linear-gradient(transparent 76%, #efbf40 76%, #efbf40 93%, transparent 93%);
}
#tc5-dog-lunch .tc5-lunch-copy { margin: 28px 0 0; }
#tc5-dog-lunch .tc5-lunch-copy p {
  margin: 0 0 14px;
  color: #60432d;
  font-size: 16px;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0;
}
#tc5-dog-lunch .tc5-lunch-copy p:first-child { font-size: 18px; font-weight: 700; }
#tc5-dog-lunch .tc5-lunch-copy p > span,
#tc5-dog-lunch .tc5-lunch-note > span { display: inline-block; white-space: nowrap; }
#tc5-dog-lunch .tc5-lunch-actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
  margin: 30px 0 0;
}
#tc5-dog-lunch .tc5-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  min-height: 58px;
  max-width: 100%;
  padding: 14px 24px;
  border: 1px solid #62432a;
  border-radius: 6px;
  font-family: inherit;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.6;
  letter-spacing: 0;
  text-decoration: none;
  transition: background-color .2s ease, box-shadow .2s ease;
}
#tc5-dog-lunch .tc5-button span { white-space: nowrap; }
#tc5-dog-lunch .tc5-button-primary { background: #55351f; color: #fffaf0; }
#tc5-dog-lunch .tc5-button-secondary { background: #fffaf0; color: #55351f; }
#tc5-dog-lunch .tc5-button svg {
  display: block;
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
#tc5-dog-lunch .tc5-button:focus-visible { outline: 3px solid #9b5b12; outline-offset: 5px; }
@media (hover: hover) {
  #tc5-dog-lunch .tc5-button-primary:hover { background: #744b2e; }
  #tc5-dog-lunch .tc5-button-secondary:hover { background: #ffe19b; }
}
#tc5-dog-lunch .tc5-lunch-note {
  margin: 20px 0 0;
  color: #715133;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.9;
  letter-spacing: 0;
}

/* 肉球：足跡が下から上へ交互に現れ、ゆっくり消えます。
   --stepが足をつく順番です。写真素材・画像ファイルは不要です。 */
#tc5-dog-lunch .tc5-paw-trail {
  position: absolute;
  z-index: 0;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
}
#tc5-dog-lunch .tc5-paw-trail > span {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: clamp(32px, 4.6vw, 62px);
  aspect-ratio: 1;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='%23865629'%3E%3Cellipse cx='10' cy='25' rx='7' ry='10' transform='rotate(-25 10 25)'/%3E%3Cellipse cx='24' cy='13' rx='7' ry='10' transform='rotate(-8 24 13)'/%3E%3Cellipse cx='41' cy='13' rx='7' ry='10' transform='rotate(8 41 13)'/%3E%3Cellipse cx='55' cy='25' rx='7' ry='10' transform='rotate(25 55 25)'/%3E%3Cpath d='M17 38C22 30 24 27 32 27s11 4 16 12c5 7 7 12 3 17s-12 2-19 2-15 3-19-2-1-12 4-18Z'/%3E%3C/svg%3E") center / contain no-repeat;
  opacity: 0;
  transform: rotate(var(--r));
  animation: tc5-paw-walk 12s linear infinite;
  animation-delay: calc(var(--step) * .55s);
}
@keyframes tc5-paw-walk {
  0% { opacity: 0; }
  4%, 32% { opacity: .16; }
  65%, 100% { opacity: 0; }
}

/* スマホ：見出しを意味のまとまりで3行に。ボタンは縦積み。 */
@media (max-width: 600px) {
  #tc5-dog-lunch { padding: 52px 20px 48px; }
  #tc5-dog-lunch .tc5-eyebrow { margin-bottom: 16px; font-size: 14px; letter-spacing: .08em; }
  #tc5-dog-lunch .tc5-badge { margin-bottom: 24px; padding: 8px 14px; gap: 4px 10px; font-size: 14px; }
  #tc5-dog-lunch h2 { font-size: clamp(28px, 8.2vw, 42px); line-height: 1.6; }
  #tc5-dog-lunch .tc5-title-main > span { display: table; margin: 0 auto; }
  #tc5-dog-lunch .tc5-lunch-copy { margin-top: 24px; }
  #tc5-dog-lunch .tc5-lunch-copy p:first-child { font-size: 16px; }
  #tc5-dog-lunch .tc5-lunch-actions { flex-direction: column; align-items: center; gap: 12px; margin-top: 24px; }
  #tc5-dog-lunch .tc5-button { width: 100%; max-width: 340px; min-height: 56px; padding: 14px 12px; gap: 12px; }
  #tc5-dog-lunch .tc5-lunch-note { margin-top: 18px; }
  #tc5-dog-lunch .tc5-paw-trail { opacity: .6; }
}
/* 端末で「視差効果を減らす」等が有効なら、静止した足跡にします。 */
@media (prefers-reduced-motion: reduce) {
  #tc5-dog-lunch .tc5-paw-trail > span { animation: none; opacity: .1; }
  #tc5-dog-lunch .tc5-button { transition: none; }
}

/* Block: store_info / sec_1785931790498 */
/* 【貼り付け先】既存の「店舗概要」ブロック → セクション個別CSS
   このブロックの個別CSSを全置換してください。HTML・PHPの変更は不要です。
   【画像の指定】背景設定（共通）→ セクションの背景画像で選択して保存。
   CSSに画像パスを書かないので、管理画面で画像を変えるとそのまま反映されます。
   対象：TOPの店舗概要 sec_1785931790498。他ブロックには適用されません。 */

#sec_1785931790498.store-info-section {
  /* フレックスコアが画像に重ねる暗いグラデーションを透明にします。 */
  --fc-bg-overlay: transparent !important;

  position: relative;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 80px 24px !important;
  /* background / background-image は指定しないこと。
     管理画面が出力する背景画像をそのまま利用します。 */
  background-color: #fff7e7;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-attachment: scroll;
  background-blend-mode: normal;
  color: #472d20;
  font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 16px;
  line-height: 1.9;
  opacity: 1;
  filter: none;
  transform: none;
}

/* 疑似要素によるオーバーレイも使用しません。 */
#sec_1785931790498::before,
#sec_1785931790498::after { content: none !important; }
#sec_1785931790498,
#sec_1785931790498 * { box-sizing: border-box; }

#sec_1785931790498 .store-info-container {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0;
  background: transparent;
}

/* 情報は右寄せの明るいカード。左側に背景写真を見せます。
   カードは文字部分だけの不透明な背景で、写真全体を覆う幕ではありません。 */
#sec_1785931790498 .store-info-header {
  width: 100%;
  max-width: 700px;
  margin: 0 0 18px auto;
  padding: 24px 32px;
  background: #fffcf5;
  border-radius: 8px;
  text-align: left;
}
#sec_1785931790498 .store-info-title {
  margin: 0;
  padding: 0;
  color: #472d20;
  font-family: inherit;
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: 0;
  word-break: normal;
  word-break: auto-phrase;
  line-break: strict;
  text-wrap: balance;
}
#sec_1785931790498 .store-info-desc {
  margin: 12px 0 0;
  color: #604631;
  font-size: 16px;
  line-height: 1.9;
  letter-spacing: 0;
  word-break: normal;
  word-break: auto-phrase;
  line-break: strict;
  text-wrap: pretty;
}
#sec_1785931790498 .store-info-layout {
  display: block;
  width: 100%;
  max-width: 700px;
  margin: 0 0 0 auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
#sec_1785931790498 .store-info-table-wrap {
  min-width: 0;
  padding: 12px 32px;
  background: #fffcf5;
  border: 1px solid #e7d8bc;
  border-radius: 8px;
}
#sec_1785931790498 .store-info-table {
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: collapse;
  table-layout: fixed;
  background: transparent;
}
#sec_1785931790498 .store-info-table th,
#sec_1785931790498 .store-info-table td {
  padding: 17px 0;
  border: 0;
  border-bottom: 1px solid #e7d8bc;
  background: transparent;
  color: #472d20;
  font-size: 16px;
  line-height: 1.85;
  letter-spacing: 0;
  text-align: left;
  vertical-align: top;
  word-break: normal;
  word-break: auto-phrase;
  overflow-wrap: anywhere;
  line-break: strict;
  text-wrap: pretty;
}
#sec_1785931790498 .store-info-table th {
  width: 112px;
  padding-right: 20px;
  color: #795429;
  font-weight: 700;
  white-space: normal;
}
#sec_1785931790498 .store-info-table td { font-weight: 500; text-wrap: balance; }
#sec_1785931790498 .store-info-table tr:last-child th,
#sec_1785931790498 .store-info-table tr:last-child td { border-bottom: 0; }
#sec_1785931790498 .store-info-table a {
  color: #67431f;
  font-size: inherit;
  text-decoration: underline;
  text-underline-offset: 4px;
}
#sec_1785931790498 .store-info-table a:focus-visible {
  outline: 3px solid #aa711b;
  outline-offset: 4px;
}

/* 「店舗画像」（背景とは別の任意画像）が指定されている場合も維持します。 */
#sec_1785931790498 .store-info-layout.has-image {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}
#sec_1785931790498 .store-info-image { width: 100%; min-width: 0; order: 0; }
#sec_1785931790498 .store-info-image img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: auto;
  max-height: none;
  border: 0;
  border-radius: 8px;
  filter: none;
  opacity: 1;
}

/* スマホ：項目名と内容を縦に並べ、住所・店名が細い列で分断されるのを防ぎます。 */
@media (max-width: 600px) {
  #sec_1785931790498.store-info-section { padding: 48px 20px !important; }
  #sec_1785931790498 .store-info-header { padding: 22px 20px; }
  #sec_1785931790498 .store-info-title { font-size: 28px; }
  #sec_1785931790498 .store-info-table-wrap { padding: 6px 20px; }
  #sec_1785931790498 .store-info-table,
  #sec_1785931790498 .store-info-table tbody { display: block; width: 100%; }
  #sec_1785931790498 .store-info-table tr {
    display: block;
    padding: 16px 0;
    border-bottom: 1px solid #e7d8bc;
  }
  #sec_1785931790498 .store-info-table tr:last-child { border-bottom: 0; }
  #sec_1785931790498 .store-info-table th,
  #sec_1785931790498 .store-info-table td {
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    font-size: 16px;
  }
  #sec_1785931790498 .store-info-table th { margin-bottom: 4px; font-size: 14px; }
}
#sec_1785931790498 .store-info-header,
#sec_1785931790498 .store-info-layout {
  margin-left: auto !important;
  margin-right: auto !important;
}


/* =========================================================
   Page: menu / お品書き（メニュー）
========================================================= */

/* Block: hero_page / sec_1785931894365 */
/* HEADER に追加した「画像バナー」のIDを使います。
 * このファイル内の TORACHAN_SHARED_HERO を、そのブロックの sec_数字 に全置換。
 * 01の後ろ（共通CSS編集の末尾）へ追加。PHP・JavaScriptは不要。
 * 画像バナーは1枚、見出し・説明・リンクは空欄。HEADERの最後に配置。
 * 各ページの先頭には既存「共通ヒーロー」を1つだけ配置。
 * 現在の courses.php の既定ヒーローにも対応します。
 */
body #TORACHAN_SHARED_HERO {display:none !important;}
@supports selector(body:has(.page-hero-wrapper)) {
  body:has(.page-hero-wrapper,.course-hero) #TORACHAN_SHARED_HERO {
    display:block !important;position:relative;z-index:0;
    height:var(--tc-hero-height);min-height:0;
    padding:0 !important;margin:0 !important;overflow:hidden;
    background:#472d20;pointer-events:none;opacity:1;transform:none;
  }
  body #TORACHAN_SHARED_HERO .image-banner-container,
  body #TORACHAN_SHARED_HERO .banner-link-wrap {width:100%;max-width:none;height:100%;padding:0;margin:0;}
  body #TORACHAN_SHARED_HERO .custom-banner-img {width:100%;height:100%;object-fit:cover;object-position:center 55%;border:0;border-radius:0;}
  body #TORACHAN_SHARED_HERO .image-banner-header {display:none;}
  body:has(#TORACHAN_SHARED_HERO) :is(.page-hero-wrapper,.course-hero) {
    margin-top:calc(-1 * var(--tc-hero-height));
    background-image:none !important;background-color:transparent !important;
  }
  body:has(#TORACHAN_SHARED_HERO) .course-hero .hero-bg {display:none;}
}

/* Block: custom_html / sec_1788162235229 */
.custom-html-wrapper {padding: 0 !important; margin: 0 !important; max-width: none !important; background: transparent !important; color: inherit !important;}
.custom-html-inner {width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important;}
.custom-html-inner > *:first-child {margin-top: 0;}
.custom-html-inner > *:last-child {margin-bottom: 0;}
.custom-html-inner img,
.custom-html-inner video,
.custom-html-inner iframe {max-width: 100%;}

/* Block: menu_category_grid / sec_1785931898698 */
.menu-main-title {font-family: 'Shippori Mincho', serif; font-size: 26px; font-weight: 800; color: #f6cf7a; letter-spacing: 0.1em; margin-bottom: 15px;}
.menu-sub-text {font-family: 'Noto Sans JP', sans-serif; font-size: 14px; color: #e0c8a0; line-height: 1.8; letter-spacing: 0.05em;}
.menu-grid-section {padding: 100px 20px; background: #101718; color: #fff7ea; display: block !important; height: auto !important; max-height: none !important; overflow: visible !important; opacity: 1 !important; transform: none !important;}
.menu-section-header {text-align: center; margin-bottom: 60px;}
.menu-main-title {font-family: 'Montserrat', 'Shippori Mincho', serif; font-size: 28px; font-weight: 800; color: #f6cf7a; letter-spacing: 0.15em; margin: 0 0 15px 0;}
.menu-sub-text {font-family: 'Noto Sans JP', sans-serif; font-size: 14px; color: #e0c8a0; line-height: 1.8; letter-spacing: 0.05em;}
.menu-cat-container {max-width: 1000px; margin: 0 auto; height: auto !important; max-height: none !important; overflow: visible !important;}
.menu-cat-block {margin-bottom: 80px; height: auto !important; max-height: none !important; overflow: visible !important;}
.menu-cat-header {margin-bottom: 30px; border-bottom: 1px solid rgba(246,207,122,0.22); padding-bottom: 15px;}
.menu-cat-name {font-family: 'Shippori Mincho', serif; font-size: 22px; font-weight: 700; color: #f6cf7a; margin: 0 0 10px 0; letter-spacing: 0.05em;}
.menu-cat-desc {font-size: 13px; color: #e0c8a0; line-height: 1.6; margin: 0;}
.menu-items-grid {display: grid; grid-template-columns: repeat(auto-fit, minmax(450px, 1fr)); gap: 30px; height: auto !important; max-height: none !important; overflow: visible !important;}
.menu-item-card {display: flex; gap: 20px; background: rgba(255,255,255,0.06); color: #fff7ea; padding: 20px; border-radius: 8px; box-shadow: 0 16px 40px rgba(0,0,0,0.18); border: 1px solid rgba(246,207,122,0.22); transition: transform 0.3s ease, box-shadow 0.3s ease;}
.menu-item-card.no-image {display: grid; grid-template-columns: 1fr; padding: 14px 0; background: transparent; border: 0; border-bottom: 1px solid rgba(246,207,122,0.18); border-radius: 0; box-shadow: none;}
.menu-item-card.no-image:hover {transform: none; box-shadow: none;}
.menu-item-card.no-image .mi-info {display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 18px; row-gap: 4px; align-items: baseline;}
.menu-item-card.no-image .mi-title {grid-column: 1; margin: 0; font-size: 15px; line-height: 1.6;}
.menu-item-card.no-image .mi-text {grid-column: 1 / -1; margin: 0; font-size: 12px;}
.menu-item-card.no-image .mi-meta {grid-column: 2; grid-row: 1; display: block; margin: 0; padding: 0; border: 0;}
.menu-item-card.no-image .mi-price {margin: 0; white-space: nowrap; text-align: right;}
.menu-item-card.no-image .price-in {font-size: 15px;}
.menu-item-card:hover {transform: translateY(-3px); box-shadow: 0 12px 35px rgba(246, 207, 122, 0.16);}
.mi-img-box {width: 120px; aspect-ratio: 4 / 3; height: auto; flex-shrink: 0; border-radius: 8px; overflow: hidden; position: relative; background: #172526;}
.mi-img-box img {width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease;}
.menu-item-card:hover .mi-img-box img {transform: scale(1.05);}
.mi-sold-out {position: absolute; inset: 0; background: rgba(0,0,0,0.5); color: #fff; display: flex; align-items: center; justify-content: center; font-family: 'Montserrat', sans-serif; font-weight: bold; font-size: 14px; letter-spacing: 0.1em; z-index: 2;}
.mi-info {flex: 1; display: flex; flex-direction: column;}
.mi-title {font-family: 'Shippori Mincho', serif; font-size: 16px; font-weight: 700; color: #fff7ea; margin: 0 0 8px 0; line-height: 1.4;}
.mi-text {font-size: 12px; color: #e0c8a0; line-height: 1.6; margin: 0 0 15px 0; flex-grow: 1;}
.mi-meta {display: flex; justify-content: space-between; align-items: flex-end; border-top: 1px dashed rgba(246,207,122,0.22); padding-top: 12px;}
.mi-duration {font-size: 11px; color: #a79578; font-family: 'Montserrat', 'Noto Sans JP', sans-serif;}
.mi-price {text-align: right;}
.section-header, .menu-section-header, .slf-header, .course-list-header, .news-section-header, .job-section-header, .contact-section-header {
  text-align: center;
  margin-bottom: 48px;
}
.section-header h2, .menu-main-title, .slf-main-title, .course-list-title, .news-main-title, .job-main-title, .contact-main-title {
  font-family: var(--font-serif);
  font-size: clamp(1.55rem, 3vw, 2.2rem);
  color: var(--gold-light);
  letter-spacing: .12em;
  font-weight: 800;
}
.section-header p, .menu-sub-text, .slf-sub-text, .course-list-desc, .news-sub-text, .job-sub-text, .contact-sub-text {
  margin-top: 14px;
  color: var(--text-sub);
  font-size: 14px;
  line-height: 2;
}
@media (max-width: 768px) {
  .menu-main-title {font-size: 22px;}
  .menu-grid-section {padding: 60px 15px;}
  .menu-main-title {font-size: 24px;}
  .menu-items-grid {grid-template-columns: 1fr; gap: 20px;}
  .menu-item-card {padding: 15px; gap: 15px;}
  .mi-img-box {width: 100px; height: 100px;}
  .mi-title {font-size: 15px;}
}


/* =========================================================
   Page: courses / コース料理・ご宴会
========================================================= */

/* Block: hero_page / sec_1788163299985 */
.page-hero-wrapper {
  position: relative;
  min-height: 360px;
  padding: 150px 20px 90px;
  text-align: center;
  color: var(--text-main);
  background-size: cover;
  background-position: center;
}
.page-hero-wrapper::after, .ph-overlay {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(16,23,24,.82), rgba(31,47,48,.46));
}
.ph-container { position: relative; z-index: 1; max-width: 820px; margin: 0 auto; }
.ph-title { font-family: var(--font-serif); font-size: clamp(2rem, 5vw, 3.4rem); color: var(--gold-light); letter-spacing: .16em; }
.ph-desc { margin-top: 16px; color: var(--text-sub); font-size: 14px; line-height: 2; }

/* Block: course_list / sec_1788163309204 */
/* =========================================================
   とらちゃん 下層ページCSS v2 / 2026-08-31
   貼り付け先：管理画面 → エディタ上部メニュー →「共通CSS編集 (style.css)」の【末尾に追加】
   ※ custom.css は公開のたびに自動生成されるので直接編集しないこと。
   ※ 既存の「とらちゃん 改修CSS v1」は消さずにその下へ足す。
   ========================================================= */

/* ---------------------------------------------------------
   [0] 基準スタイルの復旧（重要）
   いま公開されている style.css には FluxCore 標準の
   * { box-sizing: border-box } / a { text-decoration:none } が
   入っておらず、スマホでヘッダー右端のメニューボタンがはみ出し、
   ナビのリンクに下線が出ています。ここで戻します。
   ※ 余白リセット（margin:0/padding:0）は、いまの見た目を基準に
     調整済みのため、あえて入れていません。
--------------------------------------------------------- */
body *, body *::before, body *::after { box-sizing: border-box; }
body a { color: inherit; text-decoration: none; }
body img, body video { max-width: 100%; height: auto; }
body button { font: inherit; }

/* ---------------------------------------------------------
   [1] 共通ヒーロー（下層ページ共通の見出し帯）
   背景画像はこの --tc-hero-bg の1行だけを変更すれば
   共通ヒーローを使っている全ページに反映される。
   画像パスは管理画面「画像管理」の［パス］ボタンでコピーしたものを貼る。
--------------------------------------------------------- */
:root {
  --tc-hero-bg: url("/image/assets/seed/gallery/stg_onboard_20260825152209_0b24f3a0.webp");
  --tc-hero-height: 360px;
  --tc-hero-veil-top: rgba(58,35,20,.42);
  --tc-hero-veil-bottom: rgba(58,35,20,.72);
}

body :is(.page-hero-wrapper, .course-hero) {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  min-height: var(--tc-hero-height);
  height: auto;
  padding: 96px 24px 56px;
  overflow: hidden;
  text-align: left;
  background-image: var(--tc-hero-bg) !important;
  background-size: cover !important;
  background-position: center 55% !important;
  background-repeat: no-repeat !important;
  background-color: #472d20;
  border-bottom: 6px solid var(--tc-yellow);
}
body :is(.page-hero-wrapper, .course-hero)::after { display: none; }

/* 覆いは上を薄く・下を濃く。写真が見えたまま文字が読める明るさにする。 */
body :is(.ph-overlay, .course-hero .hero-overlay) {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, var(--tc-hero-veil-top) 0%, var(--tc-hero-veil-bottom) 100%);
  pointer-events: none;
}

body :is(.ph-container, .course-hero .hero-content) {
  position: relative;
  z-index: 1;
  width: min(100%, 1080px);
  margin: 0 auto;
}

/* 英字ラベル。ページごとに1行だけ差し替える（[2]参照）。未指定でも崩れない。 */
body :is(.ph-container, .course-hero .hero-content)::before {
  content: var(--tc-hero-eyebrow, "TORACHAN");
  display: block;
  margin-bottom: 14px;
  padding-bottom: 7px;
  border-bottom: 3px solid var(--tc-yellow);
  width: fit-content;
  max-width: 100%;
  color: #ffe9a8;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: .14em;
}

body :is(.ph-title, .course-page-title) {
  margin: 0;
  font-family: var(--font-sans);
  font-size: clamp(30px, 3.6vw, 46px);
  font-weight: 900;
  line-height: 1.5;
  letter-spacing: .02em;
  color: #fffaf0;
  text-shadow: 0 2px 14px rgba(35,20,10,.5);
  /* 単語の途中で折り返さない。短い見出し前提。 */
  word-break: keep-all;
  overflow-wrap: anywhere;
  text-wrap: balance;
}
body :is(.ph-desc, .course-page-desc) {
  margin: 14px 0 0;
  max-width: 34em;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.9;
  color: #fdf3df;
  text-shadow: 0 2px 12px rgba(35,20,10,.55);
  word-break: normal;
  word-break: auto-phrase;
  text-wrap: pretty;
}
/* 改行させたくないかたまりを守るための共通クラス（カスタムHTML内で使用） */
body .tc-kp { display: inline-block; white-space: nowrap; }


/* ---------------------------------------------------------
   [2] ページごとの英字ラベル（共通ヒーローの小見出し）
   背景画像は全ページ共通のまま、ラベルだけページごとに変える。
   sec_〇〇 は、エディタで各ページのヒーローブロックを選んだときに
   表示されるセクションIDに合わせること（下は現在のサイトの値）。
--------------------------------------------------------- */
#sec_1785932055215 { --tc-hero-eyebrow: "ABOUT TORACHAN"; } /* とらちゃんについて */
#sec_1785931894365 { --tc-hero-eyebrow: "MENU"; }           /* メニュー */
#sec_1785932170350 { --tc-hero-eyebrow: "GALLERY"; }        /* ギャラリー（seats） */
#sec_1785932329448 { --tc-hero-eyebrow: "ACCESS"; }         /* アクセス */
/* コースページのヒーローを新しく作ったら、そのIDで1行足す
   例）#sec_0000000000000 { --tc-hero-eyebrow: "COURSE"; } */


/* ---------------------------------------------------------
   [3] 共通「次に見るページ」ナビ（下層ページの最後に置くカスタムHTML）
--------------------------------------------------------- */
body #tc-next, body #tc-next * { box-sizing: border-box; }
body #tc-next {
  padding: 72px 24px 80px;
  background: var(--tc-paper);
  border-top: 1px solid var(--tc-line);
}
body #tc-next .tc-next-inner { max-width: 1080px; margin: 0 auto; }
body #tc-next .tc-next-eyebrow {
  margin: 0 0 10px;
  color: #86561e;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: .14em;
}
body #tc-next .tc-next-title {
  margin: 0 0 32px;
  color: var(--tc-brown);
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 900;
  line-height: 1.55;
  letter-spacing: 0;
  text-wrap: initial;
}
body #tc-next .tc-next-title > span { display: inline-block; white-space: nowrap; }
body #tc-next .tc-next-list {
  display: grid;
  /* カードを3枚にしても4枚にしても崩れないよう auto-fit を使う */
  grid-template-columns: repeat(auto-fit, minmax(228px, 1fr));
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}
body #tc-next .tc-next-list > li { min-width: 0; }
body #tc-next .tc-next-list a {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  background: #fffdf7;
  border: 1px solid var(--tc-line);
  border-radius: 18px;
  color: var(--tc-brown);
  text-decoration: none;
}
body #tc-next .tc-next-photo {
  position: relative;
  display: block;
  flex: 0 0 auto;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  background: #ecdfc7;
}
body #tc-next .tc-next-photo img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .25s ease;
}
body #tc-next .tc-next-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 6px;
  padding: 18px 20px 20px;
}
body #tc-next .tc-next-label {
  color: #96682a;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: .1em;
}
body #tc-next .tc-next-name {
  color: var(--tc-brown);
  font-size: 20px;
  font-weight: 900;
  line-height: 1.6;
  word-break: keep-all;
}
body #tc-next .tc-next-text {
  color: var(--tc-muted);
  font-size: 14px;
  line-height: 1.85;
}
body #tc-next .tc-next-go {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: auto;
  padding-top: 14px;
  color: #7b5533;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.5;
}
body #tc-next .tc-next-go svg {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  padding: 8px;
  border: 1px solid #ccae6c;
  border-radius: 50%;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
}
body #tc-next .tc-next-list a:hover { border-color: var(--tc-yellow); }
body #tc-next .tc-next-list a:hover img { transform: scale(1.04); }
body #tc-next .tc-next-list a:hover .tc-next-go svg { background: var(--tc-yellow); border-color: var(--tc-yellow); }
body #tc-next .tc-next-list a:focus-visible { outline: 3px solid #9b5b0b; outline-offset: 4px; }


/* ---------------------------------------------------------
   [4] とらちゃんについて：3つの強みカード（カスタムHTML）
--------------------------------------------------------- */
body #tc-about, body #tc-about * { box-sizing: border-box; }
body #tc-about {
  padding: 76px 24px 64px;
  background: var(--tc-cream);
}
body #tc-about .tc-about-inner { max-width: 1080px; margin: 0 auto; }
body #tc-about .tc-about-head { max-width: 760px; margin: 0 auto 44px; text-align: center; }
body #tc-about .tc-about-eyebrow {
  margin: 0 0 12px;
  color: #86561e;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: .14em;
}
body #tc-about h2 {
  margin: 0 0 18px;
  color: var(--tc-brown);
  font-size: clamp(26px, 3.2vw, 40px);
  font-weight: 900;
  line-height: 1.55;
  letter-spacing: 0;
  text-wrap: initial;
}
body #tc-about h2 > span { display: inline-block; white-space: nowrap; }
body #tc-about .tc-about-lead {
  margin: 0;
  color: #614531;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.95;
}
body #tc-about .tc-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}
body #tc-about .tc-cards > li {
  display: flex;
  min-width: 0;
  flex-direction: column;
  overflow: hidden;
  background: #fffdf7;
  border: 1px solid var(--tc-line);
  border-radius: 20px;
}
body #tc-about .tc-card-photo { position: relative; display: block; flex: 0 0 auto; overflow: hidden; aspect-ratio: 4 / 3; background: #ecdfc7; }
body #tc-about .tc-card-photo img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
body #tc-about .tc-card-body { padding: 20px 22px 24px; }
body #tc-about .tc-card-no {
  display: inline-block;
  margin-bottom: 10px;
  padding: 4px 12px;
  background: var(--tc-yellow);
  border-radius: 999px;
  color: var(--tc-brown);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.5;
}
body #tc-about .tc-card-title {
  margin: 0 0 8px;
  color: var(--tc-brown);
  font-size: 20px;
  font-weight: 900;
  line-height: 1.6;
  word-break: keep-all;
}
body #tc-about .tc-card-text {
  margin: 0;
  color: var(--tc-muted);
  font-size: 15px;
  line-height: 1.9;
  word-break: normal;
  word-break: auto-phrase;
}


/* ---------------------------------------------------------
   [5] メニュー：名物ピックアップ（カスタムHTML）
--------------------------------------------------------- */
body #tc-pick, body #tc-pick * { box-sizing: border-box; }
body #tc-pick {
  padding: 68px 24px 56px;
  background: var(--tc-paper);
}
body #tc-pick .tc-pick-inner { max-width: 1080px; margin: 0 auto; }
body #tc-pick .tc-pick-head { margin: 0 0 32px; }
body #tc-pick .tc-pick-eyebrow {
  margin: 0 0 10px;
  color: #86561e;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: .14em;
}
body #tc-pick h2 {
  margin: 0 0 12px;
  color: var(--tc-brown);
  font-size: clamp(26px, 3vw, 36px);
  font-weight: 900;
  line-height: 1.55;
  text-wrap: initial;
}
body #tc-pick h2 > span { display: inline-block; white-space: nowrap; }
body #tc-pick .tc-pick-lead { margin: 0; color: #614531; font-size: 16px; line-height: 1.9; }
body #tc-pick .tc-pick-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}
body #tc-pick .tc-pick-list > li { min-width: 0; }
body #tc-pick .tc-pick-photo {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  margin-bottom: 14px;
  background: #ecdfc7;
  border-radius: 20px 20px 60px 20px;
  box-shadow: 9px 9px 0 #eddbbc;
}
body #tc-pick .tc-pick-photo img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
body #tc-pick .tc-pick-name {
  margin: 0 0 4px;
  color: var(--tc-brown);
  font-size: 18px;
  font-weight: 900;
  line-height: 1.65;
  word-break: keep-all;
}
body #tc-pick .tc-pick-text { margin: 0; color: var(--tc-muted); font-size: 14px; line-height: 1.85; }
body #tc-pick .tc-pick-note {
  margin: 28px 0 0;
  color: #785b43;
  font-size: 14px;
  line-height: 1.8;
  text-wrap: balance;
}


/* ---------------------------------------------------------
   [6] メニュー一覧（DB連動ブロック）の読みやすさ
--------------------------------------------------------- */
body .menu-grid-section { padding-top: 64px !important; }
body .menu-section-header { margin-bottom: 28px; }

/* カテゴリー切り替えチップ（カスタムJSで自動生成される） */
body .tc-menunav {
  position: sticky;
  top: 96px;
  z-index: 20;
  margin: 0 auto 32px;
  padding: 12px 14px;
  max-width: 1080px;
  background: rgba(255, 250, 240, .97);
  border: 1px solid var(--tc-line);
  border-radius: 18px;
  box-shadow: 0 6px 18px rgba(71, 45, 32, .08);
}
body .tc-menunav ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
body .tc-menunav a {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 6px 15px;
  background: #fffdf7;
  border: 1px solid var(--tc-line);
  border-radius: 999px;
  color: var(--tc-brown);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
  white-space: nowrap;
}
body .tc-menunav a:hover,
body .tc-menunav a:focus-visible { background: var(--tc-yellow); border-color: var(--tc-yellow); }

body .menu-cat-block {
  margin-bottom: 40px;
  padding: 26px 28px 8px;
  background: #fffdf7;
  border: 1px solid var(--tc-line);
  border-radius: 20px;
  scroll-margin-top: 150px;
}
body .menu-cat-header {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin-bottom: 18px;
  padding-bottom: 12px;
  border-bottom: 3px solid var(--tc-yellow);
}
body .menu-cat-name { margin: 0; font-size: 22px; font-weight: 900; line-height: 1.5; color: var(--tc-brown); word-break: keep-all; }
body .menu-cat-desc { margin: 0; font-size: 14px; line-height: 1.7; color: var(--tc-muted); }

body .menu-items-grid { column-gap: 44px; row-gap: 4px; }
body .menu-item-card.no-image {
  padding: 14px 0;
  border: 0;
  border-bottom: 1px dashed #e3d3b7;
  background: transparent;
}
body .menu-item-card.no-image .mi-info {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: baseline;
  column-gap: 14px;
  row-gap: 4px;
}
body .menu-item-card .mi-title {
  /* 見出し既定の text-wrap:balance だと最終行が短く残りやすいので pretty にする */
  word-break: normal;
  word-break: auto-phrase;
  text-wrap: pretty;
}
body .menu-item-card.no-image .mi-title {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  align-items: baseline;
  gap: 10px;
  min-width: 0;
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.75;
  color: var(--tc-brown);
}
body .menu-item-card.no-image .mi-title::after {
  content: "";
  flex: 1 1 20px;
  min-width: 20px;
  border-bottom: 1px dotted #cdb89a;
}
body .menu-item-card.no-image .mi-meta { grid-column: 2; grid-row: 1; justify-self: end; }
body .menu-item-card.no-image .mi-text {
  grid-column: 1 / -1;
  grid-row: 2;
  margin: 0;
  font-size: 14px;
  line-height: 1.8;
  color: var(--tc-muted);
}
body .menu-item-card.no-image .price-in { font-size: 17px; font-weight: 800; white-space: nowrap; }
body .menu-item-card.no-image .mi-tax { font-size: 14px; color: var(--tc-muted); margin-left: 4px; }


/* ---------------------------------------------------------
   [7] コース一覧ブロック（course_list）
--------------------------------------------------------- */
body .course-list-section { padding: 76px 24px 80px !important; background: var(--tc-cream); }
body .course-list-header { max-width: 1080px; margin: 0 auto 40px; text-align: center; }
/* 1コース＝1行。上から順に読ませる。 */
body .course-list-grid { max-width: 1080px; margin: 0 auto; grid-template-columns: minmax(0, 1fr); gap: 18px; }
body .course-list-card {
  display: block;
  min-width: 0;
  overflow: hidden;
  background: #fffdf7;
  border: 1px solid var(--tc-line);
  border-radius: 18px;
  box-shadow: none;
}
/* 写真は使わない。コース写真が未登録のときに出る魚アイコンの枠ごと消す。
   ※ あとから写真を載せたくなったら、この1行を消せば元に戻る。 */
body .course-list-card .course-list-img { display: none !important; }

/* 左＝コース名と説明、右＝金額と予約ボタン。
   説明文や金額が未入力のコースがあっても崩れないよう、行と列を明示している。 */
body .course-list-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  column-gap: 36px;
  row-gap: 8px;
  align-items: start;
  padding: 26px 32px 28px;
}
body .course-list-kicker {
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
  margin: 0;
  padding: 4px 12px;
  background: var(--tc-yellow);
  border-radius: 999px;
  color: var(--tc-brown);
  font-size: 14px;
  font-weight: 800;
  line-height: 1.5;
}
body .course-list-body h3 {
  grid-column: 1;
  grid-row: 2;
  margin: 0;
  font-size: 23px;
  font-weight: 900;
  line-height: 1.6;
  color: var(--tc-brown);
  word-break: keep-all;
  text-wrap: pretty;
}
body .course-list-text {
  grid-column: 1;
  grid-row: 3;
  margin: 0;
  max-width: 46em;
  font-size: 15px;
  line-height: 1.9;
  color: var(--tc-muted);
  word-break: normal;
  word-break: auto-phrase;
  text-wrap: pretty;
}
body .course-list-price {
  grid-column: 2;
  grid-row: 1;
  justify-self: end;
  margin: 0;
  font-size: 26px;
  font-weight: 900;
  line-height: 1.4;
  color: var(--tc-brown);
  white-space: nowrap;
}
body .course-list-price small { margin-left: 6px; font-size: 14px; font-weight: 700; color: var(--tc-muted); }
body .course-list-reserve {
  grid-column: 2;
  grid-row: 2;
  justify-self: end;
  width: auto;
  min-width: 230px;
  margin: 6px 0 0;
}
/* ビルダー未使用のときに出る旧レイアウト（.course-card）も、同じく写真なし・1列にそろえる。
   コースページをブロック化すればこちらは描画されないが、念のため。 */
body .course-card .course-img-box { display: none !important; }
body .course-card:has(.course-img-box img) { grid-template-columns: minmax(0, 1fr) !important; }

body .drink-option-list {
  max-width: 1080px;
  margin: 40px auto 0;
  padding: 26px 28px;
  background: var(--tc-paper);
  border: 1px solid var(--tc-line);
  border-radius: 20px;
}
body .drink-option-list h3 { margin: 0 0 14px; font-size: 20px; font-weight: 900; color: var(--tc-brown); }
body .drink-option-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px dashed #e3d3b7;
  font-size: 16px;
  color: var(--tc-brown);
}
body .drink-option-row strong { font-size: 18px; white-space: nowrap; }


/* ---------------------------------------------------------
   [8] アクセス：来店案内カード（カスタムHTML）
--------------------------------------------------------- */
body #tc-access, body #tc-access * { box-sizing: border-box; }
body #tc-access { padding: 68px 24px 60px; background: var(--tc-cream); }
body #tc-access .tc-access-inner { max-width: 1080px; margin: 0 auto; }
body #tc-access .tc-access-head { margin: 0 0 32px; text-align: center; }
body #tc-access .tc-access-eyebrow {
  margin: 0 0 10px;
  color: #86561e;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.5;
  letter-spacing: .14em;
}
body #tc-access h2 { margin: 0; color: var(--tc-brown); font-size: clamp(26px, 3vw, 36px); font-weight: 900; line-height: 1.55; text-wrap: initial; }
body #tc-access h2 > span { display: inline-block; white-space: nowrap; }
body #tc-access .tc-access-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin: 0 0 32px;
  padding: 0;
  list-style: none;
}
body #tc-access .tc-access-list > li {
  min-width: 0;
  padding: 24px 24px 26px;
  background: #fffdf7;
  border: 1px solid var(--tc-line);
  border-radius: 18px;
}
body #tc-access .tc-access-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  margin-bottom: 14px;
  background: var(--tc-yellow);
  border-radius: 50%;
  font-size: 20px;
}
body #tc-access .tc-access-name { margin: 0 0 6px; color: var(--tc-brown); font-size: 18px; font-weight: 900; line-height: 1.6; word-break: keep-all; }
body #tc-access .tc-access-text { margin: 0; color: var(--tc-muted); font-size: 15px; line-height: 1.9; word-break: normal; word-break: auto-phrase; }
body #tc-access .tc-access-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
body #tc-access .tc-access-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  padding: 13px 28px;
  border-radius: 999px;
  border: 1px solid var(--tc-yellow);
  background: var(--tc-yellow);
  color: var(--tc-brown);
  font-size: 16px;
  font-weight: 800;
  line-height: 1.5;
  text-decoration: none;
  white-space: nowrap;
}
body #tc-access .tc-access-btn.is-outline { background: transparent; border-color: #c9ab6b; }
body #tc-access .tc-access-btn:hover { background: #ffda69; border-color: #ffda69; }
body #tc-access .tc-access-btn:focus-visible { outline: 3px solid #9b5b0b; outline-offset: 4px; }


/* ---------------------------------------------------------
   [9] ギャラリー（image_grid）
--------------------------------------------------------- */
body .image-grid-section { background: var(--tc-cream); }
body .image-grid { gap: 18px; }
body .image-grid-item { overflow: hidden; border-radius: 18px; background: #ecdfc7; }
body .image-grid-item img { display: block; width: 100%; height: 100%; object-fit: cover; }


/* =========================================================
   [10-A] タブレット（900px以下）
   メニューを2列のままにすると品名が1文字だけ次の行に落ちるため、
   ここで1列に切り替える。
   ========================================================= */
@media (max-width: 900px) {
  body .menu-items-grid { grid-template-columns: minmax(0, 1fr); column-gap: 0; }
  body .course-list-body { column-gap: 24px; padding: 24px 24px 26px; }
}

/* =========================================================
   [10] スマートフォン（767px以下）
   ここから下は、上の指定をスマホ用に上書きする。
   ========================================================= */
@media (max-width: 767px) {
  :root { --tc-hero-height: 260px; }

  body :is(.page-hero-wrapper, .course-hero) {
    padding: 72px 22px 34px;
    background-position: center 55% !important;
  }
  body :is(.ph-container, .course-hero .hero-content)::before {
    margin-bottom: 10px;
    font-size: 14px;
    letter-spacing: .1em;
  }
  body :is(.ph-title, .course-page-title) { font-size: 28px; letter-spacing: 0; line-height: 1.5; }
  body :is(.ph-desc, .course-page-desc) { margin-top: 10px; font-size: 15px; line-height: 1.85; }

  body #tc-next { padding: 52px 22px 56px; }
  body #tc-next .tc-next-title { margin-bottom: 24px; font-size: 26px; }
  body #tc-next .tc-next-list { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  body #tc-next .tc-next-list a { flex-direction: row; align-items: stretch; border-radius: 16px; }
  body #tc-next .tc-next-photo { flex: 0 0 116px; width: 116px; aspect-ratio: auto; }
  body #tc-next .tc-next-body { gap: 4px; padding: 14px 16px; }
  body #tc-next .tc-next-name { font-size: 18px; }
  body #tc-next .tc-next-text { display: none; }
  body #tc-next .tc-next-go { padding-top: 8px; }
  body #tc-next .tc-next-go svg { width: 30px; height: 30px; flex-basis: 30px; padding: 7px; }

  body #tc-about { padding: 52px 22px 48px; }
  body #tc-about .tc-about-head { margin-bottom: 28px; text-align: left; }
  body #tc-about h2 { font-size: 26px; }
  body #tc-about .tc-cards { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  body #tc-about .tc-card-photo { aspect-ratio: 16 / 9; }
  body #tc-about .tc-card-body { padding: 18px 20px 22px; }
  body #tc-about .tc-card-title { font-size: 19px; }

  body #tc-pick { padding: 48px 22px 44px; }
  body #tc-pick h2 { font-size: 26px; }
  body #tc-pick .tc-pick-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 14px; }
  body #tc-pick .tc-pick-list > li:first-child { grid-column: 1 / -1; }
  body #tc-pick .tc-pick-photo { margin-bottom: 10px; border-radius: 16px 16px 40px 16px; box-shadow: 6px 6px 0 #eddbbc; }
  body #tc-pick .tc-pick-list > li:first-child .tc-pick-photo { aspect-ratio: 16 / 10; }
  body #tc-pick .tc-pick-name { font-size: 16px; }
  body #tc-pick .tc-pick-text { font-size: 14px; }

  body .menu-grid-section { padding-top: 44px !important; }
  body .tc-menunav { top: 84px; padding: 10px 12px; margin-bottom: 24px; border-radius: 14px; }
  body .tc-menunav ul {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 4px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  body .tc-menunav ul::-webkit-scrollbar { display: none; }
  body .tc-menunav a { min-height: 36px; padding: 6px 14px; }
  body .menu-cat-block { margin-bottom: 26px; padding: 20px 18px 6px; border-radius: 16px; scroll-margin-top: 128px; }
  body .menu-cat-name { font-size: 20px; }
  body .menu-items-grid { row-gap: 0; }
  body .menu-item-card.no-image { padding: 12px 0; }
  body .menu-item-card.no-image .mi-title { font-size: 15px; gap: 0; }
  body .menu-item-card.no-image .mi-title::after { display: none; }
  body .menu-item-card.no-image .price-in { font-size: 16px; }

  body .course-list-section { padding: 48px 22px 52px !important; }
  body .course-list-header { margin-bottom: 26px; }
  body .course-list-grid { gap: 14px; }
  /* スマホは縦に積む。金額とボタンも横幅いっぱいに。 */
  body .course-list-body { grid-template-columns: minmax(0, 1fr); column-gap: 0; row-gap: 10px; padding: 20px 20px 22px; }
  body .course-list-body h3 { grid-column: 1; grid-row: 2; font-size: 20px; }
  body .course-list-text { grid-column: 1; grid-row: 3; }
  body .course-list-price { grid-column: 1; grid-row: 4; justify-self: start; font-size: 22px; }
  body .course-list-reserve { grid-column: 1; grid-row: 5; justify-self: stretch; width: 100%; min-width: 0; margin: 2px 0 0; }
  body .drink-option-list { margin-top: 26px; padding: 20px 18px; border-radius: 16px; }
  body .drink-option-row { font-size: 15px; }

  body #tc-access { padding: 48px 22px 44px; }
  body #tc-access .tc-access-head { margin-bottom: 24px; text-align: left; }
  body #tc-access h2 { font-size: 26px; }
  body #tc-access .tc-access-list { grid-template-columns: minmax(0, 1fr); gap: 14px; margin-bottom: 26px; }
  body #tc-access .tc-access-list > li { padding: 20px 20px 22px; }
  body #tc-access .tc-access-icon { width: 42px; height: 42px; margin-bottom: 12px; }
  body #tc-access .tc-access-actions { flex-direction: column; }
  body #tc-access .tc-access-btn { width: 100%; }

  body .image-grid { gap: 12px; }
  body .image-grid-item { border-radius: 14px; }
}

/* 画面がとても狭いとき（iPhone SE など） */
@media (max-width: 380px) {
  body :is(.ph-title, .course-page-title) { font-size: 25px; }
  body #tc-next .tc-next-photo { flex-basis: 100px; width: 100px; }
  body #tc-next .tc-next-name { font-size: 17px; }
}

@media (prefers-reduced-motion: reduce) {
  body #tc-next .tc-next-photo img { transition: none; }
  body #tc-next .tc-next-list a:hover img { transform: none; }
}
/* とらちゃん 下層ページCSS v2 ここまで */

/* Block: custom_html / sec_1788163340662 */
.custom-html-wrapper {padding: 0 !important; margin: 0 !important; max-width: none !important; background: transparent !important; color: inherit !important;}
.custom-html-inner {width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important;}
.custom-html-inner > *:first-child {margin-top: 0;}
.custom-html-inner > *:last-child {margin-bottom: 0;}
.custom-html-inner img,
.custom-html-inner video,
.custom-html-inner iframe {max-width: 100%;}


/* =========================================================
   Page: access / 店舗情報・アクセス
========================================================= */

/* Block: hero_page / sec_1785932329448 */
.page-hero-wrapper {
  position: relative;
  min-height: 360px;
  padding: 150px 20px 90px;
  text-align: center;
  color: var(--text-main);
  background-size: cover;
  background-position: center;
}
.page-hero-wrapper::after, .ph-overlay {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(16,23,24,.82), rgba(31,47,48,.46));
}
.ph-container { position: relative; z-index: 1; max-width: 820px; margin: 0 auto; }
.ph-title { font-family: var(--font-serif); font-size: clamp(2rem, 5vw, 3.4rem); color: var(--gold-light); letter-spacing: .16em; }
.ph-desc { margin-top: 16px; color: var(--text-sub); font-size: 14px; line-height: 2; }

/* Block: custom_html / sec_1788163934892 */
.custom-html-wrapper {padding: 0 !important; margin: 0 !important; max-width: none !important; background: transparent !important; color: inherit !important;}
.custom-html-inner {width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important;}
.custom-html-inner > *:first-child {margin-top: 0;}
.custom-html-inner > *:last-child {margin-bottom: 0;}
.custom-html-inner img,
.custom-html-inner video,
.custom-html-inner iframe {max-width: 100%;}

/* Block: store_info / sec_1785932333583 */
/* 店舗概要パーツ（⑨ store_info） */
.store-info-section {padding: 90px 20px; background: #101718; color: #fff7ea;}
.store-info-container {max-width: 1080px; margin: 0 auto;}
.store-info-header {max-width: 820px; margin: 0 auto 34px; text-align: center;}
.store-info-title {font-family: 'Shippori Mincho', serif; font-size: clamp(1.5rem, 3vw, 2.2rem); font-weight: 900; letter-spacing: 0.1em; color: var(--gold-light); margin: 0 0 12px;}
.store-info-desc {font-size: 14px; line-height: 1.9; color: #e0c8a0; margin: 0;}
.store-info-layout {display: block;}
.store-info-layout.has-image {display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 40px; align-items: start;}
.store-info-table {width: 100%; border-collapse: collapse;}
.store-info-table th, .store-info-table td {padding: 16px 4px; border-bottom: 1px solid rgba(255,255,255,0.10); text-align: left; vertical-align: top; font-size: 14px; line-height: 1.8;}
.store-info-table th {width: 128px; color: var(--gold); font-weight: 800; white-space: nowrap;}
.store-info-table td {color: var(--text-sub);}
.store-info-image {width: 100%;}
.store-info-image img {width: 100%; height: 100%; max-height: 420px; object-fit: cover; border-radius: 8px; border: 1px solid var(--line);}
@media (max-width: 768px) {
  .store-info-section {padding: 64px 15px;}
  .store-info-layout.has-image {grid-template-columns: 1fr; gap: 24px;}
  .store-info-image {order: -1;}
  .store-info-table th {width: 96px; font-size: 13px;}
  .store-info-table td {font-size: 13px;}
}

/* Block: gmap / sec_1785932342748 */
.gmap-section {padding: 90px 20px; background: #101718; color: #fff7ea;}
.gmap-container {max-width: 1080px; margin: 0 auto;}
.gmap-header {max-width: 820px; margin: 0 auto 34px; text-align: center;}
.gmap-title {font-family: 'Shippori Mincho', serif; font-size: clamp(1.5rem, 3vw, 2.2rem); font-weight: 900; letter-spacing: 0.1em; color: var(--gold-light); margin: 0 0 12px;}
.gmap-desc {font-size: 14px; line-height: 1.9; color: #e0c8a0; margin: 0;}
.gmap-frame-wrap {position: relative; width: 100%; aspect-ratio: 16 / 9; min-height: 320px; border-radius: 8px; overflow: hidden; border: 1px solid var(--line); background: var(--bg-paper);}
.gmap-frame-wrap iframe {position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(.12) contrast(.97);}
.gmap-placeholder {position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-align: center; padding: 20px; color: var(--text-sub); font-size: 13px;}
@media (max-width: 768px) {.gmap-section {padding: 64px 15px;} .gmap-frame-wrap {aspect-ratio: 4 / 3; min-height: 260px;}}

/* Block: custom_html / sec_1788163936756 */
.custom-html-wrapper {padding: 0 !important; margin: 0 !important; max-width: none !important; background: transparent !important; color: inherit !important;}
.custom-html-inner {width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important;}
.custom-html-inner > *:first-child {margin-top: 0;}
.custom-html-inner > *:last-child {margin-bottom: 0;}
.custom-html-inner img,
.custom-html-inner video,
.custom-html-inner iframe {max-width: 100%;}


/* =========================================================
   Page: concept / とらちゃんについて
========================================================= */

/* Block: hero_page / sec_1785932055215 */
.page-hero-wrapper {
  position: relative;
  min-height: 360px;
  padding: 150px 20px 90px;
  text-align: center;
  color: var(--text-main);
  background-size: cover;
  background-position: center;
}
.page-hero-wrapper::after, .ph-overlay {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(16,23,24,.82), rgba(31,47,48,.46));
}
.ph-container { position: relative; z-index: 1; max-width: 820px; margin: 0 auto; }
.ph-title { font-family: var(--font-serif); font-size: clamp(2rem, 5vw, 3.4rem); color: var(--gold-light); letter-spacing: .16em; }
.ph-desc { margin-top: 16px; color: var(--text-sub); font-size: 14px; line-height: 2; }

/* Block: custom_html / sec_1788162782719 */
.custom-html-wrapper {padding: 0 !important; margin: 0 !important; max-width: none !important; background: transparent !important; color: inherit !important;}
.custom-html-inner {width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important;}
.custom-html-inner > *:first-child {margin-top: 0;}
.custom-html-inner > *:last-child {margin-bottom: 0;}
.custom-html-inner img,
.custom-html-inner video,
.custom-html-inner iframe {max-width: 100%;}

/* Block: concept_split / sec_1785932067548 */
.concept-section {
padding: 104px 20px !important;
background: var(--bg-warm) !important;
color: var(--ink) !important;
}
.concept-container {
max-width: 1120px !important;
display: grid !important;
grid-template-columns: minmax(0, .92fr) minmax(320px, 1.08fr) !important;
gap: 58px !important;
align-items: center !important;
}
.concept-container.concept-reverse {
grid-template-columns: minmax(320px, 1.08fr) minmax(0, .92fr) !important;
}
.concept-container.concept-reverse .concept-content {
order: 2 !important;
}
.concept-container.concept-reverse .concept-img-wrapper {
order: 1 !important;
}
.concept-content {
width: auto !important;
position: relative !important;
padding-left: 0 !important;
display: block !important;
text-align: center !important;
}
.concept-content::before {
display: none !important;
}
.concept-title,
.concept-content h2,
.concept-content h3 {
margin: 0 0 24px !important;
color: #152020 !important;
font-family: var(--font-serif) !important;
font-size: clamp(1.7rem, 3vw, 2.6rem) !important;
line-height: 1.55 !important;
letter-spacing: .1em !important;
font-weight: 900 !important;
}
.concept-text,
.concept-content p {
color: #354342 !important;
font-size: 15px !important;
line-height: 2.15 !important;
letter-spacing: .03em !important;
text-align: center !important;
}
.concept-img-wrapper {
width: auto !important;
position: relative !important;
border-radius: 6px !important;
overflow: hidden !important;
box-shadow: 0 24px 60px rgba(16, 23, 24, .22) !important;
background: #172526 !important;
}
.concept-img-wrapper::before {
content: "" !important;
position: absolute !important;
inset: 14px !important;
border: 1px solid rgba(246, 207, 122, .46) !important;
z-index: 2 !important;
pointer-events: none !important;
}
.concept-img-wrapper img,
.concept-img-wrapper video {
width: 100% !important;
height: 100% !important;
aspect-ratio: 4 / 3 !important;
object-fit: cover !important;
filter: saturate(1.06) contrast(1.03) !important;
}
.concept-section {
text-align: center !important;
}
.concept-container {
margin-left: auto !important;
margin-right: auto !important;
}
.concept-content {
padding-left: 0 !important;
text-align: center !important;
}
.concept-content::before {
display: none !important;
}
.concept-title,
.concept-content h2,
.concept-content h3,
.concept-text,
.concept-content p {
text-align: center !important;
}
@media (max-width: 768px) {
  .concept-section,
.job-list-section,
.news-list-grid-section,
.news-article-body-section {
padding: 70px 15px !important;
}
  .concept-container,
.concept-container.concept-reverse {
grid-template-columns: 1fr !important;
gap: 32px !important;
}
  .concept-container.concept-reverse .concept-content,
.concept-container.concept-reverse .concept-img-wrapper {
order: initial !important;
}
  .concept-content {
padding-left: 18px !important;
}
  .concept-content {
padding-left: 0 !important;
}
}

/* Block: concept_split / sec_1788162879357 */
.concept-section {
padding: 104px 20px !important;
background: var(--bg-warm) !important;
color: var(--ink) !important;
}
.concept-container {
max-width: 1120px !important;
display: grid !important;
grid-template-columns: minmax(0, .92fr) minmax(320px, 1.08fr) !important;
gap: 58px !important;
align-items: center !important;
}
.concept-container.concept-reverse {
grid-template-columns: minmax(320px, 1.08fr) minmax(0, .92fr) !important;
}
.concept-container.concept-reverse .concept-content {
order: 2 !important;
}
.concept-container.concept-reverse .concept-img-wrapper {
order: 1 !important;
}
.concept-content {
width: auto !important;
position: relative !important;
padding-left: 0 !important;
display: block !important;
text-align: center !important;
}
.concept-content::before {
display: none !important;
}
.concept-title,
.concept-content h2,
.concept-content h3 {
margin: 0 0 24px !important;
color: #152020 !important;
font-family: var(--font-serif) !important;
font-size: clamp(1.7rem, 3vw, 2.6rem) !important;
line-height: 1.55 !important;
letter-spacing: .1em !important;
font-weight: 900 !important;
}
.concept-text,
.concept-content p {
color: #354342 !important;
font-size: 15px !important;
line-height: 2.15 !important;
letter-spacing: .03em !important;
text-align: center !important;
}
.concept-img-wrapper {
width: auto !important;
position: relative !important;
border-radius: 6px !important;
overflow: hidden !important;
box-shadow: 0 24px 60px rgba(16, 23, 24, .22) !important;
background: #172526 !important;
}
.concept-img-wrapper::before {
content: "" !important;
position: absolute !important;
inset: 14px !important;
border: 1px solid rgba(246, 207, 122, .46) !important;
z-index: 2 !important;
pointer-events: none !important;
}
.concept-img-wrapper img,
.concept-img-wrapper video {
width: 100% !important;
height: 100% !important;
aspect-ratio: 4 / 3 !important;
object-fit: cover !important;
filter: saturate(1.06) contrast(1.03) !important;
}
.concept-section {
text-align: center !important;
}
.concept-container {
margin-left: auto !important;
margin-right: auto !important;
}
.concept-content {
padding-left: 0 !important;
text-align: center !important;
}
.concept-content::before {
display: none !important;
}
.concept-title,
.concept-content h2,
.concept-content h3,
.concept-text,
.concept-content p {
text-align: center !important;
}
@media (max-width: 768px) {
  .concept-section,
.job-list-section,
.news-list-grid-section,
.news-article-body-section {
padding: 70px 15px !important;
}
  .concept-container,
.concept-container.concept-reverse {
grid-template-columns: 1fr !important;
gap: 32px !important;
}
  .concept-container.concept-reverse .concept-content,
.concept-container.concept-reverse .concept-img-wrapper {
order: initial !important;
}
  .concept-content {
padding-left: 18px !important;
}
  .concept-content {
padding-left: 0 !important;
}
}

/* Block: custom_html / sec_1788162985547 */
.custom-html-wrapper {padding: 0 !important; margin: 0 !important; max-width: none !important; background: transparent !important; color: inherit !important;}
.custom-html-inner {width: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important;}
.custom-html-inner > *:first-child {margin-top: 0;}
.custom-html-inner > *:last-child {margin-bottom: 0;}
.custom-html-inner img,
.custom-html-inner video,
.custom-html-inner iframe {max-width: 100%;}


/* =========================================================
   Page: footer / FOOTER ページ
========================================================= */

/* Block: global_footer / sec_1788150908859 */
.global-footer {
  padding: 88px 20px 56px;
  background: #081011;
  color: var(--text-main);
  border-top: 1px solid var(--line);
}
.info-grid { max-width: 1120px; margin: 0 auto; display: grid; grid-template-columns: minmax(280px, .9fr) 1.1fr; gap: 48px; }
.footer-brand h2 { font-family: var(--font-serif); color: var(--gold-light); font-size: 28px; letter-spacing: .14em; }
.footer-genre { color: var(--text-sub); font-size: 12px; margin-top: 6px; letter-spacing: .1em; }
.footer-table { width: 100%; border-collapse: collapse; margin-top: 28px; }
.footer-table th, .footer-table td { padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.08); text-align: left; vertical-align: top; font-size: 13px; }
.footer-table th { width: 92px; color: var(--gold); }
.footer-table td { color: var(--text-sub); }
.footer-tel strong { color: var(--text-main); font-size: 22px; }
.payment-title { margin: 24px 0 10px; color: var(--gold); font-size: 12px; font-weight: 800; }
.payment-icons { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; color: var(--text-sub); }
.pay-tag { border: 1px solid var(--line); padding: 3px 8px; border-radius: 4px; font-size: 11px; }
.gmap-wrap { min-height: 320px; border-radius: 8px; overflow: hidden; border: 1px solid var(--line); background: var(--bg-paper); }
.gmap-wrap iframe { width: 100%; height: 100%; min-height: 320px; border: none; filter: grayscale(.15) contrast(.95); }
.gmap-placeholder { min-height: 320px; display: flex; align-items: center; justify-content: center; color: var(--text-sub); }
.footer-copy-text, .footer-copy {
  background: #081011;
  color: var(--text-muted);
  text-align: center;
  padding: 20px;
  font-size: 11px;
  border-top: 1px solid rgba(255,255,255,.06);
}
.fc-floating-actions {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 1800;
  display: flex;
  flex-direction: column;
  gap: 10px;
  pointer-events: none;
}
.fc-floating-action {
  pointer-events: auto;
  min-width: 136px;
  min-height: 46px;
  padding: 0 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 999px;
  border: 1px solid var(--gold);
  background: rgba(16, 23, 24, .92);
  color: var(--text-main);
  box-shadow: 0 14px 34px rgba(0, 0, 0, .28);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .04em;
  backdrop-filter: blur(10px);
}
.fc-floating-action:hover {
  background: var(--gold);
  color: #101718;
}
.fc-floating-reserve {
  background: var(--gold);
  color: #101718;
}
.fc-floating-reserve:hover {
  background: var(--gold-light);
  border-color: var(--gold-light);
  color: #101718;
}
.fc-floating-line {
  border-color: rgba(6, 199, 85, .75);
}
.fc-floating-instagram {
  border-color: rgba(246, 207, 122, .8);
}
@media (max-width: 768px) {
  .info-grid { grid-template-columns: 1fr; }
  .fc-floating-actions {
    left: 0;
    right: 0;
    bottom: 0;
    flex-direction: row;
    gap: 0;
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
    background: rgba(8, 16, 17, .94);
    border-top: 1px solid var(--line);
    backdrop-filter: blur(12px);
  }
  .fc-floating-action {
    flex: 1 1 0;
    min-width: 0;
    min-height: 48px;
    padding: 0 8px;
    flex-direction: column;
    gap: 2px;
    border-radius: 6px;
    box-shadow: none;
    font-size: 11px;
    line-height: 1.2;
  }
  .fc-floating-action i {
    font-size: 15px;
  }
}
/* FOOTER > 共通フッター > セクション個別CSS の末尾に追加。
   既存のCSSは消しません。スマホ横向きを含む1024px以下に適用します。
   フローティングボタン設定でWEB予約・電話の両方を表示してください。
   CSSはリンクを新設しません。リンク先は管理画面から設定します。 */
@media (min-width: 1025px) {
  body .fc-floating-actions[data-floating-actions] { display: none; }
}
@media (max-width: 1024px) {
  body:has(.fc-floating-actions[data-floating-actions]) {
    padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px));
  }
  body .fc-floating-actions[data-floating-actions] {
    position: fixed;
    inset: auto 0 0;
    z-index: 1500;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 8px max(12px, env(safe-area-inset-right, 0px))
      calc(8px + env(safe-area-inset-bottom, 0px))
      max(12px, env(safe-area-inset-left, 0px));
    border: 0;
    border-top: 1px solid #dfcdb5;
    border-radius: 0;
    background: #fffaf0;
    box-shadow: 0 -3px 16px rgba(71, 45, 32, .1);
    transform: none;
    opacity: 1;
    visibility: visible;
    backdrop-filter: none;
  }
  body .fc-floating-actions[data-floating-actions] .fc-floating-action {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 8px;
    box-sizing: border-box;
    min-width: 0;
    width: 100%;
    min-height: 56px;
    margin: 0;
    padding: 12px 8px;
    border: 1px solid #472d20;
    border-radius: 8px;
    font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.5;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: none;
  }
  body .fc-floating-actions[data-floating-actions] .fc-floating-action :is(span, i) {
    font-size: 16px;
    white-space: nowrap;
  }
  body .fc-floating-actions[data-floating-actions] .fc-floating-reserve {
    order: 1;
    color: #472d20;
    background: #f4c542;
    border-color: #f4c542;
  }
  body .fc-floating-actions[data-floating-actions] .fc-floating-phone {
    order: 2;
    color: #fffaf0;
    background: #472d20;
  }
  body .fc-floating-actions[data-floating-actions] .fc-floating-action:focus-visible {
    outline: 3px solid #8a5616;
    outline-offset: 2px;
  }
}
/* FOOTER > 共通フッター > セクション個別CSS の末尾に追加。
   既存のCSSは消しません。スマホ横向きを含む1024px以下に適用します。
   フローティングボタン設定でWEB予約・電話の両方を表示してください。
   CSSはリンクを新設しません。リンク先は管理画面から設定します。 */
@media (min-width: 1025px) {
  body .fc-floating-actions[data-floating-actions] { display: none; }
}
@media (max-width: 1024px) {
  body:has(.fc-floating-actions[data-floating-actions]) {
    padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px));
  }
  body .fc-floating-actions[data-floating-actions] {
    position: fixed;
    inset: auto 0 0;
    z-index: 1500;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 8px max(12px, env(safe-area-inset-right, 0px))
      calc(8px + env(safe-area-inset-bottom, 0px))
      max(12px, env(safe-area-inset-left, 0px));
    border: 0;
    border-top: 1px solid #dfcdb5;
    border-radius: 0;
    background: #fffaf0;
    box-shadow: 0 -3px 16px rgba(71, 45, 32, .1);
    transform: none;
    opacity: 1;
    visibility: visible;
    backdrop-filter: none;
  }
  body .fc-floating-actions[data-floating-actions] .fc-floating-action {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 8px;
    box-sizing: border-box;
    min-width: 0;
    width: 100%;
    min-height: 56px;
    margin: 0;
    padding: 12px 8px;
    border: 1px solid #472d20;
    border-radius: 8px;
    font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.5;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: none;
  }
  body .fc-floating-actions[data-floating-actions] .fc-floating-action :is(span, i) {
    font-size: 16px;
    white-space: nowrap;
  }
  body .fc-floating-actions[data-floating-actions] .fc-floating-reserve {
    order: 1;
    color: #472d20;
    background: #f4c542;
    border-color: #f4c542;
  }
  body .fc-floating-actions[data-floating-actions] .fc-floating-phone {
    order: 2;
    color: #fffaf0;
    background: #472d20;
  }
  body .fc-floating-actions[data-floating-actions] .fc-floating-action:focus-visible {
    outline: 3px solid #8a5616;
    outline-offset: 2px;
  }
}

/* Block: custom_html / sec_1788152755167 */
/* 03を貼ったFOOTERのカスタムHTMLブロックの「セクション個別 CSS」へ。
   同じ欄の既存CSSだけを置換。既存の共通フッターは有効のまま残します。 */
body:has(#tc3-footer) { margin: 0; }
body .custom-html-wrapper:has(#tc3-footer),
body .custom-html-inner:has(> #tc3-footer) {
  width: 100% !important; max-width: none !important; margin: 0 !important;
  padding: 0 !important; background: transparent !important; opacity: 1; transform: none;
}
#tc3-footer, #tc3-footer * { box-sizing: border-box; }
#tc3-footer { margin: 0; font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif; color: #fff4df; font-size: 16px; line-height: 1.8; }
#tc3-footer [hidden] { display: none !important; }
#tc3-footer .tc3-phrase { display: inline-block; white-space: nowrap; }
#tc3-shop { margin: 0; padding: 80px 5%; background: #a74730; scroll-margin-top: 16px; }
#tc3-footer .tc3-shop-inner { max-width: 1440px; margin: auto; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(36px,6vw,100px); align-items: center; }
#tc3-footer .tc3-shop-copy { min-width: 0; }
#tc3-footer .tc3-eyebrow { margin: 0 0 20px; color: #ffe060; font-size: 14px; font-weight: 800; letter-spacing: .15em; line-height: 1.5; }
#tc3-footer h2 { margin: 0 0 24px; font-family: inherit; color: #fff4df; font-size: clamp(32px,4.2vw,60px); font-weight: 800; line-height: 1.3; letter-spacing: 0; text-wrap: initial; }
#tc3-footer .tc3-title-line { display: block; }
#tc3-footer .tc3-shop-text { margin: 0; font-size: 16px; line-height: 2; color: #fff4df; }
#tc3-footer .tc3-book-link { display: inline-flex; align-items: center; justify-content: center; gap: 12px; max-width: 100%; min-height: 56px; margin-top: 30px; padding: 14px 22px; border: 1px solid #f8cf36; border-radius: 8px; background: #f8cf36; color: #3e261c; font-size: 16px; font-weight: 800; line-height: 1.5; text-decoration: none; white-space: nowrap; }
#tc3-footer .tc3-book-link:hover { background: #ffe476; }
#tc3-footer .tc3-book-link svg { width: 20px; height: 20px; flex: 0 0 20px; fill: none; stroke: currentColor; stroke-width: 2; }
#tc3-footer .tc3-info-panel { display: none; min-width: 0; padding: 12px 28px; border: 1px solid rgba(255,244,223,.45); border-radius: 16px; }
#tc3-footer.tc3-data-ready .tc3-info-panel { display: block; }
#tc3-footer.tc3-data-ready .tc3-data-fallback { display: none; }
#tc3-footer .tc3-info-row { display: grid; grid-template-columns: 22px minmax(0,1fr); align-items: start; gap: 14px; padding: 22px 0; border-bottom: 1px dashed rgba(255,244,223,.35); font-size: 16px; line-height: 1.8; }
#tc3-footer .tc3-info-row:last-child { border-bottom: 0; }
#tc3-footer .tc3-info-row > svg { width: 22px; height: 22px; margin-top: 3px; fill: none; stroke: #ffe060; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
#tc3-footer .tc3-info-row a { color: #fff4df; font-size: 16px; text-decoration: underline; text-decoration-color: #ffe060; text-underline-offset: 5px; }
#tc3-footer .tc3-info-row a:hover { color: #ffe060; }
#tc3-footer [data-tc3-field] { min-width: 0; font-size: 16px; word-break: normal; word-break: auto-phrase; overflow-wrap: anywhere; text-wrap: balance; }
#tc3-footer [data-tc3-field="phone"] :is(a,strong) { font-size: 18px; color: #fff4df; font-weight: 600; white-space: nowrap; }
#tc3-footer :is([data-tc3-field="hours"],[data-tc3-field="closed"]) { display: inline-block; }
#tc3-footer .tc3-data-fallback { margin: 0; font-size: 16px; }
#tc3-footer .tc3-footer-bottom { margin: 0; padding: 32px 5%; background: #352017; border: 0; }
#tc3-footer .tc3-bottom-inner { max-width: 1440px; margin: auto; display: flex; align-items: center; flex-wrap: wrap; gap: 24px 36px; }
#tc3-footer .tc3-brand { display: grid; gap: 4px; color: #fff4df; text-decoration: none; flex-shrink: 0; line-height: 1.2; }
#tc3-footer .tc3-brand-kicker { font-size: 14px; font-weight: 700; letter-spacing: .1em; }
#tc3-footer .tc3-brand strong { font-size: 28px; letter-spacing: .08em; }
#tc3-footer .tc3-footer-message { margin: 0; color: #efdbc1; font-size: 14px; }
#tc3-footer .tc3-footer-links { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-left: auto; }
#tc3-footer .tc3-footer-links a { display: inline-flex; align-items: center; min-height: 44px; color: #efdbc1; font-size: 14px; text-decoration: none; white-space: nowrap; }
#tc3-footer .tc3-footer-links a:hover { color: #ffe060; text-decoration: underline; text-underline-offset: 4px; }
#tc3-footer a:focus-visible { outline: 3px solid #ffe060; outline-offset: 4px; }
/* データ取得成功時だけ旧フッターの見た目を消す。固定ボタンは兄弟要素なので残ります。 */
body:has(#tc3-footer.tc3-data-ready) .global-footer,
body:has(#tc3-footer.tc3-data-ready) .global-footer + .footer-copy-text { display: none !important; }
/* 地図・決済欄はフォールバック時も表示しない。
   地図の通信も止めるため、管理画面のGoogleマップ埋め込み欄は空にしてください。 */
body:has(#tc3-footer) .global-footer :is(.gmap-wrap,.footer-payments-box) { display: none !important; }
@media (max-width: 767px) {
  #tc3-shop { padding: 48px 20px; }
  #tc3-footer .tc3-shop-inner { grid-template-columns: minmax(0,1fr); gap: 32px; }
  #tc3-footer h2 { font-size: clamp(30px,7.7vw,42px); line-height: 1.38; margin-bottom: 20px; }
  #tc3-footer .tc3-eyebrow { margin-bottom: 16px; }
  #tc3-footer .tc3-shop-text { font-size: 16px; line-height: 1.85; }
  #tc3-footer .tc3-book-link { margin-top: 24px; padding: 14px 18px; }
  #tc3-footer .tc3-info-panel { padding: 4px 18px; border-radius: 12px; }
  #tc3-footer .tc3-info-row { grid-template-columns: 20px minmax(0,1fr); gap: 12px; padding: 18px 0; }
  #tc3-footer .tc3-info-row > svg { width: 20px; height: 20px; }
  #tc3-footer .tc3-footer-bottom { padding: 30px 20px; }
  #tc3-footer .tc3-bottom-inner { display: grid; grid-template-columns: minmax(0,1fr); gap: 16px; }
  #tc3-footer .tc3-footer-links { margin: 0; gap: 4px 20px; }
}
