/* ============================================================
   Tailwind CDN 補助 — 全ページ共通（@layer 不使用）
   ============================================================ */

/* --- 横見切れ対策（全ページ）--- */
html,
body {
  overflow-x: hidden;
  max-width: 100%;
}

html.overflow-x-hidden,
body.overflow-x-hidden {
  overflow-x: hidden;
  max-width: 100%;
}

img,
svg,
video,
canvas,
iframe {
  max-width: 100%;
}

img,
video {
  height: auto;
}

main,
header,
footer,
section,
aside,
.container,
.roop-container,
.estimate-bar-inner,
.page-hero__inner,
.business-table-wrap,
.business-map__frame,
.achievements-ba-scroll,
.achievements-video-scroll {
  max-width: 100%;
}

/* --- セクション外側 overflow --- */
.section,
.hero,
.gallery-instagram,
.page-hero,
.content-section,
.page-cta,
.achievements-cta,
.business-franchise,
.achievements-pricing,
.achievements-ba,
.achievements-videos,
.achievements-sales-section,
.estimate-main {
  overflow-x: hidden;
  max-width: 100%;
}

.subpage main {
  overflow-x: hidden;
  max-width: 100%;
}

/* --- コンテナ統一（roop-container 未指定時の保険）--- */
.subpage .container:not(.header-inner):not(.estimate-bar-inner) {
  width: 100%;
  max-width: min(80rem, 100%);
  margin-inline: auto;
  padding-left: 1rem;
  padding-right: 1rem;
}

@media (min-width: 640px) {
  .subpage .container:not(.header-inner):not(.estimate-bar-inner) {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

@media (min-width: 1024px) {
  .subpage .container:not(.header-inner):not(.estimate-bar-inner) {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

/* --- 下層ページ：背景×文字コントラスト --- */
.subpage .content-section--white {
  background: #ffffff;
  color: #0a0a0a;
}

.subpage .content-section--white .section-title {
  color: #0a0a0a;
}

.subpage .content-section--white .section-desc {
  color: #4b5563;
}

.subpage .page-hero--light {
  background: #ffffff;
  color: #0a0a0a;
}

.subpage .page-hero--light .page-hero__title {
  color: #0a0a0a;
}

.subpage .page-hero--light .page-hero__lead {
  color: #4b5563;
}

.subpage .content-section--soft {
  background: #f5f5f5;
  color: #0a0a0a;
}

.subpage .content-section--soft .section-title {
  color: #0a0a0a;
}

.subpage .content-section--soft .section-desc {
  color: #4b5563;
}

.subpage .content-section--dark,
.subpage .achievements-page .content-section:not(.achievements-pricing) {
  color: #ffffff;
}

.subpage .business-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.subpage .business-table {
  min-width: 0;
  width: 100%;
}

.subpage .estimate-bar {
  left: 0;
  right: 0;
  max-width: 100%;
}

/* --- 開業ロードマップ（トップ）--- */
.section-roadmap {
  background: #f5f5f5;
  color: #0a0a0a;
}

.section-roadmap .section-title,
.section-roadmap .roop-section-title {
  color: #0a0a0a;
}

.section-roadmap .section-desc {
  color: #4b5563;
}

.section-roadmap .roadmap-step {
  background: #0a0a0a;
  color: #ffffff;
  border-left: 4px solid #ff6b00;
  border-radius: 8px;
}

.section-roadmap .roadmap-step h3 {
  color: #ffffff;
}

.section-roadmap .roadmap-step p {
  color: #9ca3af;
}

.section-roadmap .roadmap-num {
  color: #ff6b00;
}

/* --- タッチ端末：ホバー transform 無効 --- */
@media (hover: none), (pointer: coarse) {
  .roop-card-interactive:hover,
  .roop-btn-primary:hover,
  .roop-btn-outline:hover,
  .roadmap-step:hover {
    transform: none !important;
  }
}

.text-balance {
  text-wrap: balance;
}
