:root{
  --color-main:#450e08;
}

/* ベース */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Hiragino Kaku Gothic ProN','Hiragino Sans','Noto Sans JP',Meiryo,sans-serif;
  color:#333; line-height:1.6;
}
img{max-width:100%; height:auto; display:block}

/* 見出し・本文の流体排版 */
.section-title{ 
  font-weight:900; 
  color:#978081;
  font-size:clamp(36px, 5vw, 54px);
  text-align:center;
	margin-bottom: 30px;
}
p{ font-size:clamp(14px,2.2vw,18px) }

/* hero */
.hero-bg{
  background-image:url('../images/sutenavi_lp_02.jpg');
  background-size:cover;
  background-position:center;
	padding-bottom: 18px;
}

.text-shadow{
  text-shadow:
    -2px -2px 0 #fff,
     2px -2px 0 #fff,
    -2px  2px 0 #fff,
     2px  2px 0 #fff,
    -3px  0   0 #fff,
     3px  0   0 #fff,
     0   -3px 0 #fff,
     0    3px 0 #fff;

}

/* 固定ヘッダー分の余白を確保（目安: 70px） */
#news, #about, #function, #area, #webver, #contact {
  scroll-margin-top: var(--headerH, 70px);
}

/* フッター */
.footer-grad{
  background:linear-gradient(to right,#B81A20,#F7B415,#26B6B8);
}

/* ナビ画像の上限（崩れ防止） */
.navbar-brand img{ height:auto; max-height:40px }
@media (min-width:992px){
  .navbar-brand img{ max-height:48px }
}

/* =========================
   NEWS section (list & modal)
   ========================= */

/* 1) リスト行（3件表示の側） */
#news .news-item {
  display: flex;
  flex-direction: column;/* SPは縦積み */
  gap: .25rem;
  padding: .5rem 0;
  border-bottom: 1px solid rgba(0,0,0,.08);
}

#news .flex-grow-1{
	font-weight:600;
}

/* 992px以上は横並びにしてコンパクトに */
@media (min-width: 992px) {
  #news .news-item {
    flex-direction: row;
    align-items: baseline;
    gap: .75rem;
  }
}

/* 2) 日付（既存は .fw-bold .text-primary-emphasis を使用） */
#news .news-date {
  /* 既存ユーティリティに上書きで安全に */
  color: var(--color-main, #450e08) !important;
  font-weight: 700;              /* 日付はより強く */
  letter-spacing: 0.02em;
  white-space: nowrap;           /* 折返し防止 */
  min-width: 7.5em;              /* PCで桁揃え */
}

/* 3) 本文テキスト */
#news .news-text {
  color: inherit;
  line-height: 1.6;
}

/* 4) モーダル（「すべて見る」）側の行スタイル */
#newsModal .news-row {
  padding: .5rem 0;
  border-bottom: 1px solid rgba(0,0,0,.08);
}

/* モーダル内の日付色も合わせる */
#newsModal .news-date {
  color: var(--color-main, #450e08) !important;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

/* 5) 既存マークアップのクラスを簡単にマッピング（置換不要で使える） */
#news .text-primary-emphasis { color: var(--color-main, #450e08) !important; }
#newsModal .text-primary-emphasis { color: var(--color-main, #450e08) !important; }

/* 6) 小さめ画面の微調整 */
@media (max-width: 575.98px) {
  #news .news-date { min-width: auto; } 
}


/* 7) CTAボタン（「すべて見る」）のわずかな強調（任意） */
#news .btn {
  border-radius: 999px;
  font-weight: 700;
}

/* ===== Function ===== */

/* 丸型キービジュアルの見た目を統一（正円＆はみ出し防止） */
.function-main-img{
  width: min(42vw, 420px);
  height: min(42vw, 420px);
  border-radius: 50%;
  object-fit: cover; /* 画像のトリミングを安全に */
}

/* 番号バッジの見た目を微調整（揺れ防止） */
.function-num{
  min-width: 2.4em; text-align: center;
  border-color: rgba(0,0,0,.08);
	
display: inline-flex;
    align-items: center;      /* 縦中央 */
    justify-content: center;  /* 横中央（念のため） */
    line-height: 1;

}

#function p{
	font-weight: 600;
	font-size: clamp(16px, 2.5vw, 18px);
	
}
#function .figure-caption{
	font-weight: 600;
	font-size: clamp(16px, 2.5vw, 18px);
}

/* カード・画像の共通余白 */
.function-block img{ display:block }

/* SPでの段組崩れ対策（上下の余白） */
@media (max-width: 767.98px){
  .function-main-img{
    width: min(70vw, 380px);
    height: min(70vw, 380px);
  }
}

/* ===== Download ===== */
#download { 
	background-color: #fdf7e9!important;
	scroll-margin-top: 70px; } /* 固定ヘッダー対策 */

#download .btn-primary{
  /* 背景帯ボタンの簡易再現：2行でも崩れにくく */
  --g1: #F7B415;  /* yellow */
  --g2: #E77725;  /* orange */
  --g3: #B81A20;  /* red */

  background: linear-gradient(90deg, var(--g1) 0%, var(--g2) 50%, var(--g3) 100%);
  color: #fff;
  border: 0;
  font-weight: 800;
  letter-spacing: .02em;
  box-shadow: 0 8px 20px rgba(0,0,0,.15);
  transition: transform .08s ease, filter .12s ease, box-shadow .12s ease;
}

/* ===== Area ===== */
#area { scroll-margin-top: 70px; } /* 固定ヘッダー対策 */

/* 背景画像は親に敷く */
.map {
  position: relative;
  width: 80%;
  /* 背景画像1枚 */
	margin-inline: auto;
	background: url("../images/sutenavi_lp_41.jpg") center/contain no-repeat;
  aspect-ratio: 803 / 960; 
  isolation: isolate; /* 子のz-indexを外に漏らさない */
}

/* ラベル共通スタイル */
.map__label {
  position: absolute;
  left: var(--x, 50%);  /* デフォルト中央 */
  top: var(--y, 50%);
  transform: translate(-50%, -50%); /* 座標をラベルの中心に合わせる */
  margin: 0;
  padding: 0.35em 0.7em;
  font-weight: 700;
  border-radius: 6px;
  white-space: nowrap; 
  z-index: 1;
  pointer-events: none; /* ラベルで操作を阻害しない（リンクにしたい時は外す） */
}

/* ぶつかる・読みづらい箇所があれば個別に修飾（例：縁取り） */
.map__label.-light {
  background: rgba(255,255,255,0.75);
  color: #111;
  text-shadow: none;
}

/* スマホ向けに微調整（例） */
@media (max-width: 576px) {
  .map__label { font-size: clamp(11px, 2.5vw, 14px); }
}
/* ===== Web Version ===== */
#webver { 
	background-color: #fdf7e9!important;
	scroll-margin-top: 70px; }  /* 固定ヘッダーで隠れないように */

#webver iframe {
  border: 0;
}

/* ===== Contact ===== */
#contact { scroll-margin-top: 70px; } /* 固定ヘッダー対策 */
#contact .btn-primary{
  border-radius: 999px;
  font-weight: 700;
  font-size: clamp(16px, 2.5vw, 18px);
  line-height: 1.3;	
  background-color: #450e08; /* 好きな色に変更 */
  color: #ffffff;            /* 文字色 */
  border-color: #450e08;     /* 枠線も合わせる　*/
}

.now-download{
	  border-radius: 999px;
  font-weight: 700;
  font-size: clamp(16px, 2.5vw, 18px);
  line-height: 3;	
  background-color: #ef821d; /* 好きな色に変更 */
  color: #ffffff;
}

/* Nav: 右側の .nav-link を太さ600＆カラー統一 */
.navbar .navbar-nav .nav-link {
  font-family: 'Hiragino Kaku Gothic ProN','Hiragino Sans','Noto Sans JP',Meiryo,sans-serif;
  font-weight: 600 !important;   /* ← ここが太さを確実に固定 */
  letter-spacing: 0.01em;
  color: #450e08 !important;
  opacity: 1 !important;
}

.navbar .navbar-nav .nav-link:hover,
.navbar .navbar-nav .nav-link:focus {
  color: #2e0905 !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.navbar .navbar-nav .nav-link.active,
.navbar .navbar-nav .nav-link[aria-current="page"] {
  color: #450e08 !important;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 2px;
}

/* 5) ハンバーガーアイコン（navbar-lightだと見え方が黒寄りになるため色を合わせる）
   ※ すでに指定済みならこのブロックは不要
*/
.navbar-toggler-icon{
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' \
viewBox='0 0 30 30'%3e%3cpath stroke='%23450e08' stroke-linecap='round' \
stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* =========================================
   Global Typography Color Overrides
   ========================================= */

/* 1) ページ標準の文字色を #450e08 に */
body {
  color: var(--color-main, #450e08) !important;
}

/* 2) 見出しや段落・リストも同色へ（必要に応じて調整可） */
h1, h3, h4, h5, h6,
p, li, dt, dd {
  color: var(--color-main, #450e08);
		font-weight: 600;
	font-size: clamp(16px, 2.6vw, 20px);
}

/* 3) リンク（未訪問／訪問／ホバー／フォーカス） */
a, a:visited {
  color: var(--color-main, #450e08);
  text-decoration-color: var(--color-main, #450e08);
}
a:hover, a:focus {
  color: #FFFFFF;                   /* 少しだけ濃く */
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* 4) Bootstrapのグレー系ユーティリティを上書き
   （これまで .text-secondary / .text-muted を使っていた箇所も #450e08 に） */
.text-secondary,
.text-muted {
  color: var(--color-main, #450e08) !important;
  opacity: 1 !important;            /* Bootstrapの薄さを打ち消す */
}

/* 5) ナビ（右側 .nav-link）も同色＆太さ600で統一 */
.navbar .navbar-nav .nav-link {
  color: var(--color-main, #450e08) !important;
  font-weight: 600 !important;
  opacity: 1 !important;
  letter-spacing: 0.01em;
}
.navbar .navbar-nav .nav-link:hover,
.navbar .navbar-nav .nav-link:focus {
  color: #2e0905 !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.navbar .navbar-nav .nav-link.active,
.navbar .navbar-nav .nav-link[aria-current="page"] {
  color: var(--color-main, #450e08) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 2px;
}

/* 6) ハンバーガーアイコンの色も合わせる（navbar-lightの黒っぽさを上書き）
   ※既に指定があれば不要 */
.navbar-toggler-icon{
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' \
viewBox='0 0 30 30'%3e%3cpath stroke='%23450e08' stroke-linecap='round' \
stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.section-title {
  color: #978081 !important;
}

/* ===== Hero（ズレないアンカー） ===== */
.hero-wrap{ position: relative; }
.hero-frame{
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9; /* 既存の比率に合わせる */
  overflow: hidden;
}
.hero-img{
  width: 100%;
  height: 100%;
  object-fit: cover;         /* coverでもズレないようJSで補正 */
  object-position: center;   /* 必要に応じて left top に変更可 */
  display: block;
}

/* テキストラベル（ロゴ上に重ねる） */
.hero-label{
  position: absolute;
  /* labelの基準点を “左上” にしたいなら translate(0,0) にする */
  transform: translate(10%, -400%); /* ←ホットスポットをラベルの“左下”基準に合わせる例 */
  color: #450e08; /* サイトの基調色に合わせる */
  pointer-events: none;
}

/* 日本語 */
#heroTitle {
  font-size: clamp(14px, 3.2vw, 120px);
  line-height: 0.6;
	
}

/* 英語（翻訳）時 */
#heroTitle.is-translated {
  font-size: clamp(22px, 3.5vw, 64px);
  line-height: 1.35;

  white-space: normal;
  word-break: keep-all;
  overflow-wrap: anywhere;
display: none;
  text-align: left;
  max-width: 52ch;

  /* 英語だけ少し左に寄せる */
  transform: translateX(-8%);
}

.hero-overlay-left {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-start;   /* 上寄せ基準 */
  justify-content: left;
  padding-top: 11%;
	padding-left: 12%;/* ← ここだけが縦位置 */
}

.hero-bg{
  /* 既存 */
  background-image: url('../images/sutenavi_lp_02.jpg');
  background-size: cover;
  background-position: left top; /* ← “左上”基準に寄せる例（任意） */
}

@media (max-width: 769.98px){
#heroTitle {
  line-height: 1.3;
}
		.download-qr{margin-top: 1.5em!important;}
	
	.text-shadow{
  text-shadow:
	  -2px -2px 0 #fff,
	  2px -2px 0 #fff,
	  -2px 2px 0 #fff,
	  2px 2px 0 #fff,
	  -3px 0 0 #fff,
	  3px 0 0 #fff,
	  0 -2px 0 #fff,
	  0 2px 0 #fff;
}
	
}
/* News セクションの「すべて見る」ボタン */
#news .btn-outline-secondary {
  color: #978081 !important;
  border-color: #978081 !important;
  background-color: transparent;
  font-weight: 600;
  border-radius: 999px;
}

/* ホバー時 */
#news .btn-outline-secondary:hover {
  background-color: #978081 !important;
  color: #fff !important;
  border-color: #978081 !important;
}
/* スマホ幅（～576px）でロゴの左に余白を付ける */
@media (max-width: 575.98px){
  .navbar .navbar-brand{
    margin-left: 15px;     /* ← 左に余白（外側に空けたいなら margin） */
    /* padding-left: 8px;  ← 内側に空けたい場合はこちらに変更 */
  }
	
}

/* ベース（色や太さは調整してください） */
.slash-deco {
  position: relative;
  display: inline-block;          /* テキスト幅に合わせる（中央に置きやすい） */
  padding: 0.5rem 0.2rem;        /* 右左に余白を付けて斜め棒のスペースを確保 */
  text-align: center;
  line-height: 1.5;
}

/* 擬似要素で左右に斜め棒 */
.slash-deco::before,
.slash-deco::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 60px;                    /* 棒の長さ */
  height: 4px;                    /* 棒の太さ */
  background-color: #E77725;      /* オレンジ色（画像に近い色） */
  border-radius: 2px;             /* 少し丸み */
}

/* 左の棒（\） */
.slash-deco::before {
  left: 20px;
  transform: translate(-120%, -50%) rotate(-120deg);
}

/* 右の棒（/） */
.slash-deco::after {
  right: 20px;
  transform: translate(120%, -50%) rotate(-60deg);
}

/* ダークテーマや背景色が濃い場合に映えるよう影を付与（任意） */
.slash-deco::before,
.slash-deco::after {
  box-shadow: 0 1px 0 rgba(0,0,0,.08);
}

/* 画面幅が狭い時は棒を少し短く・細くする */
@media (max-width: 576px) {
  .slash-deco {
    padding: 0.5rem 0.2rem;
  }
  .slash-deco::before,
  .slash-deco::after {
    width: 60px;
    height: 3px;
  }
  .slash-deco::before { transform: translate(-110%, -50%) rotate(-120deg); }
  .slash-deco::after  { transform: translate(110%, -50%) rotate(-60deg); }
}
/* ============ About：波画像を 1000px 以上で可変（横は見切れてOK） ============ */
.about-photo-wave{
  background: var(--about-base);
  position: relative;
  overflow: hidden;                    /* ← 抜けていた！ はみ出し防止に必須 */
  z-index: 0;

  /* テキストが波に触れない“安全マージン”（必要なら増減） */
  padding-top:    clamp(260px, 30vw, 420px);
  padding-bottom: clamp(200px, 24vw, 340px);
}


/* 英語時：はみ出し完全防止 */
:lang(en) .about-photo-wave {
  overflow: visible;
}

:lang(en) .about .rr-label-text,
:lang(en) .about .over-image {
  position: static;
  transform: none;
  left: auto;
  margin: 0 auto;
  text-align: center;
}

:lang(en) .about {
  word-break: break-word;
  overflow-wrap: anywhere;
}

/* 波画像：最小1000px、画面が広ければさらに拡大。中央固定。 */
.about-photo-wave__img{
  position: absolute;
  top: 0;
  left: 50%;

  /* 1000px 未満でも縮ませない（左右は見切れてOK）／広い画面では拡大 */
  width: clamp(1000px, 120vw, 3800px);
  height: 680px;
  transform: translateX(-50%);
  transform-origin: top center;

  /* グローバル img{max-width:100%} の影響を打ち消し、最小幅を保証 */
  max-width: none !important;
  min-width: 1000px;

  pointer-events: none;
  user-select: none;
  z-index: 0;
}

/* =========================
   SP（～575.98px）は画像を使わず、地色 #fdf7e9 のみにする
   ========================= */
@media (max-width: 575.98px){
  .about-photo-wave{
    --about-base: #fdf7e9;             /* ご指定の色 */
    background: var(--about-base);
    padding-top:    clamp(140px, 22vw, 220px);
    padding-bottom: clamp(140px, 22vw, 220px);
  }
  .about-photo-wave__img{
    display: none !important;          /* 画像は非表示（通信量も軽くなる） */
  }
}
#about{
		min-height: 680px;   /* ← 日本語版でちょうど良い高さ */
	overflow: hidden!important;
}
/* 中身は常に波より前面に */
#about > .container{
  position: relative;
  z-index: 1;
	margin-top: 3em;
}
#about .container {
  position: relative;
  z-index: 1;
}


@media (max-width: 575.98px){
#about .container{margin-top: 1px!important;}
}

#footer-grad > .container{
  position: relative;
  z-index: 1;
}
/* ===== About：カラーと配置を理想に寄せる ===== */
/* 配色 */
:root{
  --about-base: #fdf7e9;      /* PC/タブレットの地色（背景） */
  --about-base-sp: #FDF7E9;   /* SPの地色（背景） */
  --about-accent: #E4632C;    /* オレンジアクセント（小見出し/サブコピー/CTA） */
  --about-head:   #450e08;    /* 見出し・本文の基調色（既存と一致） */
}

.custom-color{
	color: #E4632C;
}

/* 見出し群 */
.about-kicker{
  color: var(--about-accent);
  font-weight: 900!important;
  font-size: clamp(20px, 3vw, 26px);
}
.about-title{
  color: var(--about-head);
  font-weight:900!important;
  line-height: 1!important;            /* 行間をタイトにして力強く */
  font-size: clamp(26px, 6vw, 48px);  /* 理想の大きさに寄せる */
	margin-bottom: 15px!important;
	margin-top: 0;
}

/* 英語のときだけ自動調整 */
:lang(en) .about-title {
  line-height: 1;
}


.about-sub{
  color: var(--about-accent);
  letter-spacing: 0.02em;
  font-size: clamp(14px, 2.2vw, 18px);
	margin-bottom: -4px!important;
}
.about-body{
  color: var(--about-head);
  font-size: clamp(14px, 2.2vw, 18px);
  line-height: 1;
  max-width: 58ch;              /* 行長を抑える：読みやすさ重視 */
}
.about-note{
  color: var(--about-head);
  font-size: clamp(13px, 2vw, 16px);
  line-height: 1.7;
  max-width: 40ch;
}

/* 左の端末モック（右寄せのままサイズ制御） */
.about-hero{
  max-width: min(90%, 360px);
}

@media (min-width: 992px){
  .about-hero{ max-width: 420px; }
}

/* QR＆バッジ */
.about-qr{
  max-width: 180px;
}
.store-badge{
  height: 40px;                 /* 高さ基準で揃える */
  width: auto;
}

/* CTA（オレンジ pill） */
.about-cta-btn{
  display: inline-block;
  background: linear-gradient(180deg, #ff9f47, #ff7a1a);
  color: #fff;
  border-radius: 999px;
  padding: .9rem 1.2rem;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 8px 20px rgba(255,122,26,.18);
  transition: transform .08s ease-in-out, filter .12s;
}
.about-cta-btn:hover{
  transform: translateY(-1px);
  filter: brightness(1.02);
}

/* SPでは背景を単色に（すでに実装済みだが念のため統一） */
@media (max-width: 575.98px){
  .about-photo-wave{ background: var(--about-base-sp); }
}

/* ====== 機能#01 下：おすすめルート（route-recommend） ====== */
.route-recommend {
  --rr-brown: var(--color-main, #450e08);
  --rr-accent: #E4632C;   /* 既存アクセントに合わせる */
  --rr-check: #E4632C;     /* チェック色（必要なら var(--color-main) に変更） */
}

/* 角丸ボーダーのピル（中央の赤枠見出し） */
.route-recommend .rr-pill {
  display: inline-block;
  padding: .35rem .75rem;
  border: 2px solid var(--rr-brown);
  border-radius: .35rem;
  background: #fff;
  color: var(--rr-brown);
  font-size: clamp(14px, 2vw, 16px);
}

/* ▼ チェック付きピル（画像なし・一体化） */
.route-recommend .rr-pill.rr-with-check{
  position: relative;
  /* 左側にチェック（22px）用の内側余白を追加 */
  padding-left: calc(.75rem + 22px);
}

/* チェックを疑似要素で描画：太さ7px・角度45degを維持 */
.route-recommend .rr-pill.rr-with-check::after{
  content: "";
  position: absolute;
  left: .45rem;            /* ピル内の左余白（微調整可） */
  top: 50%;
  width: 22px;             /* 当たり枠（見えない箱） */
  height: 22px;
  transform: translateY(-50%);

  /* 内側に“レ”形の2本線を描く（中心合わせ） */
  /* 長い辺＝17px、短い辺＝30px、角度＝45deg、線幅＝7px を踏襲 */
  /* 中央に小さな描画ボックスをつくり、そこにボーダーでチェックを描く */
  /* 疑似子ボックス */
}

.rr-label-text{
	position: absolute;
	top:57%;
	left:32%;
}
.route-recommend .rr-pill.rr-with-check::before{
  content: "";
  position: absolute;
  left: calc(.45rem + 11px);  /* 22px枠の中央 = .45rem + 11px */
  top: 50%;
  width: 17px;                /* 長い辺（右上がり） */
  height: 30px;               /* 短い辺（左下の跳ね） */
  transform: translate(-50%, -60%) rotate(45deg);
  border-right: 7px solid var(--rr-check);
  border-bottom: 7px solid var(--rr-check);
  border-radius: 2px;
}

.route-recommend ::before {
  left: 0;
  transform: rotate(20deg);
}
.route-recommend ::after {
  left: 36px;
  transform: rotate(-20deg);
}

/* 画像とテキストの重ね用ラッパー */
.rr-side-figure {
  display: inline-block;     /* 親の text-center と組み合わせて中央に */
  position: relative;
}

/* 画像上にテキストを重ねる */
.over-image {
  position: absolute;
  left: 54%;
  top: -2%;                   /* 見出しの縦位置：お好みで調整可（% or px） */
  transform: translateX(-50%);
  margin: 0;
  width: 100%;               /* 長い文でも折り返して収まるように */
  text-align: center;
  color: var(--color-main, #450e08);
  line-height: 1.2;
	font-size: clamp(14px, 2vw, 16px);}

/* 画面幅が狭いときは少し上に寄せるなどの微調整 */
@media (max-width: 575.98px){
  .over-image { top: 0; }
}
/* モバイル微調整 */
@media (max-width: 767.98px) {
  .route-recommend  { text-align: center; }
  .route-recommend .rr-pill.rr-with-check{
    padding-left: calc(.7rem + 22px); /* ほんの少しだけ詰める */
  }
	.over-image{
	max-width: 70%;
	}
}

.rootimage{
	padding-top: 50px;
}

.company{
	background-color: #FDF7E9;
	padding: 2vw 0;
}

/* 横並び＆中央寄せ */
.company-inner {
  display: flex;
  align-items: center;   /* 縦位置を揃える */
  justify-content: center; /* 横方向の中央寄せ。左寄せなら 'flex-start' */
  gap: 16px;             /* 画像同士の隙間（お好みで） */
  flex-wrap: wrap;       /* 画面が狭いときは折り返す場合はON、折り返したくなければ削除 */
}

/* 画像の共通調整（幅の最大値や高さ調整が必要なら指定） */
.company-inner img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* 必要に応じて個別サイズを指定 */
.company-app { width: 260px; }   /* 例：ロゴサイズ */
.company-app2 { width: 160px; }  /* 例：ロゴサイズ */

/* 色やサイズをここでまとめて管理 */
:root {
  --ribbon-font: "Noto Sans JP", system-ui, -apple-system, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --ribbon-color: #4b1212;    /* 文字色（濃い赤茶） */
  --ribbon-accent: #e6dd3f;   /* 黄色ライン */
  --ribbon-angle: -7deg;      /* 全体の傾き（画像に近い軽めの傾き） */
  --ribbon-line-angle: -1.5deg; /* ラインの傾き */
  --ribbon-line-height: 0.5em;/* ラインの太さ（文字サイズに追従） */
  --ribbon-line-offset: 0.15em; /* ラインの縦位置（ベースラインより下へ） */
}

.ribbon-text {
  position: relative;
  display: inline-block;
  font-family: var(--ribbon-font);
  font-weight: 900;
  /* レスポンシブな文字サイズ：最小16px〜最大36pxくらい */
  font-size: clamp(16px, 2.6vw, 36px);
  line-height: 1.1;
  color: var(--ribbon-color);
  letter-spacing: 0.02em;
  transform: rotate(var(--ribbon-angle));
  /* 視認性を少し上げるシャドウ（お好みで） */
  text-shadow: 0 1px 0 rgba(0,0,0,0.05);
}

/* 黄色の斜めライン（後ろに敷く） */
.ribbon-text::after {
  content: "";
  position: absolute;
  left: -4%;         /* 少し左右にはみ出させて“帯っぽく” */
  right: -4%;
  /* テキストのベースラインより少し下に敷く */
  bottom: calc(var(--ribbon-line-offset) * -1);
  height: var(--ribbon-line-height);
  background: var(--ribbon-accent);
  transform: rotate(var(--ribbon-line-angle));
  transform-origin: left center;
  z-index: -1;       /* テキストの背面に置く */
  border-radius: 2px;
}


.map { position: relative; /* 既出のmapスタイル流用 */ }
.map-pin {
  position: absolute;
  left: var(--x);
  top: var(--y);
  transform: translate(-50%, -50%) rotate(var(--ribbon-angle));
}


/* ベース（枠線ありの吹き出し） */
.bubble {
  --bg: #fff;                          /* 吹き出しの背景色 */
  --border: rgba(0,0,0,.12);           /* 枠線色 */
  --radius: 15px;
  --shadow: 0 6px 16px rgba(0,0,0,.06);
  --tail: 18px;                        /* しっぽの基本サイズ（三角の高さ） */

  position: relative;
  background: var(--bg);
  color: var(--color-main, #450e08);
  border-radius: var(--radius);
  border: 3px solid var(--border);     /* 枠線 */
  padding: 0.85rem 1rem;
  box-shadow: var(--shadow);
  line-height: 1.6;
}

/* ============ 下向きしっぽ（2層） ============ */
/* 1) 外側：枠線用三角（少し大きめ） */
.bubble--bottom::before {
  content: "";
  position: absolute;
  left: 20%;                           /* しっぽの水平位置。画像に合わせて微調整 */
  bottom: calc(-1 * var(--tail) - 3px);/* 外枠ぶん 3px だけ更に外へ */
  transform: translateX(-50%);
  /* 枠線色の大きい三角形（▼） */
  border-left:  calc(var(--tail) * .9) solid transparent;
  border-right: calc(var(--tail) * .9) solid transparent;
  border-top:   calc(var(--tail) + 3px) solid var(--border);
}

/* 2) 内側：塗りつぶし三角（小さめ、枠線三角の上に重ねる） */
.bubble--bottom::after {
  content: "";
  position: absolute;
  left: 20%;
  bottom: calc(-1 * var(--tail));
  transform: translateX(-50%);
  /* 背景色の小さい三角形（▼） */
  border-left:  calc(var(--tail) * .8) solid transparent;
  border-right: calc(var(--tail) * .8) solid transparent;
  border-top:   var(--tail) solid var(--bg);
  filter: drop-shadow(0 4px 6px rgba(0,0,0,.06)); /* 影の一体感を少し足す（任意） */
}

/* ============ 上向きしっぽ（2層） ============ */
.bubble--top::before {
  content: "";
  position: absolute;
  left: 20%;
  top: calc(-1 * var(--tail) - 3px);
  transform: translateX(-50%);
  border-left:  calc(var(--tail) * .9) solid transparent;
  border-right: calc(var(--tail) * .9) solid transparent;
  border-bottom: calc(var(--tail) + 3px) solid var(--border);
}
.bubble--top::after {
  content: "";
  position: absolute;
  left: 20%;
  top: calc(-1 * var(--tail));
  transform: translateX(-50%);
  border-left:  calc(var(--tail) * .8) solid transparent;
  border-right: calc(var(--tail) * .8) solid transparent;
  border-bottom: var(--tail) solid var(--bg);
  filter: drop-shadow(0 4px 6px rgba(0,0,0,.06));
}

/* PC幅（≥992px）のときだけ広げる例 */
@media (min-width: 992px) {
  #newsModal .modal-dialog {
    --bs-modal-width: 960px; /* Bootstrap 5 なら推奨のカスタムプロパティ */
  }
}

/* ▼ 通常状態：控えめ */
.gradient-pill {
  --g1: #F7B415;
  --g2: #E77725;
  --g3: #B81A20;

  background: #fff;
  color: #450e08;
  border: 2px solid #e0d5c5;
  font-weight: 700;
  transition: all 0.2s ease;
}

/* ▼ hover時だけグラデーション */
.gradient-pill:hover {
  background: linear-gradient(90deg, var(--g1), var(--g2), var(--g3));
  color: #fff;
  border-color: transparent;
  transform: translateY(-1px);
}

/* アクセシビリティ：キーボードフォーカス枠 */
.gradient-pill:focus-visible {
  outline: 3px solid rgba(255,255,255,.8);
  outline-offset: 2px;
}
.qr-box {
  max-width: 400px;   /* ← 枠を小さくする本命 */
  margin: 0 auto;     /* 中央寄せ */
}

.section-lead {
  font-size: clamp(22px, 3.5vw, 32px)!important;
  font-weight: 800!important;
}


@media (max-width: 991.98px) {
  .navbar-nav .nav-link {
    padding-left: 1.25rem; /* お好み：20px 相当 */
  }
}

/* Function 番号バッジのサイズアップ & フォント太字 */
.function-num {
  font-size: 1.25rem;      /* ← バッジ内の数字を大きく（20px相当） */
  font-weight: 900;        /* ← フォントを太く */
  padding: 0.35em 0.65em;  /* ← バッジ全体をひとまわり大きく */
  min-width: 2.8em;        /* ← 横幅も少し広げる（お好みで調整可） */
}


/* ===== Share buttons (inline SVG) ===== */
.share-buttons { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; justify-content: center; }
.share-btn {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .55rem .9rem; border-radius: 999px; font-weight: 700;
  color: #fff; text-decoration: none; line-height: 1; border: 0;
  box-shadow: 0 6px 14px rgba(0,0,0,.12); transition: transform .06s ease, filter .12s ease;
}
.share-btn:hover, .share-btn:focus { transform: translateY(-1px); filter: brightness(1.03); color: #fff; text-decoration: none; }
.share-btn svg { width: 20px; height: 20px; display: inline-block; }

/* ブランドカラー */
.share-x      { background-color: #000000; }
.share-fb     { background-color: #1877F2; }
.share-line   { background-color: #06C755; }
.share-copy   { background-color: #555555; }

/* アイコンのみ版（狭い画面用にテキスト省略したくなったら） */
@media (max-width: 375px){
  .share-btn .label { display:none; }
}


.now-download {
  cursor: default;
}

/* ===== Share buttons : color fixed ===== */
.share-btn,
.share-btn:visited,
.share-btn:hover,
.share-btn:focus,
.share-btn:focus-visible,
.share-btn:active {
  color: #fff !important;
  text-decoration: none !important;
}

/* =========================
  Scroll Fade-in Animation
========================= */

/* 初期状態（非表示） */
.fadein {
  opacity: 0;
  transform: translateY(40px);
  transition:
    opacity 0.8s ease,
    transform 0.8s ease;
}

/* 表示状態 */
.fadein.is-show {
  opacity: 1;
  transform: translateY(0);
}

/* motion削減設定（アクセシビリティ配慮） */
@media (prefers-reduced-motion: reduce) {
  .fadein {
    transition: none;
    opacity: 1;
    transform: none;
  }
	.fadein[data-delay] {
  transition-delay: var(--delay);
}

}

/* HERO右側配置 */
.hero-overlay-right{
  position:absolute;
  inset:0;
  display:flex;
  justify-content:flex-end;
  align-items: flex-start; /* 上寄せ */
  padding-top: 5%;         /* 上からの位置（調整用） */
  padding-right:5%;
  pointer-events:auto;
}

/* 全体は縦並び */
.hero-download{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:20px;
  max-width:320px;
  padding:20px 16px;
  border-radius:16px;
  background:rgba(255,255,255,0.85);
}

/* QR＋ストア行：PCは縦 */
.hero-stores{
  display:flex;
  flex-direction:column;   /* ← PCは縦 */
  gap:20px;
}

/* 各ストア */
.hero-store{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
}

.hero-qr{ max-width:140px; }
.hero-store-badge{ max-width:180px; }
.hero-cta{
  margin-top:5px;
  text-align:center;
}

@media (max-width: 767.98px){
  /* HEROの重ねを解除 */
  .hero-overlay-right{
    position:static;
    justify-content:center;
    padding:16px;
  }

  .hero-download{
    background:transparent;
    padding:0;
  }

  /* ★ここがポイント：QRだけ横並び */
  .hero-stores{
    flex-direction:row;     /* ← 横並び */
    justify-content:center;
    gap:16px;
  }

  .hero-qr{ max-width:110px; }
  .hero-store-badge{ max-width:140px; }
}

.now-download {
  display: inline-block;
  text-align: center;
  text-decoration: none;   /* aタグの下線を消す */
  cursor: pointer;
	padding-left: 0.5em;
  padding-right: 0.5em;
}

/* hover時の演出（任意） */
.now-download:hover {
  filter: brightness(1.05);
  transform: translateY(-1px);
  text-decoration: none;
}

.hero-cta {
  white-space: normal;        /* ← 改行を許可 */
  word-break: break-word;     /* ← 長い単語も折り返す */
  text-align: center;         /* ← 改行後も見た目きれい */
	max-width: 220px;
}

.download-txt {
  display: inline-block;
  cursor: default;     /* ← 指にならない */
  border-radius: 999px;
  font-weight: 700;
  font-size: clamp(16px, 2.5vw, 18px);
  line-height: 3;	
  background-color: #ef821d; /* 好きな色に変更 */
  color: #ffffff;

}

/* トップへボタン */
#backToTop {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 9999;

  width: 50px;
  height: 50px;
  border: none;
  border-radius: 50%;

  background-color: #450e08;
  color: #fff;
  font-size: 20px;
  font-weight: bold;

  cursor: pointer;
  opacity: 0;
  visibility: hidden;

  transition: opacity 0.3s, transform 0.2s;
}

/* 表示状態 */
#backToTop.show {
  opacity: 1;
  visibility: visible;
	box-shadow: 0 6px 15px rgba(0,0,0,0.2);
}

/* ホバー */
#backToTop:hover {
  transform: translateY(-3px);
  background-color: #2e0905;
}

.area-buttons p{
  font-size: clamp(14px,2vw,16px);
}

.area-buttons .btn{
  font-weight: 700;
  border-radius: 999px;
  padding: 0.4rem 0.9rem;
}

/* ホバーで目立たせる */
.area-buttons .btn:hover{
  background-color: #450e08;
  color: #fff;
  border-color: #450e08;
}


/* ===== Hero直下カルーセル：位置 ===== */
#route-carousel {
  margin-top: 24px;
}

/* ===== カルーセル基準 ===== */
#routeCarousel {
  position: relative;
}

/* ===== 各スライドをカード化（中身は中央寄せしない） ===== */
#routeCarousel .carousel-item {
  padding: 0;
}

/* カード本体（中に1段ラッパーを作る想定） */
/* カルーセルカードを画像背景にする */
#routeCarousel .carousel-card {
  background-image: url("../images/stnavi01.jpg"); /* ←使いたい画像 */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;

  border-radius: 20px;
  padding: 32px 24px 50px;
  max-width: 720px;
  margin: 0 auto;
  position: relative;
  overflow: hidden;
  border: 3px solid #ef821d;
}

/* 文字を読みやすくするための暗幕（推奨） */
#routeCarousel .carousel-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.78); /* 白幕 */
  z-index: 0;
}

/* 中身は前面に */
#routeCarousel .carousel-card > * {
  position: relative;
  z-index: 1;
}

/* ===== テキスト ===== */
.carousel-title {
  font-weight: 900;
  font-size: clamp(20px, 2.8vw, 30px);
  color: var(--color-main, #450e08);
  margin-bottom: 0.5rem;
}

.carousel-text {
  max-width: 40ch;
  margin: 0 auto 0.75rem;
  font-size: clamp(14px, 2.2vw, 18px);
}

/* ===== CTA ===== */
.carousel-link {
  display: inline-block;
  font-weight: 700;
  color: #fff;
  background-color: #ef821d;
  padding: 0.4em 1.2em;
  border-radius: 999px;
  text-decoration: none;
}

.carousel-link:visited,
.carousel-link:hover,
.carousel-link:active,
.carousel-link:focus,
.carousel-link:focus-visible {
  color: #fff;
  background-color: #ef821d;
  text-decoration: none;
  outline: none;
}


/* ===== インジケーター（最終調整版） ===== */
#routeCarousel .carousel-indicators {
  position: absolute;
  bottom: -5px;
  z-index: 10;
}

#routeCarousel .carousel-indicators button {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: #9a7f7b;
  opacity: 1;
  border: 1px solid rgba(0,0,0,.25);
}

#routeCarousel .carousel-indicators .active {
  background-color: #450e08;
  border-color: #450e08;
}

/* ===== ▶◀ ナビ（見える・控えめの両立） ===== */
#routeCarousel .carousel-control-prev,
#routeCarousel .carousel-control-next {
  width: 40px;
  height: 40px;
  top: 50%;
  transform: translateY(-50%);
  background-color: rgba(255,255,255,0.85);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,.18);

  opacity: 0.7;
  z-index: 20;
}

/* hover時のみ少し強調 */
#routeCarousel:hover .carousel-control-prev,
#routeCarousel:hover .carousel-control-next {
  opacity: 1;
}

/* 矢印アイコンを確実に濃色に */
#routeCarousel .carousel-control-prev-icon,
#routeCarousel .carousel-control-next-icon {
  width: 18px;
  height: 18px;
}
/* ◀ 左矢印 */
#routeCarousel .carousel-control-prev-icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23450e08'%3E%3Cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3E%3C/svg%3E");
}

/* ▶ 右矢印 */
#routeCarousel .carousel-control-next-icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23450e08'%3E%3Cpath d='M4.646 1.646a.5.5 0 0 0 0 .708L10.293 8l-5.647 5.646a.5.5 0 0 0 .708.708l6-6a.5.5 0 0 0 0-.708l-6-6a.5.5 0 0 0-.708 0z'/%3E%3C/svg%3E");
}

/* ▼ ルートカード */
.route-card {
  background-size: 100% auto;
  background-position: center;
  background-repeat: no-repeat;
  background-color: #fdf7e9;
  min-height: 160px;
  padding: 24px;
  border-radius: 16px;
  border: 3px solid #ef821d;
  box-shadow: 0 6px 18px rgba(0,0,0,.08);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: relative;
  overflow: hidden;
}

.route-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
	
}

.route-card-title {
  font-weight: 900;
  font-size: 1.5rem;
  margin-bottom: .5rem;
	margin-top: 1.5rem;
}
.route-card-text {
  font-size: 1.2rem;
  opacity: .85;
}

.route-bg-1 {
  background-image: url("../images/route1.jpg");
	background-size: 110%;
}

.route-bg-2 {
  background-image: url("../images/route2.jpg");
	background-size: 110%;
}

.route-bg-3 {
  background-image: url("../images/route3.jpg");
	background-size: 110%;
}

/* ▼ モーダル内 */
.route-map img {
  max-height: 420px;
  object-fit: contain;
}
.route-desc {
  line-height: 1.7;
  font-size: 0.95rem;
}


.route-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.75); /* ← 白の薄さ */
  z-index: 0;
}

.route-card > * {
  position: relative;
  z-index: 1;
}

/* タブレット〜PCだけ縮小 */
@media (max-width: 950px) and (min-width: 768px) {
  .hero-download {
    transform: scale(0.6);
    transform-origin: top right;
  }
}

.hero-cta,
.hero-cta:visited,
.hero-cta:hover,
.hero-cta:active,
.hero-cta:focus{
  color: #ffffff !important;
  text-decoration: none !important;
}

@media (max-width: 767.98px){
 .hero-overlay-left{
  pointer-events: none;
 }
}