/* ==========================================================================
   Rooton Chiropractic — Premium CSS
   Luxury Private Salon Aesthetic
   Version: 2.0.0
   ========================================================================== */

/* ==========================================================================
   01. Design Tokens
   ========================================================================== */
:root {
  /* Colors */
  --rt-white: #FFFFFF;
  --rt-cream: #FAF8F4;
  --rt-warm-gray: #F0EDE8;
  --rt-greige: #B8AFA3;
  --rt-earth: #8B8178;
  --rt-deep-green: #3A4F3F;
  --rt-dark: #1E1E1E;
  --rt-gold: #C5A059;
  --rt-text: #2D2D2D;
  --rt-text-sub: #555555;
  --rt-text-muted: #6E6E6E;

  /* Typography */
  --rt-font-serif: "Shippori Mincho", "Cormorant Garamond", serif;
  --rt-font-sans: "Noto Sans JP", -apple-system, BlinkMacSystemFont, sans-serif;
  --rt-font-en: "Cormorant Garamond", serif;

  /* Spacing (8px grid) */
  --rt-space-xs: 4px;
  --rt-space-sm: 8px;
  --rt-space-md: 16px;
  --rt-space-lg: 24px;
  --rt-space-xl: 32px;
  --rt-space-2xl: 48px;
  --rt-space-3xl: 64px;
  --rt-space-4xl: 96px;
  --rt-space-5xl: 128px;

  /* Transitions */
  --rt-ease: cubic-bezier(0.25, 0.8, 0.25, 1);
  --rt-transition: all 0.4s var(--rt-ease);

  /* Shadows */
  --rt-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.04);
  --rt-shadow-md: 0 4px 20px rgba(0, 0, 0, 0.06);
  --rt-shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.08);

  /* Radii */
  --rt-radius-sm: 4px;
  --rt-radius-md: 8px;
  --rt-radius-lg: 16px;
  --rt-radius-xl: 24px;

  /* Container */
  --rt-container: 1100px;
}

/* ==========================================================================
   02. Reset & Base
   ========================================================================== */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  overflow-x: hidden;
  width: 100%;
  max-width: 100%;
}

body {
  background: var(--rt-cream);
  color: var(--rt-text);
  font-family: var(--rt-font-sans);
  font-weight: 400;
  line-height: 1.8;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  width: 100%;
  max-width: 100%;
  position: relative;
}

img,
video {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
  transition: var(--rt-transition);
}

ul,
ol {
  list-style: none;
}

button {
  cursor: pointer;
  background: none;
  border: none;
  font-family: inherit;
  font-size: inherit;
  color: inherit;
}

::selection {
  background: var(--rt-deep-green);
  color: var(--rt-white);
}

/* ==========================================================================
   03. Multilingual Toggle
   ========================================================================== */
.lang-en,
svg text.lang-en,
svg tspan.lang-en,
svg g.lang-en {
  display: none !important;
}

html[lang="en"] .lang-jp,
body.is-en .lang-jp,
html[lang="en"] svg text.lang-jp,
body.is-en svg text.lang-jp,
html[lang="en"] svg tspan.lang-jp,
body.is-en svg tspan.lang-jp,
html[lang="en"] svg g.lang-jp,
body.is-en svg g.lang-jp {
  display: none !important;
}

html[lang="en"] .lang-en,
body.is-en .lang-en {
  display: inline !important;
}

html[lang="en"] p.lang-en,
body.is-en p.lang-en,
html[lang="en"] div.lang-en,
body.is-en div.lang-en,
html[lang="en"] h1.lang-en,
body.is-en h1.lang-en,
html[lang="en"] h2.lang-en,
body.is-en h2.lang-en,
html[lang="en"] h3.lang-en,
body.is-en h3.lang-en,
html[lang="en"] h4.lang-en,
body.is-en h4.lang-en,
html[lang="en"] li.lang-en,
body.is-en li.lang-en,
html[lang="en"] dt.lang-en,
body.is-en dt.lang-en,
html[lang="en"] dd.lang-en,
body.is-en dd.lang-en,
html[lang="en"] blockquote.lang-en,
body.is-en blockquote.lang-en {
  display: block !important;
}

html[lang="en"] span.lang-en,
body.is-en span.lang-en {
  display: inline !important;
}

html[lang="en"] svg text.lang-en,
body.is-en svg text.lang-en,
html[lang="en"] svg tspan.lang-en,
body.is-en svg tspan.lang-en,
html[lang="en"] svg g.lang-en,
body.is-en svg g.lang-en {
  display: inline !important;
}

html[lang="en"] .lang-en--flex,
body.is-en .lang-en--flex {
  display: flex !important;
}

/* ==========================================================================
   04. Utilities
   ========================================================================== */
.rt-container {
  max-width: var(--rt-container);
  margin: 0 auto;
  padding: 0 24px;
}

/* ==========================================================================
   Responsive Line Breaks & Word Keep Utilities
   ========================================================================== */
.rt-keep {
  display: inline-block;
  white-space: nowrap;
  max-width: 100%;
}

.rt-name-keep {
  display: inline-block;
  white-space: nowrap !important;
  font-weight: inherit;
  letter-spacing: normal;
}

/* 日本語の厳格な行頭禁則処理（促音「っ」や拗音「ゃ」「ゅ」「ょ」、句読点の行頭落ち完全防止） */
body, h1, h2, h3, h4, p, li, span, strong, a, blockquote {
  line-break: strict;
  -webkit-line-break: strict;
}

/* Modern Typography Wrapping: Prevent orphan characters and balance headings */
h1, h2, h3, h4, h5, h6,
.rt-hero-title,
.rt-section-title,
.rt-empathy-title,
.rt-concern-title,
.rt-hub-feature-title,
.rt-interview-title,
.rt-pricing-title,
.rt-sub-hero-title,
.rt-sub-heading,
.rt-sub-subheading,
.rt-sub-price-title,
.rt-sub-flow-body h3,
.rt-case-card-title,
.rt-faq-q,
.rt-final-cta-box h3,
.rt-sub-policy-box h4,
.rt-sub-highlight-box h4,
.rt-sub-cause-box h4,
.rt-vs-title-bad,
.rt-vs-title-good {
  text-wrap: balance;
}

p,
li,
blockquote,
.rt-hero-lead-concept,
.rt-section-desc,
.rt-concern-desc,
.rt-hub-feature-desc,
.rt-interview-quote,
.rt-pricing-desc,
.rt-empathy-revelation-desc,
.rt-sub-body-text p,
.rt-sub-story-block p,
.rt-sub-flow-body p,
.rt-faq-answer p,
.rt-case-excerpt,
.rt-sub-sidebar-desc,
.rt-sub-price-detail,
.rt-vs-desc-bad,
.rt-vs-desc-good {
  text-wrap: pretty;
}

@media (min-width: 768px) {
  .rt-sp-br,
  .rt-sp-only {
    display: none !important;
  }
  .rt-pc-br,
  .rt-pc-only {
    display: inline !important;
  }
}

@media (max-width: 767px) {
  .rt-pc-br,
  .rt-pc-only {
    display: none !important;
  }
  .rt-sp-br,
  .rt-sp-only {
    display: inline !important;
  }
}


.rt-section {
  padding: 100px 0;
}

@media (max-width: 767px) {
  .rt-section {
    padding: 64px 0;
  }
}

.rt-section-label {
  font-family: var(--rt-font-en);
  font-size: 0.8125rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--rt-gold);
  font-weight: 500;
  margin-bottom: 12px;
}

.rt-section-title {
  font-family: var(--rt-font-serif);
  font-size: clamp(1.5rem, 4vw, 2.5rem);
  font-weight: 500;
  color: var(--rt-dark);
  line-height: 1.4;
  letter-spacing: 0.05em;
}

.rt-section-header {
  text-align: center;
  margin-bottom: var(--rt-space-3xl);
}

.rt-bg-light {
  background: var(--rt-white);
}

.rt-bg-dark {
  background: var(--rt-dark);
  color: var(--rt-white);
}

/* ==========================================================================
   05. Header
   ========================================================================== */
.rt-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  background: rgba(250, 248, 244, 0.88);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  transition: background 0.25s ease, box-shadow 0.25s ease;
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.rt-header.is-scrolled {
  background: rgba(250, 248, 244, 0.98);
  box-shadow: 0 1px 12px rgba(0, 0, 0, 0.06);
}

.rt-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1240px;
  margin: 0 auto;
  padding: 10px 24px;
}

/* Logo & Sub-tagline */
.rt-header-logo {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
}

.rt-header-logo a {
  display: flex;
  align-items: center;
}

.rt-header-logo img {
  height: 44px;
  width: auto;
  object-fit: contain;
}

.rt-header-tagline {
  font-family: var(--rt-font-sans, "Noto Sans JP", sans-serif);
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  color: #6E685F;
  margin-top: 3px;
  line-height: 1.2;
  white-space: nowrap;
  font-weight: 500;
  display: block;
}

@media (min-width: 768px) {
  .rt-header-logo img {
    height: 52px;
  }
  .rt-header-tagline {
    font-size: 0.71875rem;
    letter-spacing: 0.1em;
    margin-top: 4px;
  }
}

@media (max-width: 767px) {
  .rt-header-tagline {
    font-size: 0.59375rem;
    letter-spacing: 0.04em;
    margin-top: 2px;
  }
}

/* Navigation */
.rt-header-nav {
  display: none;
}

@media (min-width: 1024px) and (min-aspect-ratio: 1/1) {
  .rt-header-nav {
    display: flex;
    align-items: center;
  }
}

.rt-nav-list {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: nowrap;
}

@media (min-width: 1200px) {
  .rt-nav-list {
    gap: 22px;
  }
}

.rt-nav-item a {
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--rt-text);
  letter-spacing: 0.03em;
  position: relative;
  padding: 6px 0;
  white-space: nowrap;
  display: inline-block;
}

.rt-nav-item a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 1.5px;
  background: var(--rt-gold);
  transition: width 0.3s var(--rt-ease);
}

.rt-nav-item a:hover {
  color: var(--rt-deep-green);
}

.rt-nav-item a:hover::after {
  width: 100%;
}

/* Mobile Nav Overlay */
@media (max-width: 1023px) {
  .rt-header-nav.is-open {
    display: flex;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(250, 248, 244, 0.98);
    backdrop-filter: blur(30px);
    -webkit-backdrop-filter: blur(30px);
    z-index: 999;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    animation: rtFadeIn 0.3s ease;
    overflow-y: auto;
    padding: 60px 24px;
  }

  .rt-header-nav.is-open .rt-nav-list {
    flex-direction: column;
    gap: 20px;
    align-items: center;
  }

  .rt-header-nav.is-open .rt-nav-item a {
    font-size: 1.125rem;
    font-family: var(--rt-font-serif);
    letter-spacing: 0.08em;
  }
}

/* Header Actions */
.rt-header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

/* Language Toggle */
.rt-lang-toggle {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border: 1px solid var(--rt-greige);
  border-radius: 20px;
  font-size: 0.75rem;
  letter-spacing: 0.05em;
  color: var(--rt-text-sub);
  transition: var(--rt-transition);
}

.rt-lang-toggle:hover {
  border-color: var(--rt-deep-green);
  color: var(--rt-deep-green);
}

.rt-icon-globe::before {
  content: '';
  display: inline-block;
  width: 14px;
  height: 14px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B4D36' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='2' y1='12' x2='22' y2='12'/%3E%3Cpath d='M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z'/%3E%3C/svg%3E") no-repeat center center / contain;
  vertical-align: middle;
  margin-right: 4px;
}

/* Header CTA */
.rt-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--rt-deep-green);
  color: var(--rt-white);
  padding: 10px 24px;
  border-radius: var(--rt-radius-sm);
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  transition: var(--rt-transition);
  white-space: nowrap;
}

.rt-btn-primary:hover {
  background: #2F4133;
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(58, 79, 63, 0.25);
}

.rt-desktop-only {
  display: none !important;
}
.rt-mobile-only {
  display: inline !important;
}

.rt-header-cta {
  display: inline-flex !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
  padding: 6px 12px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  border-radius: 20px;
  flex-shrink: 0;
  line-height: 1.2;
}

@media (max-width: 767px) {
  .rt-header-inner,
  .rooton-header__container {
    padding: 8px 12px;
    gap: 8px;
    width: 100%;
    box-sizing: border-box;
  }
  .rt-header-logo {
    flex-shrink: 1;
    min-width: 0;
  }
  .rt-header-logo img,
  .rooton-header__logo-img {
    height: 32px;
    width: auto;
  }
  .rt-header-tagline {
    font-size: 0.625rem;
    letter-spacing: 0.04em;
    color: #8A857D;
    margin-top: 2px;
    line-height: 1.1;
    white-space: nowrap;
  }
  .rt-header-actions,
  .rooton-header__actions {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
  }
  .rt-lang-toggle {
    padding: 5px 6px;
    font-size: 0.6875rem;
    gap: 3px;
    min-height: 32px;
    border-radius: 14px;
    flex-shrink: 0;
  }
  .rt-header-cta {
    width: auto !important;
    max-width: none !important;
    padding: 5px 10px !important;
    font-size: 0.6875rem !important;
    font-weight: 700 !important;
    min-height: 32px !important;
    height: 32px !important;
    border-radius: 16px !important;
    flex-shrink: 0 !important;
    letter-spacing: 0.02em !important;
  }
  .rt-hamburger {
    width: 36px;
    height: 36px;
    min-width: 36px;
    min-height: 36px;
    padding: 0;
    flex-shrink: 0;
  }
}

@media (min-width: 1024px) {
  .rt-desktop-only {
    display: inline !important;
  }
  .rt-mobile-only {
    display: none !important;
  }
  .rt-header-cta {
    padding: 10px 22px;
    font-size: 0.875rem;
    letter-spacing: 0.08em;
  }
}

/* Hamburger */
.rt-hamburger {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 44px;
  height: 44px;
  gap: 5px;
  z-index: 1001;
}

.rt-hamburger-line {
  display: block;
  width: 22px;
  height: 1.5px;
  background: var(--rt-text);
  transition: all 0.3s var(--rt-ease);
  transform-origin: center;
}

.rt-hamburger.is-open .rt-hamburger-line:nth-child(1) {
  transform: translateY(6.5px) rotate(45deg);
}

.rt-hamburger.is-open .rt-hamburger-line:nth-child(2) {
  opacity: 0;
}

.rt-hamburger.is-open .rt-hamburger-line:nth-child(3) {
  transform: translateY(-6.5px) rotate(-45deg);
}

@media (min-width: 1024px) and (min-aspect-ratio: 1/1) {
  .rt-hamburger {
    display: none;
  }
}

/* ==========================================================================
   06. Hero (Full-Screen Immersive Cinematic Stage - Pro Web Designer Edition)
   ========================================================================== */
.rt-hero {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background-color: #08100C;
  overflow: hidden;
  padding: 100px 20px 80px;
  box-sizing: border-box;
}

/* Background Cinematic Video Stage (Edge-to-Edge Fullscreen) */
.rt-hero-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.rt-hero-bg .rt-hero-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Responsive Video Switching: Desktop (16:9) & Mobile (9:16) */
.rt-hero-bg .rt-hero-video--desktop {
  display: none;
}
.rt-hero-bg .rt-hero-video--mobile {
  display: block;
  object-position: 52% center; /* ★ 文字エリアと人物・背骨の間に贅沢な余白を確保する最適フレーミング */
  opacity: 0.96;
}

@media (min-width: 992px) and (min-aspect-ratio: 1/1) {
  .rt-hero-bg .rt-hero-video--desktop {
    display: block;
    /* 右側に背骨と人物の優しい光を美しく配置し、左側に静謐な石壁・建築の余白（タイポグラフィ空間）を創出 */
    object-position: 68% center;
    opacity: 0.98;
  }
  .rt-hero-bg .rt-hero-video--mobile {
    display: none;
  }
}

/* Multi-Layer Cinematic Gradient Overlay (Dual-Veil & Vignette) */
.rt-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: 
    /* 水平シネマベール：左側0〜50%で深遠なフォレスト・ノワールを敷き、明るい新緑の窓辺でも文字が瞬時に読める高コントラストを確立。右側65〜100%は人物と背骨の透明な光を透過 */
    linear-gradient(90deg, 
      rgba(5, 11, 8, 0.98) 0%, 
      rgba(5, 11, 8, 0.92) 45%, 
      rgba(5, 11, 8, 0.65) 60%, 
      rgba(5, 11, 8, 0.15) 80%, 
      rgba(5, 11, 8, 0.35) 100%
    ),
    /* 垂直ビネット：ヘッダー下と下部セクションへの自然な境界調律 */
    linear-gradient(180deg, 
      rgba(5, 11, 8, 0.90) 0%, 
      rgba(5, 11, 8, 0.15) 30%, 
      rgba(5, 11, 8, 0.40) 70%, 
      rgba(3, 7, 5, 0.98) 100%
    );
}

/* PCデスクトップ専用グラデーション：横長画面（min-aspect-ratio: 1/1）のみ水平シネマベールを適用 */
@media (min-width: 992px) and (min-aspect-ratio: 1/1) {
  .rt-hero-overlay {
    background:
      /* 水平シネマベール：左側0〜45%でテキストを完璧に浮き立たせ、右側65〜100%は美しい新緑と施術空間の光を透過 */
      linear-gradient(90deg, 
        rgba(5, 11, 8, 0.96) 0%, 
        rgba(5, 11, 8, 0.88) 35%, 
        rgba(5, 11, 8, 0.45) 55%, 
        rgba(5, 11, 8, 0.10) 75%,
        rgba(5, 11, 8, 0.25) 100%
      ),
      /* 垂直ビネット：ヘッダー下とスクロールガイド下を自然に暗転・接続 */
      linear-gradient(180deg, 
        rgba(5, 11, 8, 0.88) 0%, 
        transparent 22%, 
        transparent 75%, 
        rgba(3, 7, 5, 0.96) 100%
      );
  }
}

/* Hero Container (Immersive Single Stage, No 2-Column Clutter) */
.rt-hero-container {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1260px;
  margin: 0 auto;
  padding: 0 1.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start; /* ★ 常に左寄せ（画像・背骨が右側にあるため文字被り防止） */
}

@media (min-width: 992px) and (min-aspect-ratio: 1/1) {
  .rt-hero-container {
    padding: 0 3.5rem;
    align-items: flex-start;
  }
}

/* Content Area (Cinematic Typography & Spacious Luxury Balance) */
.rt-hero-content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: min(65%, 680px); /* ★ 右側の人物・背骨（X=84%〜）の余白を活かし伸びやかに配置 */
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  text-align: left; /* ★ 常に左揃え */
  align-items: flex-start; /* ★ 常に左寄せ */
}

@media (min-width: 992px) and (min-aspect-ratio: 1/1) {
  .rt-hero-content {
    max-width: min(65%, 680px);
    text-align: left;
    align-items: flex-start;
    gap: 1.65rem;
  }
  .rt-hero-title {
    text-align: left;
  }
  .rt-hero-concept-card {
    margin-left: 0;
    margin-right: auto;
  }
}

/* Left-Top SEO Tag Badge (品格あるブランド・拠点・専門性の提示) */
.rt-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: rgba(14, 24, 18, 0.72);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(229, 195, 120, 0.4);
  border-radius: 9999px;
  padding: 6px 18px;
  font-family: var(--rt-font-sans, "Noto Sans JP", sans-serif);
  font-size: 0.8125rem;
  color: #F7E5B5;
  letter-spacing: 0.1em;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.1);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  text-decoration: none;
  width: fit-content;
  user-select: none;
}

.rt-hero-badge-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #E5C378;
  box-shadow: 0 0 10px rgba(229, 195, 120, 0.9);
  flex-shrink: 0;
  display: inline-block;
}

/* Accessibility & Senior SEO Hidden Text (W3C Standard) */
.rt-u-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* メインタイトル：白文字×高コントラスト・シャンパンゴールドの優美なコントラスト */
.rt-hero-title {
  font-family: var(--rt-font-serif, "Shippori Mincho", "Cinzel", serif);
  margin: 0;
  text-align: left; /* ★ 左揃え */
  word-break: normal;
  overflow-wrap: break-word;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.95), 0 4px 40px rgba(0, 0, 0, 0.85);
}

/* サブ見出し（呼びかけ）：軽やかで上品な呼吸感（固まり感を完全に解消） */
.rt-hero-title-sub {
  display: block;
  font-size: clamp(0.9375rem, 1.45vw, 1.125rem);
  font-weight: 400;
  letter-spacing: 0.12em;
  color: rgba(250, 249, 245, 0.95);
  margin-bottom: 12px;
  line-height: 1.65;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.95);
}

/* メイン見出し（解決策・約束）：力強く伸びやかなタイポグラフィ */
.rt-hero-title-main {
  display: block;
  font-size: clamp(1.65rem, 3.4vw, 2.65rem);
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1.42;
  color: #FFFFFF;
}

.rt-hero-title-gold {
  background: linear-gradient(135deg, #FFF5D0 0%, #F3D27E 35%, #D4AF37 70%, #A88328 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  display: block;
  margin-top: 12px;
  font-size: clamp(1.125rem, 2.2vw, 1.625rem);
  line-height: 1.45;
  font-weight: 600;
  letter-spacing: 0.06em;
  filter: drop-shadow(0 2px 12px rgba(0, 0, 0, 0.95)) drop-shadow(0 0 16px rgba(229, 195, 120, 0.35));
}

/* 英語表示時の最適化（適切なフォントサイズと改行制御） */
.lang-en .rt-hero-title-sub {
  letter-spacing: 0.04em;
  font-size: clamp(0.875rem, 1.35vw, 1.05rem);
}

.lang-en .rt-hero-title-main {
  font-size: clamp(1.45rem, 3.1vw, 2.35rem);
  letter-spacing: 0.04em;
  line-height: 1.35;
}

.lang-en .rt-hero-title-gold {
  font-size: clamp(1.05rem, 2.1vw, 1.5rem);
  letter-spacing: 0.04em;
  line-height: 1.4;
}

.lang-en .rt-hero-concept-row {
  white-space: normal;
  word-break: normal;
}

.rt-hero-title-nowrap {
  white-space: nowrap;
  display: inline-block;
}

/* 身体の取扱説明書メッセージ（重い箱感を完全排除したオープン・プラーク） */
.rt-hero-concept-card {
  position: relative;
  margin: 14px 0 0; /* ★ 呼吸できる余白 */
  max-width: 580px;
  width: 100%;
  padding: 16px 24px 16px 20px;
  background: linear-gradient(135deg, rgba(14, 24, 18, 0.55) 0%, rgba(8, 16, 12, 0.4) 100%);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: none;
  border-left: 2.5px solid var(--rt-gold, #C5A059); /* ★ 左端ゴールドラインで空間と調和 */
  border-radius: 0 12px 12px 0;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.08);
  text-align: left; /* ★ 左揃え */
  display: flex;
  flex-direction: column;
  gap: 8px;
  box-sizing: border-box;
  overflow: hidden;
}

.rt-hero-concept-row {
  line-height: 1.55;
}

.rt-hero-concept-row--highlight {
  font-family: var(--rt-font-sans, "Noto Sans JP", sans-serif);
  font-size: clamp(0.8125rem, 1.25vw, 0.9375rem);
  font-weight: 500;
  color: #FFFFFF;
  letter-spacing: 0.05em;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.8);
}

.rt-hero-concept-row--specs {
  font-family: var(--rt-font-sans, "Noto Sans JP", sans-serif);
  font-size: clamp(0.78125rem, 1.15vw, 0.875rem);
  color: rgba(250, 249, 245, 0.92);
  letter-spacing: 0.06em;
  display: flex;
  align-items: center;
  justify-content: flex-start; /* ★ 左寄せ */
  gap: 8px;
  flex-wrap: wrap;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.8);
}

.rt-hero-sep {
  color: #E5C378;
  font-size: 0.75rem;
  opacity: 0.85;
}

.rt-hero-concept-row--promise {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: clamp(0.875rem, 1.35vw, 1.0625rem);
  font-weight: 600;
  color: #F7E4A8;
  letter-spacing: 0.08em;
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.9), 0 0 16px rgba(229, 195, 120, 0.3);
  padding-top: 6px;
  border-top: 1px solid rgba(229, 195, 120, 0.2);
  margin-top: 2px;
  text-wrap: balance;
}

@media (max-width: 767px) {
  .rt-hero-content {
    gap: 14px;
    text-align: left;
    align-items: flex-start;
    max-width: min(80%, 340px); /* ★ スマホで文字が固まらないよう自然な広がりを確保 */
  }
  .rt-hero-badge {
    padding: 5px 14px;
    font-size: 0.75rem;
    gap: 7px;
    margin-bottom: 4px;
  }
  .rt-hero-badge-dot {
    width: 6px;
    height: 6px;
  }
  .rt-hero-title {
    text-align: left;
  }
  .rt-hero-title-sub {
    font-size: 0.8125rem;
    letter-spacing: 0.05em;
    margin-bottom: 6px;
    text-align: left;
    line-height: 1.5;
  }
  .rt-hero-title-main {
    font-size: clamp(1.25rem, 5.2vw, 1.5rem);
    letter-spacing: 0.04em;
    line-height: 1.42;
    text-align: left;
  }
  .rt-hero-title-gold {
    font-size: clamp(0.875rem, 3.8vw, 1.0625rem);
    letter-spacing: 0.04em;
    margin-top: 6px;
    text-align: left;
  }
  .rt-hero-concept-card {
    margin: 8px 0 0; /* ★ 左寄せ */
    padding: 12px 16px 12px 14px;
    gap: 6px;
    border-radius: 0 10px 10px 0;
    width: 100%;
    max-width: 100%;
    text-align: left;
  }
  .rt-hero-concept-row--highlight {
    font-size: 0.75rem;
    line-height: 1.4;
  }
  .rt-hero-concept-row--specs {
    font-size: 0.71875rem;
    gap: 4px;
    line-height: 1.4;
  }
  .rt-hero-concept-row--promise {
    font-size: 0.8125rem;
    padding-top: 4px;
    line-height: 1.42;
  }
}

/* アプローチバッジピル */
.rt-hero-approach-pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: rgba(255, 255, 255, 0.07);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid rgba(197, 160, 89, 0.32);
  border-radius: 9999px;
  padding: 6px 18px;
  font-size: clamp(0.75rem, 1.2vw, 0.8125rem);
  color: #FAF9F5;
  letter-spacing: 0.06em;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.25);
}

.rt-approach-badge {
  background: #C5A059;
  color: #0E1812;
  font-weight: 700;
  font-size: 0.6875rem;
  padding: 2px 8px;
  border-radius: 9999px;
  letter-spacing: 0.05em;
}

/* CTAボタングループ */
.rt-hero-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 12px;
  flex-wrap: wrap;
}

.rt-hero-cta {
  background: linear-gradient(135deg, #C5A059 0%, #B8860B 100%) !important;
  color: #14241B !important;
  font-weight: 700 !important;
  padding: 14px 36px !important;
  font-size: 0.9375rem !important;
  letter-spacing: 0.12em !important;
  border-radius: 9999px !important;
  box-shadow: 0 8px 24px rgba(197, 160, 89, 0.35) !important;
  transition: all 0.3s ease !important;
}

.rt-hero-cta:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 12px 32px rgba(197, 160, 89, 0.5) !important;
  background: linear-gradient(135deg, #D4AF37 0%, #C5A059 100%) !important;
}

/* Hero Bottom Scroll Guide (Senior Engineer Optimal Layout: Placed at bottom of viewport for focused headline readability) */
.rt-hero-scroll-guide {
  position: absolute;
  bottom: 34px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: center;
  pointer-events: auto;
  animation: rtGuideBounce 2.5s ease-in-out infinite;
}

.rt-hero-guide-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: rgba(14, 24, 18, 0.75);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(197, 160, 89, 0.55);
  color: #FAF9F5;
  padding: 10px 24px;
  font-size: clamp(0.8125rem, 1.3vw, 0.90625rem);
  font-weight: 500;
  letter-spacing: 0.1em;
  border-radius: 9999px;
  text-decoration: none;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35), 0 0 16px rgba(197, 160, 89, 0.18);
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  white-space: nowrap;
}

.rt-hero-guide-text {
  display: inline-block;
  white-space: nowrap;
  line-height: 1;
}

.rt-hero-guide-pill:hover {
  background: rgba(20, 36, 27, 0.92);
  border-color: #E5C378;
  color: #FFFFFF;
  box-shadow: 0 6px 28px rgba(0, 0, 0, 0.45), 0 0 24px rgba(197, 160, 89, 0.35);
  transform: translateY(-2px);
}

.rt-hero-guide-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.95rem;
  color: #E5C378;
  transition: transform 0.3s ease;
  line-height: 1;
  margin-left: 2px;
}

.rt-hero-guide-pill:hover .rt-hero-guide-arrow {
  transform: translateY(3px);
  color: #F3E5AB;
}

@keyframes rtGuideBounce {
  0%, 100% {
    transform: translateX(-50%) translateY(0);
  }
  50% {
    transform: translateX(-50%) translateY(7px);
  }
}

@media (max-width: 767px) {
  .rt-hero-content {
    padding: 0 16px;
    gap: 14px;
  }
  .rt-hero-sub-approach-wrap {
    margin-top: -10px;
    margin-bottom: 26px;
  }
  .rt-hero-eyebrow {
    font-size: 0.6875rem; /* 11px: 決して改行させず上品にまとめる */
    letter-spacing: 0.06em;
    padding: 3px 12px;
    margin-bottom: 12px;
    white-space: nowrap;
  }
  .rt-hero-title {
    font-size: clamp(1.25rem, 5vw, 1.45rem);
    font-weight: 600;
    letter-spacing: 0.03em;
    line-height: 1.5;
    word-break: normal;
    overflow-wrap: break-word;
  }
  .rt-hero-title-gold {
    display: block;
    margin-top: 4px;
    font-size: clamp(0.95rem, 3.8vw, 1.15rem);
    line-height: 1.4;
    font-weight: 600;
  }
  .rt-hero-sub-approach {
    font-size: clamp(0.72rem, 3.1vw, 0.8125rem);
    letter-spacing: 0.05em;
    white-space: nowrap;
  }
  .rt-hero-scroll-guide {
    bottom: 22px;
  }
  .rt-hero-guide-pill {
    padding: 9px 20px;
    font-size: 0.8125rem;
    gap: 6px;
    white-space: nowrap;
  }
  .rt-hero-guide-text {
    white-space: nowrap;
    line-height: 1;
  }
  .rt-hero-guide-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9375rem;
    color: #E5C378;
    line-height: 1;
    margin-left: 2px;
  }
}

/* ==========================================================================
   07. Concept
   ========================================================================== */
.rt-concept {
  background: var(--rt-white);
}

.rt-concept-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--rt-space-2xl);
  align-items: center;
  width: 100%;
  min-width: 0;
}

@media (min-width: 768px) {
  .rt-concept-inner {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: var(--rt-space-3xl);
  }
}

.rt-concept-image,
.rt-concept-text {
  min-width: 0;
}

.rt-concept-image img {
  border-radius: var(--rt-radius-lg);
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.rt-concept-desc p {
  font-size: 0.9375rem;
  line-height: 2;
  color: var(--rt-text-sub);
  margin-bottom: var(--rt-space-xl);
}

.rt-concept-quote {
  border-left: 2px solid var(--rt-gold);
  padding-left: var(--rt-space-lg);
  margin-top: var(--rt-space-xl);
}

.rt-concept-quote p {
  font-family: var(--rt-font-serif);
  font-style: italic;
  font-size: 1.0625rem;
  color: var(--rt-deep-green);
  line-height: 1.8;
}

/* --- Brand Origin Card (Root & Tone) --- */
.rt-brand-origin-card {
  margin-top: 1.75rem;
  background: linear-gradient(135deg, rgba(253, 252, 250, 0.98), rgba(246, 244, 239, 0.98));
  border: 1px solid rgba(197, 160, 89, 0.35);
  border-radius: 12px;
  padding: 1.5rem;
  box-shadow: 0 4px 20px rgba(45, 62, 53, 0.04);
}

.rt-brand-origin-header {
  margin-bottom: 1.25rem;
}

.rt-brand-origin-badge {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--rt-gold);
  background: rgba(197, 160, 89, 0.12);
  padding: 0.25rem 0.625rem;
  border-radius: 4px;
  text-transform: uppercase;
  margin-bottom: 0.5rem;
}

.rt-brand-origin-title {
  font-family: var(--rt-font-serif);
  font-size: 1.1875rem;
  font-weight: 700;
  color: var(--rt-deep-green);
  line-height: 1.4;
  margin: 0;
}

.rt-brand-origin-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

@media (min-width: 640px) {
  .rt-brand-origin-grid {
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
  }
}

.rt-brand-origin-col {
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 8px;
  padding: 1rem 1.125rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.02);
  display: flex;
  flex-direction: column;
}

.rt-brand-origin-col.rt-origin-root {
  border-top: 3px solid var(--rt-deep-green);
}

.rt-brand-origin-col.rt-origin-tone {
  border-top: 3px solid var(--rt-gold);
}

.rt-origin-chip {
  display: flex;
  align-items: baseline;
  gap: 0.375rem;
  margin-bottom: 0.5rem;
}

.rt-chip-en {
  font-family: var(--rt-font-serif);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--rt-deep-green);
}

.rt-origin-tone .rt-chip-en {
  color: #a67c33;
}

.rt-chip-sep {
  color: #ccc;
  font-size: 0.875rem;
}

.rt-chip-jp {
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--rt-text-sub);
}

.rt-origin-text {
  font-size: 0.875rem !important;
  line-height: 1.7 !important;
  color: var(--rt-text) !important;
  margin-bottom: 0 !important;
}

.rt-brand-origin-summary {
  font-size: 0.90625rem;
  line-height: 1.8;
  color: var(--rt-deep-green);
  background: rgba(91, 117, 102, 0.08);
  padding: 1rem 1.25rem;
  border-radius: 8px;
  margin: 0 auto;
  text-align: center;
  max-width: 780px;
}

/* --- True Self-Medication & Body-Mind Education Box --- */
.rt-concept-education-box {
  margin-top: 1.75rem;
  background: linear-gradient(135deg, rgba(250, 252, 250, 0.98), rgba(243, 247, 244, 0.98));
  border: 1px solid rgba(91, 117, 102, 0.28);
  border-left: 4px solid var(--rt-gold, #C5A059);
  border-radius: 12px;
  padding: 1.5rem;
  box-shadow: 0 4px 20px rgba(45, 62, 53, 0.05);
}

.rt-concept-edu-badge {
  margin-bottom: 0.75rem;
}

.rt-concept-edu-badge span {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: var(--rt-deep-green, #2D3E35);
  background: rgba(197, 160, 89, 0.18);
  padding: 0.25rem 0.625rem;
  border-radius: 4px;
}

.rt-concept-edu-title {
  font-family: var(--rt-font-serif, 'Shippori Mincho', serif);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--rt-deep-green, #2D3E35);
  line-height: 1.5;
  margin: 0 0 0.875rem 0;
}

@media (max-width: 640px) {
  .rt-concept-edu-title {
    font-size: 1.0625rem;
    line-height: 1.55;
  }
}

.rt-concept-edu-body p {
  font-size: 0.875rem !important;
  line-height: 1.85 !important;
  color: var(--rt-text, #333333) !important;
  margin: 0 !important;
}

.rt-concept-edu-body p + p {
  margin-top: 0.75rem !important;
}

/* --- Concept Extended 2-Column Grid (Brand Origin + Self-Medication) --- */
.rt-concept-extended-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-top: 2.25rem;
  width: 100%;
}

@media (min-width: 768px) {
  .rt-concept-extended-grid {
    grid-template-columns: 1fr 1fr;
    gap: 1.75rem;
    margin-top: 3rem;
    align-items: stretch;
  }
}

.rt-concept-extended-grid .rt-brand-origin-card,
.rt-concept-extended-grid .rt-concept-education-box {
  margin-top: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.rt-concept-extended-grid .rt-brand-origin-card {
  justify-content: space-between;
}

.rt-concept-extended-grid .rt-concept-education-box {
  justify-content: flex-start;
}

/* ==========================================================================
   07.5 Profile
   ========================================================================== */
.rt-profile {
  background: var(--rt-cream);
  border-top: 1px solid rgba(0, 0, 0, 0.04);
  border-bottom: 1px solid rgba(0, 0, 0, 0.04);
}

.rt-profile-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--rt-space-2xl);
  align-items: start;
  width: 100%;
  min-width: 0;
}

@media (min-width: 768px) {
  .rt-profile-inner {
    grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
    gap: var(--rt-space-3xl);
  }
}

.rt-profile-media-col {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

@media (min-width: 1024px) {
  .rt-profile-media-col {
    position: sticky;
    top: 96px;
    align-self: start;
  }
}

.rt-profile-image-wrap {
  position: relative;
  max-width: 420px;
  margin: 0 auto;
  width: 100%;
  min-width: 0;
}

.rt-profile-media-col .rt-profile-credentials {
  margin-top: 0;
  width: 100%;
  max-width: 420px;
  margin-left: auto;
  margin-right: auto;
}

.rt-profile-content {
  width: 100%;
  min-width: 0;
}

.rt-profile-frame {
  position: relative;
  border-radius: var(--rt-radius-xl);
  overflow: hidden;
  box-shadow: 0 16px 40px rgba(58, 79, 63, 0.12);
  border: 1px solid var(--rt-greige);
  background: var(--rt-white);
}

.rt-profile-img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center top;
  display: block;
}

.rt-profile-badge {
  position: absolute;
  bottom: -16px;
  right: 16px;
  background: var(--rt-dark);
  color: var(--rt-gold);
  border: 1px solid var(--rt-gold);
  padding: 8px 20px;
  border-radius: 30px;
  font-family: var(--rt-font-en);
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  font-weight: 500;
  box-shadow: var(--rt-shadow-md);
}

.rt-profile-name {
  font-family: var(--rt-font-serif);
  font-size: clamp(1.75rem, 3.5vw, 2.25rem);
  font-weight: 500;
  color: var(--rt-dark);
  margin-bottom: 6px;
  line-height: 1.3;
}

.rt-profile-sub {
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--rt-text-sub);
  margin-left: 12px;
  letter-spacing: 0.05em;
}

.rt-profile-title {
  font-size: 0.875rem;
  color: var(--rt-deep-green);
  font-weight: 500;
  letter-spacing: 0.05em;
  margin-bottom: var(--rt-space-xl);
  padding-bottom: 12px;
  border-bottom: 1px solid var(--rt-greige);
}

.rt-profile-message {
  font-size: 0.9375rem;
  line-height: 1.95;
  color: var(--rt-text);
  margin-bottom: var(--rt-space-xl);
}

.rt-profile-message p {
  margin-bottom: 16px;
}

/* Profile Philosophy & Bonsai / Onko-Chishin Card */
.rt-profile-philosophy-card {
  background: var(--rt-white);
  border: 1px solid rgba(197, 160, 89, 0.35);
  border-radius: var(--rt-radius-md);
  padding: 32px 28px;
  margin-bottom: var(--rt-space-xl);
  box-shadow: 0 4px 20px rgba(26, 35, 50, 0.05);
  position: relative;
}

@media (max-width: 767px) {
  .rt-profile-philosophy-card {
    padding: 24px 18px;
    margin-bottom: var(--rt-space-lg);
  }
}

.rt-profile-philosophy-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(197, 160, 89, 0.12);
  color: #8C6B28;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 4px 12px;
  border-radius: 12px;
  border: 1px solid rgba(197, 160, 89, 0.3);
  margin-bottom: 16px;
}

.rt-profile-philosophy-subtitle {
  font-family: var(--rt-font-serif);
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.55;
  color: var(--rt-deep-slate);
  margin-bottom: 18px;
}

@media (max-width: 767px) {
  .rt-profile-philosophy-subtitle {
    font-size: 1.125rem;
  }
}

.rt-profile-philosophy-body {
  font-size: 0.9375rem;
  line-height: 1.95;
  color: var(--rt-text);
}

.rt-profile-philosophy-body p {
  margin-bottom: 16px;
}

.rt-profile-philosophy-quote {
  margin: 24px 0;
  padding: 16px 20px;
  background: rgba(244, 246, 244, 0.9);
  border-left: 3px solid var(--rt-gold);
  border-radius: 0 var(--rt-radius-sm) var(--rt-radius-sm) 0;
  font-style: normal;
}

.rt-profile-philosophy-quote p {
  font-family: var(--rt-font-serif);
  font-size: 0.96875rem;
  font-weight: 600;
  color: var(--rt-deep-green);
  line-height: 1.8;
  margin-bottom: 8px;
}

.rt-profile-philosophy-quote p:last-child {
  margin-bottom: 0;
}

.rt-profile-lead {
  font-weight: 500;
  color: var(--rt-deep-green);
  background: rgba(58, 79, 63, 0.06);
  padding: 16px 20px;
  border-left: 3px solid var(--rt-deep-green);
  border-radius: 0 var(--rt-radius-sm) var(--rt-radius-sm) 0;
  font-size: 0.96875rem;
  line-height: 1.8;
}

/* --- Philosophy Card Accordion Toggle & Drawer --- */
.rt-philosophy-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: 1.25rem;
  padding: 11px 20px;
  background: rgba(197, 160, 89, 0.08);
  border: 1px solid rgba(197, 160, 89, 0.38);
  border-radius: var(--rt-radius-sm);
  color: #8C6B28;
  font-family: var(--rt-font-base);
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.25s ease;
  letter-spacing: 0.03em;
}

.rt-philosophy-toggle:hover {
  background: rgba(197, 160, 89, 0.16);
  border-color: #8C6B28;
  transform: translateY(-1px);
}

.rt-philosophy-drawer {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height 0.45s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.35s ease, margin 0.3s ease;
  margin-top: 0;
}

.rt-profile-philosophy-card.is-open .rt-philosophy-drawer {
  max-height: 2500px;
  opacity: 1;
  margin-top: 1.5rem;
}

.rt-profile-philosophy-card.is-open .rt-philosophy-toggle {
  background: rgba(58, 79, 63, 0.08);
  border-color: rgba(58, 79, 63, 0.25);
  color: var(--rt-deep-green);
}

.rt-profile-credentials {
  display: block;
  margin-top: var(--rt-space-lg);
}

.rt-cred-block {
  background: var(--rt-white);
  padding: 20px 22px;
  border-radius: var(--rt-radius-md);
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: var(--rt-shadow-sm);
}

.rt-cred-heading {
  font-family: var(--rt-font-serif);
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--rt-deep-green);
  margin-bottom: 12px;
  padding-bottom: 6px;
  border-bottom: 1.5px solid var(--rt-gold);
  letter-spacing: 0.05em;
}

.rt-cred-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.rt-cred-list li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 0.8125rem;
  line-height: 1.6;
  color: var(--rt-text);
}

.rt-cred-icon {
  flex-shrink: 0;
  font-size: 0.875rem;
  margin-top: 1px;
}

.rt-cred-highlight {
  color: #8B6914;
  font-weight: 600;
  font-size: 0.78125rem;
}

/* ==========================================================================
   Profile Origin Story Block (12歳分離症・吸い玉/牽引/擦過への疑問・カイロとの出会い)
   ========================================================================== */
.rt-profile-origin-story {
  background: #FCFBF7;
  border: 1px solid rgba(197, 160, 89, 0.32);
  border-radius: var(--rt-radius-lg, 16px);
  padding: 36px 32px;
  margin-top: var(--rt-space-2xl, 36px);
  margin-bottom: var(--rt-space-xl, 28px);
  box-shadow: 0 8px 32px rgba(14, 24, 18, 0.05);
  position: relative;
  overflow: hidden;
}

.rt-profile-origin-story::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, #C5A059 0%, #E5C378 50%, #C5A059 100%);
}

.rt-origin-story-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(58, 79, 63, 0.08);
  color: var(--rt-deep-green, #1E3326);
  border: 1px solid rgba(197, 160, 89, 0.4);
  border-radius: 9999px;
  padding: 5px 16px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 16px;
}

.rt-origin-story-heading {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: clamp(1.15rem, 3.2vw, 1.45rem);
  font-weight: 700;
  color: var(--rt-deep-green, #1E3326);
  line-height: 1.65;
  margin-bottom: 24px;
  letter-spacing: 0.04em;
}

.rt-origin-story-chapters {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.rt-story-chapter {
  position: relative;
  padding-left: 20px;
  border-left: 2px solid rgba(197, 160, 89, 0.45);
}

.rt-story-chapter-num {
  font-family: var(--rt-font-serif, "Cormorant Garamond", serif);
  font-size: 0.8125rem;
  font-weight: 700;
  color: #8B6914;
  letter-spacing: 0.08em;
  display: block;
  margin-bottom: 4px;
  text-transform: uppercase;
}

.rt-story-chapter-title {
  font-family: var(--rt-font-sans, "Noto Sans JP", sans-serif);
  font-size: clamp(0.95rem, 2vw, 1.0625rem);
  font-weight: 700;
  color: var(--rt-deep-green, #1E3326);
  line-height: 1.55;
  margin-bottom: 10px;
}

.rt-story-chapter-body {
  font-size: 0.90625rem;
  line-height: 1.95;
  color: #333333;
  margin: 0;
}

.rt-story-chapter-body strong {
  color: var(--rt-deep-green, #1E3326);
  font-weight: 700;
}

.rt-story-highlight-card {
  margin-top: 10px;
  background: rgba(58, 79, 63, 0.05);
  border: 1px dashed rgba(197, 160, 89, 0.5);
  border-radius: var(--rt-radius-sm, 8px);
  padding: 16px 20px;
  font-size: 0.875rem;
  line-height: 1.85;
  color: var(--rt-deep-green, #1E3326);
}

@media (max-width: 767px) {
  .rt-profile-origin-story {
    padding: 24px 18px;
    margin-top: 24px;
    margin-bottom: 20px;
  }
  .rt-story-chapter {
    padding-left: 14px;
  }
  .rt-story-chapter-body {
    font-size: 0.875rem;
    line-height: 1.85;
  }
}

/* ==========================================================================
   08. Features
   ========================================================================== */
.rt-features {
  background: var(--rt-cream);
}

.rt-features-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--rt-space-lg);
}

@media (min-width: 768px) {
  .rt-features-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--rt-space-xl);
  }
}

.rt-feature-card {
  min-width: 0;
  background: var(--rt-white);
  padding: var(--rt-space-2xl) var(--rt-space-xl);
  border-radius: var(--rt-radius-lg);
  box-shadow: var(--rt-shadow-sm);
  transition: var(--rt-transition);
  border: 1px solid rgba(0, 0, 0, 0.04);
}

.rt-feature-card:hover {
  box-shadow: var(--rt-shadow-md);
  transform: translateY(-4px);
}

.rt-feature-number {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: 3.25rem;
  font-weight: 500;
  color: var(--rt-greige);
  line-height: 1;
  margin-bottom: var(--rt-space-md);
  opacity: 0.75;
}

.rt-feature-illus,
.rt-pillar-illus {
  margin-bottom: var(--rt-space-lg);
  border-radius: var(--rt-radius-md, 8px);
  overflow: hidden;
  background: var(--rt-warm-gray, #F8FAF9);
  border: 1px solid rgba(0, 0, 0, 0.05);
}

.rt-feature-img,
.rt-pillar-img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 8px;
  display: block;
  box-shadow: 0 4px 14px rgba(15, 28, 20, 0.08);
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.rt-feature-card:hover .rt-feature-img,
.rooton-pillar-card:hover .rt-pillar-img {
  transform: scale(1.025);
  box-shadow: 0 8px 22px rgba(15, 28, 20, 0.12);
}

.rt-feature-title {
  font-family: var(--rt-font-serif);
  font-size: 1.1875rem;
  font-weight: 700;
  color: var(--rt-dark);
  margin-bottom: var(--rt-space-md);
  line-height: 1.5;
}

.rt-feature-desc {
  font-size: 0.875rem;
  line-height: 1.9;
  color: var(--rt-text-sub);
}

/* ==========================================================================
   09. Treatment (Rooton Technique)
   ========================================================================== */
.rt-treatment-lead {
  font-size: 0.9375rem;
  color: var(--rt-text-sub);
  margin-top: var(--rt-space-md);
}

.rt-treatment-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--rt-space-2xl);
}

@media (min-width: 768px) {
  .rt-treatment-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--rt-space-xl);
  }
}

.rt-treatment-card {
  min-width: 0;
}

.rt-treatment-media {
  position: relative;
  border-radius: var(--rt-radius-lg);
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: var(--rt-warm-gray);
}

.rt-treatment-media video,
.rt-treatment-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.rt-treatment-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  background: var(--rt-deep-green);
  color: var(--rt-white);
  padding: 4px 16px;
  border-radius: 20px;
  font-size: 0.6875rem;
  font-family: var(--rt-font-sans, "Noto Sans JP", sans-serif);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.rt-treatment-content {
  padding-top: var(--rt-space-lg);
}

.rt-treatment-title {
  font-family: var(--rt-font-serif);
  font-size: 1.1875rem;
  font-weight: 700;
  color: var(--rt-dark);
  margin-bottom: var(--rt-space-sm);
}

.rt-treatment-method {
  color: #8B6914;
  font-weight: 600;
  font-size: 0.8125rem;
  letter-spacing: 0.05em;
  margin-bottom: var(--rt-space-sm);
}

.rt-treatment-desc {
  font-size: 0.875rem;
  line-height: 1.9;
  color: var(--rt-text-sub);
}

/* ==========================================================================
   10. Unified Treatment Flow Section (.rt-flow-unified)
   ========================================================================== */
.rt-flow {
  background: var(--rt-warm-gray, #F8FAF9);
  padding: var(--rt-space-4xl) 0;
}

.rt-flow-lead {
  max-width: 680px;
  margin: 14px auto 0;
  font-size: 0.9375rem;
  color: var(--rt-text-sub, #4B5563);
  line-height: 1.75;
  text-align: center;
}

.rt-flow-unified {
  max-width: 1040px;
  margin: 40px auto 0;
}

/* Notice Box */
.rt-flow-notice {
  background: linear-gradient(135deg, rgba(197, 160, 89, 0.12) 0%, rgba(27, 77, 54, 0.08) 100%);
  border: 1px solid rgba(197, 160, 89, 0.35);
  border-radius: 14px;
  padding: 20px 24px;
  margin-bottom: 32px;
  display: flex;
  align-items: center;
  gap: 18px;
}

.rt-flow-notice-icon {
  font-size: 1.8rem;
  line-height: 1;
  color: var(--rt-gold, #C5A059);
  flex-shrink: 0;
}

.rt-flow-notice-body {
  flex-grow: 1;
}

.rt-flow-notice-title {
  font-weight: 700;
  color: var(--rt-deep-green, #1B4D36);
  font-size: 1.0625rem;
  display: block;
  margin-bottom: 4px;
}

.rt-flow-notice-desc {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.75;
  color: #4A524D;
}

/* 2x2 Rich Photo Grid on Desktop */
.rt-flow-grid-2x2 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin-bottom: 24px;
}

@media (min-width: 768px) {
  .rt-flow-grid-2x2 {
    grid-template-columns: repeat(2, 1fr);
    gap: 28px;
  }
}

/* Flow Card */
.rt-flow-card {
  background: var(--rt-white, #FFFFFF);
  border: 1px solid rgba(27, 77, 54, 0.12);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.04);
  display: flex;
  flex-direction: column;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease, border-color 0.3s ease;
}

.rt-flow-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(27, 77, 54, 0.1);
  border-color: var(--rt-gold, #C5A059);
}

/* Card Media (Large 16:9 Photo) */
.rt-flow-card-media {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #E8ECE9;
  overflow: hidden;
}

.rt-flow-card-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.45s ease;
}

.rt-flow-card:hover .rt-flow-card-img {
  transform: scale(1.035);
}

/* Step & Time Badge Overlaid on Photo */
.rt-flow-card-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(14, 24, 18, 0.88);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(197, 160, 89, 0.4);
  padding: 5px 12px;
  border-radius: 9999px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
  z-index: 2;
}

.rt-flow-card-badge--highlight {
  border-color: #E5C378;
  background: rgba(14, 38, 24, 0.92);
}

.rt-flow-badge-step {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: 0.75rem;
  font-weight: 700;
  color: #E5C378;
  letter-spacing: 0.06em;
}

.rt-flow-badge-sep {
  color: rgba(229, 195, 120, 0.4);
  font-size: 0.6875rem;
}

.rt-flow-badge-time {
  font-family: var(--rt-font-sans, "Noto Sans JP", sans-serif);
  font-size: 0.71875rem;
  font-weight: 600;
  color: #FAF9F5;
  letter-spacing: 0.02em;
}

/* Card Body */
.rt-flow-card-body {
  padding: 24px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.rt-flow-card-header {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 12px;
}

.rt-flow-card-title {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--rt-dark, #111827);
  margin: 0;
  line-height: 1.4;
}

.rt-flow-card-tag {
  display: inline-block;
  align-self: flex-start;
  font-size: 0.6875rem;
  font-weight: 700;
  color: #785A18;
  background: rgba(197, 160, 89, 0.14);
  border: 1px solid rgba(197, 160, 89, 0.35);
  padding: 3px 9px;
  border-radius: 6px;
  white-space: nowrap;
}

.rt-flow-card-desc {
  font-size: 0.875rem;
  line-height: 1.8;
  color: #4B5563;
  margin: 0;
  flex-grow: 1;
}

/* Step 05 Checkout Card (Horizontal Finish Bar) */
.rt-flow-checkout-card {
  background: var(--rt-white, #FFFFFF);
  border: 1px solid rgba(27, 77, 54, 0.14);
  border-left: 4px solid var(--rt-gold, #C5A059);
  border-radius: 14px;
  padding: 20px 24px;
  display: grid;
  grid-template-columns: 140px 1fr;
  align-items: center;
  gap: 24px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.rt-flow-checkout-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(27, 77, 54, 0.08);
  border-color: var(--rt-gold, #C5A059);
}

.rt-flow-checkout-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 12px 14px;
  background: #F8FAF8;
  border: 1px solid rgba(27, 77, 54, 0.08);
  border-radius: 10px;
  text-align: center;
  flex-shrink: 0;
}

.rt-flow-checkout-num {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--rt-gold, #C5A059);
  line-height: 1;
  margin-bottom: 4px;
  letter-spacing: 0.04em;
}

.rt-flow-checkout-time {
  font-size: 0.6875rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 20px;
  background: rgba(27, 77, 54, 0.1);
  color: var(--rt-deep-green, #1B4D36);
  white-space: nowrap;
}

.rt-flow-checkout-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.rt-flow-checkout-title-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.rt-flow-checkout-title {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--rt-dark, #111827);
  margin: 0;
  line-height: 1.4;
}

.rt-flow-checkout-tag {
  font-size: 0.6875rem;
  font-weight: 600;
  color: #785A18;
  background: rgba(197, 160, 89, 0.14);
  border: 1px solid rgba(197, 160, 89, 0.35);
  padding: 2px 8px;
  border-radius: 6px;
  white-space: nowrap;
}

.rt-flow-checkout-desc {
  font-size: 0.84375rem;
  line-height: 1.75;
  color: #4E5651;
  margin: 0;
}

@media (max-width: 767px) {
  .rt-flow-notice {
    padding: 16px;
    gap: 12px;
    margin-bottom: 20px;
  }
  .rt-flow-notice-icon {
    font-size: 1.4rem;
  }
  .rt-flow-card-body {
    padding: 18px 16px;
  }
  .rt-flow-card-title {
    font-size: 1.0625rem;
  }
  .rt-flow-checkout-card {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 18px 16px;
  }
  .rt-flow-checkout-header {
    flex-direction: row;
    justify-content: space-between;
    padding: 8px 14px;
  }
  .rt-flow-checkout-num {
    font-size: 1.125rem;
    margin-bottom: 0;
  }
}

/* ==========================================================================
   11. Info (Location & Reservation)
   ========================================================================== */
.rt-info {
  background: var(--rt-dark);
  color: var(--rt-white);
  padding: var(--rt-space-4xl) 0;
}

.rt-info-inner {
  max-width: 1120px;
  margin: 0 auto;
}

/* Upper Section: 2-Column Balanced Grid (Access Info & Google Maps) */
.rt-info-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--rt-space-2xl);
  align-items: stretch;
}

@media (min-width: 900px) {
  .rt-info-grid {
    grid-template-columns: 1.15fr 1fr;
    gap: 40px;
    align-items: stretch;
  }
}

.rt-info-title {
  color: #FFF8E7;
  font-family: var(--rt-font-serif);
  font-size: clamp(1.625rem, 3.5vw, 2.25rem);
  font-weight: 600;
  margin-bottom: var(--rt-space-xl);
  letter-spacing: 0.05em;
  line-height: 1.3;
}

.rt-info-list {
  margin-bottom: 0;
}

.rt-info-item {
  display: flex;
  gap: var(--rt-space-md);
  padding: 14px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.rt-info-item dt {
  flex-shrink: 0;
  width: 88px;
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.65);
  font-weight: 500;
  letter-spacing: 0.05em;
}

.rt-info-item dd {
  font-size: 0.9375rem;
  color: rgba(255, 255, 255, 0.95);
  line-height: 1.6;
}

.rt-info-item dd strong {
  color: #FFF;
}

.rt-info-item dd a {
  color: rgba(255, 255, 255, 0.95);
  transition: var(--rt-transition);
}

.rt-info-item dd a:hover {
  color: var(--rt-gold);
}

/* Map Column & Frame */
.rt-info-map-col {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.rt-info-map-frame {
  border-radius: var(--rt-radius-lg);
  overflow: hidden;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(229, 195, 120, 0.25);
  height: 100%;
  min-height: 400px;
  display: flex;
}

.rt-info-map-frame iframe {
  width: 100%;
  height: 100%;
  min-height: 400px;
  border: none;
  display: block;
  flex: 1;
}

@media (max-width: 899px) {
  .rt-info-map-frame {
    min-height: 320px;
    height: 320px;
  }
  .rt-info-map-frame iframe {
    min-height: 320px;
    height: 320px;
  }
}

/* Lower Section: Centered Instructions */
.rt-info-action-area {
  margin-top: 40px;
  padding-top: 32px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.rt-info-cta-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
}

.rt-info-cta-center .rt-info-reviews {
  margin-bottom: 4px;
}

.rt-btn-reserve-lead {
  min-width: 320px;
  max-width: 440px;
  width: 100%;
  padding: 18px 36px;
  font-size: 1.0625rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  border-radius: 9999px;
  box-shadow: 0 8px 30px rgba(197, 160, 89, 0.35);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.rt-booking-instruction-box--centered {
  max-width: 840px;
  margin: 0 auto;
  text-align: left;
  background: rgba(28, 46, 36, 0.55);
  border: 1px solid rgba(229, 195, 120, 0.28);
  border-radius: 12px;
  padding: 22px 26px;
  backdrop-filter: blur(8px);
}

.rt-booking-instruction-box--centered .rt-instruction-list {
  list-style: none;
  padding: 0;
  margin: 12px 0 0 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.rt-booking-instruction-box--centered .rt-instruction-list li {
  position: relative;
  padding-left: 20px;
  font-size: 0.84375rem;
  line-height: 1.65;
  color: #E2E8F0;
}

.rt-booking-instruction-box--centered .rt-instruction-list li::before {
  content: "▶";
  position: absolute;
  left: 0;
  top: 3px;
  font-size: 0.625rem;
  color: #E5C378;
}

.rt-booking-instruction-box--centered .rt-instruction-list strong {
  color: #FFF;
}

/* Google Reviews Badge */
.rt-info-reviews {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: rgba(255, 255, 255, 0.08);
  padding: 14px 24px;
  border-radius: var(--rt-radius-md);
  margin-bottom: var(--rt-space-xl);
}

.rt-review-stars {
  color: #FFD700;
  font-size: 1rem;
  letter-spacing: 2px;
}

.rt-review-score {
  font-family: var(--rt-font-sans, "Noto Sans JP", sans-serif);
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--rt-white);
}

.rt-review-count {
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.8);
}

/* CTA Button (Gold, Large) */
.rt-btn-large {
  background: var(--rt-gold);
  color: var(--rt-dark);
  padding: 18px 40px;
  border-radius: var(--rt-radius-sm);
  font-size: 0.9375rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  display: inline-block;
  text-align: center;
  transition: var(--rt-transition);
}

.rt-btn-large:hover {
  background: #D4AF37;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(197, 160, 89, 0.3);
  color: var(--rt-dark);
}

/* Map legacy fallback */
.rt-info-map {
  border-radius: var(--rt-radius-lg);
  overflow: hidden;
}

.rt-info-map iframe {
  width: 100%;
  height: 320px;
  border: none;
  display: block;
}

@media (min-width: 768px) {
  .rt-info-map iframe {
    height: 400px;
  }
}

/* ==========================================================================
   12. Footer
   ========================================================================== */
.rt-footer {
  background: #151515;
  color: rgba(255, 255, 255, 0.85);
  padding: var(--rt-space-2xl) 0 var(--rt-space-lg);
}

.rt-footer-inner {
  display: flex;
  flex-direction: column;
  gap: var(--rt-space-xl);
  align-items: center;
  text-align: center;
}

@media (min-width: 768px) {
  .rt-footer-inner {
    flex-direction: row;
    justify-content: space-between;
    text-align: left;
    align-items: flex-start;
  }
}

.rt-footer-logo {
  height: 60px;
  width: auto;
  opacity: 0.95;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,0.5));
  margin-bottom: var(--rt-space-md);
}

.rt-footer-desc {
  font-size: 0.8125rem;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.78);
}

.rt-footer-sns {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}

.rt-footer-sns-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 0.75rem;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.25s ease;
}

.rt-footer-sns-btn--ig {
  background: rgba(214, 41, 118, 0.12);
  border: 1px solid rgba(214, 41, 118, 0.4);
  color: #FFA3D7;
}

.rt-footer-sns-btn--ig:hover {
  background: linear-gradient(45deg, #F58529 0%, #D62976 50%, #962FBF 100%);
  color: #FFFFFF;
  border-color: transparent;
  transform: translateY(-2px);
}

.rt-footer-sns-btn--yt {
  background: rgba(204, 0, 0, 0.12);
  border: 1px solid rgba(204, 0, 0, 0.4);
  color: #FFA39E;
}

.rt-footer-sns-btn--yt:hover {
  background: #CC0000;
  color: #FFFFFF;
  border-color: transparent;
  transform: translateY(-2px);
}

.rt-sns-svg {
  display: inline-block;
  vertical-align: middle;
  flex-shrink: 0;
}

.rt-footer-nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 16px;
  width: 100%;
  max-width: 420px;
  box-sizing: border-box;
  text-align: left;
}

@media (min-width: 768px) {
  .rt-footer-nav {
    display: flex;
    gap: 48px;
    max-width: none;
    width: auto;
  }
}

.rt-footer-nav-col {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.rt-footer-col-title {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--rt-gold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin: 0 0 12px 0;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(229, 195, 120, 0.2);
  white-space: nowrap;
}

.rt-footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.rt-footer-links li {
  margin: 0;
  padding: 0;
}

.rt-footer-links a {
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.78);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  text-decoration: none;
  transition: var(--rt-transition);
  padding: 2px 0;
}

.rt-footer-links a::before {
  content: "›";
  color: rgba(229, 195, 120, 0.5);
  font-size: 0.875rem;
  line-height: 1;
  transition: transform 0.2s ease, color 0.2s ease;
}

.rt-footer-links a:hover {
  color: #FFFFFF;
}

.rt-footer-links a:hover::before {
  color: var(--rt-gold);
  transform: translateX(2px);
}

.rt-footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: var(--rt-space-lg);
  margin-top: var(--rt-space-xl);
  text-align: center;
}

.rt-footer-note {
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: var(--rt-space-sm);
}

.rt-footer-copyright {
  font-size: 0.6875rem;
  color: rgba(255, 255, 255, 0.65);
  letter-spacing: 0.05em;
}

/* ==========================================================================
   12.5 YouTube Section
   ========================================================================== */
.rt-youtube {
  background: var(--rt-white);
  border-top: 1px solid rgba(0, 0, 0, 0.04);
}

.rt-youtube-lead {
  font-size: 0.9375rem;
  color: var(--rt-text-sub);
  margin-top: 12px;
}

.rt-youtube-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--rt-space-2xl);
  margin-bottom: var(--rt-space-3xl);
}

@media (min-width: 768px) {
  .rt-youtube-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--rt-space-xl);
  }
}

.rt-yt-card {
  background: var(--rt-cream);
  border-radius: var(--rt-radius-lg);
  overflow: hidden;
  box-shadow: var(--rt-shadow-sm);
  transition: var(--rt-transition);
  border: 1px solid rgba(0, 0, 0, 0.04);
  display: flex;
  flex-direction: column;
}

.rt-yt-card:hover {
  box-shadow: var(--rt-shadow-md);
  transform: translateY(-4px);
}

.rt-yt-player-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #000;
  overflow: hidden;
}

.rt-yt-iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
  z-index: 1;
}

.rt-yt-placeholder {
  position: absolute;
  inset: 0;
  z-index: 2;
  cursor: pointer;
  transition: opacity 0.3s ease;
}

.rt-yt-card:hover .rt-yt-placeholder {
  opacity: 0.9;
}

.rt-yt-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.rt-yt-play-btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 56px;
  height: 56px;
  background: rgba(26, 35, 50, 0.85);
  border: 2px solid var(--rt-gold);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
  transition: transform 0.3s ease, background 0.3s ease;
}

.rt-yt-play-btn::after {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border-top: 9px solid transparent;
  border-bottom: 9px solid transparent;
  border-left: 14px solid var(--rt-gold);
  margin-left: 3px;
}

.rt-yt-card:hover .rt-yt-play-btn {
  transform: translate(-50%, -50%) scale(1.1);
  background: var(--rt-deep-green);
}

.rt-yt-content {
  padding: var(--rt-space-lg);
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}

.rt-yt-badge {
  display: inline-block;
  align-self: flex-start;
  background: var(--rt-deep-green);
  color: var(--rt-white);
  font-size: 0.6875rem;
  padding: 3px 10px;
  border-radius: 12px;
  letter-spacing: 0.05em;
  margin-bottom: 12px;
}

.rt-yt-title {
  font-family: var(--rt-font-serif);
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--rt-dark);
  margin-bottom: 10px;
  line-height: 1.5;
}

.rt-yt-desc {
  font-size: 0.8125rem;
  color: var(--rt-text-sub);
  line-height: 1.8;
}

.rt-youtube-cta {
  text-align: center;
  margin-top: 36px;
}

.rt-media-cta-group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 16px;
}

.rt-btn-yt {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #CC0000;
  color: var(--rt-white);
  padding: 14px 28px;
  border-radius: 30px;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  transition: var(--rt-transition);
  box-shadow: 0 4px 16px rgba(204, 0, 0, 0.25);
  text-decoration: none;
}

.rt-btn-yt:hover {
  background: #AA0000;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(153, 0, 0, 0.4);
  color: var(--rt-white);
}

.rt-yt-icon::before {
  content: '▶';
  font-size: 0.875rem;
}

.rt-btn-ig {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: linear-gradient(45deg, #F58529 0%, #D62976 50%, #962FBF 100%);
  color: #FFFFFF;
  padding: 14px 28px;
  border-radius: 30px;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  transition: var(--rt-transition);
  box-shadow: 0 4px 16px rgba(214, 41, 118, 0.3);
  text-decoration: none;
}

.rt-btn-ig:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(214, 41, 118, 0.45);
  color: #FFFFFF;
  filter: brightness(1.08);
}

.rt-ig-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* ==========================================================================
   12.6 Instagram Section
   ========================================================================== */
.rt-instagram {
  background: var(--rt-warm-gray);
  border-top: 1px solid rgba(0, 0, 0, 0.04);
}

.rt-insta-sub {
  font-family: var(--rt-font-en);
  font-size: 1.125rem;
  letter-spacing: 0.1em;
  color: #8B6914;
  font-weight: 600;
  margin-top: 4px;
  margin-bottom: 8px;
}

.rt-insta-lead {
  font-size: 0.9375rem;
  color: var(--rt-text-sub);
}

.rt-insta-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-bottom: var(--rt-space-3xl);
}

@media (min-width: 768px) {
  .rt-insta-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
  }
}

.rt-insta-item {
  position: relative;
  display: block;
  aspect-ratio: 1 / 1;
  border-radius: var(--rt-radius-md);
  overflow: hidden;
  box-shadow: var(--rt-shadow-sm);
  background: var(--rt-cream);
}

.rt-insta-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s var(--rt-ease);
}

.rt-insta-overlay {
  position: absolute;
  inset: 0;
  background: rgba(26, 35, 50, 0.65);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.rt-insta-icon::before {
  content: '';
  display: inline-block;
  width: 36px;
  height: 36px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='2' width='20' height='20' rx='5' ry='5'/%3E%3Cpath d='M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z'/%3E%3Cline x1='17.5' y1='6.5' x2='17.51' y2='6.5'/%3E%3C/svg%3E") no-repeat center center / contain;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,0.4));
}

.rt-insta-item:hover img {
  transform: scale(1.08);
}

.rt-insta-item:hover .rt-insta-overlay {
  opacity: 1;
}

.rt-insta-cta {
  text-align: center;
}

.rt-btn-insta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: linear-gradient(45deg, #d35400 0%, #c0392b 30%, #dc2743 60%, #bc1888 100%);
  color: var(--rt-white);
  padding: 14px 36px;
  border-radius: 30px;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  transition: var(--rt-transition);
  box-shadow: 0 4px 16px rgba(220, 39, 67, 0.25);
}

.rt-btn-insta:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(220, 39, 67, 0.4);
  color: var(--rt-white);
}

.rt-insta-btn-icon::before {
  content: '';
  display: inline-block;
  width: 16px;
  height: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='2' width='20' height='20' rx='5' ry='5'/%3E%3Cpath d='M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z'/%3E%3Cline x1='17.5' y1='6.5' x2='17.51' y2='6.5'/%3E%3C/svg%3E") no-repeat center center / contain;
  vertical-align: middle;
}

/* ==========================================================================
   13. Mobile Sticky CTA
   ========================================================================== */
.rt-sticky-cta {
  position: fixed;
  bottom: -100px;
  left: 0;
  width: 100%;
  z-index: 999;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding: 12px 16px;
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.08);
  transition: bottom 0.4s var(--rt-ease);
}

.rt-sticky-cta.is-visible {
  bottom: 0;
}

.rt-sticky-cta__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  max-width: var(--rt-container);
  margin: 0 auto;
}

.rt-sticky-cta__tel {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--rt-text);
  letter-spacing: 0.05em;
}

.rt-sticky-cta__btn {
  background: var(--rt-deep-green);
  color: var(--rt-white);
  padding: 12px 28px;
  border-radius: var(--rt-radius-sm);
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.1em;
}

@media (min-width: 1024px) {
  .rt-sticky-cta {
    display: none;
  }
}

/* ==========================================================================
   13.5 Testimonials (Customer Voice)
   ========================================================================== */
.rt-testimonials {
  background: var(--rt-cream);
  border-top: 1px solid rgba(0, 0, 0, 0.04);
}

.rt-testi-lead {
  font-size: 0.9375rem;
  color: var(--rt-text-sub);
  margin-top: 12px;
}

.rt-testi-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--rt-space-2xl);
  margin-bottom: var(--rt-space-xl);
}

@media (min-width: 768px) {
  .rt-testi-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--rt-space-xl);
  }
}

.rt-testi-card {
  background: var(--rt-white);
  border-radius: var(--rt-radius-lg);
  overflow: hidden;
  box-shadow: var(--rt-shadow-sm);
  transition: var(--rt-transition);
  border: 1px solid rgba(0, 0, 0, 0.05);
  display: flex;
  flex-direction: column;
}

.rt-testi-card:hover {
  box-shadow: var(--rt-shadow-md);
  transform: translateY(-4px);
}

.rt-testi-media {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #000;
  overflow: hidden;
}

.rt-testi-iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: none;
  z-index: 1;
}

.rt-testi-placeholder {
  position: absolute;
  inset: 0;
  z-index: 2;
  cursor: pointer;
  transition: opacity 0.3s ease;
}

.rt-testi-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.rt-testi-play-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.6) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: var(--rt-white);
  transition: background 0.3s ease;
}

.rt-testi-play-icon {
  width: 44px;
  height: 44px;
  background: rgba(197, 160, 89, 0.9);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.875rem;
  padding-left: 3px;
  color: var(--rt-dark);
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  transition: transform 0.3s ease, background 0.3s ease;
}

.rt-testi-play-text {
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.05em;
  background: rgba(0, 0, 0, 0.6);
  padding: 4px 12px;
  border-radius: 20px;
  backdrop-filter: blur(4px);
}

.rt-testi-card:hover .rt-testi-play-icon {
  transform: scale(1.1);
  background: var(--rt-gold);
}

.rt-testi-body {
  padding: var(--rt-space-lg);
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}

.rt-testi-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 12px;
}

.rt-testi-tag {
  font-size: 0.6875rem;
  padding: 3px 10px;
  border-radius: 12px;
  font-weight: 500;
  letter-spacing: 0.03em;
}

.rt-tag-attr {
  background: var(--rt-dark);
  color: var(--rt-gold);
}

.rt-tag-symptom {
  background: rgba(58, 79, 63, 0.1);
  color: var(--rt-deep-green);
}

.rt-testi-headline {
  font-family: var(--rt-font-serif);
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--rt-dark);
  margin-bottom: 12px;
  line-height: 1.5;
}

.rt-testi-quote {
  font-size: 0.8125rem;
  color: var(--rt-text-sub);
  line-height: 1.85;
}

.rt-testi-disclaimer {
  font-size: 0.75rem;
  color: var(--rt-text-sub);
  text-align: center;
  margin-top: var(--rt-space-md);
}

/* ==========================================================================
   14. Scroll Reveal Animations
   ========================================================================== */
.rt-reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.65s cubic-bezier(0.16, 1, 0.3, 1), transform 0.65s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform;
}

.rt-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.rt-reveal-delay-1 { transition-delay: 0.1s; }
.rt-reveal-delay-2 { transition-delay: 0.2s; }
.rt-reveal-delay-3 { transition-delay: 0.3s; }
.rt-reveal-delay-4 { transition-delay: 0.4s; }

/* ==========================================================================
   15. Animations
   ========================================================================== */
@keyframes rtFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes rtSlideUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ==========================================================================
   15.5 Biomechanics Insight Section (痛みの錯覚と相殺の罠)
   ========================================================================== */
.rooton-tension-section {
  background: var(--rt-cream);
  padding: 100px 0;
  position: relative;
  overflow: hidden;
  border-top: 1px solid rgba(0, 0, 0, 0.04);
  border-bottom: 1px solid rgba(0, 0, 0, 0.04);
}

@media (max-width: 767px) {
  .rooton-tension-section {
    padding: 64px 0;
  }
}

.rooton-tension-section .rooton-section-title {
  font-family: var(--rt-font-serif);
  font-size: clamp(1.45rem, 3.8vw, 2.25rem);
  font-weight: 600;
  color: var(--rt-dark);
  line-height: 1.55;
  letter-spacing: 0.06em;
  margin-bottom: 24px;
}

.rooton-title-sub {
  display: block;
  font-family: var(--rt-font-en);
  font-size: 0.8125rem;
  letter-spacing: 0.25em;
  color: var(--rt-gold);
  margin-bottom: 10px;
  font-weight: 500;
  text-transform: uppercase;
}

.rooton-lead-box {
  max-width: 860px;
  margin: 0 auto 48px;
  background: rgba(255, 255, 255, 0.85);
  border-left: 3px solid var(--rt-gold);
  padding: 24px 28px;
  border-radius: 0 12px 12px 0;
  box-shadow: var(--rt-shadow-sm);
  text-align: left;
}

.rooton-lead-text {
  font-family: var(--rt-font-sans);
  font-size: 0.96875rem;
  line-height: 2;
  color: var(--rt-text);
  margin: 0;
}

.rooton-text-highlight {
  color: #B85312;
  font-weight: 700;
  background: linear-gradient(transparent 60%, rgba(184, 83, 18, 0.15) 60%);
  display: inline;
}

.rooton-bow-biomechanics {
  background: transparent;
  border-radius: 0;
  padding: 0 !important;
  box-shadow: none !important;
  border: none !important;
  margin-bottom: 0 !important;
}

@media (max-width: 767px) {
  .rooton-bow-biomechanics {
    padding: 0 !important;
    margin-bottom: 0 !important;
  }
}

.rooton-bow-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 36px;
  align-items: center;
}

@media (min-width: 992px) {
  .rooton-bow-grid {
    grid-template-columns: 0.95fr 1.05fr;
    gap: 48px;
  }
}

.rooton-svg-wrap {
  position: relative;
  background: #F5F4EE;
  border-radius: 12px;
  padding: 24px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(0, 0, 0, 0.05);
}

.rooton-svg-diagram {
  width: 100%;
  max-width: 380px;
  height: auto;
  display: block;
}

.rooton-svg-caption {
  font-family: var(--rt-font-sans);
  font-size: 0.78125rem;
  color: var(--rt-text-muted);
  text-align: center;
  margin-top: 14px;
  line-height: 1.5;
}

.rooton-traps-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

@media (min-width: 580px) and (max-width: 991px) {
  .rooton-traps-list {
    grid-template-columns: 1fr 1fr;
  }
}

.rooton-trap-card {
  background: var(--rt-cream);
  border-radius: 10px;
  padding: 18px 20px;
  border-left: 3px solid var(--rt-gold);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.rooton-trap-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
}

.rooton-trap-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}

.rooton-trap-icon {
  font-size: 1rem;
  line-height: 1;
}

.rooton-trap-title {
  font-family: var(--rt-font-serif);
  font-size: 0.96875rem;
  font-weight: 700;
  color: var(--rt-dark);
  margin: 0;
}

.rooton-trap-desc {
  font-family: var(--rt-font-sans);
  font-size: 0.84375rem;
  line-height: 1.75;
  color: #4A504C;
  margin: 0;
}

.rooton-tension-compare-wrap {
  margin-bottom: 48px;
}

.rooton-compare-heading-wrap {
  text-align: center;
  margin-bottom: 28px;
}

.rooton-compare-heading {
  font-family: var(--rt-font-serif);
  font-size: clamp(1.25rem, 3vw, 1.625rem);
  font-weight: 600;
  color: var(--rt-dark);
  margin-bottom: 8px;
}

.rooton-compare-sub {
  font-family: var(--rt-font-sans);
  font-size: 0.875rem;
  color: var(--rt-text-sub);
}

.rooton-tension-compare {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}

@media (min-width: 768px) {
  .rooton-tension-compare {
    grid-template-columns: 1fr 1fr;
    gap: 28px;
  }
}

.rooton-card-warning {
  background: #FFFDF9;
  border: 1.5px solid rgba(217, 119, 54, 0.35);
  border-radius: var(--rt-radius-lg);
  padding: 32px 28px;
  box-shadow: 0 8px 24px rgba(217, 119, 54, 0.08);
  position: relative;
  display: flex;
  flex-direction: column;
}

.rooton-card-badge-alert {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #B85312;
  color: #FFFFFF;
  font-family: var(--rt-font-sans);
  font-size: 0.71875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 4px 12px;
  border-radius: 20px;
  align-self: flex-start;
  margin-bottom: 16px;
}

.rooton-card-title-alert {
  font-family: var(--rt-font-serif);
  font-size: 1.25rem;
  font-weight: 700;
  color: #9E4613;
  margin-bottom: 16px;
  line-height: 1.4;
}

.rooton-gauge-box {
  background: rgba(0, 0, 0, 0.03);
  border-radius: 8px;
  padding: 14px 16px;
  margin-bottom: 20px;
}

.rooton-gauge-label {
  display: flex;
  justify-content: space-between;
  font-family: var(--rt-font-sans);
  font-size: 0.78125rem;
  font-weight: 700;
  color: var(--rt-dark);
  margin-bottom: 8px;
}

.rooton-gauge-bar-wrap {
  display: flex;
  height: 12px;
  border-radius: 6px;
  overflow: hidden;
  gap: 2px;
  background: #E5E2DC;
}

.rooton-gauge-fill-alert {
  background: linear-gradient(90deg, #D97736, #C0392B);
  width: 50%;
  height: 100%;
}

.rooton-gauge-fill-alert-r {
  background: linear-gradient(90deg, #C0392B, #D97736);
  width: 50%;
  height: 100%;
}

.rooton-gauge-note {
  font-family: var(--rt-font-sans);
  font-size: 0.71875rem;
  color: #9E4613;
  font-weight: 700;
  margin-top: 6px;
  text-align: center;
}

.rooton-card-desc {
  font-family: var(--rt-font-sans);
  font-size: 0.875rem;
  line-height: 1.85;
  color: #4A504C;
  margin-bottom: 16px;
}

.rooton-card-desc p {
  margin-bottom: 12px;
}

.rooton-card-desc p:last-child {
  margin-bottom: 0;
}

.rooton-alert-callout {
  background: rgba(217, 119, 54, 0.08);
  border-left: 2.5px solid #D97736;
  padding: 12px 14px;
  border-radius: 0 6px 6px 0;
  font-size: 0.8125rem;
  line-height: 1.7;
  color: #8C390B;
  margin-top: auto;
}

.rooton-card-harmony {
  background: #0F1C14;
  color: #FAF9F5;
  border: 1.5px solid rgba(197, 160, 89, 0.4);
  border-radius: var(--rt-radius-lg);
  padding: 32px 28px;
  box-shadow: 0 12px 36px rgba(15, 28, 20, 0.25);
  position: relative;
  display: flex;
  flex-direction: column;
}

.rooton-card-badge-harmony {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--rt-gold);
  color: #0F1C14;
  font-family: var(--rt-font-sans);
  font-size: 0.71875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 4px 12px;
  border-radius: 20px;
  align-self: flex-start;
  margin-bottom: 16px;
}

.rooton-card-title-harmony {
  font-family: var(--rt-font-serif);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--rt-gold);
  margin-bottom: 16px;
  line-height: 1.4;
}

.rooton-gauge-box-dark {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  padding: 14px 16px;
  margin-bottom: 20px;
}

.rooton-gauge-label-dark {
  display: flex;
  justify-content: space-between;
  font-family: var(--rt-font-sans);
  font-size: 0.78125rem;
  font-weight: 700;
  color: #FAF9F5;
  margin-bottom: 8px;
}

.rooton-gauge-bar-wrap-dark {
  display: flex;
  height: 12px;
  border-radius: 6px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.1);
  justify-content: space-between;
  padding: 0 4px;
  align-items: center;
}

.rooton-gauge-fill-harmony {
  background: var(--rt-gold);
  width: 12%;
  height: 6px;
  border-radius: 3px;
}

.rooton-gauge-note-gold {
  font-family: var(--rt-font-sans);
  font-size: 0.71875rem;
  color: var(--rt-gold);
  font-weight: 700;
  margin-top: 6px;
  text-align: center;
}

.rooton-card-desc-dark {
  font-family: var(--rt-font-sans);
  font-size: 0.875rem;
  line-height: 1.85;
  color: #D3DAD5;
  margin-bottom: 16px;
}

.rooton-card-desc-dark p {
  margin-bottom: 12px;
}

.rooton-card-desc-dark p:last-child {
  margin-bottom: 0;
}

.rooton-harmony-callout {
  background: rgba(197, 160, 89, 0.12);
  border-left: 2.5px solid var(--rt-gold);
  padding: 12px 14px;
  border-radius: 0 6px 6px 0;
  font-size: 0.8125rem;
  line-height: 1.7;
  color: #E8DECE;
  margin-top: auto;
}

.rooton-manual-box {
  background: linear-gradient(135deg, #FFFFFF 0%, #F5F3EB 100%);
  border-radius: var(--rt-radius-lg);
  padding: 36px 32px;
  border: 1px solid rgba(197, 160, 89, 0.35);
  box-shadow: var(--rt-shadow-sm);
  position: relative;
}

@media (max-width: 767px) {
  .rooton-manual-box {
    padding: 26px 20px;
  }
}

.rooton-manual-inner {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

@media (min-width: 768px) {
  .rooton-manual-inner {
    flex-direction: row;
    align-items: center;
    gap: 32px;
  }
}

.rooton-manual-icon-wrap {
  flex-shrink: 0;
  width: 64px;
  height: 64px;
  background: #0F1C14;
  border: 2px solid var(--rt-gold);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.75rem;
  box-shadow: 0 4px 16px rgba(15, 28, 20, 0.15);
}

.rooton-manual-content {
  flex-grow: 1;
}

.rooton-manual-tag {
  font-family: var(--rt-font-en);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8B6914;
  font-weight: 600;
  display: block;
  margin-bottom: 4px;
}

.rooton-manual-title {
  font-family: var(--rt-font-serif);
  font-size: clamp(1.125rem, 2.5vw, 1.375rem);
  font-weight: 700;
  color: var(--rt-dark);
  margin-bottom: 12px;
  line-height: 1.45;
}

.rooton-manual-desc {
  font-family: var(--rt-font-sans);
  font-size: 0.875rem;
  line-height: 1.85;
  color: #4A504C;
  margin: 0;
}

/* ==========================================================================
   15.5 Google Reviews Early Social Proof & Mobile Sticky CTA
   ========================================================================== */

.rt-hero-top-badge {
  display: none !important; /* FVバッジは直下の信頼バー第2項目へ移設 */
}

.rt-hero-trust {
  display: none; /* 中央のバッジは左上へ移設 */
}

.rt-hero-trust-badge,
.rt-hero-trust-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: inherit;
  text-decoration: none;
}

.rt-hero-trust-badge {
  cursor: default;
  user-select: none;
}

.rt-hero-trust-link:hover {
  opacity: 0.85;
}

.rt-hero-google-g {
  font-weight: 800;
  color: #4285F4;
  background: #FFFFFF;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  line-height: 1;
}

.rt-hero-trust-stars {
  color: #F1C40F;
  letter-spacing: 1px;
  font-size: 0.875rem;
}

.rt-hero-trust-score {
  font-weight: 700;
  color: #FAF9F5;
}

.rt-hero-trust-label {
  color: rgba(250, 249, 245, 0.9);
}

.rt-hero-trust-divider {
  color: rgba(197, 160, 89, 0.5);
}

.rt-hero-trust-badge {
  color: #E5C378;
  font-weight: 500;
}

/* 2. Hero Trust Strip (Full-width bar right below hero) */
.rt-trust-strip {
  background: #0E1812;
  border-top: 1px solid rgba(197, 160, 89, 0.25);
  border-bottom: 1px solid rgba(197, 160, 89, 0.25);
  padding: clamp(16px, 3vw, 24px) 0;
  color: #FAF9F5;
  position: relative;
  z-index: 2;
}

.rt-trust-strip-inner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  align-items: stretch;
}

@media (min-width: 640px) and (max-width: 1023px) {
  .rt-trust-strip-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    align-items: stretch;
  }
}

@media (min-width: 1024px) and (min-aspect-ratio: 1/1) {
  .rt-trust-strip-inner {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    align-items: stretch;
  }
}

.rt-trust-g-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(18px, 4vw, 22px);
  height: clamp(18px, 4vw, 22px);
  background: #FFFFFF;
  color: #4285F4;
  font-weight: 800;
  font-size: clamp(10px, 2.5vw, 12px);
  line-height: 1;
  border-radius: 50%;
  flex-shrink: 0;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
}

.rt-trust-item {
  min-width: 0;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(197, 160, 89, 0.22);
  border-radius: 10px;
  padding: 12px 10px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  transition: transform 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}

@media (min-width: 640px) {
  .rt-trust-item {
    padding: 18px 20px;
    border-radius: 12px;
  }
}

.rt-trust-item:hover {
  transform: translateY(-2px);
  border-color: rgba(197, 160, 89, 0.6);
  background: rgba(255, 255, 255, 0.07);
}

.rt-trust-google {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

.rt-trust-google-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}

.rt-trust-stars {
  color: #F1C40F;
  font-size: 1.125rem;
  letter-spacing: 1px;
}

.rt-trust-score {
  font-weight: 700;
  font-size: 1.125rem;
  color: #FFFFFF;
}

.rt-trust-icon-box {
  display: flex;
  align-items: center;
  gap: clamp(6px, 1.8vw, 8px);
  margin-bottom: 0;
}

.rt-trust-icon-box:last-child {
  margin-bottom: 0;
}

.rt-trust-symbol {
  font-size: 1.25rem;
}

.rt-trust-vector-icon {
  width: clamp(18px, 4vw, 22px);
  height: clamp(18px, 4vw, 22px);
  color: #E5C378;
  flex-shrink: 0;
}

.rt-trust-title {
  font-weight: 700;
  font-size: clamp(0.78125rem, 2.3vw, 0.9375rem);
  color: #E5C378;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.rt-sp-only {
  display: inline;
}

@media (min-width: 768px) {
  .rt-sp-only {
    display: none;
  }
}

.rt-trust-desc {
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #D1D5DB;
  margin: 0;
}

.rt-trust-desc strong {
  color: #FFFFFF;
}

.rt-trust-area {
  color: #E5C378;
  font-weight: 600;
}

/* 3. Google Reviews Digest Section */
.rt-reviews-digest {
  padding: 80px 0;
  background-color: #F8F6F2;
  border-bottom: 1px solid rgba(197, 160, 89, 0.2);
}

.rt-digest-rating-summary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 18px;
  padding: 8px 22px;
  background: #FFFFFF;
  border: 1px solid rgba(197, 160, 89, 0.45);
  border-radius: 9999px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
}

.rt-digest-stars {
  color: #F1C40F;
  font-size: 1.125rem;
  letter-spacing: 2px;
}

.rt-digest-score {
  font-weight: 700;
  font-size: 1.0625rem;
  color: #1A2E22;
}

.rt-digest-badge {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #8C6B28;
}

.rt-digest-intro-lead {
  max-width: 840px;
  margin: 22px auto 0;
  font-size: 0.9375rem;
  line-height: 1.85;
  color: #4A5568;
  text-align: center;
}

.rt-digest-intro-lead strong {
  color: #1A2E22;
}

@media (max-width: 767px) {
  .rt-digest-intro-lead {
    font-size: 0.875rem;
    text-align: left;
    line-height: 1.75;
  }
}

.rt-digest-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  margin: 40px 0 24px;
}

@media (min-width: 900px) {
  .rt-digest-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.rt-digest-card {
  min-width: 0;
  background: #FFFFFF;
  border: 1px solid rgba(197, 160, 89, 0.28);
  border-radius: 14px;
  padding: 28px 24px;
  box-shadow: 0 6px 20px rgba(15, 28, 20, 0.05);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.rt-digest-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(15, 28, 20, 0.1);
  border-color: rgba(197, 160, 89, 0.6);
}

.rt-digest-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

.rt-digest-user {
  display: flex;
  align-items: center;
  gap: 10px;
}

.rt-digest-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #1A2E22;
  color: #FAF9F5;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.875rem;
}

.rt-digest-user-info {
  display: flex;
  flex-direction: column;
}

.rt-digest-user-name {
  font-size: 0.875rem;
  font-weight: 700;
  color: #1A2E22;
}

.rt-digest-symptom {
  font-size: 0.75rem;
  color: #8C6B28;
  font-weight: 500;
}

.rt-digest-stars-small {
  color: #F1C40F;
  font-size: 0.875rem;
  letter-spacing: 1px;
}

.rt-digest-card-title {
  font-size: 1rem;
  font-weight: 700;
  color: #1A2E22;
  line-height: 1.5;
  margin: 0 0 12px;
}

.rt-digest-card-quote {
  font-size: 0.875rem;
  color: #4A5568;
  line-height: 1.7;
  margin: 0 0 16px;
  flex-grow: 1;
}

.rt-digest-card-footer {
  border-top: 1px dashed rgba(197, 160, 89, 0.3);
  padding-top: 10px;
}

.rt-digest-verified {
  font-size: 0.75rem;
  color: #2E7D32;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.rt-digest-disclaimer {
  text-align: center;
  font-size: 0.75rem;
  color: #718096;
  margin: 0 0 32px;
}

.rt-digest-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  width: 100%;
}

.rt-digest-btn-row {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  width: 100%;
}

@media (min-width: 640px) {
  .rt-digest-btn-row {
    flex-direction: row;
    flex-wrap: wrap;
  }
}

.rt-btn-google-action,
.rt-btn-reserve-mid,
.rt-btn-reserve-action {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  height: 52px !important;
  min-height: 52px !important;
  padding: 0 28px !important;
  border-radius: 9999px !important;
  font-size: 0.9375rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.03em !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.rt-btn-google-action {
  background: #FFFFFF !important;
  color: #1A2E22 !important;
  border: 1px solid rgba(197, 160, 89, 0.6) !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06) !important;
}

.rt-btn-google-action:hover {
  background: #FAF8F2 !important;
  border-color: #C5A059 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 22px rgba(197, 160, 89, 0.25) !important;
  color: #1A2E22 !important;
}

.rt-btn-reserve-mid,
.rt-btn-reserve-action {
  background: linear-gradient(135deg, #1C2E24 0%, #2A4435 100%) !important;
  color: #FFFFFF !important;
  border: 1px solid rgba(229, 195, 120, 0.6) !important;
  box-shadow: 0 4px 18px rgba(28, 46, 36, 0.25) !important;
}

.rt-btn-reserve-mid:hover,
.rt-btn-reserve-action:hover {
  background: linear-gradient(135deg, #243B2E 0%, #355643 100%) !important;
  border-color: #E5C378 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(197, 160, 89, 0.35) !important;
  color: #FFFFFF !important;
}

.rt-digest-actions .rt-cta-trust-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 6px;
  width: 100%;
}

/* 4. Mobile Sticky Reservation Bar */
/* 4. Mobile Floating Reservation Capsule (FAB - Bottom Right) */
.rt-sticky-cta {
  display: none;
}

@media (max-width: 767px) {
  .rt-sticky-cta {
    display: block;
    position: fixed;
    bottom: calc(18px + env(safe-area-inset-bottom, 0px)) !important;
    right: 16px !important;
    left: auto !important;
    width: auto !important;
    max-width: calc(100vw - 32px);
    z-index: 10000;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    transform: translateY(120%) scale(0.92);
    -webkit-transform: translateY(120%) scale(0.92);
    will-change: transform, opacity;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s ease;
    pointer-events: none;
    box-sizing: border-box;
  }

  .rt-sticky-cta.is-visible,
  .rt-sticky-cta.is-active {
    transform: translateY(0) scale(1);
    -webkit-transform: translateY(0) scale(1);
    pointer-events: auto;
  }

  .rt-sticky-cta-inner {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin: 0;
    padding: 0;
  }

  .rt-sticky-review-badge {
    display: none;
  }

  .rt-sticky-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 48px;
    padding: 0 20px 0 16px;
    background: linear-gradient(135deg, #ECCF8A 0%, #D4AF37 45%, #B88E33 100%);
    color: #0E1A12;
    font-family: var(--rt-font-sans, "Noto Sans JP", sans-serif);
    font-weight: 800;
    font-size: 0.875rem;
    letter-spacing: 0.04em;
    border-radius: 9999px;
    border: 1.5px solid #FFF2D1;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35), 0 0 18px rgba(212, 175, 55, 0.45);
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
    box-sizing: border-box;
    transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.2s ease;
    animation: rtFabPulse 3.5s infinite ease-in-out;
  }

  .rt-sticky-btn:active {
    transform: scale(0.95);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3), 0 0 10px rgba(212, 175, 55, 0.3);
  }

  .rt-sticky-btn .rt-fab-icon {
    width: 18px;
    height: 18px;
    stroke: #0E1A12;
    stroke-width: 2.2;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  @keyframes rtFabPulse {
    0%, 100% {
      box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35), 0 0 16px rgba(212, 175, 55, 0.4);
    }
    50% {
      box-shadow: 0 10px 28px rgba(0, 0, 0, 0.42), 0 0 24px rgba(212, 175, 55, 0.7);
    }
  }
}

/* ==========================================================================
   High-Converting Reservation Action Sheet / Modal (iOS & Mobile Optimized)
   ========================================================================== */
.rt-reserve-modal {
  position: fixed;
  inset: 0;
  z-index: 20000;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  background: rgba(10, 18, 14, 0.72);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.3s;
  touch-action: pan-y;
}

.rt-reserve-modal.is-active {
  opacity: 1;
  visibility: visible;
}

.rt-reserve-sheet {
  position: relative;
  width: 100%;
  max-width: 520px;
  background: #FFFFFF;
  border-radius: 20px 20px 0 0;
  box-shadow: 0 -10px 40px rgba(0, 0, 0, 0.35);
  padding: 20px 20px calc(24px + env(safe-area-inset-bottom, 0px));
  transform: translateY(100%);
  -webkit-transform: translateY(100%);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
  box-sizing: border-box;
  max-height: 90vh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.rt-reserve-modal.is-active .rt-reserve-sheet {
  transform: translateY(0);
  -webkit-transform: translateY(0);
}

.rt-reserve-handle {
  width: 44px;
  height: 4px;
  background: #E5E7EB;
  border-radius: 2px;
  margin: 0 auto 16px;
}

.rt-reserve-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid #F3F4F6;
}

.rt-reserve-title {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: 1.1875rem;
  font-weight: 700;
  color: #1A2332;
  margin: 0;
}

.rt-reserve-close {
  background: #F3F4F6;
  border: none;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  font-size: 1.25rem;
  color: #6B7280;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
  padding: 0;
  line-height: 1;
}

.rt-reserve-close:hover {
  background: #E5E7EB;
  color: #1A2332;
}

.rt-reserve-desc {
  font-size: 0.8125rem;
  color: #6B7280;
  margin: 0 0 16px;
  line-height: 1.5;
}

.rt-reserve-options {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 16px;
}

.rt-reserve-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  border-radius: 12px;
  text-decoration: none;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  min-height: 68px;
  box-sizing: border-box;
}

.rt-reserve-card--web {
  background: linear-gradient(180deg, #1B4D36 0%, #225C42 50%, #1B4D36 100%);
  color: #FFFFFF;
  box-shadow: 0 4px 16px rgba(27, 77, 54, 0.28);
}

.rt-reserve-card--tel {
  background: #F9FAFB;
  border: 1.5px solid #E5E7EB;
  color: #1F2937;
}

.rt-reserve-card:active {
  transform: scale(0.98);
}

.rt-reserve-card-main {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.rt-reserve-card-tag {
  display: inline-flex;
  align-items: center;
  font-size: 0.6875rem;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 4px;
  width: fit-content;
}

.rt-reserve-card--web .rt-reserve-card-tag {
  background: rgba(197, 160, 89, 0.35);
  color: #FFF2CE;
}

.rt-reserve-card--tel .rt-reserve-card-tag {
  background: #E5E7EB;
  color: #4B5563;
}

.rt-reserve-card-title {
  font-size: 1rem;
  font-weight: 700;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 6px;
}

.rt-reserve-card--web .rt-reserve-card-title {
  color: #FFFFFF;
}

.rt-reserve-card--tel .rt-reserve-card-title {
  color: #111827;
}

.rt-reserve-card--ig {
  background: linear-gradient(135deg, rgba(197, 160, 89, 0.08) 0%, rgba(225, 48, 108, 0.06) 100%);
  border: 1.5px solid rgba(197, 160, 89, 0.45);
  color: #1F2937;
}

.rt-reserve-card--ig:hover {
  border-color: #C5A059;
  background: linear-gradient(135deg, rgba(197, 160, 89, 0.14) 0%, rgba(225, 48, 108, 0.10) 100%);
}

.rt-reserve-card--ig .rt-reserve-card-tag {
  background: linear-gradient(135deg, rgba(197, 160, 89, 0.25) 0%, rgba(225, 48, 108, 0.18) 100%);
  color: #8B4513;
}

.rt-reserve-card--ig .rt-reserve-card-title {
  color: #1A2332;
}

.rt-reserve-card--ig .rt-reserve-card-sub {
  color: #555E6D;
}

.rt-reserve-card-sub {
  font-size: 0.75rem;
  margin: 0;
  line-height: 1.4;
}

.rt-reserve-card--web .rt-reserve-card-sub {
  color: rgba(255, 255, 255, 0.88);
}

.rt-reserve-card--tel .rt-reserve-card-sub {
  color: #6B7280;
}

.rt-reserve-card-arrow {
  font-size: 1.25rem;
  font-weight: bold;
  opacity: 0.85;
}

.rt-reserve-notice-box {
  background: #FFFDF5;
  border: 1px solid #F3E8C8;
  border-radius: 10px;
  padding: 12px 14px;
  font-size: 0.75rem;
  color: #78350F;
  line-height: 1.55;
  margin-top: 4px;
}

.rt-reserve-notice-title {
  font-weight: 700;
  display: block;
  margin-bottom: 6px;
  color: #92400E;
}

.rt-reserve-notice-list {
  margin: 0;
  padding-left: 1.15rem;
  list-style-type: disc;
}

.rt-reserve-notice-list li {
  margin-bottom: 5px;
  line-height: 1.5;
}

.rt-reserve-notice-list li:last-child {
  margin-bottom: 0;
}

.rt-reserve-notice-list strong {
  color: #78350F;
}

/* ==========================================================================
   15.5 Concerns & Symptoms Section (SEO & Search Intent)
   ========================================================================== */
.rt-concerns {
  background: #FAF8F4;
  padding: 80px 0;
  border-bottom: 1px solid rgba(197, 160, 89, 0.2);
}

.rt-concerns-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin: 36px 0 32px;
}

@media (min-width: 640px) {
  .rt-concerns-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .rt-concerns-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
  }
}

.rt-concern-card {
  min-width: 0;
  background: #FFFFFF;
  border: 1px solid rgba(197, 160, 89, 0.24);
  border-radius: 14px;
  padding: 26px 22px;
  display: flex;
  flex-direction: column;
  box-shadow: 0 4px 16px rgba(20, 36, 27, 0.04);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.rt-concern-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(20, 36, 27, 0.08);
  border-color: rgba(197, 160, 89, 0.5);
}

.rt-concern-badge-wrap {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

.rt-concern-num {
  font-family: var(--rt-font-serif, "Cormorant Garamond", serif);
  font-size: 1.25rem;
  font-weight: 700;
  color: #C5A059;
}

.rt-concern-tag {
  font-size: 0.75rem;
  font-weight: 600;
  color: #8C6B28;
  background: rgba(197, 160, 89, 0.12);
  padding: 3px 10px;
  border-radius: 9999px;
}

.rt-concern-title {
  font-size: 1.0625rem;
  font-weight: 700;
  color: #1A2E22;
  line-height: 1.5;
  margin-bottom: 12px;
}

.rt-concern-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 10px 14px;
  background: rgba(197, 160, 89, 0.08);
  border: 1px solid rgba(197, 160, 89, 0.35);
  border-radius: 8px;
  color: #8C6B28;
  font-size: 0.8125rem;
  font-weight: 700;
  cursor: pointer;
  margin-top: 8px;
  transition: all 0.25s ease;
  font-family: inherit;
  box-sizing: border-box;
}

.rt-concern-toggle:hover {
  background: rgba(197, 160, 89, 0.16);
  border-color: #C5A059;
  color: #5A4414;
}

.rt-concern-toggle-text {
  display: inline-flex;
  align-items: center;
}

.rt-concern-toggle-icon {
  font-size: 0.875rem;
  font-weight: 700;
  margin-left: 8px;
  transition: transform 0.25s ease;
}

.rt-concern-card.is-open .rt-concern-toggle {
  background: #1A2E22;
  border-color: #C5A059;
  color: #E8D3A2;
}

.rt-concern-card.is-open .rt-concern-toggle-icon {
  transform: rotate(180deg);
}

.rt-concern-drawer {
  display: none;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px dashed rgba(197, 160, 89, 0.28);
  animation: rtDrawerFadeIn 0.3s ease forwards;
}

.rt-concern-card.is-open .rt-concern-drawer {
  display: block;
}

.rt-concern-reason-box {
  margin-top: 12px;
  padding: 10px 12px;
  background: rgba(197, 160, 89, 0.08);
  border-left: 3px solid #C5A059;
  border-radius: 0 6px 6px 0;
  font-size: 0.8125rem;
  line-height: 1.6;
  color: #3D443F;
}

.rt-concern-reason-label {
  display: block;
  font-weight: 700;
  color: #8C6B28;
  margin-bottom: 3px;
  font-size: 0.75rem;
  letter-spacing: 0.04em;
}

.rt-concern-desc {
  font-size: 0.875rem;
  line-height: 1.7;
  color: #555C56;
  margin: 0;
}

@keyframes rtDrawerFadeIn {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Biomechanics Pattern Drawer Styles */
.rt-diversity-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 8px 12px;
  background: rgba(197, 160, 89, 0.08);
  border: 1px solid rgba(197, 160, 89, 0.3);
  border-radius: 6px;
  color: #8C6B28;
  font-size: 0.8125rem;
  font-weight: 700;
  cursor: pointer;
  margin-top: 10px;
  transition: all 0.25s ease;
  font-family: inherit;
  box-sizing: border-box;
}

.rt-diversity-toggle:hover {
  background: rgba(197, 160, 89, 0.16);
  color: #5A4414;
}

.rt-diversity-card.is-open .rt-diversity-toggle {
  background: #1A2E22;
  border-color: #C5A059;
  color: #E8D3A2;
}

.rt-diversity-drawer {
  display: none;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed rgba(197, 160, 89, 0.25);
  animation: rtDrawerFadeIn 0.3s ease forwards;
}

.rt-diversity-card.is-open .rt-diversity-drawer {
  display: block;
}

/* Blog / Cases Compact & More Button Styles */
.rt-cases-more-wrap {
  text-align: center;
  margin-top: 28px;
}

.rt-cases-more-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 28px;
  background: #FFFFFF;
  border: 1.5px solid #C5A059;
  border-radius: 9999px;
  color: #8C6B28;
  font-size: 0.9375rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.25s ease;
  box-shadow: 0 4px 12px rgba(20, 36, 27, 0.05);
  font-family: inherit;
}

.rt-cases-more-btn:hover {
  background: #C5A059;
  color: #FFFFFF;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(197, 160, 89, 0.25);
}

@media (max-width: 767px) {
  .rt-case-card.is-hidden-mobile {
    display: none !important;
  }
  .rt-case-card.is-hidden-mobile.is-revealed {
    display: flex !important;
    animation: rtDrawerFadeIn 0.35s ease forwards;
  }
}

.rt-concerns-bridge {
  background: radial-gradient(circle at 50% 0%, rgba(35, 60, 44, 0.4) 0%, rgba(14, 25, 18, 0.95) 100%),
              linear-gradient(135deg, #101E15 0%, #16291E 100%);
  border: 1.5px solid rgba(197, 160, 89, 0.45);
  border-radius: 18px;
  padding: 32px 28px;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.28);
  position: relative;
  overflow: hidden;
  margin-top: 40px;
}

@media (min-width: 768px) {
  .rt-concerns-bridge {
    padding: 36px 40px;
  }
}

.rt-concerns-bridge-inner {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.rt-concerns-bridge-badge {
  display: inline-flex;
  align-self: flex-start;
  font-family: var(--rt-font-sans, "Noto Sans JP", sans-serif);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: #E5C378;
  background: rgba(197, 160, 89, 0.12);
  border: 1px solid rgba(197, 160, 89, 0.35);
  padding: 4px 14px;
  border-radius: 9999px;
  text-transform: uppercase;
}

.rt-concerns-bridge-heading {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  font-weight: 600;
  line-height: 1.5;
  color: #FFFFFF;
  letter-spacing: 0.06em;
  margin: 0;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.6);
}

.rt-concerns-bridge-statement {
  font-family: var(--rt-font-sans, "Noto Sans JP", sans-serif);
  font-size: clamp(0.9375rem, 2vw, 1.125rem);
  font-weight: 500;
  line-height: 1.75;
  color: #E5C378;
  letter-spacing: 0.05em;
  margin: 0;
  padding: 12px 16px;
  background: rgba(255, 255, 255, 0.04);
  border-left: 3px solid #C5A059;
  border-radius: 0 8px 8px 0;
}

.rt-concerns-bridge-text {
  color: #FAF9F5;
  font-size: 0.9375rem;
  line-height: 1.8;
  margin: 0;
}

.rt-concerns-bridge-text strong {
  color: #E5C378;
}

.rt-concerns-bridge-text .rt-marker {
  background: linear-gradient(transparent 60%, rgba(197, 160, 89, 0.3) 60%);
  padding: 0 4px;
  font-weight: 700;
  color: #E5C378;
}

.rt-concerns-bridge-action {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin-top: 8px;
}

.rt-concerns-bridge-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(135deg, #C5A059 0%, #B8860B 100%);
  color: #122118 !important;
  font-weight: 700;
  font-size: 0.875rem;
  padding: 12px 26px;
  border-radius: 9999px;
  text-decoration: none;
  white-space: nowrap;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  box-shadow: 0 4px 14px rgba(197, 160, 89, 0.3);
}

.rt-concerns-bridge-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(197, 160, 89, 0.45);
}

/* ==========================================================================
   15.8 FAQ Section (SEO & Rich Snippet Conversion)
   ========================================================================== */
.rt-faq {
  background: #F8F6F2;
  padding: 88px 0;
  border-top: 1px solid rgba(197, 160, 89, 0.2);
}

.rt-faq-container {
  max-width: 860px;
  margin: 0 auto;
}

.rt-faq-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 40px;
}

.rt-faq-item {
  background: #FFFFFF;
  border: 1px solid rgba(197, 160, 89, 0.26);
  border-radius: 12px;
  overflow: hidden;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.rt-faq-item.is-open,
details.rt-faq-item[open] {
  border-color: rgba(197, 160, 89, 0.6);
  box-shadow: 0 6px 20px rgba(15, 28, 20, 0.06);
}

.rt-faq-trigger,
.rt-faq-question {
  width: 100%;
  background: none;
  border: none;
  padding: 20px 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  font-size: 0.984375rem;
  font-weight: 700;
  color: #1A2E22;
  transition: color 0.2s ease;
  list-style: none;
  user-select: none;
  -webkit-user-select: none;
}

.rt-faq-question::-webkit-details-marker {
  display: none;
}

.rt-faq-question::marker {
  display: none;
}

.rt-faq-trigger:hover,
.rt-faq-question:hover {
  color: #8C6B28;
}

.rt-faq-q,
.rt-faq-question .rt-faq-q-text {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
}

.rt-faq-q-mark {
  font-family: var(--rt-font-serif, "Cormorant Garamond", serif);
  font-size: 1.375rem;
  font-weight: 700;
  color: #C5A059;
  line-height: 1;
  flex-shrink: 0;
}

.rt-faq-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  position: relative;
  transition: transform 0.3s ease;
}

.rt-faq-icon::before,
.rt-faq-icon::after {
  content: '';
  position: absolute;
  background-color: #8C6B28;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.rt-faq-icon::before {
  top: 9px;
  left: 2px;
  width: 16px;
  height: 2px;
}

.rt-faq-icon::after {
  top: 2px;
  left: 9px;
  width: 2px;
  height: 16px;
}

.rt-faq-item.is-open .rt-faq-icon::after,
details.rt-faq-item[open] .rt-faq-icon::after {
  transform: rotate(90deg);
  opacity: 0;
}

.rt-faq-answer {
  display: none;
  padding: 0 24px 22px 50px;
  font-size: 0.90625rem;
  line-height: 1.85;
  color: #4A5568;
  border-top: 1px dashed rgba(197, 160, 89, 0.2);
  margin-top: 4px;
  padding-top: 16px;
}

.rt-faq-item.is-open .rt-faq-answer,
details.rt-faq-item[open] .rt-faq-answer {
  display: block;
  animation: rtFadeIn 0.3s ease;
}

.rt-faq-a-mark {
  font-weight: 700;
  color: #1A2E22;
}

/* FAQ Section (Top page) */
.rt-faq-section {
  background-color: #FBF9F5;
  padding: 96px 0;
}
@media (max-width: 767px) {
  .rt-faq-section {
    padding: 64px 0;
  }
}

/* ==========================================================================
   16. Print Styles
   ========================================================================== */
@media print {
  .rt-header,
  .rt-sticky-cta,
  .rt-scroll-indicator {
    display: none !important;
  }

  .rt-hero {
    height: auto;
    min-height: 0;
  }

  .rt-hero-video {
    display: none;
  }

  .rt-section {
    padding: 32px 0;
  }

  body {
    background: white;
    color: black;
  }
}

/* ==========================================================================
   17. Rich Illustrations (Concerns, Features/Pillars, Flow)
   ========================================================================== */
.rt-concern-illus {
  width: 100%;
  margin-bottom: 16px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 10px;
  overflow: hidden;
}

.rt-concern-svg {
  width: 100%;
  height: auto;
  max-height: 125px;
  display: block;
}

.rt-concern-img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: center;
  border-radius: 10px;
  display: block;
  box-shadow: 0 4px 14px rgba(15, 28, 20, 0.08);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.35s ease;
}

.rt-concern-card:hover .rt-concern-img {
  transform: scale(1.02);
  box-shadow: 0 8px 22px rgba(15, 28, 20, 0.12);
}

.rt-feature-illus,
.rt-pillar-illus {
  width: 100%;
  margin-bottom: 18px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 8px;
  overflow: hidden;
}

.rt-feature-svg,
.rt-pillar-svg {
  width: 100%;
  height: auto;
  max-height: 110px;
  display: block;
}

.rt-flow-illus {
  width: 100%;
  margin: 12px 0 16px;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 10px;
  overflow: hidden;
}

.rt-flow-img {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 8px;
  display: block;
  box-shadow: 0 4px 14px rgba(10, 20, 15, 0.08);
  border: 1px solid rgba(197, 160, 89, 0.25);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.rt-flow-step:hover .rt-flow-img {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(10, 20, 15, 0.14);
}

.rt-flow-svg {
  width: 100%;
  max-width: 160px;
  height: auto;
  max-height: 90px;
  display: block;
}


/* ==========================================================================
   18. First-Visit Walkthrough & Timeline Simulation (#flow)
   ========================================================================== */
.rt-timeline-wrap {
  margin-top: 36px;
  position: relative;
}

.rt-timeline-wrap {
  margin-top: 48px;
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
}

.rt-timeline-notice {
  background: linear-gradient(135deg, rgba(197, 160, 89, 0.12) 0%, rgba(27, 77, 54, 0.08) 100%);
  border: 1px solid rgba(197, 160, 89, 0.35);
  border-radius: 14px;
  padding: 20px 24px;
  margin-bottom: 24px;
  display: flex;
  align-items: center;
  gap: 18px;
  font-size: 0.9375rem;
  color: var(--rt-dark);
}

.rt-timeline-notice-icon {
  font-size: 1.8rem;
  line-height: 1;
  color: var(--rt-gold);
  flex-shrink: 0;
}

.rt-timeline-notice-body {
  flex-grow: 1;
}

.rt-timeline-notice-title {
  font-weight: 700;
  color: var(--rt-deep-green);
  font-size: 1.0625rem;
  display: block;
  margin-bottom: 4px;
}

.rt-timeline-notice-desc {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.75;
  color: #4A524D;
}

/* 60-Minute Visual Process Overview Bar (PC & Tablet) */
.rt-timeline-progress-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #F4F6F4;
  border: 1px solid rgba(27, 77, 54, 0.12);
  border-radius: 12px;
  padding: 12px 16px;
  margin-bottom: 24px;
  gap: 8px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.rt-progress-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 8px 10px;
  border-radius: 8px;
  background: #FFFFFF;
  border: 1px solid rgba(27, 77, 54, 0.1);
  flex: 1;
  min-width: 110px;
  transition: all 0.2s ease;
}

.rt-progress-step--main {
  background: #1B4D36;
  border-color: var(--rt-gold);
  color: #FFFFFF;
  box-shadow: 0 4px 12px rgba(27, 77, 54, 0.18);
}

.rt-progress-step--main .rt-progress-num {
  color: var(--rt-gold);
}

.rt-progress-step--main .rt-progress-name {
  color: #FFFFFF;
  font-weight: 700;
}

.rt-progress-step--main .rt-progress-time {
  background: rgba(229, 195, 120, 0.22);
  color: #F8E2AC;
}

.rt-progress-num {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--rt-gold);
  letter-spacing: 0.05em;
  margin-bottom: 2px;
}

.rt-progress-name {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--rt-dark);
  white-space: nowrap;
}

.rt-progress-time {
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--rt-deep-green);
  background: rgba(27, 77, 54, 0.08);
  padding: 2px 8px;
  border-radius: 10px;
  margin-top: 4px;
  white-space: nowrap;
}

.rt-progress-arrow {
  color: rgba(197, 160, 89, 0.8);
  font-size: 1.125rem;
  font-weight: bold;
  flex-shrink: 0;
  line-height: 1;
  user-select: none;
}

/* 5 Chronological Timeline Cards (Wide, Spacious Row Cards on PC) */
.rt-timeline-grid {
  display: flex;
  flex-direction: column;
  gap: 16px;
  position: relative;
}

.rt-timeline-card {
  background: var(--rt-white);
  border-radius: 14px;
  padding: 22px 28px;
  border: 1px solid rgba(27, 77, 54, 0.12);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03);
  position: relative;
  display: grid;
  grid-template-columns: 140px 1fr;
  align-items: center;
  gap: 28px;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.rt-timeline-card:hover {
  transform: translateX(4px);
  box-shadow: 0 8px 24px rgba(27, 77, 54, 0.08);
  border-color: var(--rt-gold);
}

.rt-timeline-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 12px 14px;
  background: #F8FAF8;
  border: 1px solid rgba(27, 77, 54, 0.08);
  border-radius: 10px;
  text-align: center;
  flex-shrink: 0;
}

.rt-timeline-step-num {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--rt-gold);
  line-height: 1;
  margin-bottom: 6px;
  letter-spacing: 0.04em;
}

.rt-timeline-time-badge {
  font-size: 0.75rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 20px;
  background: rgba(27, 77, 54, 0.1);
  color: var(--rt-deep-green);
  white-space: nowrap;
}

.rt-timeline-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.rt-timeline-title-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.rt-timeline-title {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--rt-dark);
  margin: 0;
  line-height: 1.4;
}

.rt-timeline-tag {
  font-size: 0.6875rem;
  font-weight: 600;
  color: #785A18;
  background: rgba(197, 160, 89, 0.15);
  border: 1px solid rgba(197, 160, 89, 0.35);
  padding: 2px 8px;
  border-radius: 6px;
  white-space: nowrap;
}

.rt-timeline-desc {
  font-size: 0.875rem;
  line-height: 1.75;
  color: #4E5651;
  margin: 0;
}

/* Mobile responsive (767px以下) */
@media (max-width: 767px) {
  .rt-timeline-card {
    grid-template-columns: 1fr;
    gap: 14px;
    padding: 18px 18px;
  }
  .rt-timeline-header {
    flex-direction: row;
    justify-content: space-between;
    padding: 8px 14px;
  }
  .rt-timeline-step-num {
    font-size: 1.25rem;
    margin-bottom: 0;
  }
  .rt-timeline-title-wrap {
    gap: 8px;
  }
}

/* ==========================================================================
   19. 3-Second Interactive Self-Check Box (#biomechanics)
   ========================================================================== */
.rt-selfcheck-container {
  background: linear-gradient(135deg, #FAF8F2 0%, #F3EFE6 100%);
  border: 1px solid rgba(197, 160, 89, 0.45);
  border-radius: 16px;
  padding: 36px 30px;
  margin: 40px auto 52px;
  box-shadow: 0 10px 30px rgba(27, 77, 54, 0.06);
  max-width: 960px;
}

.rt-selfcheck-head {
  text-align: center;
  margin-bottom: 28px;
}

.rt-selfcheck-badge {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  background: var(--rt-deep-green);
  color: var(--rt-gold);
  padding: 4px 14px;
  border-radius: 20px;
  margin-bottom: 10px;
}

.rt-selfcheck-title {
  font-family: var(--rt-font-serif);
  font-size: clamp(1.2rem, 3vw, 1.5rem);
  font-weight: 700;
  color: var(--rt-dark);
  line-height: 1.4;
  margin-bottom: 8px;
}

.rt-selfcheck-subtitle {
  font-size: 0.875rem;
  color: #636B66;
  margin: 0;
}

.rt-selfcheck-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}

.rt-selfcheck-card {
  background: var(--rt-white);
  border: 2px solid #E3DDD0;
  border-radius: 12px;
  padding: 20px 18px;
  cursor: pointer;
  transition: all 0.25s ease;
  user-select: none;
  display: flex;
  flex-direction: column;
}

.rt-selfcheck-card:hover {
  border-color: var(--rt-gold);
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06);
}

.rt-selfcheck-card.is-checked {
  border-color: #C0392B;
  background: #FFFDFC;
  box-shadow: 0 6px 20px rgba(192, 57, 43, 0.12);
}

.rt-selfcheck-checkline {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}

.rt-selfcheck-box-icon {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  border: 2px solid #C0B7A6;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-weight: bold;
  font-size: 0.875rem;
  color: transparent;
  transition: all 0.2s ease;
}

.rt-selfcheck-card.is-checked .rt-selfcheck-box-icon {
  background: #C0392B;
  border-color: #C0392B;
  color: #FFFFFF;
}

.rt-selfcheck-card-title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--rt-dark);
  margin: 0;
}

.rt-selfcheck-card-desc {
  font-size: 0.8125rem;
  line-height: 1.65;
  color: #58605B;
  margin: 0;
  padding-left: 36px;
}

.rt-selfcheck-result {
  background: var(--rt-white);
  border: 1px solid rgba(197, 160, 89, 0.4);
  border-radius: 12px;
  padding: 24px 26px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03);
}

.rt-selfcheck-result-header {
  display: flex;
  align-items: center;
  gap: 12px;
}

.rt-selfcheck-result-status {
  font-size: 0.8125rem;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 20px;
  background: rgba(197, 160, 89, 0.15);
  color: #8B6914;
}

.rt-selfcheck-result.has-warning .rt-selfcheck-result-status {
  background: rgba(192, 57, 43, 0.12);
  color: #C0392B;
}

.rt-selfcheck-result-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--rt-dark);
  margin: 0;
}

.rt-selfcheck-result-text {
  font-size: 0.875rem;
  line-height: 1.75;
  color: #444E47;
  margin: 0;
}

.rt-selfcheck-cta-wrap {
  margin-top: 8px;
  display: flex;
  justify-content: flex-end;
}

/* ==========================================================================
   20. WHO International Standard Education Infographic (#profile)
   ========================================================================== */
.rt-who-comparison {
  margin-top: 48px;
  background: var(--rt-white);
  border: 1px solid rgba(197, 160, 89, 0.35);
  border-radius: 14px;
  padding: 30px 24px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.04);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  min-width: 0;
}

@media (max-width: 767px) {
  .rt-who-comparison {
    padding: 22px 14px;
    margin-top: 36px;
    border-radius: 10px;
  }
}

.rt-who-header-box {
  text-align: center;
  margin-bottom: 24px;
}

.rt-who-subtag {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: #8B6914;
  text-transform: uppercase;
  display: block;
  margin-bottom: 6px;
}

.rt-who-title {
  font-family: var(--rt-font-serif);
  font-size: clamp(1.125rem, 2.5vw, 1.375rem);
  font-weight: 700;
  color: var(--rt-dark);
  line-height: 1.45;
  margin: 0;
}

.rt-who-scroll-hint {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 0.78125rem;
  font-weight: 700;
  color: #8C6B28;
  background: rgba(197, 160, 89, 0.12);
  border: 1px solid rgba(197, 160, 89, 0.35);
  padding: 6px 14px;
  border-radius: 20px;
  margin: 0 auto 16px;
  text-align: center;
}

@media (min-width: 768px) {
  .rt-who-scroll-hint {
    display: none !important;
  }
}

.rt-who-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}

.rt-who-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
  min-width: 540px;
}

.rt-who-table th,
.rt-who-table td {
  padding: 14px 16px;
  border-bottom: 1px solid #ECE7DC;
  text-align: left;
  vertical-align: middle;
}

.rt-who-table th {
  background: #FAF8F3;
  font-weight: 700;
  color: #38423C;
}

.rt-who-table th.col-who {
  background: linear-gradient(180deg, #1B4D36 0%, #153E2B 100%);
  color: #FFF8E7;
  width: 44%;
  border-radius: 8px 8px 0 0;
}

.rt-who-table th.col-general {
  background: #EFECE6;
  color: #555E58;
  width: 36%;
}

.rt-who-table td.cell-who {
  background: rgba(27, 77, 54, 0.03);
  font-weight: 600;
  color: #123825;
  border-left: 2px solid rgba(27, 77, 54, 0.2);
  border-right: 2px solid rgba(27, 77, 54, 0.2);
}

.rt-who-highlight {
  color: #B28833;
  font-weight: 800;
}

.rt-who-footnote {
  margin-top: 18px;
  font-size: 0.75rem;
  line-height: 1.7;
  color: #727B75;
}

/* ==========================================================================
   21. Step-by-Step Visual Station-to-Clinic Route Guide (#access)
   ========================================================================== */
.rt-route-guide-section {
  margin-top: 48px;
  padding-top: 36px;
  border-top: 1px solid rgba(197, 160, 89, 0.25);
}

.rt-route-guide-header {
  text-align: center;
  margin-bottom: 32px;
}

.rt-route-guide-tag {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  color: var(--rt-gold);
  text-transform: uppercase;
  display: block;
  margin-bottom: 8px;
}

.rt-route-guide-title {
  font-family: var(--rt-font-serif);
  font-size: clamp(1.2rem, 3vw, 1.5rem);
  font-weight: 700;
  color: var(--rt-white);
  line-height: 1.45;
  margin-bottom: 10px;
}

.rt-route-guide-subtitle {
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.75);
  max-width: 680px;
  margin: 0 auto;
}

.rt-route-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: 22px;
}

.rt-route-card {
  min-width: 0;
  background: #182A20;
  border: 1px solid rgba(197, 160, 89, 0.3);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
  display: flex;
  flex-direction: column;
  transition: transform 0.25s ease, border-color 0.25s ease;
}

.rt-route-card:hover {
  transform: translateY(-4px);
  border-color: var(--rt-gold);
}

.rt-route-img-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #0D1711;
}

.rt-route-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  transition: transform 0.35s ease;
}

.rt-route-card:hover .rt-route-img {
  transform: scale(1.04);
}

.rt-route-step-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: rgba(21, 36, 27, 0.85);
  border: 1px solid var(--rt-gold);
  color: var(--rt-gold);
  font-family: var(--rt-font-sans, "Noto Sans JP", sans-serif);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 4px 10px;
  border-radius: 6px;
  backdrop-filter: blur(4px);
}

.rt-route-body {
  padding: 20px 18px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.rt-route-card-title {
  font-size: 1rem;
  font-weight: 700;
  color: #FFF8E7;
  margin-bottom: 8px;
  line-height: 1.4;
}

.rt-route-card-desc {
  font-size: 0.8125rem;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.8);
  margin: 0;
}


/* ==========================================================================
   Rooton Chiropractic Brand Identity Box (Profile)
   ========================================================================== */
.rt-profile-brand-box {
  background: linear-gradient(135deg, rgba(27, 77, 54, 0.04) 0%, rgba(197, 160, 89, 0.08) 100%);
  border: 1px solid rgba(197, 160, 89, 0.35);
  border-left: 4px solid #C5A059;
  border-radius: 8px;
  padding: 18px 20px;
  margin: 18px 0 24px;
}

.rt-profile-brand-badge {
  display: inline-block;
  font-family: var(--rt-font-sans, "Noto Sans JP", sans-serif);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #8C6B28;
  background: rgba(197, 160, 89, 0.15);
  padding: 3px 8px;
  border-radius: 4px;
  margin-bottom: 8px;
  text-transform: uppercase;
}

.rt-profile-brand-lead {
  font-size: 0.9375rem;
  line-height: 1.7;
  color: #1B4D36;
  margin-bottom: 8px;
}

.rt-profile-brand-text {
  font-size: 0.8125rem;
  line-height: 1.75;
  color: #4A5568;
  margin-bottom: 0;
}

/* ==========================================================================
   100点向上施策：信頼マイクロコピー（CTA安心ピルバッジ）＆マーカーハイライト
   ========================================================================== */

/* 上質マーカーハイライト（流し読み時のキーセンテンス強調） */
.rt-marker {
  background: linear-gradient(transparent 60%, rgba(212, 175, 55, 0.24) 60%);
  font-weight: 700;
  padding: 0 2px;
  border-radius: 2px;
}

.rt-marker-gold {
  background: linear-gradient(transparent 55%, rgba(197, 160, 89, 0.32) 55%);
  font-weight: 700;
  color: #1A2E22;
  padding: 0 3px;
  border-radius: 2px;
}

/* CTA直下の安心ピルバッジ群 */
.rt-cta-trust-bar {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 6px 12px;
  margin-top: 14px;
  padding: 0 10px;
}

.rt-cta-trust-pill {
  display: inline-flex;
  align-items: center;
  font-size: 0.75rem;
  font-weight: 600;
  color: #374151;
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(197, 160, 89, 0.35);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  padding: 3px 10px;
  border-radius: 9999px;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.rt-cta-trust-pill::before {
  content: "✓";
  margin-right: 4px;
  color: #1B4D36;
  font-weight: 900;
  font-size: 0.8125rem;
}

/* ダークセクション（Hero / Info）用の安心ピルバッジ */
.rt-cta-trust-bar--dark .rt-cta-trust-pill {
  color: #E2E8F0;
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(212, 175, 55, 0.35);
}

.rt-cta-trust-bar--dark .rt-cta-trust-pill::before {
  color: #E5C378;
}

/* 生体力学セクション直後の中間コンバージョンボックス */
.rt-biomech-cta-box {
  margin-top: 48px;
  padding: 32px 24px;
  background: linear-gradient(135deg, rgba(27, 77, 54, 0.06) 0%, rgba(197, 160, 89, 0.12) 100%);
  border: 1px solid rgba(197, 160, 89, 0.4);
  border-radius: 12px;
  text-align: center;
  box-shadow: 0 4px 20px rgba(27, 77, 54, 0.06);
}

.rt-biomech-cta-tag {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: #1B4D36;
  background: rgba(27, 77, 54, 0.1);
  padding: 4px 12px;
  border-radius: 9999px;
  margin-bottom: 12px;
  text-transform: uppercase;
}

.rt-biomech-cta-title {
  font-family: var(--rt-font-mincho, 'Shippori Mincho', serif);
  font-size: clamp(1.1875rem, 2.8vw, 1.5rem);
  font-weight: 700;
  color: #1B4D36;
  line-height: 1.45;
  margin-bottom: 12px;
}

.rt-biomech-cta-desc {
  font-size: 0.875rem;
  line-height: 1.75;
  color: #4B5563;
  max-width: 640px;
  margin: 0 auto 20px;
}

.rt-biomech-cta-btn-wrap {
  margin-bottom: 6px;
}

@media (max-width: 767px) {
  .rt-biomech-cta-box {
    margin-top: 36px;
    padding: 24px 16px;
  }
  .rt-cta-trust-bar {
    gap: 5px 8px;
  }
  .rt-cta-trust-pill {
    font-size: 0.6875rem;
    padding: 2px 8px;
  }
}

/* ==========================================================================
   PRICING & MEDIA MONITOR OFFER SECTION
   ========================================================================== */
.rt-pricing {
  background-color: var(--rt-cream, #FAF8F4);
  padding: 100px 0;
  position: relative;
}

.rt-pricing-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
  max-width: 920px;
  margin: 40px auto 0;
  align-items: stretch;
}

.rt-pricing-grid--single {
  display: flex;
  justify-content: center;
  max-width: 600px;
  margin: 40px auto 0;
}

.rt-pricing-grid--single .rt-pricing-card {
  width: 100%;
  max-width: 600px;
  border: 2px solid rgba(197, 160, 89, 0.45);
  box-shadow: 0 16px 48px rgba(18, 36, 29, 0.08);
  padding: 44px 36px;
}

.rt-pricing-card {
  background: #FFFFFF;
  border-radius: 16px;
  padding: 40px 32px;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.04);
  display: flex;
  flex-direction: column;
  position: relative;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.rt-pricing-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.08);
}

.rt-pricing-card--standard {
  border: 1px solid rgba(0, 0, 0, 0.08);
}

.rt-pricing-card--monitor {
  border: 2px solid #C5A059;
  background: linear-gradient(180deg, #FFFFFF 0%, #FAF8F2 100%);
  box-shadow: 0 8px 32px rgba(197, 160, 89, 0.16);
  overflow: hidden;
}

.rt-pricing-ribbon {
  position: absolute;
  top: 20px;
  right: -38px;
  transform: rotate(45deg);
  background: linear-gradient(135deg, #C5A059 0%, #A37E36 100%);
  color: #FFFFFF;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  padding: 6px 44px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  pointer-events: none;
}

.rt-pricing-card-header {
  margin-bottom: 20px;
}

.rt-pricing-badge {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: #6E6E6E;
  background: #F0EDE8;
  padding: 4px 12px;
  border-radius: 9999px;
  margin-bottom: 12px;
  text-transform: uppercase;
}

.rt-pricing-badge--gold {
  color: #8F6B23;
  background: rgba(197, 160, 89, 0.15);
  border: 1px solid rgba(197, 160, 89, 0.3);
}

.rt-pricing-name {
  font-family: var(--rt-font-mincho, 'Shippori Mincho', serif);
  font-size: 1.375rem;
  font-weight: 700;
  color: #1B4D36;
  line-height: 1.4;
  margin-bottom: 8px;
}

.rt-pricing-time {
  font-size: 0.8125rem;
  color: #718096;
  margin: 0;
}

.rt-pricing-price-box {
  padding: 20px 0;
  border-top: 1px solid rgba(0, 0, 0, 0.06);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  margin-bottom: 24px;
  text-align: center;
}

.rt-pricing-original-price {
  font-size: 0.875rem;
  color: #9CA3AF;
  text-decoration: line-through;
  margin-bottom: 4px;
}

.rt-pricing-price {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 4px;
  color: #1A202C;
}

.rt-pricing-amount {
  font-family: var(--rt-font-sans, "Noto Sans JP", -apple-system, sans-serif);
  font-size: 2.75rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1;
}

.rt-pricing-price--highlight .rt-pricing-amount {
  color: #B58428;
}

.rt-pricing-unit {
  font-size: 0.875rem;
  font-weight: 500;
  color: #4A5568;
}

.rt-pricing-note {
  font-size: 0.75rem;
  color: #718096;
  margin-top: 6px;
  margin-bottom: 0;
}

.rt-pricing-discount-tag {
  display: inline-block;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #B58428;
  background: rgba(197, 160, 89, 0.12);
  padding: 4px 12px;
  border-radius: 9999px;
  margin-top: 8px;
  border: 1px solid rgba(197, 160, 89, 0.25);
}

.rt-pricing-features {
  list-style: none;
  padding: 0;
  margin: 0 0 24px;
  font-size: 0.875rem;
  color: #4A5568;
  line-height: 1.7;
}

.rt-pricing-features li {
  position: relative;
  padding-left: 24px;
  margin-bottom: 10px;
}

.rt-pricing-features .rt-check-icon {
  position: absolute;
  left: 0;
  top: 0;
  color: #1B4D36;
  font-weight: 700;
}

/* Privacy Assurance Banner in Monitor Card */
.rt-monitor-privacy-banner {
  background: rgba(27, 77, 54, 0.04);
  border: 1px solid rgba(197, 160, 89, 0.35);
  border-left: 4px solid #C5A059;
  border-radius: 8px;
  padding: 14px 16px;
  margin-bottom: 20px;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  text-align: left;
}

.rt-monitor-shield-icon {
  flex-shrink: 0;
  margin-top: 2px;
}

.rt-monitor-privacy-text strong {
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  color: #1B4D36;
  margin-bottom: 4px;
  line-height: 1.4;
}

.rt-monitor-privacy-text p {
  font-size: 0.8125rem;
  color: #4B5563;
  line-height: 1.6;
  margin: 0;
}

.rt-monitor-conditions {
  margin-bottom: 24px;
  text-align: left;
  background: #FFFFFF;
  border-radius: 8px;
  padding: 14px 16px;
  border: 1px solid rgba(0, 0, 0, 0.06);
}

.rt-monitor-cond-title {
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #1B4D36;
  margin-bottom: 8px;
}

.rt-monitor-cond-list {
  list-style: none;
  padding: 0;
  margin: 0;
  font-size: 0.8125rem;
  color: #4B5563;
  line-height: 1.6;
}

.rt-monitor-cond-list li {
  position: relative;
  padding-left: 16px;
  margin-bottom: 6px;
}

.rt-monitor-cond-list li::before {
  content: "•";
  position: absolute;
  left: 4px;
  color: #C5A059;
  font-weight: bold;
}

.rt-pricing-action {
  margin-top: auto;
}

.rt-btn-block {
  display: block;
  width: 100%;
  text-align: center;
  box-sizing: border-box;
}

.rt-btn-secondary {
  display: block;
  width: 100%;
  padding: 14px 24px;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #1B4D36;
  background: #F4F1EA;
  border: 1px solid rgba(27, 77, 54, 0.2);
  border-radius: 8px;
  text-align: center;
  text-decoration: none;
  transition: all 0.3s ease;
}

.rt-btn-secondary:hover {
  background: #E8E3D7;
  color: #123324;
}

.rt-monitor-book-hint {
  font-size: 0.75rem;
  color: #718096;
  margin-top: 10px;
  text-align: center;
  line-height: 1.5;
  margin-bottom: 0;
}

/* SNS Monitor Callout Banners (in YouTube / Instagram) */
.rt-media-monitor-callout {
  background: #FFFFFF;
  border: 1px solid rgba(197, 160, 89, 0.4);
  border-radius: 12px;
  padding: 20px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 40px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
}

.rt-media-monitor-left {
  display: flex;
  align-items: center;
  gap: 16px;
}

.rt-media-monitor-badge {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: #8F6B23;
  background: rgba(197, 160, 89, 0.15);
  border: 1px solid rgba(197, 160, 89, 0.3);
  padding: 3px 10px;
  border-radius: 9999px;
  margin-bottom: 6px;
  text-transform: uppercase;
}

.rt-media-monitor-title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: #1B4D36;
  line-height: 1.4;
  margin: 0 0 4px;
}

.rt-media-monitor-sub {
  font-size: 0.8125rem;
  color: #6B7280;
  margin: 0;
}

.rt-media-monitor-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 20px;
  font-size: 0.875rem;
  font-weight: 700;
  color: #1B4D36;
  background: linear-gradient(135deg, rgba(197, 160, 89, 0.15) 0%, rgba(197, 160, 89, 0.25) 100%);
  border: 1px solid #C5A059;
  border-radius: 6px;
  text-decoration: none;
  white-space: nowrap;
  transition: all 0.3s ease;
}

.rt-media-monitor-btn:hover {
  background: #C5A059;
  color: #FFFFFF;
}

@media (max-width: 767px) {
  .rt-pricing {
    padding: 60px 0;
  }
  .rt-pricing-grid {
    grid-template-columns: 1fr;
    gap: 28px;
    margin-top: 28px;
  }
  .rt-pricing-card {
    padding: 32px 20px;
  }
  .rt-pricing-amount {
    font-size: 2.5rem;
  }
  .rt-media-monitor-callout {
    flex-direction: column;
    text-align: center;
    gap: 16px;
    padding: 20px 16px;
  }
  .rt-media-monitor-left {
    flex-direction: column;
    gap: 8px;
  }
  .rt-media-monitor-btn {
    width: 100%;
    justify-content: center;
  }
}

/* ==========================================================================
   RESERVATION INSTRUCTION & COMMENT NOTICE
   ========================================================================== */
.rt-booking-instruction-box {
  margin-top: 20px;
  padding: 16px 20px;
  background: rgba(197, 160, 89, 0.08);
  border: 1px solid rgba(197, 160, 89, 0.35);
  border-radius: 8px;
  text-align: left;
}

.rt-instruction-header {
  margin-bottom: 6px;
}

.rt-instruction-badge {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: #12241D;
  background: #E5C378;
  padding: 2px 10px;
  border-radius: 4px;
  text-transform: uppercase;
}

.rt-instruction-text {
  font-size: 0.8125rem;
  line-height: 1.65;
  color: #F3F4F6;
  margin: 0;
}

.rt-instruction-text strong {
  color: #FFF;
  background: rgba(229, 195, 120, 0.25);
  padding: 1px 5px;
  border-radius: 3px;
  font-weight: 700;
}

.rt-plan-book-hint {
  font-size: 0.75rem;
  color: #718096;
  margin-top: 10px;
  text-align: center;
  line-height: 1.5;
  margin-bottom: 0;
}

.rt-hero-book-subnote {
  font-size: 0.75rem;
  color: #4B5563;
  margin-top: 10px;
  text-align: center;
  line-height: 1.5;
}

.rt-hero-book-subnote strong,
.rt-biomech-cta-subnote strong {
  color: #1B4D36;
}

.rt-biomech-cta-subnote {
  font-size: 0.75rem;
  color: #4B5563;
  margin-top: 10px;
  text-align: center;
  line-height: 1.5;
  margin-bottom: 0;
}

.rt-instruction-list {
  list-style: none;
  padding: 0;
  margin: 8px 0 0;
  font-size: 0.8125rem;
  line-height: 1.65;
  color: #F3F4F6;
}

.rt-instruction-list li {
  position: relative;
  padding-left: 18px;
  margin-bottom: 8px;
}

.rt-instruction-list li:last-child {
  margin-bottom: 0;
}

.rt-instruction-list li::before {
  content: "▶";
  position: absolute;
  left: 0;
  top: 0;
  font-size: 0.625rem;
  color: #E5C378;
}

.rt-instruction-list strong {
  color: #FFF;
  background: rgba(229, 195, 120, 0.25);
  padding: 1px 5px;
  border-radius: 3px;
}

.rt-monitor-cond-list li.rt-monitor-highlight-item {
  background: rgba(197, 160, 89, 0.1);
  padding: 8px 12px 8px 24px;
  border-radius: 6px;
  border-left: 3px solid #C5A059;
  margin-top: 8px;
  color: #2D2D2D;
}

.rt-monitor-cond-list li.rt-monitor-highlight-item::before {
  left: 8px;
  top: 8px;
}

.rt-monitor-cond-list li.rt-monitor-alert-item {
  background: rgba(27, 77, 54, 0.06);
  padding: 8px 12px 8px 24px;
  border-radius: 6px;
  border-left: 3px solid #1B4D36;
  margin-top: 6px;
  color: #2D2D2D;
}

.rt-monitor-cond-list li.rt-monitor-alert-item::before {
  left: 8px;
  top: 8px;
}

/* ==========================================================================
   14. Clinical Cases & Blog Column Section (#cases)
   ========================================================================== */
.rt-cases {
  background: #FDFCF9;
  border-top: 1px solid rgba(197, 160, 89, 0.2);
  border-bottom: 1px solid rgba(197, 160, 89, 0.2);
  padding: 80px 0;
  position: relative;
}

.rt-cases-header-desc {
  max-width: 680px;
  margin: 12px auto 0;
  font-size: 0.9375rem;
  color: #555E57;
  line-height: 1.75;
  text-align: center;
}

/* Category Filter Tabs */
.rt-cases-filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin: 32px 0 40px;
}

.rt-cases-filter-btn {
  background: #FFFFFF;
  border: 1px solid #D1D5DB;
  border-radius: 9999px;
  padding: 8px 18px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #374151;
  cursor: pointer;
  transition: all 0.2s ease;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.rt-cases-filter-btn:hover {
  border-color: #C5A059;
  color: #12241D;
  background: #FAF8F5;
}

.rt-cases-filter-btn.is-active {
  background: #1B4D36;
  border-color: #1B4D36;
  color: #FFFFFF;
  box-shadow: 0 4px 12px rgba(27, 77, 54, 0.2);
}

/* Cases Grid */
.rt-cases-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
}

@media (min-width: 768px) {
  .rt-cases-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .rt-cases-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Case Card */
.rt-case-card {
  background: #FFFFFF;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid #E5E7EB;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  flex-direction: column;
  position: relative;
  text-decoration: none;
  color: inherit;
}

.rt-case-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(27, 77, 54, 0.12);
  border-color: #C5A059;
}

.rt-case-media {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #E5E7EB;
}

.rt-case-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.rt-case-card:hover .rt-case-thumb {
  transform: scale(1.04);
}

.rt-case-category-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: rgba(18, 36, 29, 0.88);
  color: #E5C378;
  font-size: 0.6875rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 4px;
  backdrop-filter: blur(4px);
  letter-spacing: 0.05em;
}

.rt-case-content {
  padding: 22px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.rt-case-profile-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.75rem;
  font-weight: 700;
  color: #1B4D36;
  background: rgba(27, 77, 54, 0.08);
  padding: 3px 8px;
  border-radius: 4px;
  margin-bottom: 10px;
  width: fit-content;
}

.rt-case-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 12px;
}

.rt-case-tag {
  display: inline-flex;
  align-items: center;
  font-size: 0.6875rem;
  font-weight: 600;
  color: #1B4D36;
  background: rgba(27, 77, 54, 0.07);
  border: 1px solid rgba(197, 160, 89, 0.35);
  border-radius: 9999px;
  padding: 3px 9px;
  line-height: 1.3;
  transition: all 0.2s ease;
}

.rt-case-card:hover .rt-case-tag {
  background: rgba(27, 77, 54, 0.12);
  border-color: #C5A059;
}

.rt-case-card-title {
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.5;
  color: #1A202C;
  margin: 0 0 12px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-wrap: balance;
  word-break: auto-phrase;
  line-break: strict;
}

.rt-case-card:hover .rt-case-card-title {
  color: #1B4D36;
}

.rt-case-excerpt {
  font-size: 0.84375rem;
  color: #4A5568;
  line-height: 1.65;
  margin: 0 0 16px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  flex-grow: 1;
}

/* Biomechanics Key Insight Box inside Card */
.rt-case-insight {
  background: #FAF8F5;
  border-left: 3px solid #C5A059;
  padding: 8px 12px;
  border-radius: 0 6px 6px 0;
  font-size: 0.78125rem;
  color: #2D3748;
  margin-bottom: 16px;
  line-height: 1.5;
}

.rt-case-insight strong {
  color: #1B4D36;
  font-weight: 700;
}

.rt-case-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid #EDF2F7;
  padding-top: 14px;
  margin-top: auto;
}

.rt-case-date {
  font-size: 0.75rem;
  color: #A0AEC0;
}

.rt-case-readmore {
  font-size: 0.8125rem;
  font-weight: 700;
  color: #1B4D36;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: gap 0.2s ease;
}

.rt-case-card:hover .rt-case-readmore {
  gap: 8px;
  color: #C5A059;
}

/* Bottom CTA & Archive Link */
.rt-cases-action {
  text-align: center;
  margin-top: 48px;
}

.rt-btn-archive {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #FFFFFF;
  border: 1.5px solid #1B4D36;
  color: #1B4D36;
  padding: 12px 32px;
  border-radius: 8px;
  font-size: 0.9375rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.25s ease;
  min-height: 48px;
}

.rt-btn-archive:hover {
  background: #1B4D36;
  color: #FFFFFF;
  box-shadow: 0 6px 20px rgba(27, 77, 54, 0.2);
}

.rt-cases-disclaimer {
  font-size: 0.75rem;
  color: #718096;
  text-align: center;
  margin-top: 20px;
  line-height: 1.5;
}

/* ==========================================================================
   15. Single Article & Archive Page Template Styles
   ========================================================================== */
.rt-article-page {
  background: #FAF8F5;
  padding: 40px 0 80px;
}

.rt-article-container {
  max-width: 860px;
  margin: 0 auto;
  padding: 0 20px;
}

/* Breadcrumbs Default (Light Theme / Articles & Common Pages) */
.rt-breadcrumbs {
  font-size: 0.875rem;
  color: #4A5568;
  margin-bottom: 24px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  line-height: 1.5;
}

.rt-breadcrumbs a {
  color: #1A202C !important;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: rgba(26, 32, 44, 0.35);
  transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.rt-breadcrumbs a:hover {
  color: #1B4D36 !important;
  text-decoration-color: #1B4D36;
}

.rt-article-main .rt-breadcrumbs span,
.rt-sub-card .rt-breadcrumbs span,
body:not(.rt-sub-page) .rt-breadcrumbs span {
  color: #4A5568;
  font-weight: 500;
}

.rt-article-main .rt-breadcrumbs span.rt-breadcrumb-current,
.rt-article-main .rt-breadcrumbs span:last-child,
.rt-sub-card .rt-breadcrumbs span.rt-breadcrumb-current,
.rt-sub-card .rt-breadcrumbs span:last-child {
  color: #1B4D36;
  font-weight: 700;
}

.rt-case-date {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #374151 !important;
}

.rt-article-readtime {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #374151 !important;
}

.rt-article-main {
  background: #FFFFFF;
  border-radius: 12px;
  padding: 32px 24px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.04);
  border: 1px solid #E2E8F0;
}

@media (min-width: 768px) {
  .rt-article-main {
    padding: 48px 48px;
  }
}

.rt-article-header {
  border-bottom: 1px solid #E2E8F0;
  padding-bottom: 24px;
  margin-bottom: 32px;
}

.rt-article-meta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}

.rt-article-title {
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.45;
  color: #12241D;
  margin: 0 0 16px;
  text-wrap: balance;
  word-break: auto-phrase;
  line-break: strict;
  overflow-wrap: break-word;
}

@media (min-width: 768px) {
  .rt-article-title {
    font-size: 1.875rem;
  }
}

/* Clinical Summary Sheet (カルテサマリー) */
.rt-case-sheet {
  background: #F4F8F5;
  border: 1.5px solid #CBE2D4;
  border-radius: 10px;
  padding: 24px;
  margin: 28px 0;
}

.rt-case-sheet-title {
  font-size: 1rem;
  font-weight: 800;
  color: #1B4D36;
  margin: 0 0 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.rt-case-sheet-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

@media (min-width: 640px) {
  .rt-case-sheet-grid {
    grid-template-columns: 140px 1fr;
  }
}

.rt-case-sheet-label {
  font-weight: 700;
  font-size: 0.84375rem;
  color: #2D3748;
}

.rt-case-sheet-val {
  font-size: 0.84375rem;
  color: #4A5568;
  line-height: 1.6;
}

/* Article Body Typography */
.rt-article-body h2 {
  font-size: 1.375rem;
  font-weight: 800;
  color: #12241D;
  border-left: 4px solid #C5A059;
  padding-left: 14px;
  margin: 40px 0 20px;
  line-height: 1.5;
  text-wrap: balance;
  word-break: auto-phrase;
  line-break: strict;
  overflow-wrap: break-word;
}

.rt-article-body h3 {
  font-size: 1.125rem;
  font-weight: 700;
  color: #1B4D36;
  margin: 28px 0 14px;
  line-height: 1.55;
  text-wrap: balance;
  word-break: auto-phrase;
  line-break: strict;
  overflow-wrap: break-word;
}

.rt-article-body p {
  font-size: 0.9375rem;
  line-height: 1.85;
  color: #2D3748;
  margin-bottom: 20px;
  text-wrap: pretty;
  line-break: strict;
}

.rt-article-body img {
  width: 100%;
  border-radius: 8px;
  margin: 24px 0;
}

/* Author Box Enhanced (Zero Name Break / Zero Orphan) */
.rt-author-box {
  background: #FAF8F5;
  border: 1px solid rgba(197, 160, 89, 0.45);
  border-radius: 12px;
  padding: 24px 20px;
  margin-top: 48px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: center;
  text-align: center;
}

@media (min-width: 640px) {
  .rt-author-box {
    flex-direction: row;
    align-items: flex-start;
    text-align: left;
    padding: 28px 24px;
    gap: 24px;
  }
}

.rt-author-avatar {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center 10%;
  border: 2px solid #C5A059;
  flex-shrink: 0;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
  background: #EAE6DF;
}

.rt-author-info {
  flex-grow: 1;
  min-width: 0;
  width: 100%;
}

.rt-author-info h4,
.rt-author-title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 1.0625rem;
  font-weight: 800;
  color: #12241D;
  margin: 0 0 10px;
  line-height: 1.4;
}

@media (min-width: 640px) {
  .rt-author-info h4,
  .rt-author-title {
    justify-content: flex-start;
  }
}

.rt-author-badge {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 700;
  color: #1B4D36;
  background: rgba(27, 77, 54, 0.1);
  padding: 3px 8px;
  border-radius: 4px;
  letter-spacing: 0.05em;
  white-space: nowrap !important;
}

.rt-author-name {
  display: inline-flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px;
  font-size: 1.125rem;
  font-weight: 800;
  color: #12241D;
  white-space: nowrap !important;
}

.rt-author-ruby {
  font-size: 0.8125rem;
  font-weight: 500;
  color: #5A6A60;
  white-space: nowrap !important;
}

.rt-author-credentials {
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  color: #1B4D36;
  margin-bottom: 8px;
  line-height: 1.4;
  text-align: left;
}

@media (min-width: 640px) {
  .rt-author-credentials {
    text-align: left;
  }
}

.rt-author-info p,
.rt-author-bio {
  font-size: 0.845rem;
  line-height: 1.75;
  color: #374151;
  margin: 0;
  text-align: left; /* 変な空欄・文字間引き伸ばしを根絶 */
  text-wrap: pretty;
  word-break: auto-phrase;
  line-break: strict;
  letter-spacing: normal;
}

/* Related Links Smart Cards (1行・パッと理解して飛びたくなるデザイン) */
.rt-related-links-grid {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 18px 0 28px;
}

.rt-related-link-card {
  display: flex;
  align-items: center;
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  border-radius: 8px;
  padding: 12px 14px;
  text-decoration: none !important;
  color: #1A202C !important;
  transition: all 0.2s ease;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  white-space: nowrap;
  overflow: hidden;
  min-height: 46px;
  box-sizing: border-box;
}

.rt-related-link-card:hover {
  border-color: #C5A059;
  background: #FDFBF7;
  transform: translateX(2px);
  box-shadow: 0 3px 8px rgba(197, 160, 89, 0.15);
}

.rt-related-badge {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  color: #1B4D36;
  background: rgba(27, 77, 54, 0.08);
  padding: 3px 8px;
  border-radius: 4px;
  margin-right: 10px;
  flex-shrink: 0;
  white-space: nowrap;
}

.rt-related-title {
  font-size: 0.875rem;
  font-weight: 600;
  color: #2D3748;
  flex-grow: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rt-related-arrow {
  font-size: 0.9rem;
  font-weight: 700;
  color: #C5A059;
  margin-left: 8px;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.rt-related-link-card:hover .rt-related-arrow {
  transform: translate(2px, -2px);
  color: #1B4D36;
}

/* Article CTA Box */
.rt-article-cta {
  background: linear-gradient(135deg, #12241D 0%, #1B4D36 100%);
  border-radius: 12px;
  padding: 36px 20px;
  text-align: center;
  color: #FFFFFF;
  margin-top: 48px;
  box-sizing: border-box;
  overflow: hidden;
}

.rt-article-cta h3 {
  color: #E5C378;
  font-size: clamp(1.0625rem, 4.2vw, 1.25rem);
  margin: 0 0 12px;
  line-height: 1.4;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.rt-article-cta p {
  font-size: clamp(0.8125rem, 3.5vw, 0.875rem);
  color: #E2E8F0;
  line-height: 1.65;
  max-width: 580px;
  margin: 0 auto 24px;
}

/* Responsive Article CTA Button */
.rt-article-cta-btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 100% !important;
  max-width: 440px !important;
  margin: 0 auto !important;
  padding: 16px 20px !important;
  font-size: clamp(0.8125rem, 3.6vw, 0.9375rem) !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  border-radius: 8px !important;
  box-sizing: border-box !important;
  text-align: center !important;
  word-break: break-all !important;
  white-space: normal !important;
  box-shadow: 0 8px 24px rgba(197, 160, 89, 0.35) !important;
}

@media (max-width: 640px) {
  .rt-article-main {
    padding: 28px 16px;
  }
  .rt-article-cta {
    padding: 28px 14px;
  }
  .rt-article-cta-btn {
    padding: 14px 12px !important;
    font-size: 0.8125rem !important;
    letter-spacing: 0.02em !important;
  }
}

/* ==========================================================================
   22. Section Scroll Margin (Sticky Header + Quick Nav Offset)
   ========================================================================== */
#summary,
#concerns,
#concept,
#profile,
#features,
#biomechanics,
#treatment,
#youtube,
#reviews-digest,
#cases,
#instagram,
#flow,
#pricing,
#faq,
#info {
  scroll-margin-top: 130px;
}

@media (max-width: 767px) {
  #summary,
  #concerns,
  #concept,
  #profile,
  #features,
  #biomechanics,
  #treatment,
  #youtube,
  #reviews-digest,
  #cases,
  #instagram,
  #flow,
  #pricing,
  #faq,
  #info {
    scroll-margin-top: 114px;
  }
}

/* ==========================================================================
   23. Fast-Track 3-Conclusions Executive Summary Section (#summary)
   ========================================================================== */
.rt-fast-summary {
  background: linear-gradient(180deg, #0E1812 0%, #132219 50%, #0E1812 100%);
  border-top: 1px solid rgba(197, 160, 89, 0.25);
  border-bottom: 1px solid rgba(197, 160, 89, 0.25);
  padding: 56px 0 64px;
  color: #FAF9F5;
  position: relative;
  z-index: 2;
  overflow: hidden;
}

.rt-summary-header {
  text-align: center;
  max-width: 780px;
  margin: 0 auto 36px;
}

.rt-summary-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(197, 160, 89, 0.15);
  border: 1px solid rgba(197, 160, 89, 0.45);
  color: #E5C378;
  font-family: var(--rt-font-sans, "Noto Sans JP", sans-serif);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  padding: 5px 16px;
  border-radius: 9999px;
  margin-bottom: 14px;
}

.rt-summary-eyebrow .lang-en {
  font-family: var(--rt-font-en, "Cormorant Garamond", serif);
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.rt-summary-title {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: clamp(1.375rem, 3.8vw, 2.125rem);
  font-weight: 600;
  color: #FAF9F5;
  line-height: 1.45;
  margin-bottom: 12px;
}

.rt-summary-title-gold {
  color: #E5C378;
  border-bottom: 1px solid rgba(197, 160, 89, 0.5);
  padding-bottom: 2px;
}

.rt-summary-subtitle {
  font-size: clamp(0.8125rem, 2vw, 0.9375rem);
  color: #CBD5E1;
  line-height: 1.7;
  margin: 0;
}

.rt-summary-accordion {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 960px;
  margin: 0 auto 36px;
}

.rt-summary-acc-item {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(197, 160, 89, 0.28);
  border-radius: 14px;
  overflow: hidden;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.2);
  position: relative;
}

.rt-summary-acc-item::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, #C5A059, #E5C378, #C5A059);
  opacity: 0.6;
}

.rt-summary-acc-item:hover {
  border-color: rgba(197, 160, 89, 0.5);
  background: rgba(255, 255, 255, 0.06);
}

.rt-summary-acc-item.is-open {
  border-color: rgba(197, 160, 89, 0.7);
  background: rgba(255, 255, 255, 0.065);
  box-shadow: 0 10px 32px rgba(0, 0, 0, 0.3);
}

.rt-summary-acc-trigger {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 24px;
  background: transparent;
  border: none;
  color: #FAF9F5;
  cursor: pointer;
  text-align: left;
  transition: background 0.2s ease;
  box-sizing: border-box;
}

@media (max-width: 640px) {
  .rt-summary-acc-trigger {
    padding: 16px 18px;
    gap: 12px;
  }
}

.rt-summary-acc-trigger:hover {
  background: rgba(197, 160, 89, 0.06);
}

.rt-summary-acc-trigger-left {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex-grow: 1;
}

.rt-summary-acc-title {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: clamp(1.0625rem, 2.5vw, 1.25rem);
  font-weight: 700;
  color: #FFF8E7;
  line-height: 1.45;
  margin: 0;
}

.rt-summary-note {
  font-size: 0.85em;
  opacity: 0.9;
  font-weight: normal;
  letter-spacing: -0.01em;
}

@media (max-width: 767px) {
  .rt-summary-acc-title {
    font-size: 0.9375rem;
    line-height: 1.4;
  }
  .rt-summary-note {
    font-size: 0.8em;
    letter-spacing: -0.03em;
  }
}

.rt-summary-acc-icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid rgba(197, 160, 89, 0.4);
  background: rgba(197, 160, 89, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
  transition: transform 0.3s ease, background 0.3s ease, border-color 0.3s ease;
}

.rt-summary-acc-icon::before,
.rt-summary-acc-icon::after {
  content: '';
  position: absolute;
  background-color: #E5C378;
  transition: transform 0.3s ease, opacity 0.3s ease;
}

.rt-summary-acc-icon::before {
  width: 12px;
  height: 2px;
}

.rt-summary-acc-icon::after {
  width: 2px;
  height: 12px;
}

.rt-summary-acc-item.is-open .rt-summary-acc-icon {
  background: rgba(197, 160, 89, 0.25);
  border-color: #C5A059;
}

.rt-summary-acc-item.is-open .rt-summary-acc-icon::after {
  transform: rotate(90deg);
  opacity: 0;
}

.rt-summary-acc-content {
  display: none;
  padding: 0 24px 24px;
}

@media (max-width: 640px) {
  .rt-summary-acc-content {
    padding: 0 18px 20px;
  }
}

.rt-summary-acc-item.is-open .rt-summary-acc-content {
  display: block;
  animation: rtSummaryFadeIn 0.25s ease-out;
}

@keyframes rtSummaryFadeIn {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.rt-summary-acc-inner {
  border-top: 1px dashed rgba(197, 160, 89, 0.22);
  padding-top: 18px;
}

.rt-summary-card-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--rt-font-sans, "Noto Sans JP", sans-serif);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #C5A059;
  background: rgba(197, 160, 89, 0.12);
  border: 1px solid rgba(197, 160, 89, 0.25);
  padding: 4px 10px;
  border-radius: 6px;
  margin-bottom: 14px;
  text-transform: uppercase;
}

.rt-summary-card-heading {
  font-size: clamp(1.0625rem, 2.4vw, 1.25rem);
  font-weight: 700;
  color: #FFF8E7;
  line-height: 1.45;
  margin: 0 0 14px;
}

.rt-summary-card-body {
  font-size: 0.84375rem;
  line-height: 1.75;
  color: #D1D5DB;
  margin: 0 0 20px;
  flex-grow: 1;
}

.rt-summary-card-body strong {
  color: #FFFFFF;
  font-weight: 700;
}

.rt-summary-keypoints {
  list-style: none;
  padding: 0;
  margin: 0 0 22px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.rt-summary-point-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #E2E8F0;
}

.rt-summary-point-icon {
  color: #E5C378;
  font-weight: bold;
  flex-shrink: 0;
  margin-top: 1px;
}

.rt-summary-card-actions {
  border-top: 1px dashed rgba(197, 160, 89, 0.25);
  padding-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.rt-summary-link-btn {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 0.8125rem;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.2s ease;
  box-sizing: border-box;
}

.rt-summary-link-btn--secondary {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(197, 160, 89, 0.35);
  color: #E5C378;
}

.rt-summary-link-btn--secondary:hover {
  background: rgba(197, 160, 89, 0.15);
  border-color: #E5C378;
  color: #FFF9ED;
  transform: translateX(2px);
}

.rt-summary-link-btn--primary {
  background: linear-gradient(135deg, #C5A059 0%, #B28833 100%);
  border: 1px solid #E5C378;
  color: #0E1812;
  font-weight: 700;
  box-shadow: 0 4px 14px rgba(197, 160, 89, 0.3);
}

.rt-summary-link-btn--primary:hover {
  background: linear-gradient(135deg, #D4AF37 0%, #C5A059 100%);
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(197, 160, 89, 0.45);
}

.rt-summary-cta-banner {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(197, 160, 89, 0.35);
  border-radius: 12px;
  padding: 24px 20px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  max-width: 780px;
  margin: 0 auto;
}

.rt-summary-cta-text {
  font-size: 0.9375rem;
  color: #FAF9F5;
  margin: 0;
}

.rt-summary-cta-text strong {
  color: #E5C378;
}

.rt-summary-cta-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 1.4;
  gap: 10px;
  padding: 14px 32px;
  background: linear-gradient(135deg, #1B4D36 0%, #2A6E4F 100%);
  border: 1px solid #C5A059;
  color: #FAF9F5;
  font-size: 0.9375rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  border-radius: 9999px;
  text-decoration: none;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
  transition: all 0.25s ease;
}

.rt-summary-cta-btn:hover {
  background: linear-gradient(135deg, #2A6E4F 0%, #1B4D36 100%);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(197, 160, 89, 0.35);
  color: #FFF8E7;
}

.rt-summary-cta-note {
  font-size: 0.75rem;
  color: #94A3B8;
  margin: 0;
}

/* ==========================================================================
   24. Smart Sticky Section Quick Nav Bar (#rt-quick-nav)
   ========================================================================== */
.rt-quick-nav {
  position: sticky;
  top: 64px;
  z-index: 990;
  background: rgba(14, 24, 18, 0.94);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(197, 160, 89, 0.25);
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
  will-change: transform;
  transition: top 0.2s ease, background 0.25s ease;
}

@media (min-width: 768px) {
  .rt-quick-nav {
    top: 72px;
  }
}

.rt-quick-nav-inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 12px;
  display: flex;
  align-items: center;
}

.rt-quick-nav-scroll {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  width: 100%;
  flex-wrap: nowrap;
}

.rt-quick-nav-scroll::-webkit-scrollbar {
  display: none;
}

.rt-quick-nav-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 600;
  color: rgba(250, 249, 245, 0.85);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(197, 160, 89, 0.25);
  text-decoration: none;
  white-space: nowrap;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  flex-shrink: 0;
  min-height: 32px;
  box-sizing: border-box;
}

.rt-quick-nav-pill:hover {
  background: rgba(197, 160, 89, 0.15);
  border-color: rgba(197, 160, 89, 0.6);
  color: #FFF8E7;
  transform: translateY(-1px);
}

.rt-quick-nav-pill.is-active {
  background: linear-gradient(135deg, rgba(197, 160, 89, 0.3) 0%, rgba(27, 77, 54, 0.4) 100%);
  border-color: #C5A059;
  color: #FFF9ED;
  font-weight: 700;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
}

.rt-quick-nav-icon {
  font-size: 0.8125rem;
  line-height: 1;
}

.rt-quick-nav-text {
  letter-spacing: 0.03em;
}

/* ==========================================================================
   14. Joint Cavitation Visualizer (関節が鳴る仕組み アニメーション)
   ========================================================================== */
.rt-cavitation-card {
  margin: 24px 0 28px;
  padding: 22px 20px;
  background: linear-gradient(145deg, #09130D 0%, #102418 50%, #07100A 100%);
  border: 1px solid rgba(197, 160, 89, 0.35);
  border-radius: 16px;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.08);
  color: #FAFAF5;
  box-sizing: border-box;
  overflow: hidden;
}

.rt-cav-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
  flex-wrap: wrap;
  gap: 10px;
}

.rt-cav-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #C5A059;
  background: rgba(197, 160, 89, 0.12);
  border: 1px solid rgba(197, 160, 89, 0.3);
  padding: 4px 10px;
  border-radius: 20px;
}

.rt-cav-badge::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #C5A059;
  box-shadow: 0 0 6px #C5A059;
  animation: rtPulseGold 2s infinite ease-in-out;
}

.rt-cav-title {
  font-family: var(--rt-font-heading, "Shippori Mincho", serif);
  font-size: 1.0625rem;
  font-weight: 600;
  color: #FFF9ED;
  margin: 0;
  line-height: 1.4;
  letter-spacing: 0.02em;
}

.rt-cav-canvas-wrap {
  position: relative;
  width: 100%;
  background: radial-gradient(circle at 50% 50%, #0F261B 0%, #050D08 85%);
  border: 1px solid rgba(197, 160, 89, 0.25);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: inset 0 0 35px rgba(0, 0, 0, 0.7);
}

.rt-cav-svg {
  display: block;
  width: 100%;
  height: auto;
  transform: translateZ(0);
}

/* SVG Element Transitions */
.rt-cav-bone-upper {
  transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
  transform-origin: 260px 50px;
}

.rt-cav-bone-lower {
  transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
  transform-origin: 260px 210px;
}

.rt-cav-capsule-left,
.rt-cav-capsule-right {
  transition: all 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.rt-cav-step-group {
  transition: opacity 0.35s ease;
}

/* Step 1: Neutral */
.rt-cavitation-card[data-step="1"] .rt-cav-bone-upper {
  transform: translateY(0);
}
.rt-cavitation-card[data-step="1"] .rt-cav-bone-lower {
  transform: translateY(0);
}
.rt-cavitation-card[data-step="1"] .rt-cav-capsule-left {
  d: path("M 160,95 Q 152,130 160,165");
}
.rt-cavitation-card[data-step="1"] .rt-cav-capsule-right {
  d: path("M 360,95 Q 368,130 360,165");
}
.rt-cavitation-card[data-step="1"] .rt-cav-step1-elements {
  opacity: 1;
  pointer-events: auto;
}
.rt-cavitation-card[data-step="1"] .rt-cav-step2-elements,
.rt-cavitation-card[data-step="1"] .rt-cav-step3-elements,
.rt-cavitation-card[data-step="1"] .rt-cav-step4-elements {
  opacity: 0;
  pointer-events: none;
}

/* Step 2: Adjustment / Negative Pressure */
.rt-cavitation-card[data-step="2"] .rt-cav-bone-upper {
  transform: translateY(-13px);
}
.rt-cavitation-card[data-step="2"] .rt-cav-bone-lower {
  transform: translateY(13px);
}
.rt-cavitation-card[data-step="2"] .rt-cav-capsule-left {
  d: path("M 160,82 Q 142,130 160,178");
}
.rt-cavitation-card[data-step="2"] .rt-cav-capsule-right {
  d: path("M 360,82 Q 378,130 360,178");
}
.rt-cavitation-card[data-step="2"] .rt-cav-step2-elements {
  opacity: 1;
  pointer-events: auto;
}
.rt-cavitation-card[data-step="2"] .rt-cav-step1-elements,
.rt-cavitation-card[data-step="2"] .rt-cav-step3-elements,
.rt-cavitation-card[data-step="2"] .rt-cav-step4-elements {
  opacity: 0;
  pointer-events: none;
}

/* Step 3: Cavitation Burst & Pop */
.rt-cavitation-card[data-step="3"] .rt-cav-bone-upper {
  transform: translateY(-13px);
}
.rt-cavitation-card[data-step="3"] .rt-cav-bone-lower {
  transform: translateY(13px);
}
.rt-cavitation-card[data-step="3"] .rt-cav-capsule-left {
  d: path("M 160,82 Q 142,130 160,178");
}
.rt-cavitation-card[data-step="3"] .rt-cav-capsule-right {
  d: path("M 360,82 Q 378,130 360,178");
}
.rt-cavitation-card[data-step="3"] .rt-cav-step3-elements {
  opacity: 1;
  pointer-events: auto;
}
.rt-cavitation-card[data-step="3"] .rt-cav-step1-elements,
.rt-cavitation-card[data-step="3"] .rt-cav-step2-elements,
.rt-cavitation-card[data-step="3"] .rt-cav-step4-elements {
  opacity: 0;
  pointer-events: none;
}

/* Step 4: Reset & Range of Motion Restored */
.rt-cavitation-card[data-step="4"] .rt-cav-bone-upper {
  transform: translateY(-2px);
}
.rt-cavitation-card[data-step="4"] .rt-cav-bone-lower {
  transform: translateY(2px);
}
.rt-cavitation-card[data-step="4"] .rt-cav-capsule-left {
  d: path("M 160,93 Q 153,130 160,167");
}
.rt-cavitation-card[data-step="4"] .rt-cav-capsule-right {
  d: path("M 360,93 Q 367,130 360,167");
}
.rt-cavitation-card[data-step="4"] .rt-cav-step4-elements {
  opacity: 1;
  pointer-events: auto;
}
.rt-cavitation-card[data-step="4"] .rt-cav-step1-elements,
.rt-cavitation-card[data-step="4"] .rt-cav-step2-elements,
.rt-cavitation-card[data-step="4"] .rt-cav-step3-elements {
  opacity: 0;
  pointer-events: none;
}

/* Keyframe Animations */
@keyframes rtPulseGold {
  0%, 100% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.3); }
}

@keyframes rtShockwaveExpand {
  0% {
    r: 12;
    opacity: 0.95;
    stroke-width: 3.5;
  }
  100% {
    r: 68;
    opacity: 0;
    stroke-width: 0.8;
  }
}

.rt-cavitation-card[data-step="3"] .rt-cav-shockwave-1 {
  animation: rtShockwaveExpand 1.5s cubic-bezier(0.1, 0.8, 0.25, 1) infinite;
}

.rt-cavitation-card[data-step="3"] .rt-cav-shockwave-2 {
  animation: rtShockwaveExpand 1.5s cubic-bezier(0.1, 0.8, 0.25, 1) infinite 0.32s;
}

@keyframes rtSoundTagPop {
  0% { transform: scale(0.65) translateY(6px); opacity: 0; }
  45% { transform: scale(1.08) translateY(-2px); opacity: 1; }
  100% { transform: scale(1) translateY(0); opacity: 1; }
}

.rt-cavitation-card[data-step="3"] .rt-cav-sound-tag {
  animation: rtSoundTagPop 0.45s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
  transform-origin: 260px 75px;
}

.rt-cavitation-card[data-step="3"] .rt-cav-safety-tag {
  animation: rtSoundTagPop 0.45s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards 0.12s;
  transform-origin: 260px 185px;
}

@keyframes rtNeuralPulseGlow {
  0%, 100% { stroke: #C5A059; filter: drop-shadow(0 0 2px rgba(197, 160, 89, 0.4)); opacity: 0.8; }
  50% { stroke: #4ADE80; filter: drop-shadow(0 0 10px rgba(74, 222, 128, 0.9)); opacity: 1; }
}

.rt-cavitation-card[data-step="4"] .rt-cav-neural-arc {
  animation: rtNeuralPulseGlow 1.8s infinite ease-in-out;
}

/* Controls & Tabs */
.rt-cav-controls {
  margin-top: 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
}

.rt-cav-tabs {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.rt-cav-tab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(197, 160, 89, 0.22);
  color: rgba(250, 249, 245, 0.82);
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.25s ease;
  min-height: 36px;
  box-sizing: border-box;
}

.rt-cav-tab:hover {
  background: rgba(197, 160, 89, 0.15);
  border-color: rgba(197, 160, 89, 0.55);
  color: #FFF9ED;
  transform: translateY(-1px);
}

.rt-cav-tab.is-active {
  background: linear-gradient(135deg, rgba(197, 160, 89, 0.32) 0%, rgba(27, 77, 54, 0.55) 100%);
  border-color: #C5A059;
  color: #FFF9ED;
  font-weight: 700;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
}

.rt-cav-tab-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(197, 160, 89, 0.25);
  font-size: 0.6875rem;
  color: #FFF;
  line-height: 1;
}

.rt-cav-tab.is-active .rt-cav-tab-num {
  background: #C5A059;
  color: #07100A;
  font-weight: 700;
}

.rt-cav-play-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.16);
  color: rgba(250, 249, 245, 0.75);
  font-size: 0.6875rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.25s ease;
  min-height: 36px;
  box-sizing: border-box;
}

.rt-cav-play-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #FFF;
}

.rt-cav-play-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #4ADE80;
  box-shadow: 0 0 6px #4ADE80;
}

.rt-cav-play-btn.is-paused .rt-cav-play-dot {
  background: #E5C378;
  box-shadow: none;
}

/* Description Panes */
.rt-cav-desc-box {
  margin-top: 14px;
  padding: 14px 16px;
  background: rgba(0, 0, 0, 0.28);
  border-left: 3px solid #C5A059;
  border-radius: 0 10px 10px 0;
  min-height: 72px;
  box-sizing: border-box;
}

.rt-cav-pane {
  display: none;
}

.rt-cav-pane.is-active {
  display: block;
  animation: rtFadeIn 0.3s ease;
}

.rt-cav-pane-badge {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 700;
  color: #C5A059;
  letter-spacing: 0.05em;
  margin-bottom: 4px;
}

.rt-cav-pane-title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: #FFF9ED;
  margin: 0 0 6px 0;
  line-height: 1.4;
}

.rt-cav-pane-text {
  font-size: 0.8125rem;
  line-height: 1.6;
  color: rgba(250, 249, 245, 0.9);
  margin: 0;
}

.rt-cav-pane-text strong {
  color: #FFF9ED;
}

.rt-cav-summary-pill {
  margin-top: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: rgba(34, 197, 94, 0.12);
  border: 1px solid rgba(34, 197, 94, 0.3);
  border-radius: 8px;
  font-size: 0.75rem;
  color: #86EFAC;
}

.rt-cav-pill-tag {
  display: inline-block;
  padding: 2px 6px;
  border-radius: 4px;
  background: rgba(34, 197, 94, 0.25);
  font-weight: 700;
  font-size: 0.6875rem;
  color: #DCFCE7;
  flex-shrink: 0;
}

.rt-cav-pill-text {
  line-height: 1.4;
}

@media (max-width: 767px) {
  .rt-cavitation-card {
    padding: 16px 12px;
    margin: 18px 0 22px;
  }
  .rt-cav-title {
    font-size: 0.9375rem;
  }
  .rt-cav-tabs {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 6px;
  }
  .rt-cav-tab {
    justify-content: center;
    padding: 8px 6px;
    min-height: 42px;
  }
  .rt-cav-play-wrap {
    width: 100%;
  }
  .rt-cav-play-btn {
    width: 100%;
    justify-content: center;
  }
}


/* === SECTION 3.5 ORIGIN STORY ACCORDION === */
.rt-story-teaser {
  font-size: 0.84375rem;
  line-height: 1.65;
  color: #4B5563;
  margin: 4px 0 8px 0;
}

.rt-story-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 14px;
  background: rgba(197, 160, 89, 0.09);
  border: 1px solid rgba(197, 160, 89, 0.4);
  border-radius: 6px;
  color: #8C6B28;
  font-size: 0.78125rem;
  font-weight: 700;
  cursor: pointer;
  margin-top: 4px;
  margin-bottom: 6px;
  transition: all 0.25s ease;
  font-family: inherit;
}

.rt-story-toggle:hover {
  background: rgba(197, 160, 89, 0.18);
  border-color: #C5A059;
  color: #5A4414;
}

.rt-story-chapter.is-open .rt-story-toggle {
  background: #1A2E22;
  border-color: #C5A059;
  color: #E8D3A2;
}

.rt-story-drawer {
  display: none;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed rgba(197, 160, 89, 0.25);
  animation: rtDrawerFadeIn 0.3s ease forwards;
}

.rt-story-chapter.is-open .rt-story-drawer {
  display: block;
}

/* === SECTION 6 YOUTUBE ACCORDION === */
.rt-yt-header-bar {
  padding: 16px 18px 12px;
}

.rt-yt-teaser {
  font-size: 0.8125rem;
  line-height: 1.6;
  color: #4B5563;
  margin: 6px 0 10px;
}

.rt-yt-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 9px 14px;
  background: rgba(197, 160, 89, 0.08);
  border: 1px solid rgba(197, 160, 89, 0.35);
  border-radius: 8px;
  color: #8C6B28;
  font-size: 0.8125rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.25s ease;
  font-family: inherit;
  box-sizing: border-box;
}

.rt-yt-toggle:hover {
  background: rgba(197, 160, 89, 0.16);
  border-color: #C5A059;
  color: #5A4414;
}

.rt-yt-card.is-open .rt-yt-toggle {
  background: #1A2E22;
  border-color: #C5A059;
  color: #E8D3A2;
}

.rt-yt-drawer {
  display: none;
  animation: rtDrawerFadeIn 0.3s ease forwards;
}

.rt-yt-card.is-open .rt-yt-drawer {
  display: block;
}

/* Desktop non-accordion: show video & content uniformly, hide toggle and duplicate teaser */
@media (min-width: 768px) {
  .rt-yt-toggle {
    display: none !important;
  }
  .rt-yt-teaser {
    display: none !important;
  }
  .rt-yt-drawer {
    display: flex !important;
    flex-direction: column;
    flex-grow: 1;
    animation: none !important;
  }
  .rt-yt-card {
    height: 100%;
    display: flex;
    flex-direction: column;
  }
  .rt-yt-header-bar {
    padding: 20px 20px 14px;
    flex-shrink: 0;
  }
  .rt-yt-content {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    padding: 16px 20px 20px;
  }
}

/* === SECTION 12 CASES / COLUMN ACCORDION === */
.rt-case-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 9px 14px;
  background: rgba(197, 160, 89, 0.08);
  border: 1px solid rgba(197, 160, 89, 0.35);
  border-radius: 8px;
  color: #8C6B28;
  font-size: 0.8125rem;
  font-weight: 700;
  cursor: pointer;
  margin-top: 10px;
  transition: all 0.25s ease;
  font-family: inherit;
  box-sizing: border-box;
}

.rt-case-toggle:hover {
  background: rgba(197, 160, 89, 0.16);
  border-color: #C5A059;
  color: #5A4414;
}

.rt-case-card.is-open .rt-case-toggle {
  background: #1A2E22;
  border-color: #C5A059;
  color: #E8D3A2;
}

.rt-case-drawer {
  display: none;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed rgba(197, 160, 89, 0.25);
  animation: rtDrawerFadeIn 0.3s ease forwards;
}

.rt-case-card.is-open .rt-case-drawer {
  display: block;
}

/* ==========================================================================
   Smart Position Return Controller ("元の位置に戻る" ＆ TOP復帰)
   ========================================================================== */
.rt-smart-return {
  position: fixed;
  bottom: 32px;
  right: 28px;
  z-index: 9990;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  background: rgba(14, 24, 18, 0.94);
  border: 1.5px solid #C5A059;
  border-radius: 9999px;
  padding: 0 18px;
  height: 44px;
  min-width: 44px;
  color: #FAF9F5;
  font-family: var(--rt-font-sans, "Noto Sans JP", sans-serif);
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  cursor: pointer;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4), 0 0 16px rgba(197, 160, 89, 0.25);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  opacity: 0;
  visibility: hidden;
  transform: translateY(16px) scale(0.94);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  box-sizing: border-box;
  user-select: none;
}

.rt-smart-return.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

.rt-smart-return:hover {
  background: #1A2E22;
  border-color: #E5C378;
  color: #FFFFFF;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.5), 0 0 22px rgba(197, 160, 89, 0.35);
  transform: translateY(-2px) scale(1.02);
}

.rt-smart-return:active {
  transform: translateY(1px) scale(0.96);
}

.rt-smart-return-icon {
  font-size: 1rem;
  font-weight: 900;
  color: #E5C378;
  line-height: 1;
}

.rt-smart-return[data-mode="top"] .rt-smart-return-icon {
  color: #FFF2CE;
}

/* Mobile: Positioned cleanly on bottom-left, leaving bottom-right free for the reservation FAB */
@media (max-width: 767px) {
  .rt-smart-return {
    bottom: calc(20px + env(safe-area-inset-bottom, 0px));
    left: 16px;
    right: auto;
    height: 42px;
    padding: 0 14px;
    font-size: 0.75rem;
    gap: 6px;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.45);
  }
}

/* ==========================================================================
   v1.8.8 Typography & Origin Story Duplication Controls
   ========================================================================== */
.rt-u-nowrap {
  display: inline-block;
  white-space: nowrap;
}

/* Hide teaser when chapter accordion is open to prevent duplicate content display */
.rt-story-chapter.is-open .rt-story-teaser {
  display: none !important;
}

/* ==========================================================================
   v1.9.12 Subpage Architecture (Hierarchical Spoke Pages) Styling
   ========================================================================== */
.rt-page-sub {
  background: #F8F9F8;
  min-height: 100vh;
  padding-top: 80px; /* Header clearance */
}

.rt-sub-hero {
  background: linear-gradient(180deg, #11281E 0%, #173627 50%, #11281E 100%);
  color: #FFFFFF;
  padding: 48px 0 56px;
  border-bottom: 1px solid rgba(197, 160, 89, 0.3);
  position: relative;
}

.rt-sub-hero .rt-container {
  max-width: 1120px;
  margin: 0 auto;
  padding: 0 24px;
}

.rt-sub-hero .rt-breadcrumbs {
  margin-bottom: 24px;
  font-size: 0.8125rem;
}

.rt-sub-hero .rt-breadcrumbs ol {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  list-style: none;
  padding: 6px 14px;
  margin: 0;
  background: rgba(10, 25, 18, 0.65);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(197, 160, 89, 0.35);
  border-radius: 24px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}

.rt-sub-hero .rt-breadcrumbs li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.4;
}

.rt-sub-hero .rt-breadcrumbs li:not(:last-child)::after {
  content: "›";
  color: #C5A059 !important;
  font-weight: 700;
  font-size: 0.95em;
  line-height: 1;
}

.rt-sub-hero .rt-breadcrumbs a,
.rt-sub-hero .rt-breadcrumbs a span {
  color: #FFFFFF !important;
  font-weight: 500;
  text-decoration: none !important;
  transition: color 0.2s ease;
}

.rt-sub-hero .rt-breadcrumbs a:hover,
.rt-sub-hero .rt-breadcrumbs a:hover span {
  color: #E5C378 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
}

.rt-sub-hero .rt-breadcrumbs li:last-child,
.rt-sub-hero .rt-breadcrumbs li:last-child span,
.rt-sub-hero .rt-breadcrumbs span.rt-breadcrumb-current {
  color: #E5C378 !important;
  font-weight: 600 !important;
}

.rt-sub-hero-label {
  font-size: 0.75rem;
  letter-spacing: 0.18em;
  font-weight: 700;
  color: #E5C378;
  text-transform: uppercase;
  margin-bottom: 12px;
}

.rt-sub-hero-title {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 700;
  line-height: 1.35;
  color: #FFFFFF;
  margin-bottom: 16px;
}

.rt-sub-hero-desc {
  font-size: clamp(0.875rem, 1.8vw, 1.0625rem);
  line-height: 1.8;
  color: rgba(255, 255, 255, 0.88);
  max-width: 780px;
  margin: 0;
}

/* Subpage Main Content & Sticky Sidebar Grid */
.rt-sub-content-wrap {
  max-width: 1120px;
  margin: 40px auto 60px;
  padding: 0 24px;
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 40px;
  align-items: start;
}

.rt-sub-main {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.rt-sub-card {
  background: #FFFFFF;
  border-radius: 16px;
  padding: 40px;
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
}

.rt-sub-badge {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #785A18;
  background: rgba(197, 160, 89, 0.12);
  border: 1px solid rgba(197, 160, 89, 0.3);
  padding: 3px 10px;
  border-radius: 20px;
  margin-bottom: 14px;
}

.rt-sub-heading {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: clamp(1.375rem, 2.8vw, 1.75rem);
  font-weight: 700;
  color: #111827;
  line-height: 1.45;
  margin-bottom: 24px;
}

.rt-sub-subheading {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: 1.1875rem;
  font-weight: 700;
  color: #1B4D36;
  margin: 28px 0 12px;
  padding-left: 12px;
  border-left: 3px solid #C5A059;
}

.rt-sub-body-text p {
  font-size: 0.9375rem;
  line-height: 1.9;
  color: #374151;
  margin-bottom: 18px;
}

.rt-sub-body-text p strong {
  color: #111827;
  font-weight: 700;
}

.rt-sub-quote {
  background: #F4F8F5;
  border-left: 4px solid #1B4D36;
  padding: 20px 24px;
  border-radius: 0 8px 8px 0;
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: 0.9375rem;
  line-height: 1.8;
  color: #1B4D36;
  margin: 28px 0 0;
}

.rt-sub-story-block {
  margin-bottom: 28px;
}

.rt-sub-story-block p {
  font-size: 0.9375rem;
  line-height: 1.85;
  color: #4B5563;
  margin-bottom: 14px;
}

.rt-sub-highlight-box {
  background: linear-gradient(135deg, #FAF7F0 0%, #F5EFE1 100%);
  border: 1px solid rgba(197, 160, 89, 0.4);
  border-radius: 12px;
  padding: 24px;
  margin-top: 24px;
}

.rt-sub-highlight-box h4 {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: 1.0625rem;
  color: #785A18;
  margin-bottom: 10px;
  font-weight: 700;
}

.rt-sub-highlight-box p {
  font-size: 0.875rem;
  line-height: 1.8;
  color: #4B5563;
  margin: 0;
}

/* Profile Section in Subpage */
.rt-sub-profile-grid {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 32px;
  align-items: start;
}

.rt-sub-profile-photo img {
  width: 100%;
  border-radius: 14px;
  object-fit: cover;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
}

.rt-sub-profile-role {
  font-size: 0.875rem;
  font-weight: 700;
  color: #C5A059;
  letter-spacing: 0.04em;
  margin-bottom: 12px;
}

.rt-sub-profile-lead {
  font-size: 0.9375rem;
  line-height: 1.8;
  color: #374151;
  margin-bottom: 20px;
}

.rt-sub-spec-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.rt-sub-spec-list li {
  font-size: 0.84375rem;
  line-height: 1.6;
  color: #4B5563;
}

/* Biomechanics & Pillars */
.rt-sub-biomech-box {
  background: #F0F5F2;
  border-left: 4px solid #1B4D36;
  padding: 24px;
  border-radius: 0 10px 10px 0;
  margin: 24px 0;
}

.rt-sub-biomech-box h3 {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: 1.125rem;
  color: #1B4D36;
  margin-bottom: 12px;
  font-weight: 700;
}

.rt-sub-pillar-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 24px;
}

.rt-sub-pillar-item {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 20px;
  align-items: start;
  background: #FAFAFA;
  border: 1px solid rgba(0, 0, 0, 0.05);
  border-radius: 12px;
  padding: 20px;
}

.rt-sub-pillar-num {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: 1.25rem;
  font-weight: 700;
  color: #C5A059;
  line-height: 1;
  margin-top: 4px;
}

.rt-sub-pillar-content h3 {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: 1.0625rem;
  font-weight: 700;
  color: #111827;
  margin-bottom: 8px;
}

.rt-sub-pillar-content p {
  font-size: 0.875rem;
  line-height: 1.75;
  color: #4B5563;
  margin: 0;
}

/* Price Cards & Flow in Subpage */
.rt-sub-price-card {
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 14px;
  padding: 28px;
}

.rt-sub-price-card--featured {
  border: 2px solid #C5A059;
  background: #FCFBF7;
  position: relative;
}

.rt-sub-price-badge {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #FFFFFF;
  background: #1B4D36;
  padding: 4px 12px;
  border-radius: 20px;
  margin-bottom: 12px;
}

.rt-sub-price-title {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: 1.25rem;
  font-weight: 700;
  color: #111827;
  margin-bottom: 12px;
}

.rt-sub-price-amount {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-bottom: 14px;
}

.rt-sub-price-num {
  font-size: 2.25rem;
  font-weight: 800;
  color: #1B4D36;
  line-height: 1;
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
}

.rt-sub-price-unit {
  font-size: 0.875rem;
  color: #4B5563;
  font-weight: 600;
}

.rt-sub-price-time {
  font-size: 0.8125rem;
  font-weight: 700;
  color: #785A18;
  margin-bottom: 12px;
}

.rt-sub-check-list {
  list-style: none;
  padding: 0;
  margin: 16px 0 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 0.8125rem;
  color: #374151;
}

/* Timeline Flow */
.rt-sub-flow-timeline {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 24px;
}

.rt-sub-flow-step {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 20px;
  background: #F9FAFB;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 20px;
}

.rt-sub-flow-num {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: 0.875rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: #C5A059;
  background: rgba(197, 160, 89, 0.12);
  padding: 6px 10px;
  border-radius: 6px;
  text-align: center;
  height: fit-content;
}

.rt-sub-flow-body h3 {
  font-size: 1rem;
  font-weight: 700;
  color: #111827;
  margin-bottom: 6px;
}

.rt-sub-flow-body p {
  font-size: 0.84375rem;
  line-height: 1.7;
  color: #4B5563;
  margin: 0;
}

/* Concerns Cause Box */
.rt-sub-cause-box {
  background: #F9FAFB;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  padding: 20px;
  margin-top: 18px;
}

.rt-sub-cause-box h4 {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: 0.9375rem;
  font-weight: 700;
  color: #1B4D36;
  margin-bottom: 8px;
}

.rt-sub-cause-box p {
  font-size: 0.84375rem;
  line-height: 1.75;
  color: #4B5563;
  margin-bottom: 8px;
}

.rt-sub-cause-box p:last-child {
  margin-bottom: 0;
}

/* Access Table */
.rt-sub-info-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
  margin-top: 20px;
}

.rt-sub-info-table th {
  width: 140px;
  text-align: left;
  padding: 16px 14px;
  background: #F9FAFB;
  color: #374151;
  font-weight: 700;
  border-bottom: 1px solid #E5E7EB;
}

.rt-sub-info-table td {
  padding: 16px 14px;
  color: #1F2937;
  border-bottom: 1px solid #E5E7EB;
  line-height: 1.7;
}

/* Sticky Booking Sidebar */
.rt-sub-sidebar {
  position: sticky;
  top: 100px;
}

.rt-sub-sidebar-card {
  background: #FFFFFF;
  border: 2px solid rgba(197, 160, 89, 0.4);
  border-radius: 16px;
  padding: 28px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}

.rt-sub-sidebar-tag {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: #785A18;
  background: #FBF7EE;
  border: 1px solid #E5C378;
  padding: 3px 10px;
  border-radius: 20px;
  margin-bottom: 12px;
}

.rt-sub-sidebar-card h3 {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: 1.1875rem;
  font-weight: 700;
  color: #111827;
  margin-bottom: 8px;
}

.rt-sub-sidebar-card p {
  font-size: 0.8125rem;
  line-height: 1.65;
  color: #4B5563;
  margin-bottom: 16px;
}

.rt-sub-price-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 0;
  border-top: 1px dashed #E5E7EB;
  border-bottom: 1px dashed #E5E7EB;
  margin-bottom: 20px;
}

.rt-sub-price-label {
  font-size: 0.75rem;
  color: #6B7280;
  font-weight: 600;
}

.rt-sub-price-val {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: 1.1875rem;
  font-weight: 800;
  color: #1B4D36;
}

.rt-sub-sidebar-note {
  font-size: 0.6875rem !important;
  color: #9CA3AF !important;
  line-height: 1.5 !important;
  margin-top: 14px !important;
  margin-bottom: 0 !important;
}

/* Legal notice in subpages */
.rt-legal-notice {
  background: #F3F4F6;
  border: 1px solid #E5E7EB;
  border-radius: 8px;
  padding: 16px 20px;
  font-size: 0.75rem;
  line-height: 1.7;
  color: #6B7280;
  margin-bottom: 40px;
}

/* Responsive Subpages (Mobile Breakpoints) */
@media (max-width: 991px) {
  .rt-sub-content-wrap {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 0 20px !important;
    margin: 28px auto 48px !important;
  }

  .rt-sub-main {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
  
  .rt-sub-sidebar {
    position: static;
    width: 100%;
    max-width: 100%;
    margin-top: 32px;
  }
}

@media (max-width: 767px) {
  /* Global Anti-Overflow & Perfect Symmetry */
  html, body {
    overflow-x: hidden;
    max-width: 100vw;
  }

  .rt-container {
    padding: 0 16px !important;
  }

  /* Center mobile trust strip cards for visual balance */
  .rt-trust-item {
    align-items: center !important;
    text-align: center !important;
  }

  .rt-trust-icon-box {
    justify-content: center !important;
  }

  .rt-trust-desc {
    text-align: center !important;
  }

  /* Full-width centered CTA buttons inside cards on mobile */
  .rt-hub-card-link {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
    box-sizing: border-box !important;
  }

  .rt-hub-feature-card {
    padding: 26px 18px !important;
  }

  /* RIZAP-style FV Peek Effect (次セクションのチラ見せ構造) */
  .rt-hero {
    min-height: calc(100svh - 68px) !important;
    padding: 80px 16px 36px !important;
    justify-content: center !important;
  }

  .rt-hero-content {
    gap: 14px !important;
  }

  .rt-hero-actions {
    margin-top: 10px !important;
    gap: 10px !important;
  }

  .rt-hero-btn-reserve {
    padding: 13px 22px !important;
    font-size: 0.9375rem !important;
  }

  .rt-hero-btn-ig {
    padding: 11px 18px !important;
    font-size: 0.84375rem !important;
  }

  /* Subpage Symmetry & Overflow Fix */
  .rt-page-sub {
    padding-top: 64px;
    overflow-x: hidden;
    width: 100%;
  }

  .rt-sub-hero {
    padding: 34px 0 40px;
    width: 100%;
    box-sizing: border-box;
    text-align: center !important;
  }

  .rt-breadcrumbs ol {
    justify-content: center !important;
  }

  .rt-sub-hero-title {
    font-size: clamp(1.375rem, 5.2vw, 1.625rem) !important;
    line-height: 1.45 !important;
    text-align: center !important;
    text-wrap: balance !important;
    margin: 0 auto 14px !important;
  }

  .rt-sub-hero-desc {
    font-size: 0.875rem !important;
    line-height: 1.75 !important;
    text-align: center !important;
    text-wrap: pretty !important;
    margin: 0 auto !important;
  }

  .rt-sub-heading {
    font-size: clamp(1.125rem, 4.2vw, 1.3125rem) !important;
    line-height: 1.45 !important;
    word-break: keep-all !important;
    overflow-wrap: break-word !important;
  }

  .rt-sub-hero .rt-container {
    padding: 0 16px !important;
  }

  .rt-sub-content-wrap {
    display: block !important;
    padding: 0 16px !important;
    margin: 24px auto 48px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .rt-sub-main {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .rt-sub-card {
    padding: 24px 18px !important;
    border-radius: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    margin-bottom: 24px !important;
  }

  .rt-sub-sidebar-card {
    padding: 24px 18px !important;
    border-radius: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* All CTA buttons inside subpages & sidebar */
  .rt-sub-page .rt-btn-large:not(.rt-header-cta),
  .rt-sub-page .rt-btn-primary:not(.rt-header-cta),
  .rt-sub-page .rt-btn-outline:not(.rt-header-cta),
  .rt-sub-sidebar .rt-btn-primary,
  .rt-sub-sidebar .rt-btn-large,
  .rt-sub-sidebar .rt-btn-outline {
    white-space: normal !important;
    padding: 14px 16px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    font-size: 0.875rem !important;
    text-align: center !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
  }

  .rt-sub-profile-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .rt-sub-profile-photo img {
    max-width: 180px;
    margin: 0 auto;
    display: block;
  }

  .rt-sub-flow-step {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .rt-sub-info-table {
    width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed !important;
    box-sizing: border-box !important;
  }

  .rt-sub-info-table th {
    width: 80px !important;
    padding: 12px 6px !important;
    font-size: 0.8125rem !important;
    word-break: break-all !important;
  }

  .rt-sub-info-table td {
    padding: 12px 8px !important;
    font-size: 0.8125rem !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
  }

  .rt-sub-info-table td iframe {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .rt-keep {
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
}

/* ==========================================================================
   Section Lead Quote & Symptom Layout Styles
   ========================================================================== */
.rt-section-lead-quote {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: clamp(0.9375rem, 2.2vw, 1.125rem);
  font-weight: 500;
  color: var(--rt-deep-green, #1E3326);
  line-height: 1.85;
  margin: 0 auto 16px;
  padding: 12px 20px;
  background: rgba(30, 51, 38, 0.05);
  border-left: 3px solid #C5A059;
  border-radius: 0 8px 8px 0;
  display: inline-block;
  text-align: left;
  box-sizing: border-box;
}

@media (max-width: 767px) {
  .rt-section-lead-quote {
    padding: 10px 14px;
    font-size: 0.875rem;
    line-height: 1.75;
    margin-bottom: 14px;
    display: block;
  }
}

/* ==========================================================================
   Hub Top Page Component Styles (最先端ハブ＆スポーク誘導デザイン)
   ========================================================================== */
.rt-hub-card-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 14px;
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--rt-forest, #2C4A3E);
  text-decoration: none;
  padding: 8px 16px;
  background: rgba(44, 74, 62, 0.06);
  border-radius: 9999px;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  border: 1px solid rgba(44, 74, 62, 0.15);
  white-space: nowrap !important;
  max-width: 100%;
  box-sizing: border-box;
}

.rt-hub-card-link:hover {
  background: var(--rt-forest, #2C4A3E);
  color: #FFFFFF !important;
  transform: translateX(2px);
  box-shadow: 0 4px 12px rgba(44, 74, 62, 0.2);
}

.rt-hub-card-link:active {
  transform: scale(0.97);
}

.rt-hub-card-link svg {
  transition: transform 0.25s ease;
  flex-shrink: 0;
}

.rt-hub-card-link:hover svg {
  transform: translateX(2px);
}

.rt-hub-more-wrap {
  text-align: center;
  margin-top: 40px;
}

.rt-btn-hub-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 16px 36px;
  background: linear-gradient(135deg, #1E3326 0%, #2D4C39 100%);
  color: #FFFFFF !important;
  font-size: 1rem;
  font-weight: 700;
  border-radius: 9999px;
  text-decoration: none;
  box-shadow: 0 4px 20px rgba(30, 51, 38, 0.2);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  border: 1px solid rgba(197, 160, 89, 0.35);
}

.rt-btn-hub-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(30, 51, 38, 0.3);
  border-color: #C5A059;
  background: linear-gradient(135deg, #17271D 0%, #243D2E 100%);
}

.rt-btn-hub-primary svg {
  transition: transform 0.25s ease;
}

.rt-btn-hub-primary:hover svg {
  transform: translateX(4px);
}

.rt-hub-feature-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
  margin-top: 36px;
}

@media (min-width: 768px) {
  .rt-hub-feature-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
  }
}

.rt-hub-feature-card {
  background: #FFFFFF;
  border-radius: 16px;
  padding: 32px 28px;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(0, 0, 0, 0.06);
  display: flex;
  flex-direction: column;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  position: relative;
  overflow: hidden;
}

.rt-hub-feature-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, #C5A059, #E5C378);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.rt-hub-feature-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 36px rgba(30, 51, 38, 0.1);
  border-color: rgba(197, 160, 89, 0.3);
}

.rt-hub-feature-card:hover::before {
  opacity: 1;
}

.rt-hub-feature-num {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: 2.2rem;
  font-weight: 600;
  color: #C5A059;
  line-height: 1;
  margin-bottom: 14px;
}

.rt-hub-feature-title {
  font-size: 1.1875rem;
  font-weight: 700;
  color: var(--rt-deep-green, #1E3326);
  line-height: 1.5;
  margin-bottom: 14px;
}

.rt-hub-feature-desc {
  font-size: 0.90625rem;
  line-height: 1.85;
  color: #4B5563;
  flex-grow: 1;
  margin-bottom: 20px;
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* ==========================================================================
   Logo Contrast & High Legibility Styles (同化根絶・高コントラスト設計)
   ========================================================================== */
/* 暗いフッター・暗い背景上のロゴを鮮明なホワイトゴールドに発色 */
.rt-footer-logo,
.rt-footer img[src*="logo-rooton"],
.rooton-footer__logo-img {
  filter: brightness(0) invert(1) drop-shadow(0 2px 8px rgba(197, 160, 89, 0.4)) !important;
  opacity: 1 !important;
  transition: transform 0.3s ease;
}

.rt-footer-logo:hover,
.rt-footer img[src*="logo-rooton"]:hover {
  transform: scale(1.03);
}

/* サブページヘッダーの完全統一（トップと同一の上質アイボリーに） */
.rt-subpage-header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 64px !important;
  background: rgba(250, 248, 244, 0.96) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  z-index: 100 !important;
  border-bottom: 1px solid rgba(197, 160, 89, 0.25) !important;
  box-shadow: 0 1px 10px rgba(0, 0, 0, 0.04) !important;
}

.rt-subpage-header .rt-header-logo-link {
  display: flex;
  align-items: center;
  text-decoration: none;
}

.rt-subpage-header .rt-header-logo-link img {
  height: 38px !important;
  width: auto !important;
  filter: none !important;
}

.rt-subpage-header-nav {
  display: flex;
  gap: 16px;
  align-items: center;
}

.rt-subpage-back-link {
  color: #1E3326 !important;
  font-size: 0.8125rem !important;
  text-decoration: none !important;
  font-weight: 700 !important;
  padding: 6px 10px !important;
  border-radius: 6px !important;
  white-space: nowrap !important;
  transition: background 0.2s ease !important;
  flex-shrink: 0 !important;
}

.rt-subpage-back-link:hover {
  background: rgba(30, 51, 38, 0.06) !important;
}

.rt-subpage-reserve-btn {
  background: linear-gradient(135deg, #C5A059 0%, #9A7B32 100%) !important;
  color: #FFFFFF !important;
  border: none !important;
  padding: 7px 16px !important;
  border-radius: 9999px !important;
  font-weight: 700 !important;
  font-size: 0.75rem !important;
  cursor: pointer !important;
  box-shadow: 0 2px 8px rgba(197, 160, 89, 0.3) !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
}

/* ダークセクション（アクセス・予約）の高コントラスト視認性 */
.rt-info dt,
#access span[style*="text-transform: uppercase"] {
  color: #E5C378 !important;
  font-weight: 700 !important;
}

.rt-info dd,
#access div[style*="font-size: 1.0625rem"],
#access div[style*="font-size: 0.9375rem"] {
  color: #FFFFFF !important;
  opacity: 0.95 !important;
}

/* 法的注記の高可読性 */
.rt-legal-notice {
  background: #FAF9F5 !important;
  border: 1px solid rgba(197, 160, 89, 0.3) !important;
  border-radius: 10px !important;
  padding: 18px 22px !important;
  font-size: 0.8125rem !important;
  line-height: 1.8 !important;
  color: #374151 !important;
  margin: 30px auto 40px !important;
}

/* ==========================================================================
   High-Contrast Access & CTA Styles (文字・ボタン同化根絶)
   ========================================================================== */
#access {
  background: #11281E !important;
  color: #FFFFFF !important;
  position: relative !important;
  padding: 80px 0 60px !important;
}

#access .rt-section-subtitle {
  color: #E5C378 !important;
}

#access .rt-section-title {
  color: #FFFFFF !important;
}

#access .rt-section-desc {
  color: rgba(255, 255, 255, 0.88) !important;
}

.rt-access-info-box {
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(229, 195, 120, 0.35) !important;
  border-radius: 16px !important;
  padding: 32px 24px !important;
  max-width: 800px !important;
  margin: 0 auto 36px !important;
  color: #FFFFFF !important;
  box-sizing: border-box !important;
}

.rt-access-label {
  font-size: 0.8125rem !important;
  color: #E5C378 !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  display: block !important;
  margin-bottom: 4px !important;
}

.rt-access-val-strong {
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  color: #FFFFFF !important;
  margin-bottom: 16px !important;
}

.rt-access-val {
  font-size: 0.9375rem !important;
  color: #FFFFFF !important;
  line-height: 1.6 !important;
  margin-bottom: 16px !important;
}

.rt-access-btn-map {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  background: rgba(255, 255, 255, 0.15) !important;
  color: #FFFFFF !important;
  border: 1px solid rgba(255, 255, 255, 0.35) !important;
  border-radius: 9999px !important;
  padding: 12px 24px !important;
  text-decoration: none !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  transition: all 0.25s ease !important;
}

.rt-access-btn-map:hover {
  background: rgba(255, 255, 255, 0.25) !important;
  color: #FFFFFF !important;
}

.rt-access-btn-route {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  background: linear-gradient(135deg, #C5A059 0%, #9A7B32 100%) !important;
  color: #11281E !important;
  border: 1px solid #FFE4A0 !important;
  border-radius: 9999px !important;
  padding: 12px 24px !important;
  text-decoration: none !important;
  font-size: 0.875rem !important;
  font-weight: 700 !important;
  transition: all 0.25s ease !important;
  box-shadow: 0 4px 14px rgba(197, 160, 89, 0.35) !important;
}

.rt-access-btn-route:hover {
  background: linear-gradient(135deg, #D4AF37 0%, #B8860B 100%) !important;
  color: #11281E !important;
  transform: translateY(-2px) !important;
}

/* 最終予約CTAボックス＆ゴールド予約ボタン */
.rt-final-cta-box {
  background: linear-gradient(135deg, #182C20 0%, #243D2E 100%) !important;
  border: 2px solid #C5A059 !important;
  border-radius: 20px !important;
  padding: 40px 24px !important;
  max-width: 800px !important;
  margin: 0 auto !important;
  text-align: center !important;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.3) !important;
  box-sizing: border-box !important;
}

.rt-final-cta-box h3 {
  color: #FFFFFF !important;
  font-size: clamp(1.2rem, 3.2vw, 1.75rem) !important;
  font-weight: 700 !important;
  margin: 12px 0 16px !important;
  line-height: 1.5 !important;
}

.rt-final-cta-box p {
  color: rgba(255, 255, 255, 0.88) !important;
  font-size: 0.90625rem !important;
  line-height: 1.85 !important;
  max-width: 600px !important;
  margin: 0 auto 28px !important;
}

/* ゴールド予約ボタン（高コントラスト：金背景 × 濃緑太字） */
.rt-btn-gold {
  background: linear-gradient(135deg, #E5C378 0%, #C5A059 50%, #9A7B32 100%) !important;
  color: #11281E !important;
  border: 1px solid #FFE4A0 !important;
  font-weight: 800 !important;
  font-size: 1.0625rem !important;
  text-shadow: none !important;
  box-shadow: 0 6px 24px rgba(197, 160, 89, 0.45) !important;
  text-decoration: none !important;
  border-radius: 9999px !important;
  padding: 16px 28px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 440px !important;
  margin: 0 auto !important;
}

.rt-btn-gold,
.rt-btn-gold span,
.rt-btn-gold strong {
  color: #11281E !important;
}

.rt-btn-gold:hover {
  background: linear-gradient(135deg, #FFF0C2 0%, #D8B568 50%, #AC8B3E 100%) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 10px 32px rgba(197, 160, 89, 0.6) !important;
}

.rt-btn-ig-outline {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 14px 24px !important;
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  color: #FFFFFF !important;
  background: rgba(255, 255, 255, 0.1) !important;
  border: 1px solid rgba(255, 255, 255, 0.3) !important;
  border-radius: 9999px !important;
  text-decoration: none !important;
  transition: all 0.25s ease !important;
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 440px !important;
  margin: 0 auto !important;
}

.rt-btn-ig-outline:hover {
  background: rgba(255, 255, 255, 0.18) !important;
  color: #FFFFFF !important;
}

/* ==========================================================================
   Symptoms & Biomechanics Visual Components
   ========================================================================== */
.rt-concern-media-box {
  margin: 20px 0 24px;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
  background: #0B1912;
}

.rt-concern-img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  aspect-ratio: 16 / 9;
}

.rt-concern-img-caption {
  padding: 10px 16px;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: #FAF9F5;
  background: #11281E;
  border-top: 1px solid rgba(197, 160, 89, 0.3);
  display: flex;
  align-items: center;
  gap: 8px;
}

.rt-concern-img-caption strong {
  color: #E5C378;
  font-weight: 700;
}

/* VS Comparison Grid (今までの治療 vs Rooton) */
.rt-vs-comparison {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin: 20px 0 24px;
}

@media (max-width: 640px) {
  .rt-vs-comparison {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

.rt-vs-col {
  border-radius: 12px;
  padding: 18px 20px;
  box-sizing: border-box;
}

.rt-vs-col--bad {
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
}

.rt-vs-badge-bad {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.75rem;
  font-weight: 700;
  color: #DC2626;
  background: #FEE2E2;
  border: 1px solid #FECACA;
  padding: 3px 10px;
  border-radius: 20px;
  margin-bottom: 8px;
}

.rt-vs-title-bad {
  font-size: 0.9375rem;
  font-weight: 700;
  color: #1E293B;
  margin-bottom: 6px;
}

.rt-vs-desc-bad {
  font-size: 0.8125rem;
  line-height: 1.6;
  color: #64748B;
  margin: 0;
}

.rt-vs-col--good {
  background: #0D1D16;
  border: 1px solid #C5A059;
  box-shadow: 0 4px 16px rgba(13, 29, 22, 0.15);
}

.rt-vs-badge-good {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.75rem;
  font-weight: 700;
  color: #E5C378;
  background: rgba(197, 160, 89, 0.15);
  border: 1px solid rgba(197, 160, 89, 0.4);
  padding: 3px 10px;
  border-radius: 20px;
  margin-bottom: 8px;
}

.rt-vs-title-good {
  font-size: 0.9375rem;
  font-weight: 700;
  color: #FFFFFF;
  margin-bottom: 6px;
}

.rt-vs-desc-good {
  font-size: 0.8125rem;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.88);
  margin: 0;
}

/* Card Level VS Summary (トップページお悩みハブカード用 対比バッジ) */
.rt-card-vs-summary {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 12px 0 14px;
  padding: 10px 12px;
  background: #F8FAFC;
  border-radius: 8px;
  border: 1px solid #E2E8F0;
  font-size: 0.775rem;
  line-height: 1.4;
}

.rt-card-vs-item {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
}

.rt-card-vs--bad .rt-card-vs-label {
  color: #DC2626;
  font-weight: 700;
  white-space: nowrap;
  font-size: 0.7rem;
  background: #FEE2E2;
  padding: 1px 7px;
  border-radius: 4px;
  line-height: 1.35;
  display: inline-block;
}

.rt-card-vs--bad .rt-card-vs-val {
  color: #64748B;
  font-size: 0.8rem;
  line-height: 1.45;
  padding-left: 2px;
}

.rt-card-vs--good .rt-card-vs-label {
  color: #0F5132;
  font-weight: 700;
  white-space: nowrap;
  font-size: 0.7rem;
  background: #D1E7DD;
  padding: 1px 7px;
  border-radius: 4px;
  line-height: 1.35;
  display: inline-block;
}

.rt-card-vs--good .rt-card-vs-val {
  color: #0D1D16;
  font-weight: 600;
  font-size: 0.8rem;
  line-height: 1.45;
  padding-left: 2px;
}


/* ==========================================================================
   14.0 FV Empathy Hook Section (究極の自分事化・日常の癖と筋肉のSOS)
   ========================================================================== */
.rt-empathy-hook {
  background: linear-gradient(180deg, #FAF8F5 0%, #F5F1EB 100%);
  padding: clamp(36px, 6vw, 60px) 0;
  position: relative;
  border-bottom: 1px solid rgba(197, 160, 89, 0.2);
}

.rt-empathy-card {
  background: #FFFFFF;
  border-radius: 20px;
  padding: clamp(24px, 5vw, 44px);
  box-shadow: 0 12px 36px rgba(18, 35, 26, 0.07);
  border: 1px solid rgba(197, 160, 89, 0.25);
  position: relative;
  overflow: hidden;
  max-width: 900px;
  margin: 0 auto;
}

.rt-empathy-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 5px;
  background: linear-gradient(90deg, #1B4D36 0%, #C5A059 50%, #1B4D36 100%);
}

.rt-empathy-header {
  text-align: center;
  margin-bottom: clamp(20px, 4vw, 32px);
}

.rt-empathy-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(197, 160, 89, 0.12);
  color: #8C6D28;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 4px 14px;
  border-radius: 9999px;
  margin-bottom: 14px;
  border: 1px solid rgba(197, 160, 89, 0.3);
}

.rt-empathy-title {
  font-family: var(--rt-font-serif, "Cinzel", serif);
  font-size: clamp(1.15rem, 3.8vw, 1.75rem);
  font-weight: 700;
  color: #12231A;
  line-height: 1.55;
  margin: 0;
  word-break: normal;
  overflow-wrap: break-word;
  text-wrap: balance;
  letter-spacing: -0.01em;
}

.rt-empathy-chunk {
  display: inline;
}

.rt-empathy-title-gold {
  color: #8C6D28;
  font-weight: 800;
  font-size: clamp(1.05rem, 3.6vw, 1.45rem);
  display: block;
  margin-top: 6px;
  line-height: 1.45;
  letter-spacing: 0.02em;
  text-wrap: balance;
}

/* 共感セクション：導入の問いかけ（強い自分事化への引き込み） */
.rt-empathy-intro {
  text-align: center;
  margin: -10px auto clamp(20px, 3.5vw, 28px);
  max-width: 680px;
}

.rt-empathy-question-lead {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: clamp(0.9375rem, 2.3vw, 1.1875rem);
  font-weight: 600;
  color: #12231A;
  line-height: 1.75;
  margin: 0 0 10px;
  letter-spacing: 0.03em;
  text-wrap: pretty;
}

.rt-empathy-question-doubt {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: clamp(1.0rem, 2.3vw, 1.1875rem);
  font-weight: 700;
  color: #8C6D28;
  line-height: 1.6;
  margin: 0 0 10px;
  letter-spacing: 0.05em;
}

.rt-empathy-question-sub {
  font-family: var(--rt-font-sans, "Noto Sans JP", sans-serif);
  font-size: clamp(0.9375rem, 2vw, 1.0625rem);
  font-weight: 700;
  color: #1B4D36;
  letter-spacing: 0.06em;
  margin: 0;
}

/* 3つの日常の癖チェックカード（PC 3カラム / スマホ 1カラム） */
.rt-empathy-checklist {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-bottom: clamp(20px, 3.5vw, 28px);
}

@media (min-width: 768px) {
  .rt-empathy-checklist {
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
  }
}

.rt-empathy-check-card {
  background: #FAF8F5;
  border: 1px solid rgba(197, 160, 89, 0.28);
  border-radius: 14px;
  padding: clamp(16px, 2.5vw, 20px) clamp(16px, 2.5vw, 22px);
  display: flex;
  flex-direction: column;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background 0.25s ease;
  position: relative;
}

.rt-empathy-check-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(18, 35, 26, 0.08);
  border-color: rgba(197, 160, 89, 0.6);
  background: #FFFFFF;
}

.rt-empathy-check-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.rt-empathy-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px 4px 6px;
  background: #153424;
  color: #E5C378;
  border-radius: 20px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
}

.rt-empathy-badge-num {
  background: rgba(229, 195, 120, 0.2);
  color: #FFF6D8;
  border-radius: 50%;
  width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.6875rem;
  font-family: var(--rt-font-sans, "Noto Sans JP", sans-serif);
}

.rt-empathy-check-main {
  font-family: var(--rt-font-sans, "Noto Sans JP", sans-serif);
  font-size: clamp(0.96875rem, 1.8vw, 1.0625rem);
  font-weight: 700;
  line-height: 1.45;
  color: #153424;
  margin: 0 0 8px;
  letter-spacing: 0.02em;
}

.rt-empathy-check-detail {
  font-size: clamp(0.8125rem, 1.4vw, 0.85rem);
  line-height: 1.6;
  color: #64748B;
  margin: 0;
  letter-spacing: 0.01em;
}

.rt-empathy-check-item {
  background: #FAF8F5;
  border: 1px solid rgba(197, 160, 89, 0.28);
  border-radius: 12px;
  padding: 14px 18px;
  display: flex;
  align-items: center;
  gap: 14px;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.rt-empathy-check-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(18, 35, 26, 0.07);
  border-color: rgba(197, 160, 89, 0.5);
  background: #FFFFFF;
}

.rt-empathy-check-icon {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: linear-gradient(135deg, #234E39 0%, #153424 100%);
  color: #E5C378;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

.rt-empathy-check-icon svg {
  display: block;
}

.rt-empathy-check-text {
  font-size: clamp(0.875rem, 1.8vw, 0.95rem);
  font-weight: 600;
  line-height: 1.55;
  color: #1E293B;
  margin: 0;
  letter-spacing: 0.02em;
}

/* 気づきの警告コールアウト */
.rt-empathy-warning {
  background: linear-gradient(135deg, rgba(253, 250, 245, 0.95) 0%, rgba(247, 241, 230, 0.95) 100%);
  border: 1px solid rgba(197, 160, 89, 0.35);
  border-left: 4px solid #C5A059;
  border-radius: 12px;
  padding: 16px 20px;
  margin-bottom: 20px;
  text-align: center;
}

.rt-empathy-warning-text {
  font-family: var(--rt-font-sans, "Noto Sans JP", sans-serif);
  font-size: clamp(0.9375rem, 2vw, 1.0625rem);
  line-height: 1.6;
  color: #1B4D36;
  margin: 0 0 6px;
}

.rt-empathy-warning-text strong {
  color: #92400E;
  font-weight: 700;
}

.rt-empathy-warning-sub {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: clamp(0.9375rem, 2vw, 1.05rem);
  font-weight: 700;
  color: #8C6D28;
  margin: 0;
  letter-spacing: 0.04em;
}

/* 生体力学アコーディオン（予約の邪魔にならないHTML5 native details） */
.rt-empathy-accordion {
  margin: 0 auto 24px;
  max-width: 820px;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(197, 160, 89, 0.3);
  background: #FFFFFF;
  box-shadow: 0 4px 16px rgba(18, 35, 26, 0.05);
  transition: box-shadow 0.3s ease;
}

.rt-empathy-accordion[open] {
  box-shadow: 0 8px 28px rgba(18, 35, 26, 0.10);
  border-color: rgba(197, 160, 89, 0.5);
}

.rt-empathy-accordion-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 15px 22px;
  background: linear-gradient(135deg, #183C2B 0%, #0F261B 100%);
  color: #F8FAF7;
  cursor: pointer;
  list-style: none;
  user-select: none;
  transition: background 0.3s ease, filter 0.3s ease;
}

.rt-empathy-accordion-summary::-webkit-details-marker {
  display: none;
}

.rt-empathy-accordion-summary:hover {
  filter: brightness(1.08);
}

.rt-empathy-summary-label {
  font-family: var(--rt-font-sans, "Noto Sans JP", sans-serif);
  font-size: clamp(0.875rem, 1.8vw, 0.96875rem);
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #FFF6D8;
  display: flex;
  align-items: center;
  gap: 8px;
}

.rt-empathy-summary-arrow {
  color: #E5C378;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.rt-empathy-accordion[open] .rt-empathy-summary-arrow {
  transform: rotate(180deg);
}

.rt-empathy-accordion-body {
  padding: 20px 22px 24px;
  background: #FDFBF8;
  border-top: 1px solid rgba(197, 160, 89, 0.2);
  animation: rtFadeSlideDown 0.3s ease-out;
}

@keyframes rtFadeSlideDown {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.rt-empathy-mechanisms {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-bottom: 20px;
}

.rt-empathy-mech-card {
  background: #FFFFFF;
  border: 1px solid rgba(197, 160, 89, 0.22);
  border-left: 3px solid #C5A059;
  border-radius: 8px;
  padding: 13px 16px;
}

.rt-empathy-mech-title {
  font-family: var(--rt-font-sans, "Noto Sans JP", sans-serif);
  font-size: clamp(0.875rem, 1.6vw, 0.9375rem);
  font-weight: 700;
  color: #183C2B;
  margin: 0 0 5px;
  line-height: 1.45;
}

.rt-empathy-mech-desc {
  font-size: clamp(0.8125rem, 1.4vw, 0.86rem);
  line-height: 1.7;
  color: #475569;
  margin: 0;
  text-wrap: pretty;
}

/* アコーディオン内のコラム案内リンク */
.rt-empathy-accordion-column-link {
  border-top: 1px dashed rgba(197, 160, 89, 0.35);
  padding-top: 16px;
  text-align: center;
}

.rt-empathy-column-lead {
  font-size: 0.8125rem;
  color: #64748B;
  margin: 0 0 10px;
  font-weight: 500;
}

.rt-empathy-column-buttons {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.rt-btn-sub-luxury {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 18px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #183C2B;
  background: #FFFFFF;
  border: 1px solid rgba(197, 160, 89, 0.45);
  border-radius: 9999px;
  text-decoration: none;
  transition: all 0.25s ease;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
}

.rt-btn-sub-luxury:hover {
  background: #183C2B;
  color: #FFF6D8;
  border-color: #183C2B;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(24, 60, 43, 0.15);
}

/* 根本改善ソリューション（サイト全体と美しく調和するアイボリー＆ゴールド仕様） */
.rt-empathy-solution {
  background: linear-gradient(135deg, #FCFBF8 0%, #F5EFE4 100%);
  border-radius: 14px;
  padding: clamp(22px, 4vw, 30px);
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(197, 160, 89, 0.45);
  box-shadow: 0 8px 24px rgba(18, 35, 26, 0.05), inset 0 1px 0 rgba(255, 255, 255, 0.9);
  text-align: center;
}

.rt-empathy-solution::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, #1B4D36 0%, #C5A059 50%, #1B4D36 100%);
}

.rt-empathy-solution-text {
  font-family: var(--rt-font-serif, "Shippori Mincho", "Noto Sans JP", serif);
  font-size: clamp(0.96875rem, 2.2vw, 1.125rem);
  font-weight: 600;
  line-height: 1.85;
  color: #12231A;
  margin: 0;
  letter-spacing: 0.04em;
  text-wrap: pretty;
}

.rt-empathy-solution-highlight {
  color: #8C6D28;
  font-weight: 700;
  border-bottom: 2px solid rgba(197, 160, 89, 0.45);
  padding-bottom: 1px;
}

.rt-empathy-insight-title {
  font-family: var(--rt-font-serif, "Shippori Mincho", "Noto Sans JP", serif);
  font-size: clamp(1.0625rem, 2.5vw, 1.25rem);
  font-weight: 700;
  color: #12231A;
  margin: 0 0 14px;
  line-height: 1.5;
  text-wrap: balance;
}

.rt-empathy-insight-text {
  font-size: clamp(0.875rem, 2vw, 0.96875rem);
  line-height: 1.85;
  color: #334155;
  margin: 0 0 16px;
  text-align: left;
  text-wrap: pretty;
}

/* テンセグリティ・筋膜×関節調整ブランドカード */
.rt-empathy-solution-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 14px;
  border-radius: 9999px;
  background: rgba(197, 160, 89, 0.15);
  border: 1px solid rgba(197, 160, 89, 0.5);
  color: #8C6D28;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  margin-bottom: 12px;
}

.rt-tensegrity-concept-card {
  margin-top: 14px;
  text-align: left;
}

.rt-tensegrity-concept-title {
  font-family: var(--rt-font-serif, "Shippori Mincho", "Noto Sans JP", serif);
  font-size: clamp(0.9375rem, 2.2vw, 1.0625rem);
  font-weight: 700;
  color: #1B4D36;
  margin: 0 0 10px;
  line-height: 1.6;
  display: flex;
  align-items: center;
  gap: 8px;
}

.rt-tensegrity-feature-box {
  background: rgba(255, 255, 255, 0.85);
  border-left: 3px solid #1B4D36;
  border-radius: 0 10px 10px 0;
  padding: 14px 18px;
  margin: 16px 0;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.03);
}

.rt-tensegrity-feature-heading {
  font-size: clamp(0.875rem, 2vw, 0.96875rem);
  font-weight: 700;
  color: #12231A;
  margin: 0 0 8px;
  line-height: 1.5;
  text-wrap: balance;
}

.rt-tensegrity-feature-desc {
  font-size: clamp(0.8125rem, 1.8vw, 0.875rem);
  line-height: 1.8;
  color: #475569;
  margin: 0;
  text-wrap: pretty;
}

.rt-tensegrity-feature-desc strong {
  color: #1B4D36;
}

.rt-tensegrity-belief-box {
  background: linear-gradient(135deg, rgba(27, 77, 54, 0.06) 0%, rgba(197, 160, 89, 0.1) 100%);
  border: 1px dashed rgba(197, 160, 89, 0.6);
  border-radius: 10px;
  padding: 14px 18px;
  margin: 16px 0 20px;
}

.rt-tensegrity-belief-text {
  font-family: var(--rt-font-serif, "Shippori Mincho", "Noto Sans JP", serif);
  font-size: clamp(0.84375rem, 1.9vw, 0.90625rem);
  line-height: 1.85;
  color: #183C2B;
  margin: 0;
  text-wrap: pretty;
}

.rt-tensegrity-belief-text strong {
  color: #8C6D28;
}

.rt-tensegrity-cta-row {
  margin-top: 18px;
  text-align: center;
}

.rt-btn-tensegrity-blog {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 10px 24px;
  background: #1B4D36;
  color: #FFFFFF !important;
  font-size: clamp(0.84375rem, 1.9vw, 0.90625rem);
  font-weight: 700;
  border-radius: 9999px;
  text-decoration: none;
  box-shadow: 0 4px 14px rgba(27, 77, 54, 0.25);
  border: 1px solid #C5A059;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  -webkit-tap-highlight-color: transparent;
}

.rt-btn-tensegrity-blog:hover {
  background: #143B29;
  color: #F8F5EE !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(27, 77, 54, 0.35);
}

.rt-btn-tensegrity-blog .rt-btn-arrow {
  display: inline-block;
  transition: transform 0.25s ease;
}

.rt-btn-tensegrity-blog:hover .rt-btn-arrow {
  transform: translateX(4px);
}

@media (min-width: 768px) {
  .rt-empathy-insight-text {
    text-align: center;
  }
}

/* ==========================================================================
   14.1 Patient Interviews Section (患者様インタビュー)
   ========================================================================== */
.rt-interviews-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}

@media (min-width: 768px) {
  .rt-interviews-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
}

.rt-interview-card {
  background: #FFFFFF;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
  border: 1px solid rgba(197, 160, 89, 0.2);
  display: flex;
  flex-direction: column;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.rt-interview-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(18, 35, 26, 0.1);
}

.rt-interview-media {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #12231A;
  overflow: hidden;
}

.rt-interview-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.rt-interview-card:hover .rt-interview-img {
  transform: scale(1.03);
}

.rt-interview-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  background: rgba(18, 35, 26, 0.82);
  backdrop-filter: blur(4px);
  color: #E5C378;
  font-size: 0.725rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 6px;
  letter-spacing: 0.04em;
  border: 1px solid rgba(229, 195, 120, 0.35);
}

.rt-interview-body {
  padding: 20px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

.rt-interview-author {
  font-size: 0.8125rem;
  color: #64748B;
  font-weight: 600;
  margin-bottom: 8px;
}

.rt-interview-title {
  font-family: var(--rt-font-serif, serif);
  font-size: 1.0625rem;
  font-weight: 700;
  color: #12231A;
  line-height: 1.5;
  margin-bottom: 12px;
}

.rt-interview-quote {
  font-size: 0.875rem;
  line-height: 1.7;
  color: #475569;
  margin-bottom: 14px;
  flex-grow: 1;
}

.rt-interview-point {
  background: #F8FAF7;
  border-left: 3px solid #1B4D36;
  padding: 8px 12px;
  border-radius: 0 6px 6px 0;
  font-size: 0.8125rem;
  color: #1E3326;
  line-height: 1.5;
}

/* ==========================================================================
   14.2 Biomechanical Pure-Vector Animated Visuals (文字なし生体力学アニメーション)
   ========================================================================== */
.rt-bio-anim-box {
  width: 100%;
  aspect-ratio: 16 / 9;
  background: radial-gradient(circle at center, #1B3326 0%, #0D1A13 100%);
  border-radius: 12px;
  overflow: hidden;
  position: relative;
  box-shadow: inset 0 0 20px rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(197, 160, 89, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
}

.rt-bio-svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* Biomech Animation Keyframes: No Text, Pure Biomechanics */

/* 1. Neck Crane Animation (胸筋短縮 ➔ 頸椎前方すべり ➔ 後頭下部過緊張) */
@keyframes bioCraneHead {
  0%, 100% {
    transform: translate(0, 0);
  }
  50% {
    transform: translate(18px, 6px);
  }
}

@keyframes bioChestContract {
  0%, 100% {
    stroke-dashoffset: 0;
    stroke: #C5A059;
    stroke-width: 2.5;
  }
  50% {
    stroke-dashoffset: -12;
    stroke: #EF4444;
    stroke-width: 4.5;
  }
}

@keyframes bioPainPulse {
  0%, 100% {
    opacity: 0.2;
    transform: scale(0.85);
  }
  50% {
    opacity: 0.95;
    transform: scale(1.2);
  }
}

/* 2. Lower Back Psoas Lock (座り〜立ち上がり大腰筋伸張不全ロック) */
@keyframes bioPsoasLock {
  0%, 100% {
    stroke: #C5A059;
    stroke-width: 2.5;
    opacity: 0.6;
  }
  40%, 60% {
    stroke: #EF4444;
    stroke-width: 5;
    opacity: 1;
  }
}

@keyframes bioPelvisTilt {
  0%, 100% {
    transform: rotate(0deg);
  }
  40%, 60% {
    transform: rotate(10deg);
  }
}

@keyframes bioLumbarCatch {
  0%, 100% {
    opacity: 0;
    transform: scale(0.6);
  }
  45%, 55% {
    opacity: 1;
    transform: scale(1.3);
  }
}

/* 3. Posture Fatigue & Navel Fascia Pull (おへそへのSFL引き込み＆呼吸停止) */
@keyframes bioNavelDraw {
  0%, 100% {
    transform: scale(1);
    opacity: 0.5;
  }
  50% {
    transform: scale(1.25);
    opacity: 1;
  }
}

@keyframes bioRibRigid {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-5px);
  }
}

@keyframes bioHeavyAura {
  0%, 100% {
    opacity: 0.2;
    transform: scale(0.95);
  }
  50% {
    opacity: 0.75;
    transform: scale(1.05);
  }
}

.anim-crane-head {
  animation: bioCraneHead 4.2s cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite;
  transform-origin: 150px 90px;
}

.anim-chest-vector {
  animation: bioChestContract 4.2s ease-in-out infinite;
  stroke-dasharray: 6 3;
}

.anim-pain-beacon {
  animation: bioPainPulse 2.1s ease-in-out infinite;
  transform-origin: 135px 85px;
}

.anim-psoas-cord {
  animation: bioPsoasLock 3.8s ease-in-out infinite;
}

.anim-pelvis-bone {
  animation: bioPelvisTilt 3.8s ease-in-out infinite;
  transform-origin: 170px 170px;
}

.anim-lumbar-spark {
  animation: bioLumbarCatch 3.8s ease-in-out infinite;
  transform-origin: 165px 135px;
}

.anim-navel-center {
  animation: bioNavelDraw 3.6s ease-in-out infinite;
  transform-origin: 180px 145px;
}

.anim-rib-cage {
  animation: bioRibRigid 3.6s ease-in-out infinite;
  transform-origin: 180px 105px;
}

.anim-fatigue-cloud {
  animation: bioHeavyAura 4s ease-in-out infinite;
  transform-origin: 180px 125px;
}

/* ==========================================================================
   Google Review Link Button (Clear Contrast, White Pill + Deep Green + Gold Star)
   ========================================================================== */
.rt-btn-google-review {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  padding: 14px 28px !important;
  background: #FFFFFF !important;
  color: #12231A !important;
  font-size: 0.9375rem !important;
  font-weight: 700 !important;
  border-radius: 9999px !important;
  text-decoration: none !important;
  border: 1.5px solid #C5A059 !important;
  box-shadow: 0 4px 16px rgba(18, 35, 26, 0.08) !important;
  transition: all 0.25s ease !important;
  line-height: 1.4 !important;
}

.rt-btn-google-review:hover {
  background: #FAF7F2 !important;
  border-color: #9A7B32 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(18, 35, 26, 0.14) !important;
}

.rt-btn-google-review span {
  color: #12231A !important;
}

.rt-btn-google-review .rt-g-star {
  color: #D97706 !important;
  font-weight: 800 !important;
}

/* ==========================================================================
   Realistic Spine & Anatomy Visual Container (Clean Medical Photography)
   ========================================================================== */
.rt-concern-vis-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 20px;
  background: #12231A;
  border: 1px solid rgba(197, 160, 89, 0.25);
  box-shadow: 0 4px 18px rgba(18, 35, 26, 0.08);
}

.rt-concern-vis-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.rt-concern-card:hover .rt-concern-vis-img {
  transform: scale(1.025);
}

/* Mobile Bottom Spacing for Fixed CTA */
@media (max-width: 767px) {
  body {
    padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

/* Advanced Tools & Myofascial Release Section */
.rt-tool-concept-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin: 28px 0 20px;
}

.rt-tool-card {
  background: #FFFFFF;
  border: 1px solid rgba(197, 160, 89, 0.35);
  border-radius: 12px;
  padding: 22px 18px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  display: flex;
  flex-direction: column;
}

.rt-tool-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(197, 160, 89, 0.15);
  border-color: #C5A059;
}

.rt-tool-card-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: rgba(197, 160, 89, 0.1);
  border: 1px solid rgba(197, 160, 89, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
  color: #8C6D2D;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.rt-tool-card:hover .rt-tool-card-icon {
  background: rgba(197, 160, 89, 0.2);
  border-color: #C5A059;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(197, 160, 89, 0.18);
}

/* ==========================================================================
   Sophisticated Bespoke SVG Icons & Status Signals (No Cheap Emojis)
   ========================================================================== */
.rt-svg-icon {
  display: inline-block;
  vertical-align: middle;
  flex-shrink: 0;
  stroke-width: 1.8;
  stroke: currentColor;
  fill: none;
}

.rt-btn-icon-svg {
  display: inline-block;
  vertical-align: middle;
  width: 16px;
  height: 16px;
  margin-right: 6px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.8;
  position: relative;
  top: -1px;
}

.rt-insight-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px;
  border-radius: 20px;
  background: rgba(197, 160, 89, 0.12);
  border: 1px solid rgba(197, 160, 89, 0.3);
  color: #8C6D2D;
  font-family: var(--rt-font-en, "Cormorant Garamond", serif);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.rt-insight-badge-svg {
  width: 12px;
  height: 12px;
  stroke: currentColor;
  fill: none;
  stroke-width: 2;
}

.rt-status-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-right: 7px;
  vertical-align: middle;
  position: relative;
  top: -1px;
}

.rt-status-dot.is-victim {
  background: #E74C3C;
  box-shadow: 0 0 6px rgba(231, 76, 60, 0.7);
}

.rt-status-dot.is-cause {
  background: #E67E22;
  box-shadow: 0 0 6px rgba(230, 126, 34, 0.7);
}

.rt-status-dot.is-ideal {
  background: #2ECC71;
  box-shadow: 0 0 6px rgba(46, 204, 113, 0.7);
}

.rt-tool-card-tag {
  display: inline-block;
  align-self: flex-start;
  font-size: 0.6875rem;
  font-weight: 700;
  color: #8C6D2D;
  background: rgba(197, 160, 89, 0.12);
  border: 1px solid rgba(197, 160, 89, 0.28);
  border-radius: 20px;
  padding: 2px 8px;
  margin-bottom: 8px;
  letter-spacing: 0.03em;
}

.rt-tool-card-title {
  font-family: var(--rt-font-heading, "Shippori Mincho", serif);
  font-size: 1.0625rem;
  font-weight: 700;
  color: #1F2937;
  margin: 0 0 10px 0;
  line-height: 1.4;
}

.rt-tool-card-desc {
  font-size: 0.8125rem;
  line-height: 1.65;
  color: #4B5563;
  margin: 0;
}

.rt-tool-card-desc strong {
  color: #111827;
}

.rt-tool-hub-note {
  background: rgba(244, 241, 234, 0.7);
  border-left: 3px solid #C5A059;
  border-radius: 0 8px 8px 0;
  padding: 14px 18px;
  margin-top: 20px;
  font-size: 0.875rem;
  line-height: 1.65;
  color: #374151;
}

@media (max-width: 767px) {
  .rt-tool-concept-grid {
    grid-template-columns: 1fr;
    gap: 14px;
    margin: 22px 0 16px;
  }
  .rt-tool-card {
    padding: 18px 16px;
  }
}

/* Specialized bespoke badges & icons for credentials and biomechanics */
.rt-credential-list {
  list-style: none;
  padding: 0;
  margin: 16px 0;
}
.rt-credential-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 12px;
  line-height: 1.6;
}
.rt-credential-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(197, 160, 89, 0.12);
  color: #8C6D2D;
  flex-shrink: 0;
  margin-top: 2px;
}
.rt-credential-icon svg {
  width: 13px;
  height: 13px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
}
.rt-biomech-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(27, 77, 54, 0.08);
  border: 1px solid rgba(27, 77, 54, 0.2);
  color: #1B4D36;
  font-family: var(--rt-font-en, "Cormorant Garamond", serif);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 2px 10px;
  border-radius: 4px;
  margin-right: 6px;
  vertical-align: middle;
}
.rt-biomech-badge-icon {
  width: 12px;
  height: 12px;
  stroke: currentColor;
  stroke-width: 2;
  fill: none;
}

/* ==========================================================================
   MULTI-SESSION PACKAGE TICKETS (回数券プラン: 5回・8回・15回)
   ========================================================================== */
.rt-sub-ticket-card {
  border: 1px solid rgba(197, 160, 89, 0.45);
  background: linear-gradient(180deg, #FFFFFF 0%, #FAF8F4 100%);
  border-radius: 14px;
  padding: 28px;
  position: relative;
  overflow: hidden;
}

.rt-sub-ticket-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #FFFFFF;
  background: #1B4D36;
  padding: 4px 12px;
  border-radius: 20px;
}

.rt-sub-ticket-note {
  font-size: 0.75rem;
  color: #6B7280;
  font-weight: 500;
}

.rt-ticket-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin: 20px 0 0;
}

.rt-ticket-item {
  background: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 20px 16px;
  display: flex;
  flex-direction: column;
  position: relative;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
  box-sizing: border-box;
}

.rt-ticket-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
  border-color: rgba(197, 160, 89, 0.6);
}

.rt-ticket-item--popular {
  border: 2px solid #C5A059;
  background: #FFFCF5;
}

.rt-ticket-popular-badge {
  position: absolute;
  top: -10px;
  right: 14px;
  background: linear-gradient(135deg, #C5A059 0%, #9A7B32 100%);
  color: #FFFFFF;
  font-size: 0.625rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  padding: 2px 8px;
  border-radius: 9999px;
  box-shadow: 0 2px 4px rgba(154, 123, 50, 0.3);
}

.rt-ticket-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 10px;
  border-bottom: 1px dashed #E5E7EB;
  padding-bottom: 8px;
}

.rt-ticket-name {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: 1.25rem;
  font-weight: 800;
  color: #1B4D36;
}

.rt-ticket-tag {
  font-size: 0.6875rem;
  color: #785A18;
  font-weight: 700;
  background: rgba(197, 160, 89, 0.12);
  padding: 2px 6px;
  border-radius: 4px;
  white-space: nowrap;
}

.rt-ticket-benefit {
  margin-bottom: 10px;
}

.rt-ticket-discount-text {
  display: inline-block;
  font-size: 0.8125rem;
  font-weight: 800;
  color: #B45309;
  background: #FEF3C7;
  padding: 3px 8px;
  border-radius: 6px;
}

.rt-ticket-desc {
  font-size: 0.78125rem;
  line-height: 1.6;
  color: #4B5563;
  margin: 0;
  flex-grow: 1;
}

.rt-ticket-footer-box {
  margin-top: 20px;
  padding: 14px 16px;
  background: rgba(27, 77, 54, 0.04);
  border-radius: 8px;
  border-left: 3px solid #1B4D36;
  font-size: 0.8125rem;
  color: #4B5563;
  line-height: 1.65;
}

@media (max-width: 767px) {
  .rt-sub-ticket-card {
    padding: 20px 16px;
  }
  .rt-ticket-grid {
    grid-template-columns: 1fr;
    gap: 14px;
  }
  .rt-ticket-item {
    padding: 16px 14px;
  }
}

/* ==========================================================================
   Google Maps 一体型プレイス情報カード（モバイル・PC完全対応：評価＆件数常時表示）
   ========================================================================== */
.rt-map-integrated-card {
  border-radius: 16px;
  overflow: hidden;
  background: #FFFFFF;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
  border: 1px solid rgba(197, 160, 89, 0.35);
  margin-top: 20px;
  text-align: left;
}

.rt-map-place-bar {
  padding: 16px 20px;
  background: #FFFFFF;
  border-bottom: 1px solid rgba(197, 160, 89, 0.2);
}

.rt-map-place-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.rt-map-place-title {
  font-size: 1.0625rem;
  font-weight: 700;
  color: #111827;
  margin: 0;
  line-height: 1.35;
  font-family: var(--rt-font-sans, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
}

.rt-map-place-addr {
  font-size: 0.8125rem;
  color: #6B7280;
  margin-top: 4px;
  line-height: 1.4;
}

.rt-map-place-badge {
  font-size: 0.6875rem;
  font-weight: 700;
  color: #1B4D36;
  background: rgba(27, 77, 54, 0.08);
  border: 1px solid rgba(27, 77, 54, 0.2);
  padding: 3px 8px;
  border-radius: 6px;
  white-space: nowrap;
}

.rt-map-place-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  padding-top: 10px;
  border-top: 1px dashed #E5E7EB;
}

.rt-map-place-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.rt-map-place-score {
  font-weight: 800;
  color: #B45309;
  font-size: 1.125rem;
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
}

.rt-map-place-stars {
  color: #F59E0B;
  letter-spacing: 2px;
  font-size: 0.875rem;
}

.rt-map-place-count {
  color: #1B4D36;
  text-decoration: underline;
  font-weight: 700;
  font-size: 0.8125rem;
  display: inline-flex;
  align-items: center;
  gap: 2px;
}
.rt-map-place-count:hover {
  color: #0E271B;
}

.rt-map-btn-jump {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: linear-gradient(135deg, #1B4D36 0%, #2D5A43 100%);
  color: #FFFFFF !important;
  font-size: 0.8125rem;
  font-weight: 700;
  padding: 8px 16px;
  border-radius: 9999px;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(27, 77, 54, 0.25);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.rt-map-btn-jump:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(27, 77, 54, 0.35);
  color: #FFFFFF !important;
}

.rt-map-embed-body {
  position: relative;
  height: 340px;
  background: #E5E7EB;
}

.rt-map-embed-body iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

@media (max-width: 480px) {
  .rt-map-place-bar {
    padding: 14px 14px;
  }
  .rt-map-place-top {
    flex-direction: column;
    gap: 6px;
  }
  .rt-map-place-footer {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  .rt-map-btn-jump {
    width: 100%;
    justify-content: center;
    box-sizing: border-box;
    padding: 10px 16px;
  }
  .rt-map-embed-body {
    height: 300px;
  }
}

/* ==========================================================================
   15. Modern Panel Snap Carousel System (コラム・インタビュー共通)
   ========================================================================== */
.rt-panels-wrap {
  position: relative;
  width: 100%;
  max-width: 1080px;
  margin: 0 auto;
  box-sizing: border-box;
}

/* スクロールコンテナ（CSS Scroll Snap + Peek効果） */
.rt-panels-scroll {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
  scrollbar-width: none; /* Firefox */
  gap: 16px;
  padding: 12px 6vw 24px;
  box-sizing: border-box;
}

.rt-panels-scroll::-webkit-scrollbar {
  display: none; /* Chrome, Safari, Edge */
}

@media (min-width: 768px) {
  .rt-panels-scroll {
    gap: 20px;
    padding: 16px 20px 28px;
    justify-content: flex-start;
  }
}

/* パネルカード共通基盤 */
.rt-panel-card {
  scroll-snap-align: center;
  scroll-snap-stop: always;
  flex: 0 0 84vw;
  max-width: 350px;
  background: #FFFFFF;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.05);
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  position: relative;
}

@media (min-width: 768px) {
  .rt-panel-card {
    flex: 0 0 340px;
    max-width: 340px;
    scroll-snap-align: start;
  }
}

.rt-panel-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.08);
}

/* お悩み（SOS）パネルカードの装飾 */
.rt-concerns-panels .rt-panel-card {
  border: 1px solid rgba(197, 160, 89, 0.24);
  padding: 24px 20px;
}

/* 3つのこだわりパネルカードの装飾 */
.rt-features-panels .rt-panel-card {
  border: 1px solid rgba(0, 0, 0, 0.06);
  padding: 24px 20px;
}

.rt-features-panels .rt-panel-card .rt-hub-feature-img-wrap {
  width: 100%;
  height: 160px;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 16px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.rt-features-panels .rt-panel-card .rt-hub-feature-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.rt-features-panels .rt-panel-card:hover .rt-hub-feature-img {
  transform: scale(1.04);
}

.rt-concerns-panels .rt-panel-card .rt-hub-card-link,
.rt-features-panels .rt-panel-card .rt-hub-card-link {
  margin-top: auto;
  padding-top: 12px;
}

/* コラムパネルカードの装飾 */
.rt-cases-panels .rt-panel-card {
  border: 1px solid #E5E7EB;
}

.rt-cases-panels .rt-panel-card .rt-case-media {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #12231A;
  overflow: hidden;
  display: block;
}

.rt-cases-panels .rt-panel-card .rt-case-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.rt-cases-panels .rt-panel-card:hover .rt-case-thumb {
  transform: scale(1.04);
}

.rt-cases-panels .rt-panel-card .rt-case-category-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  background: #1B4D36;
  color: #FFFFFF;
  font-size: 0.6875rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 4px;
  letter-spacing: 0.02em;
}

.rt-cases-panels .rt-panel-card .rt-case-content {
  padding: 18px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.rt-cases-panels .rt-panel-card .rt-case-profile-tag {
  font-size: 0.6875rem;
  font-weight: 600;
  color: #785A18;
  margin-bottom: 6px;
}

.rt-cases-panels .rt-panel-card .rt-case-card-title {
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.5;
  color: #111827;
  margin-bottom: 10px;
  text-wrap: balance;
}

.rt-cases-panels .rt-panel-card .rt-case-excerpt {
  font-size: 0.8125rem;
  line-height: 1.65;
  color: #4B5563;
  margin-bottom: 14px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-wrap: pretty;
}

.rt-cases-panels .rt-panel-card .rt-case-insight {
  font-size: 0.75rem;
  line-height: 1.5;
  color: #1B4D36;
  background: #F4F7F4;
  padding: 8px 10px;
  border-radius: 6px;
  margin-bottom: 14px;
}

.rt-cases-panels .rt-panel-card .rt-case-footer {
  margin-top: auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 10px;
  border-top: 1px solid #F3F4F6;
}

/* インタビューパネルカードの装飾 */
.rt-reviews-panels .rt-panel-card {
  border: 1px solid rgba(197, 160, 89, 0.3);
}

.rt-reviews-panels .rt-panel-card .rt-interview-media {
  position: relative;
  width: 100%;
  height: 160px;
  background: #12231A;
  overflow: hidden;
}

.rt-reviews-panels .rt-panel-card .rt-interview-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.rt-reviews-panels .rt-panel-card:hover .rt-interview-img {
  transform: scale(1.04);
}

.rt-reviews-panels .rt-panel-card .rt-interview-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  background: rgba(27, 77, 54, 0.9);
  backdrop-filter: blur(4px);
  color: #FFFFFF;
  font-size: 0.6875rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 4px;
  letter-spacing: 0.02em;
}

.rt-reviews-panels .rt-panel-card .rt-interview-body {
  padding: 18px;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.rt-reviews-panels .rt-panel-card .rt-interview-author {
  font-size: 0.75rem;
  color: #6B7280;
  font-weight: 500;
  margin-bottom: 6px;
}

.rt-reviews-panels .rt-panel-card .rt-interview-title {
  font-size: 0.9375rem;
  font-weight: 700;
  line-height: 1.5;
  color: #1B4D36;
  margin-bottom: 10px;
  text-wrap: balance;
}

.rt-reviews-panels .rt-panel-card .rt-interview-quote {
  font-size: 0.8125rem;
  line-height: 1.65;
  color: #374151;
  margin-bottom: 14px;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-wrap: pretty;
}

.rt-reviews-panels .rt-panel-card .rt-interview-point {
  background: #FAF8F4;
  border-left: 3px solid #C5A059;
  padding: 10px 12px;
  border-radius: 0 8px 8px 0;
  font-size: 0.75rem;
  line-height: 1.55;
  color: #2D2D2D;
  margin-top: auto;
}

/* パネル操作コントロール（ナビゲーション ＆ ドット） */
.rt-panels-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 14px;
}

.rt-panel-btn {
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  border-radius: 50%;
  border: 1.5px solid #1B4D36;
  background: #FFFFFF;
  color: #1B4D36;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  padding: 0;
  -webkit-tap-highlight-color: transparent;
}

.rt-panel-btn:hover {
  background: #1B4D36;
  color: #FFFFFF;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(27, 77, 54, 0.2);
}

.rt-panel-btn:active {
  transform: scale(0.95);
}

.rt-panel-dots {
  display: flex;
  gap: 8px;
  align-items: center;
}

.rt-panel-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #D1D5DB;
  border: none;
  padding: 0;
  cursor: pointer;
  transition: all 0.25s ease;
  outline: none;
}

.rt-panel-dot.is-active {
  background: #1B4D36;
  width: 22px;
  border-radius: 9999px;
}

.rt-panel-dot:hover:not(.is-active) {
  background: #9CA3AF;
}

/* 撮影モニター専用 Instagram CTA ボタン */
.rt-btn-instagram-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(27, 77, 54, 0.35);
  border-color: #E5C378;
  color: #FFF;
}

/* 撮影モニター専用 アコーディオン スタイル */
.rt-monitor-accordion {
  border: 2px solid #C5A059;
  border-radius: 16px;
  background: linear-gradient(180deg, #FFFFFF 0%, #FCFBF7 100%);
  box-shadow: 0 6px 24px rgba(197, 160, 89, 0.12);
  transition: box-shadow 0.3s ease, border-color 0.3s ease;
  overflow: hidden;
}

.rt-monitor-accordion:hover {
  box-shadow: 0 10px 32px rgba(197, 160, 89, 0.2);
  border-color: #B38E46;
}

.rt-monitor-accordion summary {
  padding: 24px 28px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  list-style: none;
  user-select: none;
  transition: background-color 0.2s ease;
}

.rt-monitor-accordion summary::-webkit-details-marker,
.rt-monitor-accordion summary::marker {
  display: none;
  content: "";
}

.rt-monitor-accordion summary:hover {
  background-color: rgba(197, 160, 89, 0.04);
}

.rt-monitor-accordion[open] summary {
  border-bottom: 1px solid rgba(197, 160, 89, 0.25);
  background-color: rgba(197, 160, 89, 0.03);
}

.rt-monitor-accordion[open] .rt-monitor-arrow-svg {
  transform: rotate(180deg);
}

.rt-monitor-body {
  padding: 24px 28px 28px;
  animation: rtAccordionFadeIn 0.3s ease-out;
}

@keyframes rtAccordionFadeIn {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 767px) {
  .rt-monitor-accordion summary {
    padding: 18px 20px;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }
  .rt-monitor-toggle-indicator {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 12px;
    border-top: 1px dashed rgba(197, 160, 89, 0.3);
  }
  .rt-monitor-body {
    padding: 18px 20px 24px;
  }
}

/* ==========================================================================
   Luxury Button Micro-interaction System (Ambient Glow & Shimmer)
   ========================================================================== */
.rt-btn-primary,
.rt-btn-hero,
.rt-btn-reserve,
.rt-subpage-reserve-btn,
.rt-btn-hub-primary,
.rt-btn-instagram-cta,
.rt-sticky-btn,
.rt-luxury-btn {
  position: relative !important;
  overflow: hidden !important;
  transition: transform 0.38s cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 0.38s cubic-bezier(0.16, 1, 0.3, 1),
              background 0.35s ease,
              border-color 0.35s ease !important;
  will-change: transform, box-shadow;
}

.rt-btn-primary:hover,
.rt-btn-hero:hover,
.rt-btn-reserve:hover,
.rt-subpage-reserve-btn:hover,
.rt-btn-hub-primary:hover,
.rt-luxury-btn:hover {
  transform: translateY(-2.5px) scale(1.012) !important;
  box-shadow: 0 12px 32px -4px rgba(197, 168, 128, 0.42),
              0 0 18px rgba(197, 168, 128, 0.22) !important;
}

.rt-btn-primary::after,
.rt-btn-hero::after,
.rt-btn-reserve::after,
.rt-subpage-reserve-btn::after,
.rt-btn-hub-primary::after,
.rt-btn-instagram-cta::after,
.rt-sticky-btn::after,
.rt-luxury-btn::after {
  content: '';
  position: absolute;
  top: -50%;
  left: -70%;
  width: 40%;
  height: 200%;
  background: linear-gradient(
    60deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.28) 50%,
    rgba(255, 255, 255, 0) 100%
  );
  transform: rotate(25deg);
  pointer-events: none;
  opacity: 0;
  transition: none;
}

.rt-btn-primary:hover::after,
.rt-btn-hero:hover::after,
.rt-btn-reserve:hover::after,
.rt-subpage-reserve-btn:hover::after,
.rt-btn-hub-primary:hover::after,
.rt-btn-instagram-cta:hover::after,
.rt-sticky-btn:hover::after,
.rt-luxury-btn:hover::after {
  left: 140%;
  opacity: 1;
  transition: left 0.85s cubic-bezier(0.19, 1, 0.22, 1), opacity 0.85s ease;
}

/* FAB Floating Button Glow Polish */
@media (max-width: 767px) {
  .rt-sticky-btn {
    animation: rtFabPulseLuxury 4s infinite ease-in-out !important;
  }

  @keyframes rtFabPulseLuxury {
    0%, 100% {
      box-shadow: 0 8px 24px rgba(0, 0, 0, 0.32), 0 0 14px rgba(212, 175, 55, 0.35);
    }
    50% {
      box-shadow: 0 12px 30px rgba(0, 0, 0, 0.4), 0 0 22px rgba(212, 175, 55, 0.65);
    }
  }
}

/* ==========================================================================
   Luxury Salon Pricing Section Design (.rt-pricing--luxury)
   Modern Serene Private Salon Style (Forest Black & Champagne Gold)
   ========================================================================== */
.rt-pricing--luxury {
  background: #0B130E !important;
  color: #F8F9FA !important;
  padding: clamp(80px, 9vw, 120px) 0 !important;
  position: relative;
  overflow: hidden;
}

.rt-pricing--luxury::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 1100px;
  height: 550px;
  background: radial-gradient(ellipse at 50% 15%, rgba(212, 175, 55, 0.12) 0%, rgba(27, 77, 54, 0.15) 45%, rgba(11, 19, 14, 0) 75%);
  pointer-events: none;
}

.rt-luxury-chip {
  display: inline-block;
  font-family: var(--rt-font-en, "Cormorant Garamond", serif);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: #E5C378;
  background: rgba(229, 195, 120, 0.08);
  border: 1px solid rgba(229, 195, 120, 0.28);
  padding: 6px 20px;
  border-radius: 9999px;
  margin-bottom: 18px;
}

.rt-pricing--luxury .rt-section-title {
  color: #FFFFFF !important;
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: clamp(2rem, 1.5rem + 2vw, 2.75rem);
  letter-spacing: 0.04em;
  margin-bottom: 14px;
}

.rt-pricing--luxury .rt-section-desc {
  color: #A0AEC0 !important;
  font-size: clamp(0.9375rem, 0.875rem + 0.3vw, 1.0625rem);
  line-height: 1.8;
  max-width: 700px;
  margin: 0 auto 52px;
}

.rt-luxury-pricing-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  max-width: 1180px;
  margin: 0 auto;
}

@media (min-width: 768px) and (max-width: 1023px) {
  .rt-luxury-pricing-grid {
    grid-template-columns: 1fr 1fr;
    gap: 24px;
  }
  .rt-luxury-pricing-grid > .rt-luxury-price-card:last-child {
    grid-column: 1 / -1;
    max-width: 560px;
    margin: 0 auto;
    width: 100%;
  }
}

@media (min-width: 1024px) {
  .rt-luxury-pricing-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
  }
}

.rt-luxury-pricing-grid--single {
  display: block !important;
  max-width: 640px !important;
  margin: 0 auto !important;
}

.rt-luxury-pricing-grid--single .rt-luxury-price-card {
  width: 100%;
}

.rt-luxury-price-card {
  background: linear-gradient(165deg, rgba(22, 38, 29, 0.94) 0%, rgba(14, 25, 19, 0.98) 100%);
  border: 1px solid rgba(229, 195, 120, 0.35);
  border-radius: 20px;
  padding: clamp(28px, 4vw, 40px) clamp(22px, 3.5vw, 36px);
  display: flex;
  flex-direction: column;
  position: relative;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5), 0 0 32px rgba(229, 195, 120, 0.08);
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
              border-color 0.35s ease,
              box-shadow 0.35s ease;
}

.rt-luxury-price-card:hover {
  transform: translateY(-5px);
  border-color: rgba(229, 195, 120, 0.65);
  box-shadow: 0 30px 70px rgba(0, 0, 0, 0.6), 0 0 45px rgba(229, 195, 120, 0.16);
}

.rt-luxury-card-badge {
  position: absolute;
  top: -14px;
  left: 28px;
  background: linear-gradient(135deg, #1B4D36 0%, #0E2E20 100%);
  color: #E5C378;
  font-family: var(--rt-font-sans, sans-serif);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  padding: 5px 16px;
  border-radius: 9999px;
  border: 1px solid rgba(229, 195, 120, 0.5);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
}

.rt-luxury-card-badge--gold {
  background: linear-gradient(135deg, #D4AF37 0%, #AA822A 100%);
  color: #0E1A12;
  border: 1px solid rgba(255, 255, 255, 0.25);
}

.rt-luxury-card-badge--emerald {
  background: linear-gradient(135deg, #1B4D36 0%, #0E2E20 100%);
  color: #E5C378;
  border: 1px solid rgba(229, 195, 120, 0.5);
}

.rt-luxury-plan-header {
  margin-bottom: 24px;
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(229, 195, 120, 0.15);
}

.rt-luxury-plan-time {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: #C5A059;
  margin-bottom: 10px;
}

.rt-luxury-plan-title {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: clamp(1.35rem, 1.2rem + 0.5vw, 1.6rem);
  font-weight: 600;
  color: #FFFFFF;
  line-height: 1.45;
  margin: 0 0 18px;
  letter-spacing: 0.03em;
}

.rt-luxury-price-row {
  display: flex;
  align-items: baseline;
  gap: 4px;
  margin-top: 6px;
}

.rt-luxury-price-currency {
  font-family: "Cormorant Garamond", "Shippori Mincho", serif;
  font-size: clamp(1.4rem, 1.2rem + 0.6vw, 1.75rem);
  font-weight: 400;
  color: #E5C378;
  opacity: 0.9;
  transform: translateY(-4px);
  margin-right: 2px;
}

.rt-luxury-price-num {
  font-family: "Cormorant Garamond", "Shippori Mincho", serif;
  font-size: clamp(2.75rem, 2.2rem + 2.2vw, 3.6rem);
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1;
  color: #F6E6B4;
  background: linear-gradient(135deg, #FFFDF8 0%, #F5E1A4 50%, #D4AF37 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 2px 20px rgba(212, 175, 55, 0.25);
  display: inline-block;
}

.rt-luxury-price-tax {
  font-family: var(--rt-font-sans, sans-serif);
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.65);
  margin-left: 8px;
  padding: 2px 7px;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 4px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  vertical-align: middle;
}

.rt-luxury-features {
  list-style: none;
  padding: 0;
  margin: 0 0 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex-grow: 1;
}

.rt-luxury-features li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 0.9375rem;
  color: #CBD5E1;
  line-height: 1.6;
}

.rt-luxury-features li svg {
  width: 18px;
  height: 18px;
  stroke: #E5C378;
  stroke-width: 2.2;
  flex-shrink: 0;
  margin-top: 3px;
  filter: drop-shadow(0 0 6px rgba(229, 195, 120, 0.4));
}

.rt-pricing--luxury .rt-btn-primary {
  background: linear-gradient(135deg, #D4AF37 0%, #B89230 50%, #997320 100%) !important;
  color: #0E1A12 !important;
  border: 1px solid rgba(255, 255, 255, 0.3) !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  letter-spacing: 0.06em !important;
  padding: 16px 28px !important;
  border-radius: 9999px !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4), 0 0 20px rgba(212, 175, 55, 0.3) !important;
  transition: all 0.3s ease !important;
}

.rt-pricing--luxury .rt-btn-primary:hover {
  transform: translateY(-2px) scale(1.01) !important;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.5), 0 0 30px rgba(212, 175, 55, 0.5) !important;
  background: linear-gradient(135deg, #E5C378 0%, #C5A059 50%, #A68025 100%) !important;
}

.rt-luxury-pricing-subguide {
  max-width: 640px;
  margin: 32px auto 0;
  background: rgba(18, 32, 25, 0.7);
  border: 1px solid rgba(229, 195, 120, 0.22);
  border-radius: 18px;
  padding: 24px 28px;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.3);
}

.rt-pricing-subguide-item {
  font-size: 0.875rem;
  color: #CBD5E1;
  line-height: 1.75;
  margin: 0;
}

.rt-pricing-subguide-item + .rt-pricing-subguide-item {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px dashed rgba(229, 195, 120, 0.2);
}

.rt-subguide-badge {
  display: inline-block;
  background: rgba(27, 77, 54, 0.5);
  color: #E5C378;
  border: 1px solid rgba(229, 195, 120, 0.4);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 3px 10px;
  border-radius: 6px;
  margin-right: 8px;
  vertical-align: 1px;
}

.rt-subguide-badge--gold {
  background: rgba(212, 175, 55, 0.25);
  color: #F6E6B4;
  border-color: rgba(212, 175, 55, 0.55);
}

.rt-pricing-subguide-item strong {
  color: #FFFFFF;
  font-size: 0.9375rem;
}

/* ==========================================================================
   Fire Alarm Metaphor Section Styles (.rt-fire-alarm-section)
   ========================================================================== */
.rt-fire-alarm-section {
  background: linear-gradient(180deg, #070E1A 0%, #0B192C 50%, #070E1A 100%) !important;
  color: #F8FAFC !important;
  padding: 85px 0 95px !important;
  position: relative;
  overflow: hidden;
}

/* --- High-Contrast Typography & Readability Fixes --- */
.rt-fire-alarm-section .rt-section-header {
  text-align: center;
  margin-bottom: 36px;
  position: relative;
  z-index: 2;
}

.rt-fire-alarm-section .rt-luxury-chip {
  display: inline-block;
  font-family: var(--rooton-font-en, "Cinzel", serif);
  font-size: 0.8125rem !important;
  letter-spacing: 0.16em !important;
  font-weight: 700 !important;
  color: #F6DC9B !important;
  background: rgba(246, 220, 155, 0.12) !important;
  border: 1.5px solid rgba(246, 220, 155, 0.45) !important;
  padding: 6px 20px !important;
  border-radius: 9999px !important;
  margin-bottom: 20px !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.45) !important;
}

.rt-fire-alarm-section .rt-section-title {
  color: #FFFFFF !important;
  font-size: clamp(1.625rem, 5vw, 2.375rem) !important;
  font-weight: 700 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.03em !important;
  margin: 0 auto 20px !important;
  max-width: 820px !important;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.9) !important;
}

.rt-fire-alarm-section .rt-fire-highlight {
  color: #F6DC9B !important;
  font-weight: 800 !important;
  text-shadow: 0 0 24px rgba(246, 220, 155, 0.6) !important;
}

.rt-fire-alarm-section .rt-section-desc {
  color: #F1F5F9 !important;
  font-size: clamp(0.9375rem, 2.9vw, 1.0625rem) !important;
  line-height: 1.85 !important;
  max-width: 680px !important;
  margin: 0 auto 36px !important;
  opacity: 0.98 !important;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.8) !important;
  font-weight: 400 !important;
}

.rt-fire-alarm-box {
  max-width: 960px;
  margin: 0 auto;
}

.rt-fire-alarm-stage-card {
  background: rgba(14, 25, 44, 0.92);
  border: 1.5px solid rgba(246, 220, 155, 0.35);
  border-radius: 20px;
  padding: 36px 28px;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  margin-bottom: 32px;
}

.rt-fire-alarm-toggle-bar {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}

.rt-fire-alarm-tab-btn {
  padding: 11px 24px;
  border-radius: 9999px;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  cursor: pointer;
  border: 1.5px solid rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.08);
  color: #F1F5F9;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.rt-fire-alarm-tab-btn:hover {
  background: rgba(255, 255, 255, 0.16);
  color: #FFFFFF;
  border-color: rgba(255, 255, 255, 0.4);
}

.rt-fire-alarm-tab-btn.is-active-alarm {
  background: rgba(231, 76, 60, 0.2) !important;
  border-color: #E74C3C !important;
  color: #FFC0C5 !important;
  box-shadow: 0 4px 20px rgba(231, 76, 60, 0.35) !important;
}

.rt-fire-alarm-tab-btn.is-active-rooton {
  background: rgba(61, 90, 80, 0.4) !important;
  border-color: #4ADE80 !important;
  color: #DCFCE7 !important;
  box-shadow: 0 4px 20px rgba(74, 222, 128, 0.35) !important;
}

/* 2-Side Interactive Visual Stage */
.rt-fire-dual-stage {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: stretch;
  margin-bottom: 28px;
}

@media (min-width: 768px) {
  .rt-fire-dual-stage {
    grid-template-columns: 1fr 1fr;
    gap: 28px;
  }
}

.rt-fire-panel {
  border-radius: 16px;
  padding: 24px 20px;
  position: relative;
  display: flex;
  flex-direction: column;
  background: rgba(15, 23, 42, 0.85);
  border: 1px solid rgba(197, 168, 128, 0.22);
  transition: all 0.4s ease;
}

.rt-fire-panel--bell {
  border-color: rgba(197, 168, 128, 0.28);
}

.rt-fire-panel--bell.is-extinguished {
  background: rgba(38, 55, 48, 0.45);
  border-color: rgba(91, 168, 140, 0.4);
}

.rt-fire-panel--fire {
  border-color: rgba(197, 168, 128, 0.28);
}

.rt-fire-panel--fire.is-extinguished {
  background: rgba(38, 55, 48, 0.45);
  border-color: rgba(91, 168, 140, 0.4);
}

.rt-fire-icon-wrap {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 14px;
}

.rt-bell-icon-pulse {
  background: rgba(197, 168, 128, 0.16);
  animation: rtBellRing 2.4s infinite ease-in-out;
}

.rt-fire-panel--bell.is-extinguished .rt-bell-icon-pulse {
  background: rgba(61, 90, 80, 0.35);
  animation: none;
}

@keyframes rtBellRing {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 rgba(197, 168, 128, 0); }
  50% { transform: scale(1.04); box-shadow: 0 0 16px rgba(197, 168, 128, 0.35); }
}

.rt-flame-icon-flicker {
  background: rgba(197, 168, 128, 0.16);
  animation: rtFlamePulse 2.8s infinite ease-in-out;
}

.rt-fire-panel--fire.is-extinguished .rt-flame-icon-flicker {
  background: rgba(61, 90, 80, 0.35);
  animation: none;
}

@keyframes rtFlamePulse {
  0%, 100% { transform: scale(1); box-shadow: 0 0 8px rgba(197, 168, 128, 0.2); }
  50% { transform: scale(1.05); box-shadow: 0 0 20px rgba(197, 168, 128, 0.45); }
}

.rt-fire-panel-badge {
  font-size: 0.8125rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  display: inline-block;
  margin-bottom: 8px;
  color: #F6DC9B !important;
}

.rt-fire-panel-title {
  font-size: 1.1875rem;
  font-weight: 700;
  color: #FFFFFF !important;
  margin: 0 0 12px;
  line-height: 1.45;
}

.rt-fire-panel-desc {
  font-size: 0.90625rem;
  color: #E2E8F0 !important;
  line-height: 1.75;
  margin-bottom: 14px;
  flex-grow: 1;
}

.rt-fire-panel-status {
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 0.8125rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 8px;
}

.rt-fire-alarm-insight-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
}

@media (min-width: 768px) {
  .rt-fire-alarm-insight-grid {
    grid-template-columns: 1fr 1fr 1fr;
  }
}

.rt-fire-insight-card {
  background: rgba(14, 25, 44, 0.75);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 14px;
  padding: 22px 20px;
  display: flex;
  flex-direction: column;
}

.rt-fire-insight-card-num {
  font-family: var(--rooton-font-en, "Cinzel", serif);
  font-size: 1rem;
  font-weight: 700;
  color: #F6DC9B;
  margin-bottom: 8px;
}

.rt-fire-insight-card-title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: #FFFFFF;
  margin: 0 0 8px;
  line-height: 1.45;
}

.rt-fire-insight-card-text {
  font-size: 0.84375rem;
  color: #CBD5E1;
  line-height: 1.7;
  margin: 0;
}

/* ==========================================================================
   Clinical SOAP Biomechanics Record (.rt-soap-card)
   ========================================================================== */
.rt-soap-record-box {
  background: rgba(8, 16, 28, 0.95);
  border: 1px solid rgba(246, 220, 155, 0.3);
  border-radius: 14px;
  padding: 28px 24px;
  margin-top: 28px;
  position: relative;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.45);
}

.rt-soap-header {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(246, 220, 155, 0.2);
  margin-bottom: 20px;
}

.rt-soap-id {
  font-family: var(--rooton-font-en, "Cinzel", serif);
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  color: #F6DC9B;
  text-transform: uppercase;
  font-weight: 700;
}

.rt-soap-evaluator {
  font-size: 0.8125rem;
  color: #CBD5E1;
}

.rt-soap-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin: 0;
}

@media (min-width: 640px) {
  .rt-soap-row {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 18px;
    align-items: baseline;
    padding: 10px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }
}

@media (max-width: 639px) {
  .rt-soap-row {
    padding: 10px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }
}

.rt-soap-dt {
  font-size: 0.84375rem;
  font-weight: 700;
  color: #F6DC9B;
  display: flex;
  align-items: center;
  gap: 8px;
}

.rt-soap-tag {
  font-family: var(--rooton-font-en, "Cinzel", serif);
  font-size: 0.6875rem;
  padding: 2px 6px;
  border-radius: 4px;
  background: rgba(246, 220, 155, 0.18);
  color: #F6DC9B;
  font-weight: 800;
}

.rt-soap-dd {
  margin: 4px 0 0;
  font-size: 0.875rem;
  color: #F1F5F9;
  line-height: 1.7;
}

.rt-soap-note {
  font-size: 0.75rem;
  color: #94A3B8;
  margin-top: 16px;
  line-height: 1.6;
}

/* ==========================================================================
   Accessibility Utilities (Skip Link, Screen Reader Only, Reduced Motion)
   ========================================================================== */
.rt-skip-link {
  position: absolute;
  top: -9999px;
  left: 20px;
  background: #C5A880;
  color: #08101C !important;
  padding: 12px 20px;
  font-weight: 700;
  font-size: 0.875rem;
  border-radius: 4px;
  z-index: 100000;
  text-decoration: none;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
  transition: top 0.2s ease;
}

.rt-skip-link:focus {
  top: 20px;
  outline: 3px solid #FFFFFF;
}

.rt-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ==========================================================================
   Interactive Concern Search Bar (お悩み即時インクリメンタル検索)
   ========================================================================== */
.rt-concern-search-container {
  margin: 0 auto 32px;
  max-width: 760px;
  width: 100%;
}

.rt-concern-search-bar {
  display: block;
  width: 100%;
  margin-bottom: 8px;
}

/* クイック症状絞り込みタグ */
.rt-concern-quick-tags {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
  padding: 0 4px;
  justify-content: center;
}

.rt-quick-tag-label {
  font-size: 0.75rem;
  color: #64748B;
  font-weight: 600;
  margin-right: 2px;
}

.rt-quick-tag-btn {
  display: inline-flex;
  align-items: center;
  padding: 5px 12px;
  background: #FFFFFF;
  border: 1px solid rgba(44, 74, 62, 0.2);
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 600;
  color: #1B4D36;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  -webkit-tap-highlight-color: transparent;
}

.rt-quick-tag-btn:hover {
  background: #1B4D36;
  color: #FFFFFF;
  border-color: #1B4D36;
  transform: translateY(-1px);
}

.rt-quick-tag-btn:active {
  transform: scale(0.96);
}

.rt-quick-tag-btn.is-active {
  background: #1B4D36;
  color: #FFFFFF;
  border-color: #1B4D36;
  box-shadow: 0 2px 8px rgba(27, 77, 54, 0.25);
}

.rt-search-input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  background: #FFFFFF;
  border: 1.5px solid #D6CEBE;
  border-radius: 9999px;
  box-shadow: 0 4px 16px rgba(18, 35, 26, 0.05);
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  padding: 4px 16px;
}

.rt-search-input-wrapper:focus-within {
  border-color: #1B4D36;
  box-shadow: 0 6px 20px rgba(27, 77, 54, 0.12), 0 0 0 3px rgba(197, 160, 89, 0.25);
  transform: translateY(-1px);
}

.rt-search-icon {
  color: #1B4D36;
  flex-shrink: 0;
  margin-right: 10px;
}

.rt-search-input {
  width: 100%;
  border: none;
  background: transparent;
  padding: 10px 0;
  font-family: inherit;
  font-size: 0.9375rem;
  color: #1A202C;
  outline: none;
}

.rt-search-input::placeholder {
  color: #8C8275;
  font-size: 0.875rem;
}

.rt-search-clear-btn {
  background: transparent;
  border: none;
  color: #A0AEC0;
  cursor: pointer;
  padding: 6px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s ease, background 0.2s ease;
}

.rt-search-clear-btn:hover {
  color: #1B4D36;
  background: #F4F0E8;
}

/* Quick Filter Tags */
.rt-concern-tags-wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
}

.rt-concern-tags-label {
  font-size: 0.8125rem;
  font-weight: 700;
  color: #1B4D36;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.rt-concern-tags-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.rt-search-tag {
  background: #F4F1EA;
  border: 1px solid #E2D9CC;
  color: #4A5568;
  font-family: inherit;
  font-size: 0.78125rem;
  font-weight: 500;
  padding: 5px 12px;
  border-radius: 9999px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.rt-search-tag:hover {
  background: #EBE6DB;
  color: #1B4D36;
  border-color: #C5A059;
}

.rt-search-tag.is-active {
  background: #1B4D36;
  color: #FFFFFF;
  border-color: #1B4D36;
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(27, 77, 54, 0.2);
}

/* Dynamic Live Result Box */
.rt-concern-search-result {
  margin-top: 14px;
  background: #FCFBF9;
  border: 1px solid #D6CEBE;
  border-left: 4px solid #1B4D36;
  border-radius: 8px;
  padding: 14px 18px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.04);
  animation: rtFadeInDown 0.25s ease-out;
}

.rt-concern-search-result-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  font-size: 0.8125rem;
  font-weight: 700;
  color: #1B4D36;
}

.rt-concern-search-links {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.rt-concern-suggest-link {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.84375rem;
  color: #2D3748;
  text-decoration: none;
  padding: 8px 12px;
  background: #FFFFFF;
  border: 1px solid #E8E2D5;
  border-radius: 6px;
  transition: all 0.2s ease;
}

.rt-concern-suggest-link:hover {
  border-color: #C5A059;
  color: #1B4D36;
  background: #F9F7F2;
  transform: translateX(3px);
}

.rt-concern-suggest-tag {
  background: #EAF0EC;
  color: #1B4D36;
  font-size: 0.6875rem;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 4px;
  flex-shrink: 0;
}

/* ==========================================================================
   Compact & Refined Concern Card Media (写真のコンパクト化)
   ========================================================================== */
.rt-concern-vis-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 2.35 / 1 !important;
  max-height: 145px !important;
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 14px !important;
  background: #12231A;
  border: 1px solid rgba(197, 160, 89, 0.25);
  box-shadow: 0 4px 14px rgba(18, 35, 26, 0.08);
}

@media (min-width: 768px) {
  .rt-concern-vis-wrap {
    aspect-ratio: 2.5 / 1 !important;
    max-height: 165px !important;
  }
}

.rt-concern-vis-badge {
  position: absolute;
  bottom: 8px;
  right: 8px;
  background: rgba(14, 25, 18, 0.85);
  color: #E5C378;
  font-size: 0.6875rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 4px;
  backdrop-filter: blur(4px);
  letter-spacing: 0.03em;
  border: 1px solid rgba(197, 160, 89, 0.3);
  pointer-events: none;
}

/* ==========================================================================
   Compact & Curiosity-Driven Case Cards (続きが気になるデザイン)
   ========================================================================== */
.rt-cases-panels .rt-panel-card.rt-case-card {
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid #E2D9CC;
  background: #FFFFFF;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s ease;
}

.rt-cases-panels .rt-panel-card.rt-case-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(27, 77, 54, 0.12);
  border-color: #C5A059;
}

.rt-cases-panels .rt-case-media {
  position: relative;
  width: 100%;
  aspect-ratio: 2.35 / 1 !important;
  max-height: 140px !important;
  overflow: hidden;
  background: #12231A;
}

@media (min-width: 768px) {
  .rt-cases-panels .rt-case-media {
    max-height: 155px !important;
  }
}

.rt-cases-panels .rt-case-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}

.rt-cases-panels .rt-case-card:hover .rt-case-thumb {
  transform: scale(1.05);
}

.rt-cases-panels .rt-case-content {
  padding: 16px 18px 20px !important;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

@media (min-width: 768px) {
  .rt-cases-panels .rt-case-content {
    padding: 18px 22px 22px !important;
  }
}

.rt-case-curiosity-hook {
  display: inline-block;
  background: #FDF9F2;
  border: 1px solid #E5D5BA;
  color: #9A6715;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 4px;
  margin-bottom: 8px;
  letter-spacing: 0.02em;
  line-height: 1.4;
}

.rt-case-card:hover .rt-case-curiosity-hook {
  background: #1B4D36;
  border-color: #1B4D36;
  color: #FAF9F5;
}

.rt-cases-panels .rt-panel-card .rt-case-card-title {
  font-size: 0.9375rem !important;
  font-weight: 700;
  line-height: 1.45;
  color: #1A202C;
  margin-bottom: 8px !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.rt-cases-panels .rt-panel-card .rt-case-excerpt {
  font-size: 0.8125rem !important;
  line-height: 1.55;
  color: #4A5568;
  margin-bottom: 12px !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.rt-case-readmore-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: #F4F1EA;
  border: 1px solid #D6CEBE;
  color: #1B4D36;
  padding: 7px 16px;
  border-radius: 9999px;
  font-size: 0.8125rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.2s ease;
  margin-top: auto;
  align-self: flex-start;
}

.rt-case-card:hover .rt-case-readmore-btn {
  background: #1B4D36;
  color: #FFFFFF;
  border-color: #1B4D36;
  box-shadow: 0 4px 12px rgba(27, 77, 54, 0.2);
  gap: 9px;
}

/* ==========================================================================
   Header Brand Logo Micro-Animation (植物の芽吹き ＆ シャンパンゴールド光沢シマー)
   ========================================================================== */
.rooton-header__logo-link,
.rt-header-logo a {
  position: relative;
  display: inline-flex;
  align-items: center;
  overflow: hidden;
  border-radius: 6px;
}

.rooton-header__logo-img,
.rt-header-logo img {
  transform-origin: center bottom;
  animation: rt-header-logo-sprout 1.3s cubic-bezier(0.16, 1, 0.3, 1) both;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), filter 0.3s ease;
}

@keyframes rt-header-logo-sprout {
  0% {
    opacity: 0;
    transform: scale(0.82) translateY(5px);
    filter: drop-shadow(0 0 0 rgba(229, 195, 120, 0));
  }
  50% {
    opacity: 1;
    transform: scale(1.05) translateY(-1px);
    filter: drop-shadow(0 0 8px rgba(229, 195, 120, 0.6));
  }
  100% {
    opacity: 1;
    transform: scale(1) translateY(0);
    filter: drop-shadow(0 0 1px rgba(229, 195, 120, 0.15));
  }
}

/* シャンパンゴールド光沢シマー（光がスーッと優雅に走るハイエンド演出） */
.rooton-header__logo-link::after,
.rt-header-logo a::after {
  content: "";
  position: absolute;
  top: 0;
  left: -120%;
  width: 60%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 255, 255, 0.35) 50%,
    rgba(229, 195, 120, 0.65) 75%,
    transparent 100%
  );
  transform: skewX(-25deg);
  animation: rt-logo-shimmer 2.2s cubic-bezier(0.16, 1, 0.3, 1) 0.8s 1 normal forwards;
  pointer-events: none;
}

@keyframes rt-logo-shimmer {
  0% { left: -120%; }
  100% { left: 200%; }
}

@media (hover: hover) and (pointer: fine) {
  .rooton-header__logo-link:hover .rooton-header__logo-img,
  .rt-header-logo a:hover img {
    transform: scale(1.04);
    filter: drop-shadow(0 0 6px rgba(229, 195, 120, 0.5));
  }
}
.rooton-header__logo-link:active .rooton-header__logo-img,
.rt-header-logo a:active img {
  transform: scale(0.97);
}

.hero__logo {
  display: none !important;
}

/* ==========================================================================
   09. 体の常識を、疑う (A/B対比カードUI - 一般的な整体 vs Rootonのアプローチ)
   ========================================================================== */
.rt-myths {
  padding: clamp(60px, 8vw, 100px) 0;
  background: #FAF8F4;
  position: relative;
}

.rt-myths__head {
  text-align: center;
  max-width: 820px;
  margin: 0 auto clamp(36px, 5vw, 56px);
}

.rt-myths__title {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: clamp(1.85rem, 1.4rem + 2vw, 2.75rem);
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: 0.06em;
  color: #1E1E1E;
  margin: 0;
}

.rt-myths__lead {
  margin-top: 16px;
  font-size: clamp(0.95rem, 0.9rem + 0.3vw, 1.05rem);
  line-height: 1.85;
  color: #555555;
  letter-spacing: 0.02em;
}

.rt-myths__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  max-width: 1140px;
  margin: 0 auto;
}

@media (min-width: 960px) {
  .rt-myths__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
  }
}

.rt-myth-card {
  background: #FFFFFF;
  border-radius: 16px;
  border: 1px solid rgba(197, 160, 89, 0.35);
  box-shadow: 0 4px 20px rgba(18, 36, 29, 0.05);
  padding: clamp(16px, 3vw, 22px);
  display: flex;
  flex-direction: column;
  transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
}

@media (hover: hover) and (pointer: fine) {
  .rt-myth-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(18, 36, 29, 0.1);
    border-color: #C5A059;
  }
}

.rt-myth-card__visual {
  position: relative;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 18px;
  background: #12241D;
  border: 1px solid rgba(18, 36, 29, 0.08);
}

.rt-myth-card__visual picture,
.rt-myth-card__visual img {
  display: block;
  width: 100%;
  height: 190px;
  object-fit: cover;
  object-position: center;
  transition: transform 0.45s ease;
}

@media (min-width: 960px) {
  .rt-myth-card__visual picture,
  .rt-myth-card__visual img {
    height: 195px;
  }
}

@media (hover: hover) and (pointer: fine) {
  .rt-myth-card:hover .rt-myth-card__visual img {
    transform: scale(1.04);
  }
}

.rt-myth-card__visual-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 12px;
  background: linear-gradient(180deg, rgba(18, 36, 29, 0) 0%, rgba(18, 36, 29, 0.88) 100%);
  gap: 8px;
  z-index: 1;
}

.rt-myth-card__caption-badge {
  font-family: var(--rt-font-sans, sans-serif);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.03em;
  padding: 3px 8px;
  border-radius: 4px;
  line-height: 1.2;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
}

.rt-myth-card__caption-badge--common {
  background: rgba(234, 237, 241, 0.95);
  color: #475569;
}

.rt-myth-card__caption-badge--rooton {
  background: rgba(18, 36, 29, 0.95);
  color: #E5C378;
  border: 1px solid rgba(197, 168, 128, 0.6);
}

.rt-myth-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.rt-myth-card__side--common {
  background: #F8F7F5;
  border-radius: 8px;
  padding: 12px 14px;
  border-left: 3px solid #D0D0D5;
}

.rt-myth-card__tag {
  display: inline-block;
  font-family: var(--rt-font-sans, sans-serif);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: #6E6E6E;
  margin-bottom: 4px;
}

.rt-myth-card__side--common .rt-myth-card__desc {
  font-size: 0.875rem;
  color: #555555;
  line-height: 1.5;
  margin: 0;
}

.rt-myth-card__divider {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 0;
}

.rt-myth-card__divider svg {
  display: block;
  width: 22px;
  height: 22px;
  stroke: #C5A059;
  opacity: 0.9;
}

.rt-myth-card__side--rooton {
  background: linear-gradient(145deg, rgba(27, 77, 54, 0.04) 0%, rgba(197, 160, 89, 0.08) 100%);
  border: 1px solid rgba(197, 160, 89, 0.45);
  border-left: 3px solid #C5A059;
  border-radius: 8px;
  padding: 14px 16px;
  flex-grow: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.rt-myth-card__tag--rooton {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #12241D;
  color: #E5C378;
  font-family: var(--rt-font-sans, sans-serif);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  padding: 3px 10px 3px 8px;
  border-radius: 9999px;
  width: fit-content;
  margin-bottom: 8px;
  border: 1px solid rgba(197, 160, 89, 0.3);
}

.rt-myth-card__tag-icon {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  display: block;
  object-fit: contain;
}

.rt-myth-card__side--rooton .rt-myth-card__desc {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.25rem);
  font-weight: 600;
  line-height: 1.5;
  color: #12241D;
  margin: 0;
}

.rt-myth-card__side--rooton .rt-myth-card__desc strong {
  color: #1B4D36;
  font-weight: 700;
}

.rt-myths__footer {
  text-align: center;
  margin-top: clamp(28px, 4vw, 40px);
}

.rt-myths__note {
  font-size: 0.75rem;
  color: #8B8178;
  margin-bottom: 16px;
  line-height: 1.6;
}

.rt-myths__more-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--rt-font-sans, sans-serif);
  font-size: 0.9375rem;
  font-weight: 600;
  color: #1B4D36;
  text-decoration: none;
  border-bottom: 1.5px solid rgba(27, 77, 54, 0.3);
  padding-bottom: 2px;
  transition: all 0.2s ease;
}

.rt-myths__more-link:hover {
  color: #C5A059;
  border-color: #C5A059;
}

/* ==========================================================================
   Top-Page Monitor Application Form (施術モニター応募フォーム)
   ========================================================================== */
.rt-btn-monitor-trigger {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(229, 195, 120, 0.15);
  color: #F6E6B4;
  border: 1px solid rgba(229, 195, 120, 0.5);
  padding: 8px 20px;
  border-radius: 9999px;
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  margin-top: 10px;
  transition: all 0.25s ease;
  cursor: pointer;
}

.rt-btn-monitor-trigger:hover {
  background: rgba(229, 195, 120, 0.28);
  border-color: #E5C378;
  color: #FFFFFF;
  box-shadow: 0 0 16px rgba(229, 195, 120, 0.3);
  transform: translateY(-1px);
}

.rt-monitor-form-wrap {
  max-width: 680px;
  margin: 36px auto 0;
  scroll-margin-top: 90px;
}

.rt-monitor-form-card {
  background: linear-gradient(165deg, rgba(20, 36, 27, 0.95) 0%, rgba(12, 22, 17, 0.98) 100%);
  border: 1px solid rgba(229, 195, 120, 0.35);
  border-radius: 20px;
  padding: clamp(24px, 4vw, 40px) clamp(20px, 3.5vw, 36px);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5), 0 0 32px rgba(229, 195, 120, 0.08);
}

.rt-monitor-form-header {
  text-align: center;
  margin-bottom: 28px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(229, 195, 120, 0.15);
}

.rt-monitor-form-badge {
  display: inline-block;
  background: linear-gradient(135deg, #1B4D36 0%, #0E2E20 100%);
  color: #E5C378;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  padding: 4px 14px;
  border-radius: 9999px;
  border: 1px solid rgba(229, 195, 120, 0.45);
  margin-bottom: 12px;
}

.rt-monitor-form-title {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.55rem);
  font-weight: 600;
  color: #FFFFFF;
  margin: 0 0 10px;
  letter-spacing: 0.03em;
  text-wrap: balance;
}

.rt-monitor-form-desc {
  font-size: 0.875rem;
  color: #CBD5E1;
  line-height: 1.65;
  margin: 0;
}

.rt-monitor-assure-pills {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-top: 16px;
}

.rt-monitor-assure-pill {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(229, 195, 120, 0.25);
  color: #E5C378;
  font-size: 0.75rem;
  padding: 5px 12px;
  border-radius: 9999px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.rt-mon-field {
  margin-bottom: 20px;
}

.rt-mon-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.875rem;
  font-weight: 600;
  color: #FFFFFF;
  margin-bottom: 8px;
}

.rt-mon-req {
  font-size: 0.6875rem;
  background: #C5A059;
  color: #0E1A12;
  padding: 2px 7px;
  border-radius: 4px;
  font-weight: 700;
}

.rt-mon-opt {
  font-size: 0.6875rem;
  background: rgba(255, 255, 255, 0.15);
  color: #CBD5E1;
  padding: 2px 7px;
  border-radius: 4px;
  font-weight: 500;
}

.rt-mon-input,
.rt-mon-textarea {
  width: 100%;
  padding: 12px 14px;
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(229, 195, 120, 0.25);
  border-radius: 8px;
  color: #FFFFFF;
  font-size: 0.9375rem;
  font-family: inherit;
  box-sizing: border-box;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.rt-mon-input::placeholder,
.rt-mon-textarea::placeholder {
  color: rgba(203, 213, 225, 0.45);
  font-size: 0.875rem;
}

.rt-mon-input:focus,
.rt-mon-textarea:focus {
  outline: none;
  border-color: #E5C378;
  box-shadow: 0 0 12px rgba(229, 195, 120, 0.3);
  background: rgba(0, 0, 0, 0.55);
}

.rt-mon-note {
  font-size: 0.75rem;
  color: #94A3B8;
  margin-top: 6px;
  line-height: 1.5;
}

.rt-mon-choices {
  border: 1px solid rgba(229, 195, 120, 0.2);
  border-radius: 8px;
  padding: 14px 16px;
  background: rgba(0, 0, 0, 0.25);
  margin-bottom: 20px;
}

.rt-mon-choices legend {
  font-size: 0.875rem;
  font-weight: 600;
  color: #FFFFFF;
  padding: 0 6px;
  margin-bottom: 8px;
}

.rt-mon-choice-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  font-size: 0.875rem;
  color: #E2E8F0;
  cursor: pointer;
}

.rt-mon-choice-item input[type="radio"],
.rt-mon-choice-item input[type="checkbox"] {
  accent-color: #E5C378;
  width: 17px;
  height: 17px;
  cursor: pointer;
  flex-shrink: 0;
}

.rt-mon-agree {
  margin: 24px 0;
  padding: 16px;
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(229, 195, 120, 0.2);
  border-radius: 8px;
}

.rt-mon-agree-label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 0.8125rem;
  color: #E2E8F0;
  line-height: 1.6;
  cursor: pointer;
}

.rt-mon-agree-label input[type="checkbox"] {
  accent-color: #E5C378;
  width: 17px;
  height: 17px;
  margin-top: 2px;
  flex-shrink: 0;
  cursor: pointer;
}

.rt-mon-submit-wrap {
  text-align: center;
  margin-top: 24px;
}

.rt-mon-submit-btn {
  width: 100%;
  padding: 16px 28px;
  background: linear-gradient(135deg, #D4AF37 0%, #B89230 50%, #997320 100%);
  color: #0E1A12;
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: 0.05em;
  border-radius: 9999px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4), 0 0 20px rgba(212, 175, 55, 0.3);
  transition: all 0.3s ease;
}

.rt-mon-submit-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.5), 0 0 30px rgba(212, 175, 55, 0.5);
  background: linear-gradient(135deg, #E5C378 0%, #C5A059 50%, #A68025 100%);
}

.rt-mon-submit-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

.rt-mon-success-msg {
  padding: 24px;
  background: rgba(27, 77, 54, 0.25);
  border: 1.5px solid #2A6E4E;
  border-radius: 12px;
  text-align: center;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
  animation: rtFadeInUp 0.4s ease forwards;
}

.rt-mon-success-icon {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #1B4D36;
  color: #E5C378;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 12px;
  border: 1px solid rgba(229, 195, 120, 0.5);
}

.rt-mon-success-title {
  font-family: var(--rt-font-serif, "Shippori Mincho", serif);
  font-size: 1.2rem;
  font-weight: 600;
  color: #FFFFFF;
  margin: 0 0 8px;
}

.rt-mon-success-text {
  font-size: 0.875rem;
  color: #CBD5E1;
  line-height: 1.7;
  margin: 0;
}

/* ==========================================================================
   FOOTER HIGH CONTRAST & LEGIBILITY PERFECTION (フッター完全視認性・同化根絶)
   ========================================================================== */
/* ==========================================================================
   FOOTER HIGH CONTRAST & COMPACT LUXURY (フッター大幅スリム化・2列ナビ化)
   ========================================================================== */
.rooton-footer {
  background-color: #0B130E !important;
  color: #F8FAFC !important;
  padding-top: 36px !important;
  padding-bottom: calc(105px + env(safe-area-inset-bottom, 20px)) !important;
  border-top: 1px solid rgba(229, 195, 120, 0.25) !important;
  position: relative !important;
  z-index: 10 !important;
}

.rooton-footer__grid {
  gap: 24px !important;
}

@media (min-width: 768px) {
  .rooton-footer__grid {
    gap: 36px !important;
  }
}

.rooton-footer__logo-img {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  height: 38px !important;
  width: auto !important;
  filter: brightness(0) invert(1) drop-shadow(0 2px 8px rgba(229, 195, 120, 0.5)) !important;
  opacity: 1 !important;
  display: block !important;
  margin-bottom: 8px !important;
}

.rooton-footer__owner {
  color: #F8FAFC !important;
  font-weight: 700 !important;
  font-size: 0.9375rem !important;
  letter-spacing: 0.04em !important;
  margin: 6px 0 2px !important;
  line-height: 1.4 !important;
}

.rooton-footer__desc {
  color: #CBD5E1 !important;
  font-size: 0.8125rem !important;
  line-height: 1.6 !important;
  margin: 0 0 10px !important;
}

.rooton-footer__title {
  color: #E5C378 !important;
  font-family: var(--rt-font-serif, "Cinzel", "Shippori Mincho", serif) !important;
  font-size: 0.875rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  margin: 0 0 10px !important;
  padding-bottom: 4px !important;
  border-bottom: 1px solid rgba(229, 195, 120, 0.15) !important;
  text-transform: uppercase !important;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4) !important;
}

/* サイト案内: 2列グリッドで縦幅を半分に凝縮 */
.rooton-footer__list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 8px 12px !important;
}

.rooton-footer__list li {
  margin: 0 !important;
  padding: 0 !important;
}

.rooton-footer__list a {
  color: #CBD5E1 !important;
  font-size: 0.8125rem !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
  display: inline-flex !important;
  align-items: center !important;
  line-height: 1.4 !important;
  white-space: nowrap !important;
}

.rooton-footer__list a:hover {
  color: #E5C378 !important;
  transform: translateX(3px) !important;
}

.rooton-footer__loc-name {
  color: #FFFFFF !important;
  font-weight: 700 !important;
  font-size: 0.9375rem !important;
  margin: 0 0 4px !important;
  letter-spacing: 0.02em !important;
}

.rooton-footer__address,
.rooton-footer__access {
  color: #94A3B8 !important;
  font-size: 0.75rem !important;
  line-height: 1.5 !important;
  margin: 0 0 2px !important;
}

.rooton-footer__tel {
  color: #CBD5E1 !important;
  font-size: 0.8125rem !important;
  margin: 6px 0 10px !important;
  font-weight: 600 !important;
}

.rooton-footer__tel a {
  color: #E5C378 !important;
  text-decoration: underline !important;
  font-weight: 700 !important;
  transition: color 0.2s ease !important;
}

.rooton-footer__tel a:hover {
  color: #FFFFFF !important;
}

.rooton-footer__partner-btn {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  padding: 6px 14px !important;
  background: rgba(22, 38, 29, 0.85) !important;
  border: 1px solid rgba(229, 195, 120, 0.45) !important;
  border-radius: 9999px !important;
  color: #F3E2B8 !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: all 0.25s ease !important;
}

.rooton-footer__partner-btn:hover {
  background: rgba(30, 52, 39, 0.95) !important;
  border-color: #E5C378 !important;
  color: #FFFFFF !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3) !important;
}

/* SNS Buttons: 1行でスリムに横並び */
.rt-footer-sns {
  display: flex !important;
  gap: 8px !important;
  flex-wrap: nowrap !important;
  margin-top: 8px !important;
}

.rt-footer-sns-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  padding: 6px 10px !important;
  background: rgba(20, 35, 26, 0.85) !important;
  border: 1px solid rgba(229, 195, 120, 0.35) !important;
  border-radius: 9999px !important;
  color: #E2E8F0 !important;
  font-size: 0.75rem !important;
  font-weight: 500 !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
  white-space: nowrap !important;
  flex: 1 !important;
  max-width: 150px !important;
}

.rt-footer-sns-btn:hover {
  border-color: #E5C378 !important;
  color: #FFFFFF !important;
  background: rgba(28, 48, 36, 0.95) !important;
  transform: translateY(-1px) !important;
}

.rt-footer-sns-btn svg {
  color: #E5C378 !important;
}

.rooton-footer__bottom {
  margin-top: 24px !important;
  padding-top: 14px !important;
  border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
  text-align: center !important;
  color: #94A3B8 !important;
  font-size: 0.6875rem !important;
}

/* ==========================================================================
   PRICING NUMBERS & VISIBILITY ENHANCEMENT (数字の劇的視認性向上)
   ========================================================================== */
.rt-luxury-price-row {
  display: inline-flex !important;
  align-items: baseline !important;
  gap: 4px !important;
  margin: 10px 0 6px !important;
}

.rt-luxury-price-currency {
  font-family: var(--rt-font-serif, "Cinzel", "Shippori Mincho", serif) !important;
  font-size: 1.625rem !important;
  font-weight: 700 !important;
  color: #E5C378 !important;
  letter-spacing: 0.04em !important;
  vertical-align: baseline !important;
  line-height: 1 !important;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4) !important;
}

.rt-luxury-price-num {
  font-family: "Cinzel", "Outfit", "Montserrat", -apple-system, sans-serif !important;
  font-feature-settings: "tnum" 1, "lnum" 1 !important;
  font-size: 2.85rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  color: #FFFFFF !important;
  background: linear-gradient(180deg, #FFFFFF 0%, #F5E6C8 35%, #E5C378 100%) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  filter: drop-shadow(0 2px 10px rgba(0, 0, 0, 0.55)) !important;
  line-height: 1 !important;
}

.rt-luxury-price-tax {
  font-size: 0.8125rem !important;
  color: #CBD5E1 !important;
  font-weight: 600 !important;
  margin-left: 6px !important;
  padding: 3px 8px !important;
  background: rgba(255, 255, 255, 0.08) !important;
  border-radius: 4px !important;
  border: 1px solid rgba(229, 195, 120, 0.25) !important;
  -webkit-text-fill-color: #CBD5E1 !important;
  vertical-align: middle !important;
}

/* ==========================================================================
   FIXED BAR OVERLAP PREVENTION (下部固定バー・上部ヘッダー被り完全防止)
   ========================================================================== */
#pricing,
#about,
#concerns,
#features,
#reviews,
#access {
  scroll-margin-top: 84px !important;
}

@media (max-width: 767px) {
  .rt-pricing--luxury {
    padding-bottom: 50px !important;
  }
  
  .rooton-footer {
    padding-bottom: calc(140px + env(safe-area-inset-bottom, 24px)) !important;
  }
}

/* ==========================================================================
   PRICING FLOW & MONITOR LUXURY LINK (施術の流れ ＆ モニター誘導)
   ========================================================================== */
.rt-pricing-flow-item {
  margin-top: 14px;
  padding: 16px 20px;
  background: rgba(20, 35, 26, 0.7);
  border: 1px solid rgba(229, 195, 120, 0.2);
  border-radius: 12px;
}

.rt-pricing-flow-title {
  color: #E5C378;
  font-size: 0.9375rem;
  font-weight: 700;
  margin: 0 0 12px;
  letter-spacing: 0.05em;
  text-align: center;
}

.rt-pricing-flow-steps {
  display: flex;
  align-items: center;
  justify-content: space-around;
  flex-wrap: wrap;
  gap: 8px;
}

.rt-pflow-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.rt-pflow-num {
  font-family: var(--rt-font-serif, "Cinzel", "Shippori Mincho", serif);
  font-size: 0.6875rem;
  font-weight: 700;
  color: #E5C378;
  letter-spacing: 0.06em;
}

.rt-pflow-name {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #F8FAFC;
  margin-top: 2px;
}

.rt-pflow-arrow {
  color: rgba(229, 195, 120, 0.4);
  font-size: 0.8125rem;
}

@media (max-width: 540px) {
  .rt-pricing-flow-steps {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  .rt-pflow-arrow {
    display: none;
  }
  .rt-pflow-step {
    padding: 8px 10px;
    background: rgba(14, 25, 19, 0.75);
    border: 1px solid rgba(229, 195, 120, 0.15);
    border-radius: 8px;
  }
}

.rt-btn-monitor-luxury-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 18px;
  background: linear-gradient(135deg, rgba(212, 175, 55, 0.15) 0%, rgba(197, 160, 89, 0.25) 100%);
  border: 1px solid rgba(229, 195, 120, 0.6);
  border-radius: 9999px;
  color: #F8E7C0 !important;
  font-size: 0.8125rem;
  font-weight: 600;
  text-decoration: none !important;
  transition: all 0.25s ease;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

.rt-btn-monitor-luxury-link:hover {
  background: linear-gradient(135deg, rgba(212, 175, 55, 0.35) 0%, rgba(197, 160, 89, 0.45) 100%);
  border-color: #E5C378;
  color: #FFFFFF !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(229, 195, 120, 0.3);
}

/* ==========================================================================
   Brand Story Movie Feature (.rt-brand-movie-card)
   ========================================================================== */
.rt-brand-movie-card {
  display: flex;
  flex-direction: column;
  background: linear-gradient(145deg, #1A231C 0%, #0F1612 100%);
  border: 1px solid rgba(197, 160, 89, 0.35);
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 32px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
}

@media (min-width: 768px) {
  .rt-brand-movie-card {
    flex-direction: row;
    align-items: stretch;
  }
}

.rt-brand-movie-media {
  position: relative;
  width: 100%;
  background: #000000;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

@media (min-width: 768px) {
  .rt-brand-movie-media {
    width: 300px;
    min-width: 300px;
  }
}

.rt-brand-movie-video {
  width: 100%;
  height: 100%;
  max-height: 380px;
  object-fit: contain;
  background: #000000;
  display: block;
}

@media (max-width: 767px) {
  .rt-brand-movie-video {
    max-height: 300px;
    object-fit: contain;
    background: #000000;
  }
}

.rt-brand-movie-content {
  padding: 22px 18px;
  color: #FAF9F5;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

@media (min-width: 768px) {
  .rt-brand-movie-content {
    padding: 30px 36px;
  }
}

.rt-brand-movie-tag {
  display: inline-block;
  font-family: var(--rt-font-en, "Cormorant Garamond", serif);
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #E5C378;
  border-bottom: 1px solid rgba(229, 195, 120, 0.35);
  padding-bottom: 2px;
  margin-bottom: 10px;
  align-self: flex-start;
}

.rt-brand-movie-title {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.45;
  color: #FAF9F5;
  margin-bottom: 10px;
  letter-spacing: 0.02em;
}

@media (min-width: 768px) {
  .rt-brand-movie-title {
    font-size: 1.3125rem;
  }
}

.rt-brand-movie-desc {
  font-size: 0.84375rem;
  line-height: 1.75;
  color: rgba(250, 249, 245, 0.85);
  margin-bottom: 16px;
}

.rt-brand-movie-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #E5C378;
  text-decoration: none;
  transition: all 0.25s ease;
  align-self: flex-start;
}

.rt-brand-movie-link:hover {
  color: #FFFFFF;
  transform: translateX(4px);
}

/* ==========================================================================
   Pricing Section: Seamless In-Card Flow (No Nested Border)
   ========================================================================== */
.rt-luxury-card-badge-inline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 5px 14px;
  background: rgba(16, 185, 129, 0.15);
  border: 1px solid rgba(16, 185, 129, 0.35);
  border-radius: 9999px;
  color: #6EE7B7;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin-bottom: 12px;
  width: fit-content;
}

.rt-card-flow-compact {
  margin: 16px 0 18px;
  padding: 16px 0 10px;
  background: transparent;
  border: none;
  border-top: 1px solid rgba(229, 195, 120, 0.16);
  border-radius: 0;
}

.rt-card-flow-compact-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
  padding-bottom: 4px;
}

.rt-card-flow-title {
  color: #E5C378;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  display: flex;
  align-items: center;
  gap: 6px;
}

.rt-card-flow-time {
  font-size: 0.75rem;
  color: #A3B899;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.rt-card-flow-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  align-items: stretch;
}

.rt-card-flow-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 10px 6px;
  background: rgba(255, 255, 255, 0.03);
  border: none;
  border-radius: 6px;
  min-height: 48px;
  min-width: 0;
  transition: background 0.2s ease;
}

.rt-card-flow-step:hover {
  background: rgba(229, 195, 120, 0.08);
}

.rt-cstep-num {
  font-family: var(--rt-font-serif, "Cinzel", "Shippori Mincho", serif);
  font-size: 0.625rem;
  color: #E5C378;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin-bottom: 3px;
  white-space: nowrap;
}

.rt-cstep-name {
  font-size: 0.75rem;
  color: #F8FAFC;
  font-weight: 600;
  line-height: 1.25;
  white-space: nowrap;
}

.rt-card-flow-note {
  margin-top: 12px;
  font-size: 0.71875rem;
  color: #A3B899;
  text-align: center;
  line-height: 1.5;
  letter-spacing: 0.02em;
  text-wrap: pretty;
}

.rt-card-flow-divider {
  display: inline;
  opacity: 0.6;
  margin: 0 4px;
}

@media (max-width: 767px) {
  .rt-card-flow-compact {
    padding: 14px 0 10px;
  }
  .rt-card-flow-steps {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }
  .rt-card-flow-step {
    padding: 10px 8px;
    min-height: 48px;
    background: rgba(255, 255, 255, 0.035);
  }
  .rt-cstep-num {
    margin-bottom: 3px;
    font-size: 0.625rem;
  }
  .rt-cstep-name {
    font-size: 0.78125rem;
  }
  .rt-card-flow-divider {
    display: none;
  }
}

/* ==========================================================================
   Pricing Section: Single-Line Monitor Banner (.rt-pricing-monitor-single-line)
   ========================================================================== */
.rt-pricing-monitor-single-line {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px 14px;
  background: rgba(10, 20, 15, 0.45);
  border: 1px solid rgba(229, 195, 120, 0.2);
  border-radius: 8px;
  padding: 12px 16px;
  margin: 18px auto 0;
  max-width: 680px;
  text-align: center;
  word-break: keep-all;
  overflow-wrap: normal;
}

/* ==========================================================================
   Menu Page: SNS Monitor Accordion (.rt-monitor-accordion)
   ========================================================================== */
.rt-monitor-accordion {
  margin: 20px 0 24px;
  border: 1px solid rgba(197, 160, 89, 0.35);
  border-radius: 10px;
  background: #FCFBF7;
  overflow: hidden;
  transition: all 0.25s ease;
}

.rt-monitor-accordion[open] {
  box-shadow: 0 4px 16px rgba(197, 160, 89, 0.12);
}

.rt-monitor-accordion-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  font-size: 0.875rem;
  font-weight: 700;
  color: #785A18;
  cursor: pointer;
  list-style: none;
  background: rgba(197, 160, 89, 0.08);
  user-select: none;
  transition: background 0.2s ease;
}

.rt-monitor-accordion-summary::-webkit-details-marker {
  display: none;
}

.rt-monitor-accordion-summary:hover {
  background: rgba(197, 160, 89, 0.14);
}

.rt-monitor-accordion-toggle-icon {
  width: 18px;
  height: 18px;
  transition: transform 0.25s ease;
  flex-shrink: 0;
}

.rt-monitor-accordion[open] .rt-monitor-accordion-toggle-icon {
  transform: rotate(180deg);
}

.rt-monitor-accordion-body {
  padding: 18px;
  border-top: 1px solid rgba(197, 160, 89, 0.2);
  background: #FFFFFF;
}

.rt-monitor-line-lead {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px 8px;
}

.rt-monitor-line-title {
  color: #FAF9F5;
  font-size: 0.8125rem;
  font-weight: 500;
  white-space: nowrap;
}

.rt-monitor-line-action {
  color: #E5C378 !important;
  font-size: 0.8125rem;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  transition: color 0.2s ease;
}

.rt-monitor-line-action:hover {
  color: #FFFFFF !important;
}

/* ==========================================================================
   Access Section: Map-First & Details Grid (.rt-access-details-card)
   ========================================================================== */
.rt-access-details-card {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(197, 160, 89, 0.25);
  border-radius: 14px;
  padding: 24px 20px;
  margin-top: 24px;
}

@media (min-width: 768px) {
  .rt-access-details-card {
    padding: 28px 32px;
  }
}

.rt-access-details-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  text-align: left;
}

@media (min-width: 768px) {
  .rt-access-details-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 32px;
  }
}

.rt-access-detail-item {
  display: flex;
  flex-direction: column;
}

.rt-access-detail-item .rt-access-label {
  font-size: 0.75rem !important;
  color: #C5A059 !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  margin-bottom: 4px !important;
}

.rt-access-detail-item .rt-access-val-strong {
  font-size: 1.125rem !important;
  font-weight: 700 !important;
  color: #FAF9F5 !important;
  margin-bottom: 0 !important;
}

.rt-access-detail-item .rt-access-val {
  font-size: 0.875rem !important;
  color: rgba(250, 249, 245, 0.9) !important;
  line-height: 1.55 !important;
  margin-bottom: 0 !important;
}

/* ==========================================================================
   Typography & Tactile Feedback Enhancements (文字落ち防止・手触り感向上)
   ========================================================================== */
.rt-keep {
  display: inline-block !important;
  white-space: nowrap !important;
}

.rt-section-title,
.rt-empathy-title,
.rt-empathy-insight-title,
.rt-concern-title,
.rt-hub-feature-title,
.rt-interview-title,
.rt-luxury-plan-title {
  text-wrap: balance !important;
}

.rt-empathy-warning-text,
.rt-empathy-warning-sub,
.rt-empathy-insight-text,
.rt-concern-desc,
.rt-hub-feature-desc,
.rt-interview-quote {
  text-wrap: pretty !important;
}

.rt-btn-gold:active,
.rt-reserve-trigger:active,
.rt-quick-nav-pill:active,
.rt-btn-sub-luxury:active,
.rt-hub-card-link:active {
  transform: scale(0.97) !important;
}

/* ==========================================================================
   ROOTON LUXURY MONITOR APPLICATION PAGE & FORM STYLES
   ========================================================================== */
.rt-mon-hero {
  padding: 48px 0 36px;
  background: linear-gradient(180deg, rgba(26, 35, 50, 0.03) 0%, rgba(26, 35, 50, 0) 100%);
}
.rt-mon-hero-inner {
  max-width: 800px;
  margin: 0 auto;
  text-align: center;
}
.rt-mon-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #1A2332;
  color: #C5A059;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 6px 16px;
  border-radius: 9999px;
  margin-bottom: 16px;
  border: 1px solid rgba(197, 160, 89, 0.3);
}
.rt-mon-title {
  font-family: "Shippori Mincho", "Noto Sans JP", serif;
  font-size: clamp(1.75rem, 5vw, 2.5rem);
  font-weight: 700;
  color: #1A2332;
  line-height: 1.35;
  margin-bottom: 16px;
  text-wrap: balance;
}
.rt-mon-lead {
  font-size: 1.0625rem;
  color: #4A5568;
  line-height: 1.8;
  margin-bottom: 24px;
}
.rt-mon-facts {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-width: 360px;
  margin: 20px auto 0;
}
.rt-mon-fact-pill,
.rt-sub-hero .rt-mon-fact-pill {
  background: rgba(255, 255, 255, 0.08) !important;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(197, 160, 89, 0.4) !important;
  border-radius: 9999px !important;
  padding: 10px 18px !important;
  color: #F6EDD9 !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.04em !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.rt-mon-fact-label {
  font-size: 0.75rem;
  color: #718096;
  font-weight: 500;
  display: block;
  margin-bottom: 4px;
}
.rt-mon-fact-val {
  font-family: "Cormorant Garamond", "Noto Sans JP", serif;
  font-size: 1.375rem;
  font-weight: 700;
  color: #1A2332;
  display: block;
}
.rt-mon-fact-val small {
  font-size: 0.8125rem;
  color: #718096;
  font-weight: normal;
  margin-left: 2px;
}
.rt-mon-hero-actions {
  display: flex;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}

/* 撮影シーン・流れ */
.rt-mon-scenes-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 32px;
}
@media (max-width: 767px) {
  .rt-mon-scenes-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}
.rt-mon-scene-card {
  background: #FFFFFF;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid #E2E8F0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.03);
  display: flex;
  flex-direction: column;
}
.rt-mon-scene-img {
  width: 100%;
  height: 200px;
  object-fit: cover;
}
.rt-mon-scene-body {
  padding: 20px;
  flex: 1;
}
.rt-mon-scene-step {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.75rem;
  font-weight: 700;
  color: #C5A059;
  letter-spacing: 0.05em;
  margin-bottom: 8px;
}
.rt-mon-scene-title {
  font-size: 1.0625rem;
  font-weight: 700;
  color: #1A2332;
  margin-bottom: 8px;
}
.rt-mon-scene-desc {
  font-size: 0.875rem;
  color: #4A5568;
  line-height: 1.65;
  margin: 0;
}

/* 4つの安心約束 */
.rt-mon-assure-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-top: 28px;
}
@media (max-width: 640px) {
  .rt-mon-assure-grid {
    grid-template-columns: 1fr;
  }
}
.rt-mon-assure-card {
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  border-left: 4px solid #C5A059;
  border-radius: 10px;
  padding: 16px 20px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.02);
}
.rt-mon-assure-card h4 {
  font-size: 0.9375rem;
  font-weight: 700;
  color: #1A2332;
  margin-bottom: 4px;
}
.rt-mon-assure-card p {
  font-size: 0.8125rem;
  color: #6B7280;
  margin: 0;
  line-height: 1.5;
}

/* 条件＆料金テーブル */
.rt-mon-price-box {
  background: #FFFFFF;
  border-radius: 16px;
  border: 1.5px solid rgba(197, 160, 89, 0.4);
  padding: 32px 24px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.04);
  max-width: 760px;
  margin: 32px auto 0;
}
.rt-mon-price-header {
  text-align: center;
  border-bottom: 1px dashed #E2E8F0;
  padding-bottom: 24px;
  margin-bottom: 24px;
}
.rt-mon-price-amount {
  font-family: "Cormorant Garamond", serif;
  font-size: 2.75rem;
  font-weight: 700;
  color: #1A2332;
  line-height: 1;
  margin: 8px 0;
}
.rt-mon-table {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.rt-mon-row {
  display: flex;
  padding-bottom: 12px;
  border-bottom: 1px solid #F1F5F9;
}
@media (max-width: 640px) {
  .rt-mon-row {
    flex-direction: column;
    gap: 4px;
  }
}
.rt-mon-row dt {
  width: 140px;
  flex-shrink: 0;
  font-size: 0.875rem;
  font-weight: 700;
  color: #1A2332;
}
.rt-mon-row dd {
  margin: 0;
  font-size: 0.875rem;
  color: #4A5568;
  line-height: 1.6;
}

/* インフルエンサー・クリエイター特別コラボカード */
.rt-mon-collab-card {
  background: linear-gradient(135deg, rgba(26, 35, 50, 0.03) 0%, rgba(197, 160, 89, 0.09) 100%);
  border: 1.5px solid rgba(197, 160, 89, 0.6);
  border-radius: 16px;
  padding: 32px 28px;
  margin-top: 28px;
  box-shadow: 0 6px 20px rgba(197, 160, 89, 0.1);
  position: relative;
}
@media (max-width: 640px) {
  .rt-mon-collab-card {
    padding: 22px 18px;
    margin-top: 20px;
  }
}
.rt-mon-collab-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: linear-gradient(135deg, #C5A059 0%, #A88438 100%);
  color: #FFFFFF;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 4px 12px;
  border-radius: 9999px;
  margin-bottom: 12px;
}
.rt-mon-collab-title {
  font-size: clamp(1.125rem, 2.8vw, 1.375rem);
  font-weight: 700;
  color: #1A2332;
  margin-bottom: 10px;
  line-height: 1.4;
}
.rt-mon-collab-lead {
  font-size: 0.9375rem;
  color: #4A5568;
  line-height: 1.7;
  margin-bottom: 16px;
}
.rt-mon-collab-lead strong {
  color: #1A2332;
}
.rt-mon-collab-list {
  list-style: none;
  padding: 0;
  margin: 0 0 18px 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.rt-mon-collab-list li {
  font-size: 0.875rem;
  color: #2D3748;
  line-height: 1.6;
  padding-left: 24px;
  position: relative;
}
.rt-mon-collab-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: #C5A059;
  font-weight: 800;
  font-size: 1rem;
}
.rt-mon-collab-note {
  font-size: 0.8125rem;
  color: #718096;
  line-height: 1.6;
  margin: 0;
  border-top: 1px dashed rgba(197, 160, 89, 0.3);
  padding-top: 12px;
}
.rt-mon-collab-note a {
  color: #9A7B32;
  font-weight: 700;
  text-decoration: underline;
}

/* 任意バッジ（フォーム用） */
.rt-form-opt {
  background: #E2E8F0;
  color: #4A5568;
  font-size: 0.6875rem;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: 4px;
  margin-left: 8px;
  letter-spacing: 0.04em;
}

/* 応募の流れ */
.rt-mon-steps-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 640px;
  margin: 32px auto 0;
}
.rt-mon-step-item {
  display: flex;
  gap: 16px;
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  border-radius: 12px;
  padding: 18px 20px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.02);
}
.rt-mon-step-num {
  width: 32px;
  height: 32px;
  background: #1A2332;
  color: #C5A059;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.9375rem;
  flex-shrink: 0;
}
.rt-mon-step-body h4 {
  font-size: 1rem;
  font-weight: 700;
  color: #1A2332;
  margin-bottom: 4px;
}
.rt-mon-step-body p {
  font-size: 0.875rem;
  color: #4A5568;
  margin: 0;
  line-height: 1.55;
}

/* 応募フォーム (極上ラグジュアリー) */
.rt-monitor-form-section {
  padding: 48px 0;
}
.rt-monitor-form-wrap {
  max-width: 720px;
  margin: 0 auto;
  background: #FFFFFF;
  border-radius: 20px;
  border: 1.5px solid rgba(197, 160, 89, 0.4);
  box-shadow: 0 12px 36px rgba(26, 35, 50, 0.08);
  padding: 40px 32px;
}
@media (max-width: 640px) {
  .rt-monitor-form-wrap {
    padding: 28px 20px;
  }
}
.rt-form-row {
  margin-bottom: 24px;
}
.rt-form-label {
  display: flex;
  align-items: center;
  font-size: 0.9375rem;
  font-weight: 700;
  color: #1A2332;
  margin-bottom: 8px;
}
.rt-form-req {
  background: #C5A059;
  color: #FFFFFF;
  font-size: 0.6875rem;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 4px;
  margin-left: 8px;
  letter-spacing: 0.04em;
}
.rt-form-note {
  font-size: 0.8125rem;
  color: #718096;
  margin-top: 6px;
  margin-bottom: 0;
  line-height: 1.45;
}
.rt-form-input,
.rt-form-textarea {
  width: 100%;
  font-family: inherit;
  font-size: 0.9375rem;
  color: #1A2332;
  background: #FDFCFA;
  border: 1.5px solid #D1D5DB;
  border-radius: 10px;
  padding: 13px 16px;
  box-sizing: border-box;
  transition: all 0.2s ease;
}
.rt-form-input:focus,
.rt-form-textarea:focus {
  outline: none;
  background: #FFFFFF;
  border-color: #C5A059;
  box-shadow: 0 0 0 3px rgba(197, 160, 89, 0.2);
}
.rt-form-textarea {
  min-height: 130px;
  resize: vertical;
  line-height: 1.6;
}

/* ラジオカード（掲載希望範囲） */
.rt-scope-cards {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 6px;
}
.rt-scope-card {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #FDFCFA;
  border: 1.5px solid #E2E8F0;
  border-radius: 10px;
  padding: 14px 18px;
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 0.9375rem;
  font-weight: 500;
  color: #2D3748;
}
.rt-scope-card:hover {
  border-color: #CBD5E0;
  background: #FFFFFF;
}
.rt-scope-card input[type="radio"] {
  width: 18px;
  height: 18px;
  accent-color: #C5A059;
  flex-shrink: 0;
  margin: 0;
}
.rt-scope-card:has(input[type="radio"]:checked) {
  border-color: #C5A059;
  background: rgba(197, 160, 89, 0.08);
  font-weight: 700;
  color: #1A2332;
}

/* チェックボックス同意 */
.rt-agree-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: #F8FAFC;
  border: 1.5px solid #E2E8F0;
  border-radius: 10px;
  padding: 14px 16px;
  cursor: pointer;
  margin-bottom: 14px;
  transition: all 0.2s ease;
}
.rt-agree-card:hover {
  background: #FFFFFF;
  border-color: #CBD5E0;
}
.rt-agree-card input[type="checkbox"] {
  width: 20px;
  height: 20px;
  accent-color: #C5A059;
  flex-shrink: 0;
  margin-top: 2px;
}
.rt-agree-text {
  font-size: 0.875rem;
  line-height: 1.5;
  color: #2D3748;
}
.rt-agree-card:has(input[type="checkbox"]:checked) {
  border-color: #C5A059;
  background: rgba(197, 160, 89, 0.06);
}

.rt-mon-scene-body h4 {
  font-size: 1rem;
  font-weight: 700;
  color: #1A2332;
  margin-bottom: 6px;
  text-wrap: balance;
  line-height: 1.4;
}

/* 送信ボタン */
.rt-form-submit-wrap {
  text-align: center;
  margin-top: 32px;
}
.rt-form-submit-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  max-width: 420px;
  background: linear-gradient(135deg, #1A2332 0%, #101824 100%);
  color: #F6EDD9;
  border: 1.5px solid #C5A059;
  padding: 15px 24px;
  border-radius: 9999px;
  font-size: clamp(0.9375rem, 2.8vw, 1.0625rem);
  font-weight: 700;
  letter-spacing: 0.04em;
  white-space: nowrap;
  cursor: pointer;
  transition: all 0.25s ease;
  box-shadow: 0 4px 16px rgba(26, 35, 50, 0.15);
}
.rt-form-submit-btn:hover {
  background: linear-gradient(135deg, #C5A059 0%, #B38F46 100%);
  color: #1A2332;
  box-shadow: 0 6px 20px rgba(197, 160, 89, 0.35);
  transform: translateY(-2px);
}
.rt-form-submit-btn:active {
  transform: scale(0.98);
}
.rt-form-submit-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* メッセージバナー */
.form__msg {
  padding: 16px 20px;
  border-radius: 10px;
  margin-bottom: 24px;
  font-size: 0.9375rem;
  line-height: 1.6;
}
.form__msg--error {
  background: #FFF5F5;
  border: 1.5px solid #FEB2B2;
  color: #C53030;
}
.form__msg--error ul {
  margin: 8px 0 0 18px;
  padding: 0;
}
.form__msg--ok {
  background: #F0FDF4;
  border: 1.5px solid #86EFAC;
  color: #166534;
}

/* スパム用トラップ完全不可視 */
.form__trap {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  position: absolute !important;
  left: -9999px !important;
  width: 0 !important;
  height: 0 !important;
}

