/* ============================================
   BONFIRE - Sample Mockup
   Design: Natural Immersion × Japanese Luxury
   Palette: Moss + Ember + Brass on warm paper
   ============================================ */

:root {
  --color-paper: #ffffff;
  --color-paper-deep: #ebe3d2;
  --color-ink: #1a1f1a;
  --color-ink-soft: #3a4438;
  --color-indigo: #1f3a2b;       /* moss (kept legacy name for backward-compat) */
  --color-indigo-dark: #112a1c;  /* moss-dark */
  --color-wood: #a88a52;          /* brass (kept legacy name) */
  --color-stone: #6e7268;
  --color-line: #c9bfa9;
  --color-ember: #b8421f;
  --color-ember-soft: #d97250;
  --color-lake: #256d8a;          /* 湖の藍(明るめ): カヤック予約CTA専用(他CTAのmoss/emberと別系統) */
  --color-lake-bright: #2f82a1;

  --font-serif: 'Shippori Mincho', 'Yu Mincho', '游明朝', 'Noto Serif JP', serif;
  --font-sans: 'Noto Sans JP', 'Hiragino Sans', sans-serif;
  --font-en: 'Cormorant Garamond', 'Shippori Mincho', serif;

  --container: 1200px;
  --container-narrow: 960px;

  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body {
  font-family: var(--font-sans);
  font-weight: 400;
  color: var(--color-ink);
  background: var(--color-paper);
  line-height: 1.85;
  font-feature-settings: "palt";
  letter-spacing: 0.04em;
  overflow-x: hidden;
  position: relative;
}
body::before {
  content: '';
  position: fixed;
  inset: 0;
  background:
    radial-gradient(circle at 12% 18%, rgba(168, 138, 82, 0.06) 0%, transparent 55%),
    radial-gradient(circle at 88% 82%, rgba(31, 58, 43, 0.05) 0%, transparent 55%);
  pointer-events: none;
  z-index: 0;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; transition: opacity 0.3s var(--ease); }
a:hover { opacity: 0.7; }

.container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 32px;
}

/* ============ Section common ============ */
section { padding: 120px 0; position: relative; }
.section-eyebrow {
  font-family: var(--font-en);
  font-style: italic;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.28em;
  color: var(--color-indigo);
  text-align: center;
  margin-bottom: 16px;
}
.section-title {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: clamp(28px, 4vw, 44px);
  letter-spacing: 0.1em;
  text-align: center;
  margin-bottom: 24px;
  line-height: 1.5;
}
.section-lead {
  text-align: center;
  color: var(--color-ink-soft);
  margin-bottom: 64px;
  font-size: 15px;
}
.section-cta {
  text-align: center;
  margin-top: 64px;
}

/* ============ Buttons ============ */
.btn {
  display: inline-block;
  padding: 16px 40px;
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.2em;
  text-align: center;
  transition: all 0.4s var(--ease);
  cursor: pointer;
  border: 1px solid transparent;
}
.btn-primary {
  background: var(--color-indigo);
  color: var(--color-paper);
}
.btn-primary:hover {
  background: var(--color-indigo-dark);
  opacity: 1;
}
.btn-ghost {
  background: transparent;
  color: var(--color-ink);
  border-color: var(--color-ink);
}
.btn-ghost:hover {
  background: var(--color-ink);
  color: var(--color-paper);
  opacity: 1;
}
.btn-line {
  background: transparent;
  color: var(--color-ink);
  border-bottom: 1px solid var(--color-ink);
  padding: 12px 0;
  letter-spacing: 0.3em;
}
.btn-large {
  padding: 22px 56px;
  font-size: 15px;
}

/* ============ HEADER ============ */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  background: rgba(248, 246, 241, 0.0);
  transition: all 0.4s var(--ease);
  padding: 24px 0;
}
.site-header.is-scrolled {
  background: rgba(248, 246, 241, 0.97);
  padding: 14px 0;
  box-shadow: 0 1px 0 var(--color-line);
}
.header-inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}
.brand {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}
.brand-en {
  font-family: var(--font-en);
  font-weight: 500;
  letter-spacing: 0.2em;
  font-size: 36px;
  color: var(--color-ink);
}
.brand-ja {
  font-family: var(--font-serif);
  font-size: 18px;
  letter-spacing: 0.22em;
  color: var(--color-ink-soft);
  margin-top: 6px;
}
.site-header:not(.is-scrolled) .brand-en,
.site-header:not(.is-scrolled) .brand-ja { color: var(--color-paper); }

.global-nav { flex: 1; }
.global-nav ul {
  display: flex;
  justify-content: center;
  list-style: none;
  gap: 36px;
}
.global-nav a {
  font-family: var(--font-serif);
  font-size: 14px;
  letter-spacing: 0.15em;
  color: var(--color-ink);
  position: relative;
}
.site-header:not(.is-scrolled) .global-nav a { color: var(--color-paper); }

.header-cta {
  display: flex;
  align-items: center;
  gap: 20px;
}

.cta-reserve {
  display: inline-block;
  padding: 13px 48px;                                   /* 横に大きめ */
  background: var(--color-indigo);
  color: var(--color-paper);
  font-size: 14px;
  letter-spacing: 0.24em;
  font-weight: 500;
  border-radius: 7px;                                   /* 角を取る */
  box-shadow: 0 6px 16px rgba(31, 58, 43, 0.28);        /* 影でボタンらしく */
  transition: background .3s var(--ease), box-shadow .3s var(--ease), transform .3s var(--ease);
}
.cta-reserve:hover { background: var(--color-indigo-dark); opacity: 1; box-shadow: 0 9px 22px rgba(31, 58, 43, 0.36); transform: translateY(-1px); }

/* ヒーローCTAも角丸+影でボタンらしく(ヘッダーと統一。.btn 全体には波及させない) */
.hero-cta .btn { border-radius: 7px; }
.hero-cta .btn-primary { box-shadow: 0 8px 22px rgba(0, 0, 0, 0.28); }
.hero-cta .btn-primary:hover { box-shadow: 0 11px 28px rgba(0, 0, 0, 0.34); transform: translateY(-1px); }
.hero-cta .btn-ghost:hover { transform: translateY(-1px); }

.menu-toggle {
  display: none;
  background: none;
  border: none;
  width: 32px;
  height: 24px;
  flex-direction: column;
  justify-content: space-between;
  cursor: pointer;
  padding: 0;
}
.menu-toggle span {
  display: block;
  height: 1.5px;
  background: var(--color-ink);
  width: 100%;
  transition: 0.3s;
}
.site-header:not(.is-scrolled) .menu-toggle span { background: var(--color-paper); }

/* ============ HERO ============ */
.hero {
  position: relative;
  height: 100vh;
  min-height: 640px;
  overflow: hidden;
  color: var(--color-paper);
  padding: 0;
}
.hero-image {
  position: absolute;
  inset: 0;
  background-image: url('./images/hero.jpg');
  background-size: cover;
  background-position: center;
  background-color: #2a3a40;
  animation: heroZoom 20s var(--ease) forwards;
}
@keyframes heroZoom {
  from { transform: scale(1.1); }
  to { transform: scale(1); }
}
.hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.35) 50%, rgba(0,0,0,0.5) 100%);
}
.hero-content {
  position: relative;
  z-index: 2;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 32px;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}
.hero-eyebrow {
  font-family: var(--font-en);
  font-style: italic;
  letter-spacing: 0.3em;
  font-size: 14px;
  margin-bottom: 28px;
  opacity: 0;
  animation: fadeUp 1.2s var(--ease) 0.3s forwards;
}
.hero-title {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: clamp(40px, 7vw, 88px);
  line-height: 1.4;
  letter-spacing: 0.08em;
  margin-bottom: 32px;
  opacity: 0;
  animation: fadeUp 1.2s var(--ease) 0.6s forwards;
}
.ruby {
  font-size: 0.42em;
  letter-spacing: 0.15em;
  margin-left: 0.4em;
  opacity: 0.7;
  font-weight: 300;
  vertical-align: 0.4em;
}
.hero-title .ruby {
  font-size: 0.32em;
  letter-spacing: 0.15em;
  margin-left: 0.4em;
  opacity: 0.85;
  font-weight: 300;
  vertical-align: baseline;
}
.hero-lead {
  font-size: 15px;
  line-height: 2.2;
  letter-spacing: 0.15em;
  margin-bottom: 48px;
  opacity: 0;
  animation: fadeUp 1.2s var(--ease) 0.9s forwards;
}
.hero-cta {
  display: flex;
  gap: 16px;
  opacity: 0;
  animation: fadeUp 1.2s var(--ease) 1.2s forwards;
}
.hero .btn-ghost {
  color: var(--color-paper);
  border-color: var(--color-paper);
}
.hero .btn-ghost:hover {
  background: var(--color-paper);
  color: var(--color-ink);
}
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}
.hero-scroll {
  position: absolute;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--font-en);
  font-size: 11px;
  letter-spacing: 0.3em;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.scroll-line {
  width: 1px;
  height: 60px;
  background: var(--color-paper);
  animation: scrollPulse 2s ease-in-out infinite;
}
@keyframes scrollPulse {
  0%, 100% { transform: scaleY(1); opacity: 1; transform-origin: top; }
  50% { transform: scaleY(0.3); opacity: 0.5; }
}

/* ============ TOURS ============ */
.tours { background: var(--color-paper-deep); }
.tour-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.tour-card {
  background: var(--color-paper);
  overflow: hidden;
  transition: transform 0.5s var(--ease), box-shadow 0.5s var(--ease);
}
.tour-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 48px rgba(26, 49, 64, 0.12);
}
.tour-image {
  width: 100%;
  /* 2026-05-27: 4/5 縦長 → 3/2 横長へ。元写真(2000x1126 等の 16:9 横長)を縦長クロップして
     可視率 45% だった見切れを解消。約 83% 可視に。モバイルでは既に 5/4 (TOUR-CAROUSEL-MOBILE-V1)
     にスコープ上書き済みのため PC のみ影響。 */
  aspect-ratio: 3 / 2;
  background-size: cover;
  background-position: center;
  background-color: var(--color-stone);
  transition: transform 0.8s var(--ease);
}
.tour-card:hover .tour-image { transform: scale(1.04); }
.tour-body { padding: 32px 28px; }
.tour-time {
  font-family: var(--font-en);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.12em;
  color: var(--color-ink);
  margin-bottom: 12px;
}
.tour-tagline {
  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 400;
  letter-spacing: 0.1em;
  color: var(--color-indigo);
  margin-bottom: 12px;
  line-height: 1.6;
}
.tour-name {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 22px;
  letter-spacing: 0.05em;
  margin-bottom: 16px;
  line-height: 1.5;
}
.tour-en {
  display: block;
  margin-top: 6px;
  font-family: var(--font-en);
  font-style: italic;
  font-size: 13px;
  font-weight: 400;
  color: var(--color-ink-soft);
  letter-spacing: 0.12em;
}
.tour-desc {
  font-size: 14px;
  line-height: 1.95;
  color: var(--color-ink-soft);
  margin-bottom: 20px;
}
.tour-price {
  font-family: var(--font-serif);
  font-size: 22px;
  color: var(--color-indigo);
  margin-bottom: 20px;
  letter-spacing: 0.05em;
}
.price-from {
  font-size: 12px;
  color: var(--color-stone);
  letter-spacing: 0.15em;
  margin-right: 8px;
}
.price-tax {
  font-size: 11px;
  color: var(--color-stone);
  margin-left: 4px;
}
.price-sale {
  color: #c0392b;
  font-weight: 500;
  margin-right: 12px;
}
.price-orig {
  font-size: 15px;
  color: var(--color-stone);
  text-decoration: line-through;
  letter-spacing: 0.02em;
}

/* Special programs sub-section */
.special-tours {
  margin-top: 96px;
  padding-top: 64px;
  border-top: 1px solid var(--color-line);
  text-align: center;
}
.section-subtitle {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: clamp(22px, 3vw, 32px);
  letter-spacing: 0.15em;
  margin-bottom: 16px;
}
.section-sublead {
  color: var(--color-ink-soft);
  font-size: 14px;
  margin-bottom: 48px;
  letter-spacing: 0.05em;
}
.special-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
  text-align: left;
}
.tour-card-wide .tour-image {
  aspect-ratio: 16 / 10;
}
.tour-link {
  display: inline-block;
  font-size: 13px;
  letter-spacing: 0.2em;
  border-bottom: 1px solid var(--color-ink);
  padding-bottom: 4px;
}

/* ============ SEASONS ============ */
.seasons {
  background: var(--color-indigo);
  color: var(--color-paper);
}
.seasons .section-title,
.seasons .section-eyebrow { color: var(--color-paper); }
.seasons .section-eyebrow { color: var(--color-wood); }
.season-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-top: 56px;
}
.season-card {
  position: relative;
  overflow: hidden;
}
.season-img {
  width: 100%;
  aspect-ratio: 3 / 4;
  background-size: cover;
  background-position: center;
  background-color: rgba(255,255,255,0.05);
  margin-bottom: 20px;
  transition: transform 0.8s var(--ease);
}
.season-card:hover .season-img { transform: scale(1.05); }
.season-card h3 {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 18px;
  letter-spacing: 0.15em;
  margin-bottom: 10px;
}
.season-card p {
  font-size: 13px;
  line-height: 1.9;
  opacity: 0.85;
}

/* ============ VOICES ============ */
.voices { padding: 140px 0; background: var(--color-paper-deep); }
.voice-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin-top: 56px;
}
.voice-item {
  background: var(--color-paper);
  padding: 48px 36px 36px;
  position: relative;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.voice-item::before {
  content: '“';
  display: block;
  font-family: var(--font-en);
  font-size: 56px;
  color: var(--color-indigo);
  opacity: 0.18;
  line-height: 0.6;
  margin: 0 auto 8px;
  text-align: center;
}
.voice-rating {
  color: #d4a04a;
  letter-spacing: 0.25em;
  margin: 4px 0 24px;
  font-size: 16px;
}
.voice-text {
  font-family: var(--font-serif);
  font-size: 15px;
  line-height: 2;
  color: var(--color-ink);
  margin: 0 auto 24px;
  text-align: left;
  max-width: 100%;
  flex: 1;
}
.voice-meta {
  font-size: 12px;
  color: var(--color-ink-soft);
  letter-spacing: 0.08em;
  padding-top: 16px;
  border-top: 1px solid var(--color-line);
  line-height: 1.7;
}

/* ============ SHOP ============ */
.shop { padding: 0; background: var(--color-paper); }
.shop-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 80px;
  padding: 120px 32px;
  max-width: 1400px;
}
.shop-text .section-eyebrow,
.shop-text .section-title { text-align: left; }
.shop-text .section-title { margin-bottom: 24px; }
.shop-text p {
  font-size: 15px;
  line-height: 2.2;
  color: var(--color-ink-soft);
  margin-bottom: 32px;
}
.shop-image {
  width: 100%;
  aspect-ratio: 5 / 4;
  background-size: cover;
  background-position: center;
}

/* ============ ACCESS ============ */
.access { background: var(--color-paper-deep); }
.access-grid {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 56px;
  margin-top: 56px;
  align-items: start;
}
.access-info dl { display: grid; gap: 24px; }
.access-info dt {
  font-family: var(--font-serif);
  font-size: 14px;
  letter-spacing: 0.2em;
  color: var(--color-wood);
  margin-bottom: 6px;
}
.access-info dd {
  font-size: 15px;
  line-height: 1.9;
  color: var(--color-ink-soft);
  border-bottom: 1px solid var(--color-line);
  padding-bottom: 24px;
}
.access-info dd:last-child { border-bottom: none; }
.map-placeholder {
  width: 100%;
  aspect-ratio: 16 / 11;
  background: var(--color-line);
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-family: var(--font-serif);
  color: var(--color-stone);
  font-size: 14px;
}

/* ============ JOURNAL ============ */
.journal-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin-top: 56px;
}
.journal-card { cursor: pointer; }
.journal-img {
  width: 100%;
  aspect-ratio: 4 / 3;
  background-size: cover;
  background-position: center;
  background-color: var(--color-stone);
  margin-bottom: 20px;
  overflow: hidden;
  transition: transform 0.6s var(--ease);
}
.journal-card:hover .journal-img { transform: scale(1.03); }
.journal-date {
  font-family: var(--font-en);
  font-size: 12px;
  letter-spacing: 0.2em;
  color: var(--color-wood);
  margin-bottom: 12px;
}
.journal-card h3 {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 18px;
  letter-spacing: 0.05em;
  line-height: 1.7;
  margin-bottom: 12px;
}
.journal-card p {
  font-size: 13.5px;
  line-height: 1.9;
  color: var(--color-ink-soft);
}

/* ============ FAQ ============ */
.faq { background: var(--color-paper-deep); }
.faq-list {
  max-width: 800px;
  margin: 56px auto 0;
}
.faq details {
  border-bottom: 1px solid var(--color-line);
  padding: 28px 0;
  transition: 0.3s;
}
.faq summary {
  font-family: var(--font-serif);
  font-size: 16px;
  letter-spacing: 0.08em;
  cursor: pointer;
  list-style: none;
  position: relative;
  padding-right: 40px;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::before {
  content: 'Q.';
  font-family: var(--font-en);
  color: var(--color-wood);
  margin-right: 16px;
  font-size: 18px;
}
.faq summary::after {
  content: '＋';
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-wood);
  font-size: 20px;
  transition: 0.3s;
}
.faq details[open] summary::after { content: '−'; }
.faq details p {
  font-size: 14.5px;
  line-height: 2;
  color: var(--color-ink-soft);
  margin-top: 16px;
  padding-left: 32px;
}

/* ============ FINAL CTA ============ */
.final-cta {
  position: relative;
  padding: 140px 32px;
  text-align: center;
  color: var(--color-paper);
  overflow: hidden;
}
.final-cta-image {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-color: var(--color-indigo);
}
.final-cta-overlay {
  position: absolute;
  inset: 0;
  background: rgba(20, 35, 45, 0.6);
}
.final-cta-content {
  position: relative;
  z-index: 2;
}
.final-cta h2 {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: clamp(26px, 4vw, 40px);
  letter-spacing: 0.12em;
  line-height: 1.7;
  margin-bottom: 24px;
}
.final-cta p { font-size: 15px; margin-bottom: 40px; letter-spacing: 0.1em; }
.final-cta .btn-primary {
  background: var(--color-paper);
  color: var(--color-ink);
}
.final-cta .btn-primary:hover { background: var(--color-wood); color: var(--color-paper); }
.final-cta-phone {
  margin-top: 32px;
  margin-bottom: 0;
  font-size: 14px;
  letter-spacing: 0.1em;
}
.final-cta-phone a {
  font-family: var(--font-en);
  font-size: 18px;
  letter-spacing: 0.2em;
  border-bottom: 1px solid;
  padding-bottom: 2px;
  margin-left: 8px;
}

/* ============ FOOTER ============ */
.site-footer {
  background: var(--color-ink);
  color: var(--color-paper);
  padding: 80px 0 32px;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 56px;
  margin-bottom: 56px;
}
.footer-logo {
  font-family: var(--font-en);
  letter-spacing: 0.3em;
  font-size: 20px;
  margin-bottom: 6px;
}
.footer-jp {
  font-family: var(--font-serif);
  font-size: 12px;
  letter-spacing: 0.2em;
  margin-bottom: 24px;
  opacity: 0.7;
}
.footer-addr {
  font-size: 13px;
  line-height: 1.9;
  opacity: 0.7;
  margin-bottom: 16px;
}
.footer-tel a {
  font-family: var(--font-en);
  font-size: 17px;
  letter-spacing: 0.15em;
}
.footer-links h4 {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 13px;
  letter-spacing: 0.25em;
  margin-bottom: 20px;
  color: var(--color-wood);
}
.footer-links ul { list-style: none; }
.footer-links li { margin-bottom: 12px; }
.footer-links a {
  font-size: 13px;
  opacity: 0.75;
  letter-spacing: 0.08em;
}
.footer-links a:hover { opacity: 1; }
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.08);
  padding-top: 32px;
  text-align: center;
  font-size: 12px;
  opacity: 0.5;
  letter-spacing: 0.15em;
}

/* ============ MOBILE STICKY CTA(廃止: PC/モバイル共通の .kayak-cta に統一)============ */

/* ============ RESPONSIVE ============ */
@media (max-width: 1024px) {
  .tour-grid, .voice-grid, .journal-grid, .special-grid { grid-template-columns: repeat(2, 1fr); }
  .reason-grid { grid-template-columns: repeat(3, 1fr); gap: 32px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
  section { padding: 90px 0; }
  .intro { padding: 100px 0; }

  /* ナビは1024px以下でハンバーガーに切り替え(タブレットも含む) */
  .global-nav, .header-cta { display: none; }
  .menu-toggle { display: flex; }
  /* スクロール前は透明(写真上)、スクロール後 paper 背景に PC 同様の挙動 */
  .site-header {
    padding: 12px 0;
    background: rgba(245, 240, 230, 0);
    box-shadow: none;
    transition: background 0.3s ease, box-shadow 0.3s ease;
  }
  .site-header.is-scrolled {
    background: rgba(245, 240, 230, 0.97);
    box-shadow: 0 1px 0 var(--color-line);
  }
  .site-header:not(.is-scrolled) .brand-en { color: var(--color-paper); font-size: 36px; font-weight: 500; letter-spacing: 0.2em; }
  .site-header.is-scrolled .brand-en { color: var(--color-ink); font-size: 36px; font-weight: 500; letter-spacing: 0.2em; }
  .site-header:not(.is-scrolled) .brand-ja { color: var(--color-paper); opacity: 0.85; font-size: 18px; letter-spacing: 0.22em; margin-top: 6px; }
  .site-header.is-scrolled .brand-ja { color: var(--color-ink-soft); font-size: 18px; letter-spacing: 0.22em; margin-top: 6px; }
  .site-header:not(.is-scrolled) .menu-toggle span { background: var(--color-paper); }
  .site-header.is-scrolled .menu-toggle span { background: var(--color-ink); }
}

@media (max-width: 768px) {
  .container { padding: 0 24px; }

  .hero { min-height: 560px; height: 90vh; }
  .hero-title { font-size: clamp(34px, 9vw, 56px); }
  .hero-cta { width: 100%; }
  .hero-cta .btn { flex: 1; padding: 14px 16px; font-size: 12px; letter-spacing: 0.15em; white-space: nowrap; }

  .tour-grid, .voice-grid, .journal-grid, .season-grid, .special-grid { grid-template-columns: 1fr; gap: 24px; }
  .reason-grid { grid-template-columns: 1fr; gap: 48px; }
  .shop-inner { grid-template-columns: 1fr; gap: 32px; padding: 80px 24px; }
  .access-grid { grid-template-columns: 1fr; gap: 32px; }
  .footer-grid { grid-template-columns: 1fr; gap: 32px; }

  section { padding: 80px 0; }
  .intro { padding: 80px 0; }
  .intro-text { font-size: 15px; line-height: 2.6; }

  /* Hero: PC と同じく「写真にオーバーレイ重ね」で統一(Phase 5-H 末尾で stacked から変更)。
     サイズは L919-922 のモバイル調整(min-height: 560px / 90vh / btn 整形) を継承。 */
  .hero-scroll { display: none; }

  /* Final CTA: same stacked treatment */
  .final-cta { padding: 0; }
  .final-cta-image {
    position: relative;
    inset: auto;
    width: 100%;
    aspect-ratio: 4 / 3;
    background-size: contain;
    background-position: center;
    background-color: var(--color-ink);
  }
  .final-cta-overlay { display: none; }
  .final-cta-content {
    padding: 80px 24px;
    background: var(--color-indigo);
  }

  .tour-image,
.journal-img {
  background-size: cover;
  background-position: center;
  background-color: var(--color-paper-deep);
  aspect-ratio: 3 / 2;
}
  .season-img {
    background-size: contain;
    background-repeat: no-repeat;
    background-color: rgba(255, 255, 255, 0.06);
    aspect-ratio: 3 / 2;
  }
  .shop-image {
    background-size: contain;
    background-repeat: no-repeat;
    background-color: var(--color-paper-deep);
    aspect-ratio: 3 / 2;
  }
}

/* ============================================================
 * Small mobile (480px and below) refinements
 * ============================================================ */
@media (max-width: 480px) {
  .site-header .brand-en,
  .site-header:not(.is-scrolled) .brand-en { font-size: 24px; letter-spacing: 0.15em; }
  .site-header .brand-ja,
  .site-header:not(.is-scrolled) .brand-ja { font-size: 12px; letter-spacing: 0.18em; margin-top: 3px; }

  .container { padding: 0 18px; }

  .hero-title { font-size: clamp(28px, 8.5vw, 44px); line-height: 1.4; }
  .hero-lead { font-size: 13px; line-height: 1.9; }

  .section-title { font-size: clamp(22px, 7vw, 30px); }
  .section-eyebrow { font-size: 12px; letter-spacing: 0.18em; }

  .tour-name { font-size: 19px; }
  .tour-en { font-size: 11px; }
  .tour-time { font-size: 12px; }

  /* Buttons: ensure tappable height */
  .btn { min-height: 44px; padding: 12px 18px; font-size: 13px; }
  .btn-large { min-height: 52px; }

  /* iframe calendar smaller on phones */
  .booking-iframe-wrap iframe { height: 540px !important; }
  .booking-calendar-embed { padding: 32px 0 16px !important; }

  /* FAQ accordion: padding adjust */
  .faq-item summary { font-size: 15px !important; }

  /* Footer: tighter spacing */
  .footer-logo { font-size: 24px !important; }

  /* Tour card: tighter */
  /* tour-card mobile default padding kept */
  .tour-body { padding: 22px 22px 28px; }
}

/* ============ TOUR-DROPDOWN-V1 (ツアー ドロップダウン / desktop) ============ */
.global-nav .menu-item-has-children { position: relative; }
.global-nav .menu-item-has-children > a::after {
  content: ""; display: inline-block; width: 5px; height: 5px;
  margin-left: 7px; border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg); opacity: .65;
}
.global-nav .menu-item-has-children::after {
  content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 14px;
}
.global-nav .sub-menu {
  position: absolute; top: 100%; left: 0;
  display: block; min-width: 264px; margin: 0; padding: 16px 0;
  list-style: none;
  background: var(--color-paper, #faf7f1);
  border: 1px solid var(--color-line, #e4ded1);
  box-shadow: 0 18px 42px rgba(0,0,0,0.10);
  border-radius: 4px;
  opacity: 0; visibility: hidden; pointer-events: none;
  transform: translateY(10px);
  transition: opacity .22s ease, transform .22s ease;
  z-index: 1000;
}
.global-nav .menu-item-has-children:hover > .sub-menu,
.global-nav .menu-item-has-children:focus-within > .sub-menu,
.global-nav .menu-item-has-children.is-open > .sub-menu {
  opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0);
}
.global-nav .sub-menu li { margin: 0; }
.global-nav .sub-menu a {
  display: block; padding: 9px 26px;
  font-family: var(--font-serif, "Shippori Mincho", serif);
  font-size: 14px; line-height: 1.5; white-space: nowrap;
  color: var(--color-ink, #1d1d1b) !important;
  transition: background .15s ease, color .15s ease;
}
.global-nav .sub-menu a:hover {
  background: rgba(0,0,0,0.045);
  color: var(--color-indigo, #2f3b52) !important;
}
.global-nav .sub-menu .mm-head > a {
  font-size: 11px; letter-spacing: .14em;
  color: var(--color-ink-soft, #8a8275) !important;
  padding: 14px 26px 5px; margin-top: 6px;
  border-top: 1px solid var(--color-line, #e4ded1);
  pointer-events: none; cursor: default;
}
.global-nav .sub-menu .mm-head:first-child > a {
  border-top: 0; margin-top: 0; padding-top: 4px;
}
.global-nav .sub-menu .mm-head > a:hover { background: none; color: var(--color-ink-soft, #8a8275) !important; }
.global-nav .sub-menu .mm-cta { margin-top: 12px; padding: 0 22px; }
.global-nav .sub-menu .mm-cta > a {
  padding: 11px 16px; text-align: center;
  border: 1px solid var(--color-ink, #1d1d1b); border-radius: 2px;
  font-size: 13px; white-space: nowrap;
}
.global-nav .sub-menu .mm-cta > a:hover {
  background: var(--color-ink, #1d1d1b);
  color: var(--color-paper, #faf7f1) !important;
}
/* ============ /TOUR-DROPDOWN-V1 ============ */
/* ============ TOUR-DROPDOWN-V2 (wide multi-column / overrides V1 panel) ============ */
.global-nav .sub-menu {
  min-width: 700px; max-width: 92vw;
  left: 50%; transform: translateX(-50%) translateY(10px);
  padding: 24px 8px 20px;
  columns: 3; column-gap: 0;
  column-rule: 1px solid var(--color-line, #e4ded1);
}
.global-nav .menu-item-has-children:hover > .sub-menu,
.global-nav .menu-item-has-children:focus-within > .sub-menu,
.global-nav .menu-item-has-children.is-open > .sub-menu {
  transform: translateX(-50%) translateY(0);
}
.global-nav .sub-menu li { break-inside: avoid; }
.global-nav .sub-menu .mm-head { break-before: column; }
.global-nav .sub-menu .mm-head:first-child { break-before: avoid; }
.global-nav .sub-menu .mm-head > a {
  border-top: 0; margin-top: 0; padding: 2px 26px 8px;
}
.global-nav .sub-menu .mm-cta {
  column-span: all; margin: 18px 22px 0; padding: 16px 0 0;
  border-top: 1px solid var(--color-line, #e4ded1);
}
.global-nav .sub-menu .mm-cta > a { display: block; }
/* ============ /TOUR-DROPDOWN-V2 ============ */
/* ============ MOBILE-DRAWER-V1 (<=1024px 全画面ドロワー+アコーディオン / AD: 和モダン+ember差し色) ============ */
@media (max-width: 1024px) {
  .bf-nav-overlay {
    position: fixed; inset: 0; background: rgba(20,20,18,.45);
    opacity: 0; visibility: hidden; transition: opacity .3s ease; z-index: 1150;
  }
  body.bf-nav-open .bf-nav-overlay { opacity: 1; visibility: visible; }
  body.bf-nav-open { overflow: hidden; }
  .menu-toggle { display: flex; position: relative; z-index: 1300; }
  body.bf-nav-open .menu-toggle span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  body.bf-nav-open .menu-toggle span:nth-child(2) { opacity: 0; }
  body.bf-nav-open .menu-toggle span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

  .global-nav {
    display: block; position: fixed; top: 0; right: 0; bottom: 0;
    width: min(86vw, 360px);
    background: var(--color-paper); box-shadow: -14px 0 44px rgba(0,0,0,.18);
    transform: translateX(106%); transition: transform .32s ease;
    z-index: 1200; overflow-y: auto; padding: 92px 0 48px;
  }
  body.bf-nav-open .global-nav { transform: translateX(0); }
  .global-nav ul { display: block; gap: 0; }
  .global-nav > ul > li { border-bottom: 1px solid var(--color-line); }
  .global-nav > ul > li > a {
    display: block; padding: 17px 26px; font-size: 16px;
    font-family: var(--font-serif); color: var(--color-ink) !important;
  }
  /* accordion: submenu inline, gated by .mob-open (not .is-open, avoids desktop collision) */
  .global-nav .menu-item-has-children { position: static; }
  .global-nav .sub-menu {
    position: static; transform: none; opacity: 1; visibility: visible;
    pointer-events: auto; box-shadow: none; border: 0;
    min-width: 0; max-width: none; columns: auto; column-rule: none;
    background: var(--color-paper-deep); padding: 0; display: none;
  }
  .global-nav .menu-item-has-children.mob-open > .sub-menu { display: block; padding: 4px 0 12px; }
  .global-nav .sub-menu a { white-space: normal; padding: 12px 34px; font-size: 14px; }
  .global-nav .sub-menu .mm-head > a {
    color: var(--color-ember) !important; padding: 14px 26px 4px;
    border: 0; margin: 0; font-size: 11px; letter-spacing: .14em;
  }
  .global-nav .sub-menu .mm-cta { column-span: none; margin: 12px 26px 0; padding: 0; border: 0; }
  .global-nav .sub-menu .mm-cta > a { border: 1px solid var(--color-ember); color: var(--color-ember) !important; text-align: center; }
  .global-nav .menu-item-has-children > a::after {
    float: right; margin-top: 8px; border-color: var(--color-ember); opacity: 1;
    transition: transform .25s ease;
  }
  .global-nav .menu-item-has-children.mob-open > a::after { transform: translateY(2px) rotate(225deg); }
}
/* ============ /MOBILE-DRAWER-V1 ============ */
/* ============ TOUR-DROPDOWN-V3 (tour image cards / desktop / AD: ember hover) ============ */
@media (min-width: 1025px) {
  .global-nav .sub-menu .bf-thumb > a {
    display: flex; align-items: center; gap: 12px; padding: 8px 22px;
  }
  .global-nav .sub-menu .bf-thumb > a::before {
    content: ""; flex: 0 0 58px; width: 58px; height: 40px;
    border-radius: 3px; background-image: var(--bf-thumb);
    background-size: cover; background-position: center;
    box-shadow: 0 1px 3px rgba(0,0,0,.14);
    transition: transform .3s ease, box-shadow .3s ease;
  }
  .global-nav .sub-menu .bf-thumb > a:hover {
    color: var(--color-ember) !important; background: rgba(184,66,31,.05);
  }
  .global-nav .sub-menu .bf-thumb > a:hover::before {
    transform: scale(1.06); box-shadow: 0 5px 14px rgba(184,66,31,.24);
  }
}
/* ============ /TOUR-DROPDOWN-V3 ============ */
/* ============ EMBER-ACCENT-V1 (差し色 ember を全体に明確に / AD 2026-05-17 "控えめにしない") ============ */
.section-eyebrow { color: var(--color-ember) !important; }
.section-title { position: relative; }
.section-title::after {
  content: ""; display: block; width: 44px; height: 2px;
  background: var(--color-ember); margin: 20px auto 0; border-radius: 1px;
}
.btn-ghost:hover {
  background: var(--color-ember); border-color: var(--color-ember);
  color: var(--color-paper); opacity: 1;
}
.entry-content a:hover,
.page-content a:hover { color: var(--color-ember); opacity: 1; }
/* ============ /EMBER-ACCENT-V1 ============ */
/* ============ TOUCH-NAV-FIX-V1 (タッチ端末: ホバー自動展開を抑止しタップ開閉に / 携帯で選択不可の修正) ============ */
@media (hover: none) {
  .global-nav .menu-item-has-children:hover > .sub-menu {
    opacity: 0; visibility: hidden; pointer-events: none;
  }
  .global-nav .menu-item-has-children.is-open > .sub-menu,
  .global-nav .menu-item-has-children.mob-open > .sub-menu {
    opacity: 1 !important; visibility: visible !important; pointer-events: auto !important;
  }
}
/* ============ /TOUCH-NAV-FIX-V1 ============ */

/* ============ MOBILE-DRAWER-FIX-V2 (<=1024 ドロワー内リンク可視化: 非スクロール時 .global-nav a color:paper を打消 / AD: 本文ink・mm-head/cta=ember維持・ドロワー背景paper強制) ============ */
@media (max-width: 1024px) {
  body.bf-nav-open .global-nav { background: var(--color-paper) !important; }
  .global-nav .sub-menu { background: var(--color-paper-deep) !important; }
  .site-header .global-nav a,
  .site-header:not(.is-scrolled) .global-nav a { color: var(--color-ink) !important; }
  .site-header .global-nav .sub-menu .mm-head > a,
  .site-header:not(.is-scrolled) .global-nav .sub-menu .mm-head > a,
  .site-header .global-nav .sub-menu .mm-cta > a,
  .site-header:not(.is-scrolled) .global-nav .sub-menu .mm-cta > a { color: var(--color-ember) !important; }
}
/* ============ /MOBILE-DRAWER-FIX-V2 ============ */


/* ============ MOBILE-DRAWER-FIX-V3 (積層文脈修正: .site-header(position:fixed; z-index:100)が作る積層文脈にドロワーが閉込められ、body直下の .bf-nav-overlay(z-index:1150)が上層=ドロワーが暗幕の下に隠れ透けて見える現象。ナビ開時のみヘッダー積層を overlay の上へ昇格させ解消) ============ */
@media (max-width: 1024px) {
  body.bf-nav-open .site-header { z-index: 1200 !important; }
}
/* ============ /MOBILE-DRAWER-FIX-V3 ============ */


/* ============ MOBILE-DRAWER-FIX-V4 (iOS Safari/WebKit: PC用 .sub-menu の column-count:3 / .mm-head break-before:column / min-width:700px 等がモバイルで確実に解除されず空・細箱描画。明示的に全マルチカラム解除+単一縦リスト強制・-webkit-併記) ============ */
@media (max-width: 1024px) {
  .global-nav .sub-menu {
    -webkit-columns: auto !important; columns: auto !important;
    -webkit-column-count: auto !important; column-count: auto !important;
    -webkit-column-width: auto !important; column-width: auto !important;
    -webkit-column-gap: normal !important; column-gap: normal !important;
    width: auto !important; min-width: 0 !important; max-width: none !important;
    left: auto !important; right: auto !important;
    -webkit-transform: none !important; transform: none !important;
    position: static !important;
  }
  .global-nav .sub-menu li,
  .global-nav .sub-menu .mm-head,
  .global-nav .sub-menu .mm-head:first-child,
  .global-nav .sub-menu .mm-cta {
    -webkit-column-break-before: auto !important; break-before: auto !important;
    -webkit-column-break-inside: auto !important; break-inside: auto !important;
    -webkit-column-span: none !important; column-span: none !important;
    float: none !important; width: auto !important; display: block !important;
  }
  .global-nav .menu-item-has-children.mob-open > .sub-menu {
    display: block !important; visibility: visible !important; opacity: 1 !important;
    height: auto !important; max-height: none !important; overflow: visible !important;
  }
  .global-nav .sub-menu a { display: block !important; visibility: visible !important; opacity: 1 !important; color: var(--color-ink) !important; }
  .global-nav .sub-menu .mm-head > a,
  .global-nav .sub-menu .mm-cta > a { color: var(--color-ember) !important; }
}
/* ============ /MOBILE-DRAWER-FIX-V4 ============ */


/* ============ MOBILE-DRAWER-FIX-V5 (真因: .site-header の backdrop-filter が position:fixed子の containing block を生成し、サブページ(常時solid)でドロワーがヘッダー高に潰れる。ドロワー開時のみ backdrop-filter解除→fixedはviewport基準に戻り全高化。blurはoverlay+ドロワーで隠れ視覚影響ゼロ) ============ */
@media (max-width: 1024px) {
  body.bf-nav-open .site-header {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
}
/* ============ /MOBILE-DRAWER-FIX-V5 ============ */


/* ============ MOBILE-DRAWER-FIX-V6 (ログイン時のみ: WP管理バー46pxが固定ヘッダーの×ボタンを覆い欠け。ドロワー開時のみヘッダーを管理バー分下げ×を露出。未ログイン公開訪問者は管理バー無=無影響、開時はページ最上部固定でスクロール隙間も無し) ============ */
@media (max-width: 1024px) {
  body.bf-nav-open.admin-bar .site-header { top: 46px !important; }
}
/* ============ /MOBILE-DRAWER-FIX-V6 ============ */


/* ============ MOBILE-DRAWER-FIX-V7 (×閉じる: 3span(width100%+justify-content+per-span translateY/rotate)はWebKitで右切れ等のエッジケース。開時はspanを隠し ::before/::after で中央配置の堅牢な×に置換[絶対配置・固定寸法・transform-origin中央=エンジン非依存・クリップ不可]) ============ */
@media (max-width: 1024px) {
  body.bf-nav-open .menu-toggle { position: relative; overflow: visible; }
  body.bf-nav-open .menu-toggle span { opacity: 0 !important; }
  body.bf-nav-open .menu-toggle::before,
  body.bf-nav-open .menu-toggle::after {
    content: ""; position: absolute; top: 50%; left: 50%;
    width: 24px; height: 2px; background: var(--color-ink);
    border-radius: 1px; pointer-events: none;
  }
  body.bf-nav-open .menu-toggle::before { transform: translate(-50%, -50%) rotate(45deg); }
  body.bf-nav-open .menu-toggle::after  { transform: translate(-50%, -50%) rotate(-45deg); }
}
/* ============ /MOBILE-DRAWER-FIX-V7 ============ */


/* ============ DESIGN-POLISH-V1 (平面感改善: 和紙微質感+ember境界点+カードelevation+空節微トーン / AD準拠:無彩主体・emberは点線のみ面塗禁・基調paper/ink/moss維持・主CTA=moss据置) ============ */
body.home::after{content:"";position:fixed;inset:0;z-index:3;pointer-events:none;opacity:.032;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='bfn'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='150' height='150' filter='url(%23bfn)'/%3E%3C/svg%3E");}
body.home>section{position:relative;}
body.home>section+section{border-top:1px solid var(--color-line);}
body.home>section+section::before{content:"";position:absolute;top:-4px;left:50%;width:6px;height:6px;background:var(--color-ember);transform:translateX(-50%) rotate(45deg);z-index:2;}
.tour-card{background:var(--color-paper);box-shadow:0 6px 22px rgba(26,31,26,.06),0 1px 2px rgba(26,31,26,.04);transition:box-shadow .35s ease,transform .35s ease;}
.tour-card:hover{box-shadow:0 16px 36px rgba(26,31,26,.11);transform:translateY(-3px);}
.tour-card .tour-image{box-shadow:inset 0 0 0 1px rgba(26,31,26,.05);}
/* ============ /DESIGN-POLISH-V1 ============ */


/* ============ DESIGN-POLISH-V2 (アグレッシブ強化:質感UP・eyebrow真ember主張・titleマーク骨太・境界一閃・カード深elevation+emberホバー躍動 / AD死守:無彩地+ember点線のみ面塗禁・主CTA=moss・実写真) ============ */
body.home::after{opacity:.055;}
body.home .section-eyebrow{font-size:18px;font-weight:600;letter-spacing:.34em;color:var(--color-ember)!important;display:flex;align-items:center;justify-content:center;gap:18px;}
body.home .section-eyebrow::before,body.home .section-eyebrow::after{content:"";width:34px;height:2px;background:var(--color-ember);display:inline-block;flex:0 0 auto;}
.section-title{position:relative;}
.section-title::after{width:72px!important;height:3px!important;}
.section-title::before{content:"";position:absolute;left:50%;bottom:-22px;width:7px;height:7px;background:var(--color-ember);transform:translateX(-50%) rotate(45deg);}
body.home>section+section::before{width:9px!important;height:9px!important;top:-5px!important;}
body.home>section+section::after{content:"";position:absolute;top:0;left:50%;width:64px;height:1px;background:linear-gradient(90deg,rgba(184,66,31,0),var(--color-ember) 50%,rgba(184,66,31,0));transform:translateX(-50%);z-index:2;}
.tour-card{position:relative;box-shadow:0 10px 30px rgba(26,31,26,.09),0 2px 6px rgba(26,31,26,.05)!important;}
.tour-card:hover{box-shadow:0 22px 48px rgba(26,31,26,.15)!important;transform:translateY(-5px)!important;}
.tour-card::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--color-ember);transform:scaleX(0);transform-origin:left;transition:transform .4s ease;}
.tour-card:hover::after{transform:scaleX(1);}
.tour-card:hover .tour-link{color:var(--color-ember);}
/* ============ /DESIGN-POLISH-V2 ============ */

/* ============ LONG-DETAILS-V1 ============ */
/* tour post.content 内に直書きされた <details class="tour-details"> 用(現状: longtouring/18・Phase 5-H でご来光便にも横展開予定) */
.entry-content .tour-details{margin:48px 0;border:1px solid var(--color-line);background:rgba(0,0,0,.02);}
.entry-content .tour-details>summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:20px 28px;font-family:var(--font-jp);font-size:16px;letter-spacing:.08em;color:var(--color-ink);list-style:none;user-select:none;transition:background .25s ease,color .25s ease;}
.entry-content .tour-details>summary::-webkit-details-marker{display:none;}
.entry-content .tour-details>summary::after{content:"＋";font-family:var(--font-en);font-size:18px;color:var(--color-ember);transition:transform .25s ease;}
.entry-content .tour-details[open]>summary::after{content:"−";}
.entry-content .tour-details>summary:hover{background:rgba(184,66,31,.04);color:var(--color-ember);}
.entry-content .tour-details>summary:focus-visible{outline:2px solid var(--color-ember);outline-offset:-2px;}
.entry-content .tour-details .tour-details-body{padding:8px 28px 28px;font-size:14.5px;line-height:1.9;}
.entry-content .tour-details .tour-details-heading{font-family:var(--font-jp);font-size:13px;letter-spacing:.16em;color:var(--color-ink-soft);margin:24px 0 8px;padding-bottom:6px;border-bottom:1px dashed var(--color-line);}
.entry-content .tour-details .tour-details-body ul{list-style:none;margin:0 0 12px;padding:0;}
.entry-content .tour-details .tour-details-body ul li{padding:4px 0 4px 18px;position:relative;}
.entry-content .tour-details .tour-details-body ul li::before{content:"";position:absolute;left:0;top:13px;width:6px;height:6px;background:var(--color-ember);transform:rotate(45deg);}
.entry-content .tour-details .tour-details-body p{margin:0 0 12px;}
.entry-content .tour-details .tour-details-body .tour-details-note{font-size:13px;color:var(--color-ink-soft);padding:10px 14px;background:rgba(0,0,0,.025);border-left:2px solid var(--color-line);margin-top:8px;}
@media (max-width:768px){.entry-content .tour-details>summary{padding:16px 20px;font-size:15px;}.entry-content .tour-details .tour-details-body{padding:8px 20px 24px;}}
/* ============ /LONG-DETAILS-V1 ============ */


/* ============ TOUR-GUIDE-DESIGN-V2 (body.page-id-118 限定スコープ・本文HTML不変・AD準拠=明朝/ember線点のみ面塗禁・A:H2 中央寄せ+小ラベル+ember バー B:H3 ember 縦線 C:ul/li 菱形+hover D:末尾ul=4ボタンCTAパネル化) ============ */
/* リード文の整形(Find Your Tour eyebrow + 説明文 中央寄せ) */
body.page-id-118 .entry-content > p.wp-block-paragraph:first-child{text-align:center;font-family:var(--font-en);font-size:13px;letter-spacing:.3em;color:var(--color-ember);font-style:italic;margin:0 0 8px;}
body.page-id-118 .entry-content > p.wp-block-paragraph:nth-child(2){text-align:center;font-size:15px;color:var(--color-ink-soft);margin:0 0 64px;}

/* A. H2 中央寄せ + 短線+菱形+英語フレーム(::after・single-tour.php と同統一) */
body.page-id-118 .entry-content h2.wp-block-heading{text-align:center;font-family:var(--font-jp);font-size:28px;font-weight:500;color:var(--color-ink);margin:96px 0 56px;position:relative;}
body.page-id-118 .entry-content h2.wp-block-heading::before{content:none;}
/* ::after = 短線(60px)+菱形◆+英語名(個別ツアーページの H1 装飾と同パターン) */
body.page-id-118 .entry-content h2.wp-block-heading::after{content:"";display:block;margin:20px auto 0;width:160px;height:44px;background-repeat:no-repeat;background-position:center;background-size:contain;}
body.page-id-118 .entry-content h2.wp-block-heading:nth-of-type(1)::after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 44'><line x1='50' y1='8' x2='110' y2='8' stroke='%23b8421f' stroke-width='2' stroke-linecap='round'/><path d='M 80 14 l 4 4 l -4 4 l -4 -4 z' fill='%23b8421f'/><text x='80' y='38' text-anchor='middle' font-family='Cormorant Garamond, Georgia, serif' font-size='13' font-style='italic' fill='%23888888'>Scene</text></svg>");}
body.page-id-118 .entry-content h2.wp-block-heading:nth-of-type(2)::after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 44'><line x1='50' y1='8' x2='110' y2='8' stroke='%23b8421f' stroke-width='2' stroke-linecap='round'/><path d='M 80 14 l 4 4 l -4 4 l -4 -4 z' fill='%23b8421f'/><text x='80' y='38' text-anchor='middle' font-family='Cormorant Garamond, Georgia, serif' font-size='13' font-style='italic' fill='%23888888'>With Whom</text></svg>");}
body.page-id-118 .entry-content h2.wp-block-heading:nth-of-type(3)::after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 44'><line x1='50' y1='8' x2='110' y2='8' stroke='%23b8421f' stroke-width='2' stroke-linecap='round'/><path d='M 80 14 l 4 4 l -4 4 l -4 -4 z' fill='%23b8421f'/><text x='80' y='38' text-anchor='middle' font-family='Cormorant Garamond, Georgia, serif' font-size='13' font-style='italic' fill='%23888888'>Deal</text></svg>");}
body.page-id-118 .entry-content h2.wp-block-heading:nth-of-type(4)::after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 44'><line x1='50' y1='8' x2='110' y2='8' stroke='%23b8421f' stroke-width='2' stroke-linecap='round'/><path d='M 80 14 l 4 4 l -4 4 l -4 -4 z' fill='%23b8421f'/><text x='80' y='38' text-anchor='middle' font-family='Cormorant Garamond, Georgia, serif' font-size='13' font-style='italic' fill='%23888888'>First-Timer</text></svg>");}
body.page-id-118 .entry-content h2.wp-block-heading:nth-of-type(5)::after{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 44'><line x1='50' y1='8' x2='110' y2='8' stroke='%23b8421f' stroke-width='2' stroke-linecap='round'/><path d='M 80 14 l 4 4 l -4 4 l -4 -4 z' fill='%23b8421f'/><text x='80' y='38' text-anchor='middle' font-family='Cormorant Garamond, Georgia, serif' font-size='13' font-style='italic' fill='%23888888'>Contact</text></svg>");}

/* B. H3 中央寄せのみ(パドル撤去・装飾は H2 のフレームに集約) */
body.page-id-118 .entry-content h3.wp-block-heading{padding:16px 0 8px;margin:40px auto 14px;font-family:var(--font-jp);font-size:17px;font-weight:600;color:var(--color-ink);letter-spacing:.02em;text-align:center;}
body.page-id-118 .entry-content h3.wp-block-heading::before,
body.page-id-118 .entry-content h3.wp-block-heading::after{content:none;}
/* H3 直後の p(説明文): 中央寄せ・インデント撤去 */
body.page-id-118 .entry-content h3.wp-block-heading + p.wp-block-paragraph{padding-left:0;text-align:center;color:var(--color-ink-soft);font-size:14.5px;margin:0 auto 12px;max-width:680px;}
/* H2 直後の p(「お得に選ぶ」「ご予約・お問い合わせ」配下の段落)も中央 */
body.page-id-118 .entry-content h2.wp-block-heading + p.wp-block-paragraph{text-align:center;max-width:680px;margin-left:auto;margin-right:auto;}

/* C. ul/li 菱形 bullet + 余白で柔らかく(箇条書き感を緩和=dashed区切り撤去) + hover ember 淡背景 (中央配置 max-width:560px) */
body.page-id-118 .entry-content ul.wp-block-list{list-style:none;margin:12px auto 28px;padding:0;max-width:560px;}
body.page-id-118 .entry-content ul.wp-block-list li{position:relative;padding:8px 14px 8px 30px;transition:background .2s ease;line-height:1.8;}
body.page-id-118 .entry-content ul.wp-block-list li::before{content:"";position:absolute;left:10px;top:19px;width:6px;height:6px;background:var(--color-ember);transform:rotate(45deg);}
body.page-id-118 .entry-content ul.wp-block-list li:hover{background:rgba(184,66,31,.04);}
/* ツアー名(リンク)強調・hover で ember */
body.page-id-118 .entry-content ul.wp-block-list li a{font-weight:500;color:var(--color-ink);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s,color .2s;}
body.page-id-118 .entry-content ul.wp-block-list li a:hover{color:var(--color-ember);border-bottom-color:var(--color-ember);}

/* D. 末尾 ul(ご予約・お問い合わせ直下の4リンク)= ボタングリッドパネル化(max-width 解除) */
body.page-id-118 .entry-content > ul.wp-block-list:last-child{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:40px 0 24px;padding:32px;background:rgba(184,66,31,.04);border:1px solid var(--color-line);max-width:none;}
body.page-id-118 .entry-content > ul.wp-block-list:last-child li{padding:0;border-bottom:none;text-align:center;transition:none;}
body.page-id-118 .entry-content > ul.wp-block-list:last-child li:hover{background:transparent;}
body.page-id-118 .entry-content > ul.wp-block-list:last-child li::before{display:none;}
body.page-id-118 .entry-content > ul.wp-block-list:last-child li a{display:block;padding:14px 18px;background:var(--color-paper);border:1px solid var(--color-ember);color:var(--color-ember);font-family:var(--font-jp);font-size:14px;letter-spacing:.06em;transition:background .25s,color .25s;}
body.page-id-118 .entry-content > ul.wp-block-list:last-child li a:hover{background:var(--color-ember);color:var(--color-paper);border-bottom-color:var(--color-ember);}

/* モバイル微調整 */
@media (max-width:768px){
  body.page-id-118 .entry-content h2.wp-block-heading{font-size:22px;margin:64px 0 36px;padding-top:42px;}
  body.page-id-118 .entry-content h2.wp-block-heading::before{font-size:10px;letter-spacing:.25em;}
  body.page-id-118 .entry-content h2.wp-block-heading::after{width:56px;height:2px;margin:14px auto 0;}
  body.page-id-118 .entry-content h3.wp-block-heading{font-size:16px;}
  body.page-id-118 .entry-content > ul.wp-block-list:last-child{padding:20px;gap:10px;}
}
/* ============ /TOUR-GUIDE-DESIGN-V2 ============ */


/* ===== TOUR-CAROUSEL-MOBILE-V1 ===== */
/* モバイル時のツアーカルーセル化(横スワイプ+ドット)+ カード立体感強化 + 詳しく見るボタン化 + 子供料金行
   - スコープ: .tour-grid(メインツアー)と .special-grid(特別プラン)の両方
   - PC は現状の grid 維持(影響なし) */

/* 横スクロール漏れ対策(iOS Safari でカルーセル慣性が body に伝播する罠) */
html, body { overscroll-behavior-x: none; }

/* カード立体感強化(全箇所共通=ホーム/single/archive) */
.tour-card {
  border-radius: 3px;
  box-shadow:
    0 0 0 1px rgba(26, 31, 26, 0.04),
    0 1px 2px rgba(26, 31, 26, 0.04),
    0 4px 8px rgba(26, 31, 26, 0.06),
    0 12px 24px rgba(26, 31, 26, 0.09),
    0 24px 48px rgba(26, 31, 26, 0.10),
    0 48px 80px rgba(26, 31, 26, 0.06) !important;
}
.tour-card:hover {
  transform: translateY(-8px) !important;
  box-shadow:
    0 0 0 1px rgba(26, 31, 26, 0.06),
    0 2px 4px rgba(26, 31, 26, 0.06),
    0 8px 16px rgba(26, 31, 26, 0.10),
    0 24px 48px rgba(26, 31, 26, 0.13),
    0 48px 80px rgba(26, 31, 26, 0.12),
    0 80px 120px rgba(26, 31, 26, 0.08) !important;
}
.tour-image { position: relative; }
.tour-image::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 35%;
  background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.07) 100%);
  pointer-events: none;
}

/* tour-foot:価格(左)+ボタン(右)の同一行配置 */
.tour-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 4px;
}
.tour-foot .tour-price { margin-bottom: 0; flex: 1 1 auto; }
.tour-price .price-child {
  display: block;
  font-size: 16px;
  color: var(--color-ink-soft);
  margin-top: 4px;
}

/* 詳しく見るボタン(ピル型・moss グラデ・立体感) */
.tour-link-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 20px;
  background: linear-gradient(to bottom, #284c39 0%, var(--color-indigo) 50%, #1a3324 100%);
  color: var(--color-paper);
  font-size: 12px;
  letter-spacing: 0.12em;
  border-radius: 999px;
  text-decoration: none;
  white-space: nowrap;
  font-family: var(--font-jp);
  flex-shrink: 0;
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), background 0.3s var(--ease);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.18),
    inset 0 -1px 0 rgba(0, 0, 0, 0.18),
    0 1px 2px rgba(31, 58, 43, 0.18),
    0 4px 10px rgba(31, 58, 43, 0.22),
    0 8px 20px rgba(31, 58, 43, 0.15);
  -webkit-tap-highlight-color: transparent;
}
.tour-link-btn::after {
  content: " ›";
  margin-left: 4px;
  font-size: 14px;
}
.tour-link-btn:hover, .tour-link-btn:focus-visible {
  background: linear-gradient(to bottom, #c4502d 0%, var(--color-ember) 50%, #9a3618 100%);
  transform: translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    inset 0 -1px 0 rgba(0, 0, 0, 0.22),
    0 2px 4px rgba(184, 66, 31, 0.22),
    0 8px 16px rgba(184, 66, 31, 0.28),
    0 14px 30px rgba(184, 66, 31, 0.18);
}
.tour-link-btn:active {
  transform: translateY(0);
  box-shadow:
    inset 0 1px 2px rgba(0, 0, 0, 0.20),
    0 1px 2px rgba(31, 58, 43, 0.10);
}

/* モバイル時カルーセル(両グリッド共通) */
@media (max-width: 768px) {
  /* セクション境界で横スクロールを閉じ込める(body へ伝播させない) */
  .tours { overflow-x: hidden; }

  /* container padding を打ち消して画面端まで scroll エリアに */
  .tours .container > .tour-grid,
  .tours .special-tours > .special-grid {
    display: flex;
    grid-template-columns: none;
    gap: 12px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-padding-left: 24px;
    padding: 8px 24px 20px;
    margin-left: -24px;
    margin-right: -24px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    /* 2026-05-27: 横スクロールも縦スクロールも両方許可(pan-x のみだと
       縦スワイプがブラウザ縦スクロールに伝播せず「ツアーカード上で下に
       スクロールできない」症状になる)。横方向の慣性 body 伝播抑止は
       overscroll-behavior-x: contain が担当(役割分離)。 */
    touch-action: pan-x pan-y;
    overscroll-behavior-x: contain;
  }
  .tours .container > .tour-grid::-webkit-scrollbar,
  .tours .special-tours > .special-grid::-webkit-scrollbar { display: none; }
  .tours .tour-card {
    flex: 0 0 92%;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }
  /* 写真をモバイル時のみ横長(高さ圧縮) */
  .tours .tour-card .tour-image { aspect-ratio: 5 / 4; }
  .tours .tour-card .tour-body { padding: 18px 18px 22px; }
  .tours .tour-card .tour-time { font-size: 12px; margin-bottom: 10px; }
  .tours .tour-card .tour-name { font-size: 20px; margin-bottom: 12px; }
  .tours .tour-card .tour-en { font-size: 12px; margin-top: 4px; }
  .tours .tour-card .tour-desc {
    font-size: 13px;
    line-height: 1.8;
    margin-bottom: 14px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .tours .tour-card .tour-price { font-size: 20px; }
  .tours .tour-card .tour-price .price-child { font-size: 14px; margin-top: 2px; }
  .tours .tour-card .tour-link-btn { padding: 11px 16px; font-size: 11px; letter-spacing: 0.1em; }

  /* ドットインジケータ */
  .tours .carousel-dots {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 20px;
  }
  .tours .carousel-dots button {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: none;
    padding: 0;
    background: rgba(26,31,26,.2);
    cursor: pointer;
    transition: background 0.3s var(--ease), transform 0.3s var(--ease);
    -webkit-tap-highlight-color: transparent;
  }
  .tours .carousel-dots button.is-active {
    background: var(--color-ember);
    transform: scale(1.3);
  }
  /* スワイプヒント(常時うっすら表示) */
  .tours .swipe-hint {
    text-align: center;
    font-size: 11px;
    letter-spacing: 0.2em;
    color: var(--color-stone);
    margin-top: 12px;
    opacity: 0.55;
    font-family: var(--font-en);
  }
  .tours .swipe-hint::before { content: "← "; color: var(--color-ember); }
  .tours .swipe-hint::after { content: " →"; color: var(--color-ember); }
}

/* PC ではドット/ヒント非表示 */
@media (min-width: 769px) {
  .tours .carousel-dots,
  .tours .swipe-hint { display: none; }
}
/* ===== /TOUR-CAROUSEL-MOBILE-V1 ===== */

/* ===== ABOUT-US-V2 ===== */
/* 全縦書き 3 項目の箇条書き。番号なし、見出しの肩に ember 短縦線アクセント。
   見出し(太・墨)+ 本文(細・薄墨)を1組とし、右→左に3列並べる(bajautrip 編集風)。
   モバイル(≤768px)は横書きフォールバック・1 列縦積み・項目間に薄線。 */
.about-us {
  padding: 96px 0;
  background: var(--color-paper);
  position: relative;
}
.about-us .section-eyebrow {
  text-align: center;
  margin-bottom: 72px;
}
.about-points-v {
  display: flex;
  flex-direction: row-reverse;
  justify-content: center;
  align-items: flex-start;
  gap: 72px;
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 32px;
}
.about-point-v {
  display: flex;
  flex-direction: row-reverse; /* 見出しが右(読み始め)、本文が左へ */
  align-items: flex-start;
  gap: 24px;
  position: relative;
  padding-top: 36px;
}
/* 見出し上のember 短縦線(項目アクセント・番号代替) */
.about-point-v::before {
  content: '';
  position: absolute;
  top: 0;
  right: 8px;
  width: 1px;
  height: 22px;
  background: var(--color-ember);
  opacity: 0.85;
}
.about-point-v__title {
  writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  font-family: var(--font-jp);
  font-weight: 600;
  font-size: 18px;
  letter-spacing: 0.2em;
  color: var(--color-ink);
  margin: 0;
  padding: 0 2px;
  text-orientation: mixed;
}
.about-point-v__body {
  writing-mode: vertical-rl;
  -ms-writing-mode: tb-rl;
  font-family: var(--font-jp);
  font-size: 14px;
  line-height: 2.4;
  letter-spacing: 0.14em;
  color: var(--color-ink-soft);
  margin: 0;
  padding: 0 2px;
  max-height: 460px;
  text-orientation: mixed;
}
/* タブレット: gap・本文高さを少し詰める */
@media (max-width: 1024px) {
  .about-points-v {
    gap: 44px;
    padding: 0 24px;
  }
  .about-point-v { gap: 18px; }
  .about-point-v__body { max-height: 400px; font-size: 13px; }
}
/* モバイル: 全横書きフォールバック・1列縦積み・項目区切り薄線 */
@media (max-width: 768px) {
  .about-us { padding: 64px 0; }
  .about-us .section-eyebrow { margin-bottom: 44px; }
  .about-points-v {
    flex-direction: column;
    gap: 28px;
    padding: 0 28px;
    max-width: 520px;
  }
  .about-point-v {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    padding-top: 22px;
    border-top: 1px solid var(--color-line);
  }
  .about-point-v::before {
    right: auto;
    top: -1px;
    left: 0;
    width: 32px;
    height: 2px;
    opacity: 1;
  }
  .about-point-v__title {
    writing-mode: horizontal-tb;
    -ms-writing-mode: lr-tb;
    font-size: 17px;
    letter-spacing: 0.06em;
  }
  .about-point-v__body {
    writing-mode: horizontal-tb;
    -ms-writing-mode: lr-tb;
    font-size: 14px;
    line-height: 1.95;
    letter-spacing: 0.02em;
    max-height: none;
  }
}
/* ===== /ABOUT-US-V2 ===== */

/* ===== SPECIAL-GRID-3COL-V1 ===== */
/* Phase 5-H で特別プランがロング・プライベート・一周の 3 カード体制になったため
   PC レイアウトを 2列→3列へ拡張。タブレット/SP は既存カルーセルで動作。
   ※ functions.php で style.css が二重 enqueue されている関係で
   裸の `.special-grid` だと後発 base rule に上書きされる → specificity を上げる。 */
@media (min-width: 1025px) {
  .tours .special-tours .special-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
  }
}
/* ===== /SPECIAL-GRID-3COL-V1 ===== */

/* ===== HERO-MOBILE-OVERLAY-V1 ===== */
/* root の style.css(get_stylesheet_uri 経由で二重 enqueue されている 1494 行の旧 CSS)
   の L1021- 周辺に .hero-image を relative/aspect-ratio:4/3 にする旧 stacked-layout が残っており、
   assets/style.css 側で消しても効かない → specificity を 0,2,0 に上げて PC 同様のオーバーレイに統一する。
   ※ 将来 root style.css を WP テーマヘッダーコメントのみに整理して enqueue 削除した時点で本 block も撤去可。 */
@media (max-width: 768px) {
  /* hero を flex 化して content が height:100% を確実に取れるようにする
     (root style.css の旧 stacked-layout が .hero-content { height: auto } を残しているのを specificity で上書き) */
  .hero.hero { display: flex; flex-direction: column; height: 90vh; min-height: 560px; }
  .hero .hero-content { flex: 1; min-height: 0; }
  .hero .hero-image {
    position: absolute;
    inset: 0;
    width: auto;
    aspect-ratio: auto;
    background-image: url('./images/hero-mobile.jpg'); /* スマホ縦長クロップ済(2026-05-27 Phase 5-H 追加) */
    background-position: center;
    background-color: #2a3a40;
  }
  .hero .hero-overlay {
    display: block;
    /* 写真エッジを柔らかく:中央は透過で主役見せ、周囲(radial)と上下端(linear)を暗化してフェード */
    background:
      radial-gradient(ellipse 95% 90% at center, rgba(0,0,0,0) 38%, rgba(0,0,0,0.22) 72%, rgba(0,0,0,0.50) 100%),
      linear-gradient(180deg, rgba(0,0,0,0.28) 0%, rgba(0,0,0,0) 14%, rgba(0,0,0,0) 82%, rgba(0,0,0,0.45) 100%);
  }
  .hero .hero-content {
    position: relative;
    color: var(--color-paper);
    /* タイトル+サブ=上部にまとまり、CTA=margin-top:auto で写真下端 */
    padding: 96px 24px 28px; /* 上は header(70px) + α、下は写真下端の余白 */
    justify-content: flex-start;
  }
  .hero .hero-eyebrow {
    color: var(--color-paper);
    margin-bottom: 14px;
    font-size: 12px;
    letter-spacing: 0.24em;
    text-shadow: 0 1px 8px rgba(0,0,0,0.55);
  }
  .hero .hero-title {
    color: var(--color-paper);
    margin-bottom: 24px; /* lead までの間隔(タイトル直下にサブを配置) */
    font-size: clamp(34px, 9.5vw, 48px);
    line-height: 1.3;
    text-shadow: 0 2px 14px rgba(0,0,0,0.6);
  }
  .hero .hero-lead {
    color: var(--color-paper);
    margin-top: 0;       /* title 直下 */
    margin-bottom: 0;
    font-size: 14px;
    line-height: 2.0;
    text-shadow: 0 1px 10px rgba(0,0,0,0.55);
  }
  .hero .hero-cta {
    margin-top: auto; /* CTA を画面下端(写真下端)に push */
  }
  .hero .btn-ghost {
    color: var(--color-paper);
    border-color: var(--color-paper);
    background: rgba(0, 0, 0, 0.32); /* 透過で写真背景に消えないようにわずかに暗く */
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
  }
  .hero .btn-ghost:hover {
    background: rgba(255, 255, 255, 0.92);
    color: var(--color-ink);
  }
}
/* ===== /HERO-MOBILE-OVERLAY-V1 ===== */

/* ===== TOUR-PAGE-RENEWAL-V1 =====
   スコープ: body.single-tour
   構成: ヒーロー横並び(PC) / 画像先(SP)、絵文字ピン集合場所、
         itinerary/included・bring/notes を <details open> で常時展開アコーディオン化。
         配色は既存トークン(paper/ink/ember/indigo)継続。
   関連: single-tour.php 内 .tr-hero / .tr-sections / .tr-section / .tr-itinerary / .tr-incbring / .tr-notes
*/
body.single-tour .tr-hero { padding: 48px 0 0; }
/* grid 2列 × 2行: 左[画像→訴求文]、右[情報パネル(2行 span)] */
body.single-tour .tr-hero__inner {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  grid-template-rows: auto auto;
  gap: 0 48px;
  align-items: start;
}
body.single-tour .tr-hero__image {
  grid-column: 1; grid-row: 1;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--color-line);
}
body.single-tour .tr-hero__image img { width: 100%; height: 100%; object-fit: cover; display: block; }
body.single-tour .tr-hero__info {
  grid-column: 2; grid-row: 1 / span 2;
  padding: 8px 0;
}
body.single-tour .tr-hero__lead {
  grid-column: 1; grid-row: 2;
  margin: 8px 0 0;  /* 画像直下に貼り付ける "ぎりぎり" */
}

body.single-tour .tr-hero__eyebrow {
  font-family: var(--font-en);
  font-size: 12px;
  letter-spacing: 0.2em;
  color: var(--color-ember);
  text-transform: uppercase;
  font-style: italic;
  margin-bottom: 14px;
}
body.single-tour .tr-hero__title {
  font-family: var(--font-jp);
  font-size: 38px;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.3;
  margin: 0;
  color: var(--color-ink);
}
body.single-tour .tr-hero__title ruby rt {
  font-size: 0.38em;
  font-weight: 400;
  letter-spacing: 0.1em;
  color: var(--color-ink-soft);
  font-family: var(--font-jp);
}
body.single-tour .tr-hero__sub {
  font-family: var(--font-en);
  font-style: italic;
  font-size: 18px;
  color: var(--color-ink-soft);
  margin-top: 10px;
  letter-spacing: 0.06em;
}

body.single-tour .tr-hero__divider { height: 1px; background: var(--color-line); margin: 28px 0; }

body.single-tour .tr-hero__price {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 6px 0;
}
body.single-tour .tr-hero__price-label {
  font-family: var(--font-jp);
  font-size: 13px;
  color: var(--color-ink-soft);
  letter-spacing: 0.1em;
}
body.single-tour .tr-hero__price-value {
  font-family: var(--font-en);
  font-size: 26px;
  font-weight: 500;
  color: var(--color-ink);
  letter-spacing: 0.02em;
}
body.single-tour .tr-hero__price-value small {
  font-size: 11px;
  color: var(--color-ink-soft);
  font-weight: 400;
  margin-left: 4px;
  font-family: var(--font-jp);
}
body.single-tour .tr-hero__price-value--sub { font-size: 20px; }
body.single-tour .tr-hero__price-strike {
  font-size: 14px;
  color: var(--color-ink-soft);
  font-weight: 400;
  text-decoration: line-through;
}
body.single-tour .tr-hero__price-note {
  font-family: var(--font-jp);
  font-size: 11px;
  color: var(--color-ink-soft);
  line-height: 1.7;
  padding: 10px 14px;
  background: rgba(0,0,0,0.025);
  margin-top: 14px;
  border-radius: 2px;
}
body.single-tour .tr-hero__price-note strong { color: var(--color-ink); font-weight: 600; }

body.single-tour .tr-hero__meta {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 0;
}
body.single-tour .tr-hero__meta-icon { color: var(--color-ember); font-size: 14px; line-height: 1; }
body.single-tour .tr-hero__meta-text {
  font-family: var(--font-jp);
  font-size: 14px;
  color: var(--color-ink);
}

body.single-tour .tr-hero__ctas {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 24px;
}
body.single-tour .btn-tr-primary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-family: var(--font-jp);
  font-size: 15px;
  font-weight: 500;
  color: #fff;
  background: var(--color-indigo);
  text-decoration: none;
  padding: 16px 24px;
  letter-spacing: 0.08em;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
  border: 1px solid var(--color-indigo);
  cursor: pointer;
}
body.single-tour .btn-tr-primary:hover {
  background: transparent;
  color: var(--color-indigo);
}
body.single-tour .btn-tr-primary__caret { font-family: var(--font-en); font-size: 13px; }
body.single-tour .btn-tr-secondary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-family: var(--font-en);
  font-size: 18px;
  color: var(--color-ink);
  background: transparent;
  text-decoration: none;
  padding: 14px 24px;
  letter-spacing: 0.04em;
  border: 1px solid var(--color-line);
  transition: border-color 0.2s, color 0.2s;
}
body.single-tour .btn-tr-secondary:hover {
  border-color: var(--color-ember);
  color: var(--color-ember);
}
body.single-tour .btn-tr-secondary .tel-jp {
  font-family: var(--font-jp);
  font-size: 14px;
  color: var(--color-ink-soft);
  margin-right: 4px;
}

/* Entry content (訴求文)
   .tr-hero__lead として grid 内に配置(PCでは画像直下) */
body.single-tour .tr-entry-content {
  font-family: var(--font-jp);
  line-height: 1.9;
}
body.single-tour .tr-entry-content p { margin: 0 0 1.8em; }
body.single-tour .tr-entry-content p:last-child { margin-bottom: 0; }

/* Sections (accordion) */
body.single-tour .tr-sections { margin: 64px 0 0; border-top: 1px solid var(--color-line); }
body.single-tour .tr-section { border-bottom: 1px solid var(--color-line); }
body.single-tour .tr-section__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 12px;
  cursor: pointer;
  list-style: none;
  user-select: none;
  transition: background 0.2s, padding-left 0.2s;
}
body.single-tour .tr-section__summary::-webkit-details-marker { display: none; }
body.single-tour .tr-section__summary:hover {
  background: rgba(31,58,43,0.03);
}
body.single-tour .tr-section__summary:hover .tr-section__caret,
body.single-tour .tr-section__summary:focus-visible .tr-section__caret {
  color: var(--color-ember);
}
body.single-tour .tr-section__summary:focus-visible {
  outline: 1px solid var(--color-ember);
  outline-offset: -1px;
}
body.single-tour .tr-section__title {
  font-family: var(--font-jp);
  font-size: 18px;
  font-weight: 500;
  color: var(--color-ink);
  letter-spacing: 0.05em;
  display: flex;
  align-items: baseline;
  gap: 14px;
  flex-wrap: wrap;
}
body.single-tour .tr-section__title-en {
  font-family: var(--font-en);
  font-size: 11px;
  color: var(--color-ember);
  letter-spacing: 0.18em;
  font-style: italic;
  text-transform: uppercase;
}
body.single-tour .tr-section__caret {
  font-family: var(--font-en);
  font-size: 18px;
  color: var(--color-ink);
  transition: transform 0.3s, color 0.3s;
  flex-shrink: 0;
}
body.single-tour .tr-section[open] .tr-section__caret {
  transform: rotate(180deg);
  color: var(--color-ember);
}
body.single-tour .tr-section__content { padding: 0 0 32px; }

/* Itinerary list */
body.single-tour .tr-itinerary { list-style: none; padding: 0; margin: 0; }
body.single-tour .tr-itinerary li {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 20px;
  padding: 18px 0;
  border-bottom: 1px solid var(--color-line);
}
body.single-tour .tr-itinerary li:last-child { border-bottom: none; }
body.single-tour .tr-itinerary__time {
  font-family: var(--font-en);
  font-size: 18px;
  color: var(--color-indigo);
  letter-spacing: 0.02em;
}
body.single-tour .tr-itinerary__title {
  font-family: var(--font-jp);
  font-weight: 600;
  margin-bottom: 4px;
  color: var(--color-ink);
}
body.single-tour .tr-itinerary__desc {
  font-family: var(--font-jp);
  font-size: 14px;
  color: var(--color-ink-soft);
  line-height: 1.8;
}

/* Included/Bring grid */
body.single-tour .tr-incbring {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
body.single-tour .tr-incbring__col {
  padding: 24px;
  background: var(--color-paper-soft, rgba(255,255,255,0.5));
  border: 1px solid var(--color-line);
}
body.single-tour .tr-incbring__eyebrow {
  display: block;
  margin-bottom: 8px;
  text-align: left;
}
body.single-tour .tr-incbring__heading {
  font-family: var(--font-jp);
  font-size: 16px;
  font-weight: 500;
  margin: 0 0 14px;
  color: var(--color-ink);
}
body.single-tour .tr-incbring__list {
  list-style: none;
  padding: 0;
  margin: 0;
  font-family: var(--font-jp);
  line-height: 1.9;
  font-size: 14px;
}
body.single-tour .tr-incbring__list li { padding: 4px 0; }
body.single-tour .tr-incbring__list li::before {
  content: '●';
  color: var(--color-indigo);
  margin-right: 8px;
  font-size: 10px;
  vertical-align: middle;
}

/* Notes box */
body.single-tour .tr-notes {
  background: rgba(0,0,0,0.03);
  border-left: 3px solid var(--color-indigo);
  padding: 24px;
  font-family: var(--font-jp);
  line-height: 1.9;
  font-size: 14px;
  color: var(--color-ink-soft);
  white-space: pre-line;
}

/* Tablet / mobile */
@media (max-width: 1024px) {
  /* 1列に折りたたみ。grid-row/column 指定を解除して order で順序制御:画像→info→訴求文 */
  body.single-tour .tr-hero__inner {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    gap: 0;
  }
  body.single-tour .tr-hero__image {
    grid-column: auto; grid-row: auto;
    order: 0;
    aspect-ratio: 16 / 10;
    margin: 0 -32px;
  }
  body.single-tour .tr-hero__info {
    grid-column: auto; grid-row: auto;
    order: 1;
    padding: 28px 0 0;
  }
  body.single-tour .tr-hero__lead {
    grid-column: auto; grid-row: auto;
    order: 2;
    margin-top: 24px;
  }
}
@media (max-width: 768px) {
  body.single-tour .tr-hero { padding: 32px 0 0; }
  /* フルブリード幅をコンテナ padding(≤768=24px)に一致させ横はみ出しを防ぐ */
  body.single-tour .tr-hero__image { margin: 0 -24px; }
  body.single-tour .tr-hero__title { font-size: 30px; }
  body.single-tour .tr-hero__sub { font-size: 15px; }
  body.single-tour .tr-hero__price-value { font-size: 24px; }
  body.single-tour .tr-hero__price-value--sub { font-size: 18px; }
  /* モバイル "ぎりぎり" : 写真と紹介文の繋がり強化(ユーザー指示) */
  body.single-tour .tr-hero__lead { margin-top: 4px; }
  body.single-tour .tr-incbring { grid-template-columns: 1fr; }
  body.single-tour .tr-itinerary li {
    grid-template-columns: 64px 1fr;
    gap: 16px;
    padding: 14px 0;
  }
  body.single-tour .tr-itinerary__time { font-size: 16px; }
  body.single-tour .tr-section__summary { padding: 20px 0; }
  body.single-tour .tr-section__title { font-size: 16px; gap: 10px; }
  body.single-tour .tr-section__content { padding: 0 0 24px; }
}
@media (max-width: 480px) {
  /* コンテナ padding が 18px に縮むブレークポイント。
     フルブリード要素の負マージンを 18px へ揃え、横スクロール残りを 0 にする
     ※ .related-tour-grid の同種対応は RELATED-TOURS-CAROUSEL-V1 区画内
        (後方定義で source-order 勝ちのため、そちらに置かないと上書きできない) */
  body.single-tour .tr-hero__image { margin: 0 -18px; }
}
/* ===== /TOUR-PAGE-RENEWAL-V1 ===== */

/* ===== OFFICIAL-BENEFIT-V5 ===== */
/* V5議論結論: OFFICIAL BENEFIT を TOURS セクション内の通常↔特別 間に配置
   AD準拠 = paper地共通(背景なし)・1px枠線カード+gap(カード化・面塗禁)・ember差し色(軸ラベル+細線アクセント)・絵文字なし
   eyebrow「— Our Promise」のみ (special-tours と階層揃え) */
.official-benefit {
  margin: 72px 0 56px;
}
.official-benefit > .section-eyebrow {
  text-align: center;
  margin: 0 0 32px;
}
.official-benefit .benefit-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.official-benefit .benefit-item {
  padding: 40px 24px;
  border: 1px solid var(--color-line);
  text-align: center;
}
.official-benefit .benefit-label {
  font-family: var(--font-jp);
  font-size: 13px;
  letter-spacing: 0.18em;
  color: var(--color-ember);
  margin: 0 0 22px;
}
.official-benefit .benefit-label-en {
  font-family: 'Cormorant Garamond', serif;
  font-size: 13px;
  letter-spacing: 0.14em;
  margin-left: 2px;
  color: var(--color-ember);
}
.official-benefit .benefit-title {
  font-family: var(--font-jp);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: 0.05em;
  color: var(--color-ink);
  margin: 0 0 16px;
  position: relative;
}
.official-benefit .benefit-title::before {
  content: '';
  display: block;
  width: 32px;
  height: 1px;
  background: var(--color-ember);
  margin: 0 auto 16px;
}
.official-benefit .benefit-desc {
  font-family: var(--font-jp);
  font-size: 14px;
  line-height: 1.95;
  color: var(--color-ink-soft);
  margin: 0 auto;
  max-width: 280px;
}
@media (max-width: 768px) {
  .official-benefit {
    margin: 48px 0 40px;
  }
  .official-benefit > .section-eyebrow {
    margin: 0 0 24px;
  }
  .official-benefit .benefit-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .official-benefit .benefit-item {
    padding: 32px 20px;
  }
  .official-benefit .benefit-title {
    font-size: 17px;
  }
  .official-benefit .benefit-desc {
    max-width: 320px;
  }
}
/* ===== /OFFICIAL-BENEFIT-V5 ===== */

/* ===== RELATED-TOURS-CAROUSEL-V1 ===== */
/* 他のツアーを見る (single-tour.php):
   Mobile-First 設計: デフォルト=モバイル横カルーセル / PC は @media (min-width: 769px) で grid 化
   理由: PC-First (デフォルト grid + @media max-width:768px で flex 上書き) では Chrome 等の
        cascade 計算で display/gap/grid-template-columns だけが PC 値を保持する症状を確認。
        同 selector 同 specificity のはずなのに、overflow-x/touch-action 等の「PC で未定義」
        プロパティのみモバイル値が効くという部分適用の異常を実機検証 (iframe 390px) で確定。
        Mobile-First にすることで cascade 競合が論理的に存在しなくなり確実に動作する。
   スコープ: body.single-tour 内のみ */
body.single-tour .related-tours {
  margin: 64px 0 48px;
  padding-top: 40px;
  border-top: 1px solid var(--color-line);
}
body.single-tour .related-tours__eyebrow {
  text-align: center;
}
body.single-tour .related-tours__title {
  font-size: 24px;
  text-align: center;
  margin-bottom: 32px;
}
/* デフォルト = モバイル横カルーセル
   ※ display/gap/flex に !important: Chrome MCP iframe 検証で
     PC ルールが部分的に勝つ症状を観測したため確実性のため強制 */
body.single-tour .related-tour-grid {
  display: flex !important;
  overflow-x: auto !important;
  gap: 14px !important;
  padding: 0 20px 4px;
  margin-left: -20px;
  margin-right: -20px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-x pan-y;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
}
body.single-tour .related-tour-grid::-webkit-scrollbar {
  display: none;
}
body.single-tour .related-tour-card {
  flex: 0 0 72% !important;
  scroll-snap-align: start;
  min-width: 0;
  display: block;
  text-decoration: none;
  color: inherit;
  transition: transform 0.3s;
}
body.single-tour .related-tour-card:hover {
  transform: translateY(-2px);
}
body.single-tour .related-tour-card__img {
  aspect-ratio: 4/3;
  background: var(--color-line);
  overflow: hidden;
  margin-bottom: 14px;
}
body.single-tour .related-tour-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
body.single-tour .related-tour-card__time {
  font-family: var(--font-en);
  font-size: 11px;
  color: var(--color-ink-soft);
  letter-spacing: 0.12em;
  margin: 0 0 4px;
}
body.single-tour .related-tour-card__name {
  font-family: var(--font-jp);
  font-size: 16px;
  font-weight: 500;
  margin: 0;
  line-height: 1.5;
}
body.single-tour .related-tour-card__name rt {
  font-size: 0.5em;
  font-weight: 400;
}
body.single-tour .related-tours__swipe-hint {
  display: block;
  text-align: center;
  font-family: var(--font-en);
  font-size: 10px;
  letter-spacing: 0.3em;
  color: var(--color-ink-soft);
  margin: 16px 0 0;
}

/* PC (>=769px) = 通常の grid に切替・swipe hint 非表示
   ※ !important で同 specificity 内でも min-width 条件発火時に確実に勝つ */
@media (min-width: 769px) {
  body.single-tour .related-tours {
    margin: 96px 0 64px;
    padding-top: 56px;
  }
  body.single-tour .related-tours__title {
    font-size: 28px;
    margin-bottom: 56px;
  }
  body.single-tour .related-tour-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
    gap: 24px !important;
    overflow-x: visible !important;
    padding: 0;
    margin-left: 0;
    margin-right: 0;
    scroll-snap-type: none;
    touch-action: auto;
    overscroll-behavior-x: auto;
  }
  body.single-tour .related-tour-card {
    flex: initial !important;
    scroll-snap-align: none;
  }
  body.single-tour .related-tour-card__name {
    font-size: 17px;
  }
  body.single-tour .related-tours__swipe-hint {
    display: none;
  }
}
/* ≤480px: コンテナ padding が 18px に縮むので負マージン/padding も 18px へ揃え、
   2px の横はみ出し(横揺れ)を除去。base の -20px を source-order で上書き */
@media (max-width: 480px) {
  body.single-tour .related-tour-grid {
    padding: 0 18px 4px;
    margin-left: -18px;
    margin-right: -18px;
  }
}
/* ===== /RELATED-TOURS-CAROUSEL-V1 ===== */

/* ===== INFO-PAGE-V1 (Phase 5-E rev3) ===== */
/* /info/ ご利用案内ページ専用スタイル
   - body.page-id-XXX スコープで全体回帰なし(XXX はページ作成後の実 ID で置換)
   - 暫定として .info-page にもネストして安全側 */

.info-page {
  max-width: 880px;
  margin: 0 auto;
  padding: 0 24px;
  font-family: var(--font-jp);
  color: var(--color-ink);
  line-height: 1.95;
  letter-spacing: 0.02em;
}

/* ----- Lead ----- */
.info-page .info-lead {
  text-align: center;
  margin: 0 0 48px;
  padding: 32px 0 40px;
  border-bottom: 1px solid var(--color-line);
}
.info-page .info-lead__eyebrow {
  font-family: 'Cormorant Garamond', serif;
  font-size: 13px;
  letter-spacing: 0.22em;
  color: var(--color-ember);
  margin: 0 0 14px;
}
.info-page .info-lead__text {
  font-size: 15.5px;
  color: var(--color-ink-soft);
  max-width: 640px;
  margin: 0 auto;
  line-height: 2.0;
}

/* ----- TOC ----- */
.info-page .info-toc {
  margin: 0 0 56px;
  padding: 28px 32px;
  background: rgba(31, 58, 43, 0.03);
  border: 1px solid var(--color-line);
  border-radius: 4px;
}
.info-page .info-toc__eyebrow {
  font-family: 'Cormorant Garamond', serif;
  font-size: 12px;
  letter-spacing: 0.22em;
  color: var(--color-ember);
  margin: 0 0 14px;
}
.info-page .info-toc__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px 24px;
  counter-reset: info-toc;
}
.info-page .info-toc__list li {
  counter-increment: info-toc;
  font-size: 14.5px;
  padding: 4px 0;
}
.info-page .info-toc__list li::before {
  content: counter(info-toc, decimal-leading-zero);
  font-family: 'Cormorant Garamond', serif;
  font-size: 12px;
  color: var(--color-ember);
  margin-right: 10px;
  letter-spacing: 0.04em;
}
.info-page .info-toc__list a {
  color: var(--color-ink);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.15s ease, color 0.15s ease;
}
.info-page .info-toc__list a:hover {
  color: var(--color-ember);
  border-bottom-color: var(--color-ember);
}

@media (max-width: 768px) {
  .info-page .info-toc { padding: 22px 20px; }
  .info-page .info-toc__list { grid-template-columns: 1fr; gap: 4px; }
}

/* ----- Section (details/summary) ----- */
.info-page .info-section {
  margin: 0 0 14px;
  background: #fff;
  border: 1px solid var(--color-line);
  border-radius: 4px;
  overflow: hidden;
  scroll-margin-top: 96px; /* sticky header 分の余白 */
}
.info-page .info-section[open] {
  border-color: rgba(31, 58, 43, 0.25);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.03);
}
.info-page .info-section:target {
  border-color: var(--color-ember);
}

.info-page .info-section__summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 24px;
  font-family: var(--font-jp);
  position: relative;
  user-select: none;
  transition: background 0.15s ease;
}
.info-page .info-section__summary::-webkit-details-marker { display: none; }
.info-page .info-section__summary:hover {
  background: rgba(31, 58, 43, 0.025);
}
.info-page .info-section__summary:focus-visible {
  outline: 2px solid var(--color-ember);
  outline-offset: -2px;
}

.info-page .info-section__num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 13px;
  letter-spacing: 0.12em;
  color: var(--color-ember);
  flex-shrink: 0;
  min-width: 28px;
}
.info-page .info-section__title {
  flex: 1;
  font-size: 16.5px;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: var(--color-ink);
}
.info-page .info-section__title-en {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 400;
  font-size: 13px;
  letter-spacing: 0.16em;
  color: var(--color-ink-soft);
  margin-left: 10px;
}
.info-page .info-section__caret {
  font-size: 11px;
  color: var(--color-ink-soft);
  transition: transform 0.2s ease, color 0.15s ease;
  flex-shrink: 0;
}
.info-page .info-section[open] .info-section__caret {
  transform: rotate(180deg);
  color: var(--color-ember);
}

.info-page .info-section__content {
  padding: 8px 28px 32px;
  border-top: 1px solid var(--color-line);
  font-size: 14.5px;
  color: var(--color-ink);
}
.info-page .info-section__content p {
  margin: 12px 0;
  line-height: 1.95;
}
.info-page .info-section__note {
  margin: 20px 0 0;
  padding: 12px 16px;
  background: rgba(31, 58, 43, 0.04);
  font-size: 13px;
  color: var(--color-ink-soft);
  line-height: 1.85;
  border-left: 2px solid var(--color-line);
}

@media (max-width: 768px) {
  .info-page .info-section__summary { padding: 18px 18px; gap: 12px; }
  .info-page .info-section__num { font-size: 12px; min-width: 24px; }
  .info-page .info-section__title { font-size: 15px; }
  .info-page .info-section__title-en { display: none; }
  .info-page .info-section__content { padding: 8px 20px 24px; font-size: 14px; }
}

/* ----- Block (small heading + body inside a section) ----- */
.info-page .info-block {
  margin: 24px 0;
}
.info-page .info-block:first-child { margin-top: 16px; }
.info-page .info-block__heading {
  font-size: 14.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--color-ink);
  margin: 0 0 10px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--color-line);
}
.info-page .info-block__note {
  font-size: 12.5px;
  color: var(--color-ink-soft);
  margin: 8px 0 0;
  line-height: 1.85;
}
.info-page .info-block--highlight {
  padding: 24px 24px 28px;
  background: rgba(184, 66, 31, 0.04);
  border: 1px solid rgba(184, 66, 31, 0.25);
  border-radius: 4px;
}
.info-page .info-block--highlight .info-block__heading {
  color: var(--color-ember);
  border-bottom-color: rgba(184, 66, 31, 0.25);
}

.info-page .info-block__addr {
  font-size: 14.5px;
  line-height: 1.9;
  margin: 12px 0 16px;
}
.info-page .info-block__pin {
  color: var(--color-ember);
  font-size: 14px;
  margin-right: 6px;
}

/* ----- Lists ----- */
.info-page .info-list {
  list-style: disc;
  padding-left: 22px;
  margin: 10px 0;
}
.info-page .info-list li {
  margin: 6px 0;
  line-height: 1.85;
}
.info-page .info-list--bullet {
  list-style: none;
  padding-left: 0;
}
.info-page .info-list--bullet li {
  padding-left: 16px;
  position: relative;
}
.info-page .info-list--bullet li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 14px;
  width: 8px;
  height: 1px;
  background: var(--color-ember);
}
.info-page .info-list--note {
  font-size: 12.5px;
  color: var(--color-ink-soft);
  margin: 8px 0 0;
}
.info-page .info-list--note li { margin: 3px 0; }

/* ----- Tables ----- */
.info-page .info-table-wrap {
  overflow-x: auto;
  margin: 14px 0;
}
.info-page .info-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.info-page .info-table th,
.info-page .info-table td {
  padding: 10px 14px;
  border-bottom: 1px solid var(--color-line);
  text-align: left;
  vertical-align: middle;
}
.info-page .info-table th {
  font-weight: 600;
  background: rgba(31, 58, 43, 0.04);
  font-size: 13px;
  letter-spacing: 0.04em;
}
.info-page .info-table__price {
  font-family: 'Cormorant Garamond', serif;
  font-size: 15px;
  letter-spacing: 0.02em;
  white-space: nowrap;
  text-align: right;
}
.info-page .info-table--narrow {
  max-width: 480px;
}
@media (max-width: 768px) {
  .info-page .info-table { font-size: 13px; }
  .info-page .info-table th,
  .info-page .info-table td { padding: 8px 10px; }
  .info-page .info-table__price { font-size: 14px; }
}

/* ----- Flow (STEP) ----- */
.info-page .info-flow {
  list-style: none;
  padding: 0;
  margin: 16px 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.info-page .info-flow__item {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 20px;
  align-items: start;
  padding: 16px 0;
  border-bottom: 1px dotted var(--color-line);
}
.info-page .info-flow__item:last-child { border-bottom: none; }
.info-page .info-flow__step {
  font-family: 'Cormorant Garamond', serif;
  font-size: 14px;
  letter-spacing: 0.12em;
  color: var(--color-ember);
  font-weight: 500;
}
.info-page .info-flow__name {
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 6px;
  color: var(--color-ink);
}
.info-page .info-flow__desc {
  font-size: 14px;
  color: var(--color-ink-soft);
  margin: 0;
  line-height: 1.9;
}
@media (max-width: 768px) {
  .info-page .info-flow__item { grid-template-columns: 64px 1fr; gap: 14px; }
  .info-page .info-flow__step { font-size: 12.5px; }
}

/* ----- Season ----- */
.info-page .info-season {
  margin: 14px 0;
  padding: 14px 16px;
  background: rgba(31, 58, 43, 0.025);
  border-left: 2px solid var(--color-line);
}
.info-page .info-season__name {
  font-size: 14px;
  font-weight: 600;
  margin: 0 0 6px;
  color: var(--color-ink);
}
.info-page .info-season p {
  margin: 6px 0;
  font-size: 13.5px;
  line-height: 1.85;
}
.info-page .info-season__note {
  font-size: 12px;
  color: var(--color-ink-soft);
}

/* ----- Coupon ----- */
.info-page .info-coupon {
  margin: 14px 0;
  padding: 16px 18px;
  border: 1px solid var(--color-line);
  border-radius: 4px;
  background: #fff;
}
.info-page .info-coupon__name {
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--color-ember);
  margin: 0 0 8px;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(184, 66, 31, 0.18);
}

/* ----- Callout (内側説明枠) ----- */
.info-page .info-callout {
  margin: 16px 0 4px;
  padding: 14px 18px;
  background: #fff;
  border-left: 2px solid var(--color-ember);
  font-size: 13.5px;
}
.info-page .info-callout__title {
  font-weight: 600;
  margin: 0 0 6px;
  color: var(--color-ink);
  font-size: 13.5px;
}

/* ----- Map ----- */
.info-page .info-map {
  margin: 14px 0 0;
  border: 1px solid var(--color-line);
  overflow: hidden;
}
.info-page .info-map iframe {
  display: block;
  width: 100%;
}

/* ----- Divider ----- */
.info-page .info-divider {
  border: none;
  border-top: 1px dashed var(--color-line);
  margin: 28px 0;
}

/* ----- FAQ items ----- */
.info-page .info-faq__item {
  padding: 16px 0;
  border-bottom: 1px dotted var(--color-line);
}
.info-page .info-faq__item:last-child { border-bottom: none; }
.info-page .info-faq__q {
  font-size: 14.5px;
  font-weight: 600;
  color: var(--color-ink);
  margin: 0 0 8px;
  line-height: 1.7;
}
.info-page .info-faq__a {
  font-size: 13.5px;
  color: var(--color-ink-soft);
  line-height: 1.95;
  margin: 0;
  padding-left: 18px;
}

/* ----- PDF link (placeholder) ----- */
.info-page .info-pdf-wrap {
  margin: 20px 0 0;
}
.info-page .info-pdf-link {
  display: inline-block;
  padding: 10px 18px;
  font-size: 13.5px;
  color: var(--color-ink-soft);
  border: 1px dashed var(--color-line);
  border-radius: 4px;
  text-decoration: none;
  pointer-events: none;
  letter-spacing: 0.04em;
}

/* ----- Final CTA ----- */
.info-page .info-final-cta {
  margin: 64px auto 32px;
  max-width: 560px;
  padding: 36px 32px;
  background: rgba(184, 66, 31, 0.04);
  border: 1px solid rgba(184, 66, 31, 0.25);
  border-radius: 6px;
  text-align: center;
}
.info-page .info-final-cta__eyebrow {
  font-family: 'Cormorant Garamond', serif;
  font-size: 12px;
  letter-spacing: 0.22em;
  color: var(--color-ember);
  margin: 0 0 12px;
}
.info-page .info-final-cta__lead {
  font-size: 16px;
  letter-spacing: 0.04em;
  margin: 0 0 18px;
  color: var(--color-ink);
}
.info-page .info-final-cta__phone {
  margin: 0 0 18px;
}
.info-page .info-final-cta__phone a {
  font-family: 'Cormorant Garamond', serif;
  font-size: 28px;
  letter-spacing: 0.05em;
  color: var(--color-ink);
  text-decoration: none;
  padding: 8px 22px;
  border: 1px solid var(--color-line);
  border-radius: 4px;
  display: inline-block;
}
.info-page .info-final-cta__note {
  font-size: 13px;
  color: var(--color-ink-soft);
  line-height: 1.95;
  margin: 0;
}
@media (max-width: 768px) {
  .info-page .info-final-cta { padding: 28px 22px; margin: 48px 16px 24px; }
  .info-page .info-final-cta__phone a { font-size: 22px; padding: 6px 16px; }
}

/* ===== /INFO-PAGE-V1 ===== */

/* ===== TOUR-PAGE-RENEWAL-V2 (Phase 5-E rev3) ===== */
/* body.single-tour スコープ厳守(全体回帰防止)。V1 を拡張する追加分のみ。
   関連: single-tour.php の .tr-quickfacts / .tr-hero__meeting-note / OFFICIAL BENEFIT /
   アコーディオン5個(.tr-subhead/.tr-subheading/.tr-price-list/.tr-option-list/.tr-coupons/
   .tr-cancel-table/.tr-special-notes)/ .tr-info-cta */

/* --- 排他アコーディオン: 開いた見出しを固定ヘッダー(119px)直下へ寄せる余白 --- */
body.single-tour .tr-section { scroll-margin-top: 130px; }

/* --- アコーディオン見出しの視認性UP(区切りを明確に・AD:控えめな面+ember一閃) --- */
body.single-tour .tr-section__summary { background: rgba(31,58,43,0.035); }
body.single-tour .tr-section__summary:hover { background: rgba(31,58,43,0.07); }
body.single-tour .tr-section[open] > .tr-section__summary {
  background: rgba(184,66,31,0.05);
  box-shadow: inset 3px 0 0 var(--color-ember);
}

/* --- HERO クイックファクト --- */
body.single-tour .tr-quickfacts {
  list-style: none;
  margin: 22px 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
}
body.single-tour .tr-quickfacts__item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 14px;
  border: 1px solid var(--color-line);
  border-radius: 4px;
  font-family: var(--font-jp);
  font-size: 13px;
  line-height: 1.4;
  color: var(--color-ink);
}
body.single-tour .tr-quickfacts__icon { font-size: 14px; line-height: 1; }
body.single-tour .tr-quickfacts__label { color: var(--color-ink-soft); font-size: 12px; }
body.single-tour .tr-quickfacts__value { font-weight: 600; letter-spacing: 0.02em; }

body.single-tour .tr-hero__meeting-note {
  margin: 16px 0 0;
  font-family: var(--font-jp);
  font-size: 12.5px;
  line-height: 1.8;
  color: var(--color-ink-soft);
  padding-left: 12px;
  border-left: 2px solid var(--color-ember);
}

/* --- OFFICIAL BENEFIT(single-tour 内の余白調整。配色は既存グローバル流用) --- */
body.single-tour .official-benefit--tour {
  margin: 64px 0;
  padding: 48px 0;
  border-top: 1px solid var(--color-line);
  border-bottom: 1px solid var(--color-line);
}

/* --- アコーディオン内 サブ見出し --- */
body.single-tour .tr-subhead {
  margin: 32px 0 2px;
  font-family: var(--font-en);
  letter-spacing: 0.18em;
  font-size: 11px;
  color: var(--color-ember) !important;
}
body.single-tour .tr-section__content > .tr-subhead:first-child { margin-top: 6px; }
body.single-tour .tr-subheading {
  font-family: var(--font-jp);
  font-size: 16px;
  font-weight: 500;
  margin: 0 0 14px;
  color: var(--color-ink);
}

/* --- 本文テキスト --- */
body.single-tour .tr-text {
  font-family: var(--font-jp);
  font-size: 14px;
  line-height: 1.95;
  color: var(--color-ink);
  margin: 0 0 12px;
}
body.single-tour .tr-text--quiet { color: var(--color-ink-soft); font-size: 13px; }
body.single-tour .tr-note-inline {
  font-family: var(--font-jp);
  font-size: 12.5px;
  line-height: 1.8;
  color: var(--color-ink-soft);
  margin: 0 0 16px;
  padding-left: 12px;
  border-left: 2px solid var(--color-ember);
}
body.single-tour .tr-meeting-point {
  font-family: var(--font-jp);
  font-size: 15px;
  color: var(--color-ink);
  margin: 0 0 6px;
}

/* --- /info/ への誘導行 --- */
body.single-tour .tr-section__more {
  margin: 22px 0 0;
  padding-top: 16px;
  border-top: 1px dashed var(--color-line);
  font-family: var(--font-jp);
  font-size: 13px;
  line-height: 1.8;
  color: var(--color-ink-soft);
}
body.single-tour .tr-section__more a {
  color: var(--color-indigo);
  border-bottom: 1px solid currentColor;
  text-decoration: none;
}
body.single-tour .tr-section__more a:hover { color: var(--color-ember); }

/* --- 料金リスト --- */
body.single-tour .tr-price-list {
  list-style: none; padding: 0; margin: 0 0 8px;
  font-family: var(--font-jp);
}
body.single-tour .tr-price-list > li {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 16px; padding: 9px 0; border-bottom: 1px solid var(--color-line);
  font-size: 14px; color: var(--color-ink);
}
body.single-tour .tr-price-list__value { font-weight: 600; white-space: nowrap; }
body.single-tour .tr-price-list__note {
  display: block; border-bottom: none; font-size: 12.5px;
  color: var(--color-ink-soft); line-height: 1.8; padding-top: 10px;
}
/* 料金の補足(人数別加算・一律料金の注記など。注記より一段読みやすく) */
body.single-tour .tr-price-note {
  font-family: var(--font-jp); font-size: 14px; color: var(--color-ink);
  line-height: 1.95; letter-spacing: 0.01em; margin: 2px 0 4px;
}
body.single-tour .tr-price-note strong { font-weight: 600; }

/* --- 装備オプション --- */
body.single-tour .tr-option-list {
  list-style: none; padding: 0; margin: 0;
  font-family: var(--font-jp);
}
body.single-tour .tr-option-list > li {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 16px; padding: 8px 0; border-bottom: 1px solid var(--color-line);
  font-size: 14px; color: var(--color-ink);
}
body.single-tour .tr-option-list__price { font-weight: 600; white-space: nowrap; color: var(--color-ink-soft); }
body.single-tour .tr-incbring__note {
  font-family: var(--font-jp); font-size: 12.5px;
  color: var(--color-ink-soft); margin: 8px 0 0;
}

/* --- クーポンカード --- */
body.single-tour .tr-coupons { display: grid; gap: 12px; margin: 4px 0 12px; }
body.single-tour .tr-coupon {
  border: 1px solid var(--color-line);
  border-radius: 5px;
  padding: 16px 18px;
  font-family: var(--font-jp);
}
body.single-tour .tr-coupon--accent {
  border-color: rgba(184,66,31,0.4);
  background: rgba(184,66,31,0.035);
}
body.single-tour .tr-coupon__head {
  font-size: 14.5px; font-weight: 600; color: var(--color-ink);
  margin: 0 0 6px; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
}
body.single-tour .tr-coupon__amount {
  font-family: var(--font-en); letter-spacing: 0.03em;
  color: var(--color-ember); font-size: 15px;
}
body.single-tour .tr-coupon__desc {
  font-size: 13px; line-height: 1.85; color: var(--color-ink-soft); margin: 0;
}
body.single-tour .tr-coupon__cond {
  display: block; margin-top: 6px; font-size: 12px;
  color: var(--color-ink-soft); opacity: 0.85;
}

/* --- キャンセル規定テーブル --- */
body.single-tour .tr-cancel-table {
  width: 100%; border-collapse: collapse; margin: 4px 0 10px;
  font-family: var(--font-jp); font-size: 14px;
}
body.single-tour .tr-cancel-table th,
body.single-tour .tr-cancel-table td {
  text-align: left; padding: 10px 14px; border: 1px solid var(--color-line);
}
body.single-tour .tr-cancel-table th {
  width: 40%; font-weight: 500; color: var(--color-ink);
  background: rgba(0,0,0,0.02);
}
body.single-tour .tr-cancel-table td { color: var(--color-ink); }

/* --- プラン固有のご注意 --- */
body.single-tour .tr-special-notes { font-family: var(--font-jp); }
body.single-tour .tr-special-notes h4 {
  font-size: 14.5px; font-weight: 600; color: var(--color-ink);
  margin: 22px 0 6px; padding-left: 12px; border-left: 3px solid var(--color-ember);
}
body.single-tour .tr-special-notes h4:first-child { margin-top: 0; }
body.single-tour .tr-special-notes p {
  font-size: 13.5px; line-height: 1.9; color: var(--color-ink-soft);
  margin: 0 0 4px;
}

/* --- ご利用案内 誘導カード --- */
body.single-tour .tr-info-cta {
  margin: 56px auto 0;
  max-width: 720px;
}
body.single-tour .tr-info-cta__inner {
  border: 1px solid var(--color-indigo);
  border-radius: 6px;
  padding: 28px 32px;
  text-align: center;
  background: rgba(31,58,43,0.02);
}
body.single-tour .tr-info-cta__eyebrow {
  font-family: var(--font-jp); font-size: 15px; font-weight: 600;
  color: var(--color-ink); margin: 0 0 8px; letter-spacing: 0.04em;
}
body.single-tour .tr-info-cta__text {
  font-family: var(--font-jp); font-size: 13.5px; line-height: 1.9;
  color: var(--color-ink-soft); margin: 0 auto 20px; max-width: 520px;
}
body.single-tour .tr-info-cta__btn {
  display: inline-block;
  font-family: var(--font-jp); font-size: 14px; letter-spacing: 0.04em;
  color: #fff; background: var(--color-indigo);
  padding: 13px 32px; border-radius: 4px; text-decoration: none;
  transition: background 0.2s ease, transform 0.2s ease;
}
body.single-tour .tr-info-cta__btn:hover {
  background: var(--color-ember);
  transform: translateY(-1px);
}

/* --- モバイル --- */
@media (max-width: 768px) {
  body.single-tour .tr-section { scroll-margin-top: 80px; }
  /* 見出しの窮屈/はみ出し対策: 左右パディング+キャレット間隔、英字ラベルは常に次行へ */
  body.single-tour .tr-section__summary { padding: 16px 14px; gap: 12px; }
  body.single-tour .tr-section__title { font-size: 16px; gap: 5px 10px; min-width: 0; }
  body.single-tour .tr-section__title-en { flex-basis: 100%; }
  body.single-tour .tr-section__caret { margin-left: 4px; }
  body.single-tour .official-benefit--tour { margin: 48px 0; padding: 36px 0; }
  body.single-tour .tr-quickfacts { gap: 8px; }
  body.single-tour .tr-quickfacts__item { padding: 6px 11px; font-size: 12.5px; }
  body.single-tour .tr-info-cta__inner { padding: 24px 20px; }
  body.single-tour .tr-info-cta__btn { display: block; padding: 14px 20px; }
  body.single-tour .tr-cancel-table th,
  body.single-tour .tr-cancel-table td { padding: 9px 11px; font-size: 13.5px; }
}
/* ===== /TOUR-PAGE-RENEWAL-V2 ===== */

/* ===== BF-GALLERY-V1 (ツアー個別ページ・/group/ 共通の写真ギャラリー/手動スワイプ) ===== */
.bf-gallery { margin: 56px 0; text-align: center; }
.bf-gallery__title { font-size: 28px; margin: 6px 0 28px; }
.bf-gallery__viewport { position: relative; max-width: 1000px; margin: 0 auto; }
.bf-gallery__track {
  display: flex; gap: 0; list-style: none; padding: 0; margin: 0;
  overflow-x: auto; scroll-snap-type: x proximity; scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch; border-radius: 6px;
  aspect-ratio: 3 / 2; background: var(--color-line);
  scrollbar-width: none; -ms-overflow-style: none;
}
.bf-gallery__track::-webkit-scrollbar { display: none; }
.bf-gallery__slide { flex: 0 0 100%; scroll-snap-align: center; }
.bf-gallery__slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bf-gallery__nav {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 44px; height: 44px; border-radius: 50%; border: none;
  background: rgba(255,255,255,0.85); color: var(--color-ink);
  font-family: serif; font-size: 26px; line-height: 1; cursor: pointer; z-index: 2;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 10px rgba(0,0,0,0.15); transition: background 0.2s ease;
}
.bf-gallery__nav:hover { background: #fff; }
.bf-gallery__nav--prev { left: 12px; }
.bf-gallery__nav--next { right: 12px; }
.bf-gallery__dots { display: flex; gap: 8px; justify-content: center; margin-top: 16px; }
.bf-gallery__dot {
  width: 8px; height: 8px; border-radius: 50%; border: none; padding: 0;
  background: var(--color-line); cursor: pointer; transition: background 0.2s ease, transform 0.2s ease;
}
.bf-gallery__dot.is-active { background: var(--color-ember); transform: scale(1.3); }
@media (max-width: 768px) {
  .bf-gallery { margin: 40px 0; }
  .bf-gallery__title { font-size: 22px; margin-bottom: 18px; }
  .bf-gallery__nav { width: 38px; height: 38px; font-size: 22px; }
}
/* --- ヒーロー(トップ写真)スライドショー: .tr-hero__image の枠を埋める --- */
body.single-tour .tr-hero__image .bf-gallery--hero { margin: 0; height: 100%; }
.bf-gallery--hero,
.bf-gallery--hero .bf-gallery__viewport { max-width: none; height: 100%; margin: 0; }
.bf-gallery--hero .bf-gallery__track { aspect-ratio: auto; height: 100%; border-radius: 0; }
.bf-gallery--hero .bf-gallery__dots { position: absolute; left: 0; right: 0; bottom: 12px; margin: 0; z-index: 2; }
.bf-gallery--hero .bf-gallery__dot { background: rgba(255,255,255,0.6); box-shadow: 0 1px 3px rgba(0,0,0,0.35); }
.bf-gallery--hero .bf-gallery__dot.is-active { background: #fff; }
/* ===== /BF-GALLERY-V1 ===== */

/* PAGE-HEADER-BAND-V1(info/access/contact の見出しに汎用写真帯)は
   SUBPAGE-HERO-V1(緑グラデ・ヒーロー)に置き換えたため撤去。
   これらのページは page.php が .page-header を出さなくなった(緑ヒーローに H1 を内包)。
   未使用となった assets/images/page-header-bg.jpg は公開前整理で削除候補。 */

/* ===== DESKTOP-KAYAK-CTA-V1 ===== */
/* スクロールで本文に入ると画面左から漕いで登場する予約CTA。PC/モバイル共通(モバイルの旧下部固定バーは廃止)。
   表示切替は JS の .is-visible(.hero が見えている間だけ隠れる)。モバイルはやや小さめ。 */
.kayak-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 90;
  padding: 9px 20px 9px 10px;
  background: var(--color-lake);
  color: var(--color-paper);
  border-radius: 999px;
  text-decoration: none;
  box-shadow: 0 10px 30px rgba(37, 109, 138, 0.32);
  opacity: 0;
  /* 画面左端付近からゆっくり漕いでくる: opacity は速め(0.5s)、transform はとてもゆっくり(4s)。 */
  transform: translateX(-88vw);
  pointer-events: none;
  transition: opacity 0.5s var(--ease), transform 4s ease-in-out, background-color 0.3s ease, box-shadow 0.3s ease;
}
.kayak-cta.is-visible { opacity: 1; transform: translateX(0); pointer-events: auto; }
.kayak-cta__boat { display: block; width: 46px; flex: none; }
.kayak-cta__boat svg { display: block; width: 100%; height: auto; overflow: visible; }
.kayak-cta__label { font-family: var(--font-sans); font-size: 13px; font-weight: 500; letter-spacing: 0.12em; white-space: nowrap; }
.kayak-cta:hover { background: var(--color-lake-bright); box-shadow: 0 14px 34px rgba(47, 130, 161, 0.45); transform: translateY(-3px); }
.kayak-cta:focus-visible { outline: 2px solid var(--color-paper); outline-offset: 3px; }

/* PC はやや大きめ・余白広め */
@media (min-width: 1025px) {
  .kayak-cta { right: 28px; bottom: 28px; padding: 10px 24px 10px 12px; }
  .kayak-cta__boat { width: 60px; }
  .kayak-cta__label { font-size: 14px; letter-spacing: 0.18em; }
}

@media (prefers-reduced-motion: no-preference) {
  .kayak-cta__boat-g {
    transform-box: view-box;
    transform-origin: 36px 31px;
    animation: bf-kayak-rock 3.2s var(--ease) infinite;
  }
  .kayak-cta__paddle {
    transform-box: view-box;
    transform-origin: 36px 20px;
    animation: bf-kayak-paddle 1.7s ease-in-out infinite;
  }
  .kayak-cta__water { animation: bf-kayak-ripple 2.4s ease-in-out infinite; }
  .kayak-cta:hover .kayak-cta__paddle { animation-duration: 0.8s; }
  .kayak-cta:hover .kayak-cta__boat-g { animation-duration: 1.8s; }
}
@keyframes bf-kayak-rock {
  0%, 100% { transform: translateY(0) rotate(-2.5deg); }
  50%      { transform: translateY(-2px) rotate(2.5deg); }
}
@keyframes bf-kayak-paddle {
  0%, 100% { transform: rotate(-20deg); }
  50%      { transform: rotate(20deg); }
}
@keyframes bf-kayak-ripple {
  0%, 100% { opacity: 0.4; transform: translateX(0); }
  50%      { opacity: 0.75; transform: translateX(3px); }
}
/* ===== /DESKTOP-KAYAK-CTA-V1 ===== */

/* ===== SEASON-VOICE-CAROUSEL-V1 ===== */
/* モバイル(≤768px)で「季節のおすすめ(.season-grid)」「お客様の声(.voice-grid)」を
   横スワイプ+ドットのカルーセル化。TOUR-CAROUSEL-MOBILE-V1 と同方式・同クラス(.carousel-dots/.swipe-hint)。
   PC は既存 grid 維持。JS(同名マーカー)がドット生成と現在位置同期を担当。 */
@media (max-width: 768px) {
  .seasons, .voices { overflow-x: hidden; }
  .seasons .container > .season-grid,
  .voices .container > .voice-grid {
    display: flex;
    grid-template-columns: none;
    gap: 12px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-padding-left: 24px;
    padding: 8px 24px 20px;
    margin-left: -24px;
    margin-right: -24px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    touch-action: pan-x pan-y;
    overscroll-behavior-x: contain;
  }
  .seasons .season-grid::-webkit-scrollbar,
  .voices .voice-grid::-webkit-scrollbar { display: none; }
  .seasons .season-card,
  .voices .voice-item {
    flex: 0 0 85%;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  .seasons .carousel-dots,
  .voices .carousel-dots {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 20px;
  }
  .seasons .carousel-dots button,
  .voices .carousel-dots button {
    width: 8px; height: 8px;
    border-radius: 50%;
    border: none; padding: 0;
    background: rgba(26,31,26,.2);
    cursor: pointer;
    transition: background 0.3s var(--ease), transform 0.3s var(--ease);
    -webkit-tap-highlight-color: transparent;
  }
  .seasons .carousel-dots button.is-active,
  .voices .carousel-dots button.is-active {
    background: var(--color-ember);
    transform: scale(1.3);
  }
  .seasons .swipe-hint,
  .voices .swipe-hint {
    text-align: center;
    font-size: 11px;
    letter-spacing: 0.2em;
    color: var(--color-stone);
    margin-top: 12px;
    opacity: 0.55;
    font-family: var(--font-en);
  }
  .seasons .swipe-hint::before,
  .voices .swipe-hint::before { content: "← "; color: var(--color-ember); }
  .seasons .swipe-hint::after,
  .voices .swipe-hint::after { content: " →"; color: var(--color-ember); }
}
@media (min-width: 769px) {
  .seasons .carousel-dots, .seasons .swipe-hint,
  .voices .carousel-dots, .voices .swipe-hint { display: none; }
}
/* ===== /SEASON-VOICE-CAROUSEL-V1 ===== */

/* ===== SECTION-TITLE-ACCENT-FIX-V1 ===== */
/* 一部の固定ページ(/family/・/group/ 等)はセクション見出しに inline で
   margin-bottom:8px(本来 .section-title は 24px)を持ち、DESIGN-POLISH の
   ember 菱形アクセント(.section-title::before; bottom:-22px)がリード文に重なる。
   → タイト指定(margin-bottom:8px)の見出しだけ下余白を確保して重なりを解消。
   属性セレクタで該当のみを狙うためホーム等(8px指定なし)は無影響。inline を上書きするため !important。 */
.section-title[style*="margin-bottom:8px"] { margin-bottom: 34px !important; }
/* ===== /SECTION-TITLE-ACCENT-FIX-V1 ===== */

/* PAGE-HERO-DEDUPE-V1 は撤去。/family/・/group/ も SUBPAGE-HERO-V1(map)に移行し、
   page.php が .page-header を出さなくなった(緑ヒーローに H1 を内包)ため不要。 */

/* ===== TOURS-ARCHIVE-V1 ===== */
/* Phase 5-J: /tours/ カードグリッド改修(選び方統合)。archive-tour.php 専用。
   スコープは .tours-archive 配下の ta-* / cg-* に限定し、他ページへ回帰しない。 */

.tours-archive { background: var(--color-paper); }
.tours-archive .container { max-width: 1100px; margin: 0 auto; padding-left: 24px; padding-right: 24px; }
.tours-archive .ta-sec-head { text-align: center; margin-bottom: 36px; }
.tours-archive .ta-sec-title {
  font-family: var(--font-serif); font-size: 24px; font-weight: 600;
  color: var(--color-ink); margin: 6px 0 12px; letter-spacing: .02em;
}
.tours-archive .ta-sec-lead {
  font-size: 14px; line-height: 1.9; color: var(--color-ink-soft);
  max-width: 640px; margin: 0 auto;
}

/* 1. HERO */
.tours-archive .ta-hero { padding: 132px 0 56px; text-align: center; }
.tours-archive .ta-hero-title {
  font-family: var(--font-serif); font-size: 42px; font-weight: 600;
  color: var(--color-ink); letter-spacing: .08em; margin: 8px 0 18px;
}
.tours-archive .ta-hero-lead { font-size: 15px; line-height: 2; color: var(--color-ink-soft); }

/* 2. 湖の穏やかさ グラフ */
.tours-archive .ta-calm-sec { padding: 28px 0 56px; }
.tours-archive .ta-calm-chart {
  max-width: 720px; margin: 0 auto;
  border: 1px solid var(--color-line); border-radius: 4px;
  padding: 22px 18px 14px; background: var(--color-paper);
}
.tours-archive .cg-svg { width: 100%; height: auto; display: block; }
.tours-archive .cg-grid { stroke: var(--color-line); stroke-width: 1; opacity: .55; }
.tours-archive .cg-tick,
.tours-archive .cg-axis { fill: var(--color-stone); font-size: 11px; font-family: var(--font-sans); }
.tours-archive .cg-axis { font-size: 10px; letter-spacing: .1em; text-anchor: middle; }
.tours-archive .cg-area { fill: var(--color-ember); opacity: .07; }
.tours-archive .cg-line { fill: none; stroke: var(--color-ember); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.tours-archive .cg-dot { fill: var(--color-paper); stroke: var(--color-ember); stroke-width: 2; }
.tours-archive .cg-dot.gold { fill: var(--color-wood); stroke: var(--color-wood); }
.tours-archive .cg-val { fill: var(--color-ink-soft); font-size: 11px; font-weight: 600; text-anchor: middle; font-family: var(--font-sans); }
.tours-archive .cg-xt { fill: var(--color-ink); font-size: 12px; text-anchor: middle; font-family: var(--font-en); }
.tours-archive .cg-xl { fill: var(--color-stone); font-size: 11px; text-anchor: middle; font-family: var(--font-sans); }
.tours-archive .cg-xl.gold { fill: var(--color-wood); font-weight: 600; }
.tours-archive .cg-sunpath { fill: none; stroke: var(--color-wood); stroke-width: 1; stroke-dasharray: 3 4; opacity: .7; }
.tours-archive .cg-sunend { fill: var(--color-wood); opacity: .7; }
.tours-archive .cg-sun { fill: var(--color-wood); opacity: .85; }
.tours-archive .cg-sunlbl { fill: var(--color-stone); font-size: 10px; font-family: var(--font-en); }
.tours-archive .ta-calm-note { text-align: center; font-size: 12.5px; color: var(--color-stone); margin-top: 14px; line-height: 1.8; }
.tours-archive .ta-calm-cap { display: inline-block; color: var(--color-stone); }

/* 3. 時間帯グループ × カードグリッド */
.tours-archive .ta-groups-sec { padding: 28px 0 16px; }
.tours-archive .ta-group { margin-bottom: 52px; }
.tours-archive .ta-group-head {
  display: flex; align-items: baseline; gap: 14px;
  padding-bottom: 12px; margin-bottom: 22px;
  border-bottom: 1px solid var(--color-line); position: relative;
}
.tours-archive .ta-group-head::before {
  content: ""; position: absolute; left: 0; bottom: -1px;
  width: 32px; height: 2px; background: var(--color-ember);
}
.tours-archive .ta-group-title { font-family: var(--font-serif); font-size: 20px; font-weight: 600; color: var(--color-ink); }
.tours-archive .ta-group-en { font-family: var(--font-en); font-size: 14px; color: var(--color-stone); letter-spacing: .04em; }

.tours-archive .ta-grid { display: grid; grid-template-columns: 1fr; gap: 22px; }

/* CARD */
.tours-archive .ta-card { background: var(--color-paper); }
.tours-archive .ta-card-link {
  display: flex; flex-direction: column; height: 100%;
  border: 1px solid var(--color-line); border-radius: 4px; overflow: hidden;
  text-decoration: none; color: inherit;
  transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}
.tours-archive .ta-card-link:hover {
  box-shadow: 0 10px 30px rgba(26,31,26,.10); transform: translateY(-2px);
  border-color: var(--color-stone);
}
.tours-archive .ta-card-img { aspect-ratio: 16 / 10; background-size: cover; background-position: center; background-color: var(--color-paper-deep); }
.tours-archive .ta-card-body { padding: 18px 18px 20px; display: flex; flex-direction: column; flex: 1; min-width: 0; }
.tours-archive .ta-card-time {
  font-family: var(--font-en); font-size: 13px; color: var(--color-ember);
  letter-spacing: .03em; margin: 0 0 8px; display: flex; align-items: center; gap: 5px;
}
.tours-archive .ta-clock { font-size: 12px; }
.tours-archive .ta-card-name { font-family: var(--font-serif); font-size: 19px; font-weight: 600; color: var(--color-ink); line-height: 1.4; margin: 0 0 8px; }
.tours-archive .ta-card-name .ruby { font-size: .6em; color: var(--color-stone); margin: 0 2px; }
.tours-archive .ta-card-en { display: block; font-family: var(--font-en); font-size: 12px; color: var(--color-stone); letter-spacing: .06em; margin-top: 2px; }
.tours-archive .ta-card-blurb { font-size: 13.5px; line-height: 1.8; color: var(--color-ink-soft); margin: 0 0 16px; flex: 1; }
.tours-archive .ta-card-foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin-top: auto; }
.tours-archive .ta-card-price { font-family: var(--font-en); font-size: 18px; font-weight: 500; color: var(--color-ink); margin: 0; line-height: 1.3; }
.tours-archive .ta-price-unit { font-family: var(--font-sans); font-size: 11px; color: var(--color-stone); margin-right: 4px; }
.tours-archive .ta-price-suffix { font-family: var(--font-sans); font-size: 11px; color: var(--color-stone); margin-left: 2px; }
.tours-archive .ta-price-sale { color: var(--color-ember); margin-right: 8px; }
.tours-archive .ta-price-orig { font-size: 13px; color: var(--color-stone); text-decoration: line-through; }
.tours-archive .ta-price-child { display: block; font-family: var(--font-sans); font-size: 11.5px; color: var(--color-stone); margin-top: 3px; }
.tours-archive .ta-card-cta { font-family: var(--font-sans); font-size: 12.5px; color: var(--color-ember); white-space: nowrap; }
.tours-archive .ta-card-cta .arrow { transition: transform .2s ease; display: inline-block; }
.tours-archive .ta-card-link:hover .ta-card-cta .arrow { transform: translateX(3px); }

/* 4. プライベート特別枠 */
.tours-archive .ta-private-sec { padding: 28px 0 40px; }
.tours-archive .ta-grid--single { max-width: 820px; margin: 0 auto; }

/* 5. 目的から探す */
.tours-archive .ta-guide-sec { padding: 40px 0; background: var(--color-paper-deep); margin-top: 24px; }
.tours-archive .ta-guide-list { list-style: none; padding: 0; max-width: 760px; margin: 0 auto; }
.tours-archive .ta-guide-row {
  display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap;
  padding: 16px 0; border-bottom: 1px solid var(--color-line);
}
.tours-archive .ta-guide-row:last-child { border-bottom: 0; }
.tours-archive .ta-guide-q {
  font-family: var(--font-serif); font-size: 15px; font-weight: 600; color: var(--color-ink);
  flex: 0 0 150px; white-space: nowrap; position: relative; padding-left: 14px;
}
.tours-archive .ta-guide-q::before { content: ""; position: absolute; left: 0; top: .35em; width: 3px; height: .9em; background: var(--color-ember); }
.tours-archive .ta-guide-a { font-size: 14px; color: var(--color-ink-soft); line-height: 1.9; }
.tours-archive .ta-guide-a a { color: var(--color-ink); text-decoration: none; border-bottom: 1px solid var(--color-line); transition: border-color .2s, color .2s; }
.tours-archive .ta-guide-a a:hover { border-color: var(--color-ember); color: var(--color-ember); }
.tours-archive .ta-guide-sep { color: var(--color-line); margin: 0 8px; }

/* 6. 下部導線 */
.tours-archive .ta-foot-sec { padding: 56px 0 80px; }
.tours-archive .ta-foot-links { display: grid; grid-template-columns: 1fr; gap: 14px; max-width: 760px; margin: 0 auto; }
.tours-archive .ta-foot-link {
  display: flex; align-items: center; justify-content: space-between;
  padding: 20px 22px; border: 1px solid var(--color-line); border-radius: 4px;
  text-decoration: none; color: var(--color-ink); transition: border-color .2s, background .2s;
}
.tours-archive .ta-foot-link:hover { border-color: var(--color-ember); background: var(--color-paper-deep); }
.tours-archive .ta-foot-link-jp { font-family: var(--font-serif); font-size: 16px; font-weight: 600; }
.tours-archive .ta-foot-link-en { font-family: var(--font-en); font-size: 14px; color: var(--color-ember); letter-spacing: .04em; }

/* ---- Desktop ---- */
@media (min-width: 768px) {
  .tours-archive .ta-hero { padding: 152px 0 64px; }
  .tours-archive .ta-hero-title { font-size: 52px; }
  .tours-archive .ta-sec-title { font-size: 28px; }
  .tours-archive .ta-grid { grid-template-columns: repeat(2, 1fr); gap: 28px; }
  .tours-archive .ta-grid--single { grid-template-columns: 1fr; } /* プライベート特別枠は1列(2列に割れない) */
  .tours-archive .ta-foot-links { grid-template-columns: repeat(3, 1fr); }

  /* プライベート: 横並び(画像左 / 情報右) */
  .tours-archive .ta-card--wide .ta-card-link { flex-direction: row; }
  .tours-archive .ta-card--wide .ta-card-img { flex: 0 0 46%; aspect-ratio: auto; min-height: 280px; }
  .tours-archive .ta-card--wide .ta-card-body { justify-content: center; padding: 32px 36px; }
  .tours-archive .ta-card--wide .ta-card-name { font-size: 24px; }
  .tours-archive .ta-card--wide .ta-card-blurb { flex: 0 1 auto; }
}
/* ===== /TOURS-ARCHIVE-V1 ===== */

/* ===== SUBPAGE-HERO-V1 ===== */
/* サブページ共通の緑グラデ・ヒーロー(/family/・/group/ の .family-hero と同じ見た目を
   テーマ側=git 管理で再現)。背景に線のシーン(稜線/さざ波/カヤック/波紋)。
   対象: page.php(access/info/contact/shop)+ archive-tour.php(/tours/)。 */
.subpage-hero {
  position: relative; overflow: hidden; text-align: center;
  padding: 118px 24px 72px;
  background-image: linear-gradient(135deg, var(--color-indigo) 0%, #2d4a3e 100%);
}
.subpage-hero__inner { position: relative; z-index: 2; max-width: 760px; margin: 0 auto; }
.subpage-hero__eyebrow { font-family: var(--font-en); font-size: 14px; font-weight: 500; letter-spacing: .32em; text-transform: uppercase; color: #f5d77a; margin: 0 0 16px; }
.subpage-hero__rule { display: block; width: 40px; height: 1px; background: #f5d77a; opacity: .85; margin: 0 auto 22px; }
.subpage-hero__title { font-family: var(--font-serif); font-size: 38px; font-weight: 700; letter-spacing: .1em; line-height: 1.3; color: #fff; margin: 0 0 18px; }
.subpage-hero__lead { font-size: 15px; line-height: 2; color: rgba(255,255,255,.85); margin: 0; }

/* /tours/ アーカイブのヒーローも同じ緑に揃える(既存 .ta-hero の白地を上書き) */
.tours-archive .ta-hero { position: relative; overflow: hidden; background-image: linear-gradient(135deg, var(--color-indigo) 0%, #2d4a3e 100%); }
.tours-archive .ta-hero > .container { position: relative; z-index: 2; }
.tours-archive .ta-hero .section-eyebrow { color: #f5d77a; }
.tours-archive .ta-hero .ta-hero-title { color: #fff; }
.tours-archive .ta-hero .ta-hero-lead { color: rgba(255,255,255,.85); }

/* 線のシーン */
.hero-scene { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.hero-scene svg { position: absolute; left: 0; top: 0; width: 100%; height: 100%; }
.hero-scene .hs-draw { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.6s ease; }
.hero-scene.in .hs-draw { stroke-dashoffset: 0; }
.hero-scene.in .hs-draw.slow { transition-duration: 3.6s; }
.hs-kayak { transform-box: fill-box; transform-origin: center; animation: bf-hs-rock 5s ease-in-out infinite; }
.hs-paddle { transform-box: fill-box; transform-origin: 50% 18%; animation: bf-hs-paddle 2.2s ease-in-out infinite; }
.hs-ripple { transform-box: fill-box; transform-origin: center; opacity: 0; animation: bf-hs-ripple 4s ease-out infinite; }
.hs-ripple.r2 { animation-delay: 1.3s; }
.hs-ripple.r3 { animation-delay: 2.6s; }
@keyframes bf-hs-rock { 0%,100% { transform: translateY(0) rotate(-1.6deg); } 50% { transform: translateY(-2px) rotate(1.6deg); } }
@keyframes bf-hs-paddle { 0%,100% { transform: rotate(-16deg); } 50% { transform: rotate(16deg); } }
@keyframes bf-hs-ripple { 0% { transform: scale(.4); opacity: .5; } 80% { opacity: 0; } 100% { transform: scale(1.5); opacity: 0; } }

@media (min-width: 768px) {
  .subpage-hero { padding: 146px 24px 84px; }
  .subpage-hero__title { font-size: 46px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-scene .hs-draw { stroke-dashoffset: 0 !important; transition: none !important; }
  .hs-kayak, .hs-paddle, .hs-ripple { animation: none !important; }
  .hs-ripple { opacity: .22 !important; }
}
/* ===== /SUBPAGE-HERO-V1 ===== */

/* ===== REVEAL-ANIM-V1 ===== */
/* スクロールで要素がふわっと現れる控えめな登場。JS(SUBPAGE-DECOR-V1)が body に
   .bf-anim-ready を付けて初めて非表示化する → JS 不発時も内容は必ず見える安全設計。 */
body.bf-anim-ready .reveal { opacity: 0; transform: translateY(26px); transition: opacity .9s cubic-bezier(.2,.7,.2,1), transform .9s cubic-bezier(.2,.7,.2,1); }
body.bf-anim-ready .reveal.in { opacity: 1; transform: none; }
.reveal.d1 { transition-delay: .08s; }
.reveal.d2 { transition-delay: .16s; }
.reveal.d3 { transition-delay: .24s; }
.reveal.d4 { transition-delay: .32s; }
/* 左からスライドして登場するバリアント(.reveal と併用)。順番アピール向け。 */
body.bf-anim-ready .reveal--left { transform: translateX(-44px); }
/* 左スライドを少しゆっくり=印象づけ */
body.bf-anim-ready .reveal--left { transition-duration: 1s; }
/* 左スライド使用箇所(ホーム ABOUT)は横はみ出しを抑止(モバイルで一時的な横スクロール防止)。
   overflow-x:clip は縦は visible のまま=セクション上の ember 菱形マーカーには影響しない。 */
.about-us { overflow-x: clip; }
@media (prefers-reduced-motion: reduce) {
  body.bf-anim-ready .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}
/* ===== /REVEAL-ANIM-V1 ===== */

/* ===== SUBPAGE-EDITORIAL-V1 ===== */
/* サブページ本文のエディトリアル装飾(罫線・英字 eyebrow・ember 短線・ラインアイコン・
   道のりチップ・番号リスト・波線ディバイダ)。固定ページ本文を <!-- wp:html --> で
   <div class="bf-editorial"> ... に組んで使う。アニメは要素の .reveal → .in で起動
   (observer は script.js SUBPAGE-DECOR-V1)。スコープは .bf-editorial 配下に限定。 */
.bf-editorial { font-size: 15px; line-height: 1.95; color: var(--color-ink-soft); }
.bf-editorial .bf-sec { padding: 60px 0; }
.bf-editorial .bf-sec:first-child { padding-top: 40px; }
.bf-editorial .bf-eyebrow { display: block; font-family: var(--font-en); font-size: 15px; font-weight: 500; letter-spacing: .26em; text-transform: uppercase; color: var(--color-wood); margin: 0 0 10px; }
.bf-editorial .bf-title { font-family: var(--font-serif); font-size: 26px; font-weight: 600; letter-spacing: .06em; color: var(--color-ink); position: relative; padding-bottom: 18px; margin: 0 0 26px; }
.bf-editorial .bf-title::after { content: ""; position: absolute; left: 0; bottom: 0; width: 34px; height: 2px; background: var(--color-ember); transform: scaleX(0); transform-origin: left; transition: transform .7s ease .2s; }
.bf-editorial .bf-title.in::after { transform: scaleX(1); }
.bf-editorial .bf-lead { font-size: 15.5px; color: var(--color-ink-soft); margin: 0; }
.bf-editorial .bf-lead strong { color: var(--color-ink); font-weight: 500; }
.bf-editorial .bf-note { font-size: 13px; color: var(--color-ink-soft); margin: 14px 0 0; padding-left: 16px; border-left: 2px solid var(--color-line); }
.bf-editorial .bf-note strong { color: var(--color-ink); font-weight: 600; }

/* 所在地カード(1px 罫線・面塗りなし) */
.bf-editorial .bf-addr { border: 1px solid var(--color-line); padding: 28px 30px; margin-top: 8px; display: flex; gap: 18px; align-items: flex-start; }
.bf-editorial .bf-addr-pin { flex: 0 0 auto; color: var(--color-ember); margin-top: 2px; }
.bf-editorial .bf-addr-place { font-family: var(--font-serif); font-size: 19px; font-weight: 600; color: var(--color-ink); margin: 0 0 4px; line-height: 1.5; }
.bf-editorial .bf-addr-place small { font-size: 14px; font-weight: 400; color: var(--color-ink-soft); }
.bf-editorial .bf-addr-zip { font-size: 14px; color: var(--color-ink-soft); margin: 0; }

/* 行き方(車・電車・バス) */
.bf-editorial .bf-routes { display: flex; flex-direction: column; }
.bf-editorial .bf-route { padding: 32px 0; border-top: 1px dashed var(--color-line); }
.bf-editorial .bf-route:first-child { border-top: 0; padding-top: 6px; }
.bf-editorial .bf-route-head { display: flex; align-items: center; gap: 16px; margin-bottom: 6px; }
.bf-editorial .bf-route-icon { flex: 0 0 auto; width: 54px; height: 54px; border: 1px solid var(--color-line); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--color-indigo); }
.bf-editorial .bf-route-en { display: block; font-family: var(--font-en); font-size: 14px; letter-spacing: .24em; text-transform: uppercase; color: var(--color-wood); }
.bf-editorial .bf-route-jp { display: block; font-family: var(--font-serif); font-size: 18px; font-weight: 600; color: var(--color-ink); }
.bf-editorial .bf-flow { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 4px; margin: 16px 0 6px; }
.bf-editorial .bf-node { border: 1px solid var(--color-line); border-radius: 2px; padding: 7px 13px; font-size: 13px; color: var(--color-ink); background: var(--color-paper); white-space: nowrap; }
.bf-editorial .bf-node-meta { display: block; font-size: 11px; color: var(--color-wood); letter-spacing: .06em; margin-top: 1px; }
.bf-editorial .bf-node.is-goal { border-color: var(--color-ember); color: var(--color-ember); font-weight: 500; }
.bf-editorial .bf-arrow { color: var(--color-ember); font-size: 13px; flex: 0 0 auto; }
.bf-editorial .bf-route-detail { font-size: 13.5px; color: var(--color-ink-soft); margin: 0; }
.bf-editorial .bf-route-detail .big { color: var(--color-ink); font-weight: 500; }
/* 道のりを渡るカヤック(線) */
.bf-editorial .bf-journey { position: relative; height: 26px; margin: 4px 0; }
.bf-editorial .bf-journey svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.bf-editorial .bf-track { fill: none; stroke: var(--color-line); stroke-width: 1.2; stroke-dasharray: 3 4; }
.bf-editorial .bf-boat { transform-box: fill-box; transform-origin: center; opacity: 0; }
.bf-editorial .bf-route.in .bf-boat { animation: bf-ed-travel 2.6s ease-in-out .3s forwards; }
@keyframes bf-ed-travel { 0% { opacity: 0; offset-distance: 0%; } 8% { opacity: 1; } 92% { opacity: 1; } 100% { opacity: 0; offset-distance: 100%; } }

/* 箇条書き(ember 短ダッシュ・番号なし) */
.bf-editorial .bf-list { list-style: none; padding: 0; margin: 8px 0 0; display: flex; flex-direction: column; gap: 12px; }
.bf-editorial .bf-list li { position: relative; padding-left: 22px; font-size: 15px; color: var(--color-ink-soft); }
.bf-editorial .bf-list li::before { content: ""; position: absolute; left: 0; top: .9em; width: 12px; height: 1px; background: var(--color-ember); }

/* お願い(英字連番) */
.bf-editorial .bf-reqs { list-style: none; counter-reset: bfreq; padding: 0; margin: 6px 0 0; display: flex; flex-direction: column; gap: 18px; }
.bf-editorial .bf-reqs li { counter-increment: bfreq; display: flex; gap: 18px; align-items: flex-start; font-size: 15px; color: var(--color-ink-soft); }
.bf-editorial .bf-reqs li::before { content: counter(bfreq, decimal-leading-zero); flex: 0 0 auto; font-family: var(--font-en); font-size: 16px; color: var(--color-ember); border-bottom: 1px solid var(--color-ember); padding-bottom: 1px; min-width: 26px; }
.bf-editorial .bf-reqs strong { color: var(--color-ink); font-weight: 600; }

/* 波線ディバイダ(描かれる) */
.bf-editorial .bf-wave { display: block; width: 100%; height: 28px; margin: 4px 0; }
.bf-editorial .bf-wave path { fill: none; stroke: var(--color-line); stroke-width: 1.4; stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.2s ease; }
.bf-editorial .bf-wave.in path { stroke-dashoffset: 0; }

/* お問い合わせ CTA */
.bf-editorial .bf-cta { text-align: center; padding: 56px 24px; background: var(--color-paper-deep); margin-top: 24px; }
.bf-editorial .bf-cta .bf-eyebrow { color: var(--color-wood); }
.bf-editorial .bf-cta-title { font-family: var(--font-serif); font-size: 24px; font-weight: 600; color: var(--color-ink); margin: 0 0 14px; letter-spacing: .06em; }
.bf-editorial .bf-cta p { font-size: 15px; color: var(--color-ink-soft); margin: 0 0 22px; }
.bf-editorial .bf-cta .bf-btn { display: inline-block; font-family: var(--font-serif); font-size: 15px; letter-spacing: .1em; color: #fff; background: var(--color-indigo); padding: 14px 38px; text-decoration: none; transition: background .3s ease; }
.bf-editorial .bf-cta .bf-btn:hover { background: var(--color-ember); }

/* ボタン群 / ゴースト(枠線)ボタン / 電話 */
.bf-editorial .bf-btns { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 8px; }
.bf-editorial .bf-cta .bf-btns { justify-content: center; }
.bf-editorial .bf-btn-ghost { display: inline-block; font-family: var(--font-serif); font-size: 14px; letter-spacing: .08em; color: var(--color-ink); border: 1px solid var(--color-line); padding: 13px 30px; text-decoration: none; transition: border-color .25s ease, color .25s ease; }
.bf-editorial .bf-btn-ghost:hover { border-color: var(--color-ember); color: var(--color-ember); }
.bf-editorial .bf-phone { font-family: var(--font-en); font-size: 19px; letter-spacing: .04em; margin: 18px 0 0; }
.bf-editorial .bf-phone a { color: var(--color-ink); text-decoration: none; }
.bf-editorial .bf-cta .bf-phone, .bf-editorial .bf-cta .bf-btns { text-align: center; }

/* 料金表 */
.bf-editorial .bf-table-wrap { overflow-x: auto; margin-top: 8px; }
.bf-editorial .bf-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.bf-editorial .bf-table th { padding: 12px 10px; text-align: right; font-weight: 500; color: var(--color-ink-soft); font-size: 12.5px; border-bottom: 2px solid var(--color-ember); white-space: nowrap; }
.bf-editorial .bf-table th:first-child { text-align: left; }
.bf-editorial .bf-table td { padding: 13px 10px; text-align: right; border-bottom: 1px solid var(--color-line); white-space: nowrap; }
.bf-editorial .bf-table tr:last-child td { border-bottom: 0; }
.bf-editorial .bf-table td:first-child { text-align: left; font-family: var(--font-serif); color: var(--color-ink); }
.bf-editorial .bf-table .num { font-family: var(--font-en); font-size: 15px; color: var(--color-ink); }
.bf-editorial .bf-table .dur { font-family: var(--font-en); color: var(--color-stone); }

@media (min-width: 768px) {
  .bf-editorial .bf-title { font-size: 28px; }
  /* アイコン分のインデントで道のり・詳細を見出しと揃える */
  .bf-editorial .bf-flow, .bf-editorial .bf-route-detail, .bf-editorial .bf-journey { padding-left: 70px; }
  .bf-editorial .bf-route .bf-note { margin-left: 70px; }
}
@media (prefers-reduced-motion: reduce) {
  .bf-editorial .bf-title::after { transform: scaleX(1) !important; transition: none !important; }
  .bf-editorial .bf-wave path { stroke-dashoffset: 0 !important; transition: none !important; }
  .bf-editorial .bf-boat { animation: none !important; opacity: 1 !important; }
}
/* ===== /SUBPAGE-EDITORIAL-V1 ===== */
