/* START-TRUST Renewal Styles */
/* 作成日: 2025-08-30 */

/* Hero見出しの中央寄せ */
.ph-title {
    text-align: center !important;
}

/* MESSAGEセクションの文字間隔調整 */
.ph-prose p {
    letter-spacing: 0.05em;
    line-height: 1.7;
}

/* ===== coating-menu.php用CSS ===== */
/* 作成日: 2025-01-27 */

/* カードの影とボーダー（coating-menu.php専用） */
.modern-card {
    border: none;
    box-shadow: 0 10px 30px rgba(0,0,0,0.1);
    transition: all 0.3s ease;
}

.modern-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(0,0,0,0.15);
}
/* ▼ 各ブロックの幅を画面幅にフィットさせる */
/* Bootstrap未使用箇所の中央寄せ対策 */
/* ▼ 素のまま宣言バンド */
@media(max-width:767px) {
    .pc {
        display: none !important;
    }
    .phone {
        display: block !important;
    }
}
.carousel-inner {
    margin: 0 !important;
}
.carousel-inner::after {
    margin: 0 !important;
}
#plain-pledge {
    background-color: transparent;
}
/* ▲ 素のまま宣言バンド */
/* ===== Plain Pledge: taste alignment (center/serif/spacing) ===== */
#plain-pledge .row.align-items-center {
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
    /*border-top: 1px solid #e9ecef;*/
    border-bottom: 1px solid #e9ecef;
}
#plain-pledge .col-12 {
    text-align: center; /* 全体をセンタリング */
}
/* ボタンは中央で少し大きめ・触りやすく */
#plain-pledge .btn {
    min-width: 240px;
    padding: .85rem 1rem;
}
#plain-pledge .btn + .btn {
    margin-left: .75rem;
}
#plain-pledge-reasons {
    margin-top: 1rem; /* ボタン列との距離をゆったり */
    margin-bottom: 1.5rem;
}
#plain-pledge-reasons li {
    margin-right: 1.1rem;
}
/* SP最適化：ボタンは縦積みでフル幅、間隔を均等に */
@media (max-width: 767.98px) {
    #plain-pledge .btn {
        width: 100%;
    }
    #plain-pledge .btn + .btn {
        margin-left: 0;
    }
}
/* ===== Plain Pledge: spacing adjustment ===== */
#plain-pledge .btn {
    margin-top: 1.5rem; /* 説明文との距離をさらに調整 */
    margin-bottom: 1.5rem;
}
/* ===== In-page navigation: smooth scroll and header offset ===== */
/* なめらかなスクロール（ユーザーが減速設定なら無効化） */
/* Step3: plain-pledge の実DOM調整（追記） */
#plain-pledge .lead {
    font-family: "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
    letter-spacing: .02em;
    margin-bottom: .25rem;
}
#plain-pledge .fs-6 {
    line-height: 1.9;
    margin-top: .5rem;
    margin-bottom: 1.25rem; /* ボタン列との間を確保 */
}
/* “もう少し広め”にしたい場合は ↑ の代わりにこちらを使う（任意）
#plain-pledge .fs-6 { line-height: 1.9; margin-top: 2rem; margin-bottom: 2rem; }
*/
html {
    scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}
/* アンカー要素をブロック化して scroll-margin を効かせる */
#about-shop, #about-booth, #about-tech {
    display: block;
    /* PCの固定ヘッダー高さぶんだけ余白をとる（必要なら数値調整可） */
    scroll-margin-top: 96px;
}
/* SPはヘッダーが高くなりがちなので、余白を少し増やす */
@media (max-width: 767.98px) {
    #about-shop, #about-booth, #about-tech {
        scroll-margin-top: 120px;
    }
}
/* ▼ voiceブロック（お客様の声） */
#voice-block .card {
    transition: all 0.2s ease-in-out;
    border-radius: 0.75rem;
}
#voice-block .card:hover {
    transform: translateY(-4px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
}
#voice-block .card-img-top {
    object-fit: cover;
    border-top-left-radius: 0.75rem;
    border-top-right-radius: 0.75rem;
}
#voice-block .card-body {
    padding: 1rem;
}
#voice-block .card-text {
    line-height: 1.6;
}
#voice-block h2 {
    font-weight: 500;
    font-size: 1.8rem;
}
#voice-block .btn-outline-secondary {
    border-radius: 2rem;
    padding: 0.5rem 1.5rem;
}
/* ▲ voiceブロック */
/* ▼ ローカル・クイックアンサー帯 */
#local-answers {
    background: #fff;
    border-top: 1px solid #eee;
    border-bottom: 1px solid #eee;
}
#local-answers .small {
    color: #6c757d; /* 説明ラベルを控えめに */
    letter-spacing: .02em;
}
#local-answers .fw-bold {
    font-weight: 600 !important;
    line-height: 1.2;
}
#local-answers a.fw-bold {
    text-decoration: none;
    border-bottom: 1px dotted rgba(0, 0, 0, .25);
}
#local-answers a.fw-bold:hover {
    border-bottom-color: transparent;
}
#local-answers .btn {
    border-radius: 9999px; /* 小さなピル型ボタン */
    padding: .4rem 1rem;
}
/* SPで詰まり過ぎないように微調整 */
@media (max-width: 767.98px) {
    #local-answers .row > [class*="col-"] {
        margin-top: .25rem;
    }
}
/* ▲ ローカル・クイックアンサー帯 */
/* ▼ ヘッダー：営業情報（テキスト化） */
/* ▼ header layout styling */
.header-row {
    gap: 1rem;
    flex-wrap: wrap;
}
.header-right ul.list-inline {
    list-style: none;
    padding-left: 0;
    margin-bottom: 0;
    line-height: 1.4;
}
.header_hours time {
    font-variant-numeric: tabular-nums;
}
/* サイトマップ／プライポリは小さく控えめに */
.header-right nav {
    font-size: 0.78rem;
    color: #666;
    line-height: 1.2;
}
/* 行間・余白調整 */
.header-right .list-inline-item + .list-inline-item {
    margin-left: 1rem;
    padding-left: 1rem;
    border-left: 1px solid #ccc;
}
/* レスポンシブ時のバランス（念のため） */
@media (min-width: 992px) {
    .header-row {
        align-items: flex-start;
        padding-top: 0.5rem;
        padding-bottom: 0.5rem;
    }
}
/* ▼ header最終調整：バランスと位置合わせ */
/* ① ロゴ画像の下切れ解消：高さ制限解除 */
.logo.pc img {
    max-height: none;
}
/* ② 営業情報：ロゴと垂直バランスを取るため、下に配置 */
.header_hours {
    margin-top: 1.25rem; /* ← ここで下に落とす */
}
/* ③ サイトマップ／プライポリ：右上から本文説明文と横並びにする */
.site-description {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.95rem;
    line-height: 1.6;
}
.site-description::after {
    content: '';
    flex: 1;
}
.site-description + .header-right nav {
    position: absolute;
    top: 0.25rem;
    right: 0;
    font-size: 0.75rem;
    color: #666;
}
/* Step4: Header ≤1200px consolidate */
@media (max-width: 1200px) {
    .header-row {
        flex-direction: row;
        align-items: center; /* 縦中央 */
        height: auto;
    }
    .header-right {
        display: flex;
        flex-direction: column; /* 縦積み */
        align-items: flex-end; /* 右寄せ */
        font-size: .82rem;
        line-height: 1.4;
        margin: 0; /* 余計な上余白を打消し（margin-top:0 を包含） */
    }
    .site-description + .header-right nav {
        position: static !important; /* 絶対配置を解除 */
        top: auto;
        right: auto;
        margin-bottom: .25rem;
        text-align: right;
    }
    .header_hours {
        margin-top: 0 !important; /* PC用 1.25rem を打消し */
        text-align: right;
        font-size: .82rem; /* ここを小さめにする設計で統一 */
        line-height: 1.4;
    }
    .header-right ul.list-inline {
        display: flex;
        flex-direction: column;
        align-items: flex-end;
        margin: 0;
    }
    .header-right .list-inline-item {
        display: block;
        margin: 0;
        padding: 0;
        border: 0;
    }
}
.main .col-12, .main .col-md-9 {
    padding-left: 0;
    padding-right: 0;
}
/* === Header catch (H1降格の見た目維持) === */
.header-catch {
    font-size: clamp(18px, 2.4vw, 26px);
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
}
/* === trust（H1周辺・共通） === */
.intro-trust {
    margin-top: .5rem;
}
.trust-metrics {
    padding: 0;
}
.trust-chip {
    display: inline-block;
    padding: .25rem .6rem;
    border: 1px solid var(--bs-border-color, #e5e7eb);
    border-radius: .5rem;
    font-weight: 700;
    font-size: clamp(12px, 1.4vw, 14px);
    background: #fff;
}
.intro-bridge {
    margin: .25rem 0 0;
    font-size: clamp(13px, 1.6vw, 15px);
    color: #555;
}
/* ===== S-02 Hero (coating-hassuiN) ===== */
.hero-hassuiN {
    position: relative;
    padding: clamp(28px, 6vw, 80px) 0;
    /* 画像が未用意でも破綻しない：上に淡いグラデ、下に仮画像 */
    background-image:
        linear-gradient(180deg, rgba(246, 249, 255, .92) 0%, rgba(255, 255, 255, .95) 100%), url("/img/og/og-coating-hassui-1200x630.jpg");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
/* タイトル／リード／注記のベースライン（サイズはclampで安定） */
.hero-hassuiN .hero-title {
    margin: 0 0 .35em;
    font-size: clamp(24px, 5vw, 44px);
    font-weight: 800;
    letter-spacing: .02em;
}
.hero-hassuiN .hero-lead {
    margin: 0 0 .75rem;
    font-size: clamp(14px, 2.2vw, 18px);
    line-height: 1.8;
    color: #2b2b2b;
}
.hero-hassuiN .hero-note {
    margin: .25rem 0 0;
    font-size: clamp(12px, 1.8vw, 14px);
    color: #6b7280; /* muted */
}
/* ヒーローに trust は置かない（念のため非表示） */
.hero-hassuiN .hero-trust {
    display: none !important;
}
/* === はっ水が効く条件（旧section-intro） */
#coating-condition .trust-metrics {
    margin-top: .25rem;
    padding: 0;
}
#coating-condition .trust-chip {
    display: inline-block;
    padding: .25rem .6rem;
    border: 1px solid var(--bs-border-color, #e5e7eb);
    border-radius: .5rem;
    font-weight: 700;
    font-size: clamp(12px, 1.4vw, 14px);
    background: #fff;
}
.card-pledge {
    display: flex;
    flex-direction: column;
    height: 100%;
}
/* --- 三要素カード内テキスト位置を完全に揃える（統合版） --- */
.card-pledge .card-body {
    flex-grow: 1; /* カード内で高さを確保 */
    padding-bottom: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    min-height: 160px; /* 統一値（以前の170pxは不使用） */
}
.card-pledge .card-body h5 {
    margin-bottom: 1rem;
    min-height: 1.5em; /* タイトル高さで段差防止 */
}
.card-pledge .card-body p {
    flex-grow: 1;
    display: flex;
    align-items: flex-start; /* テキスト上揃え */
    line-height: 1.75;
}
/* ▼ pledgeカード：枠線とタイトルマーカー */
.card-pledge {
    border: 1px solid #ddd !important; /* 枠をグレーに統一 */
}
.card-pledge .pledge-title {
    color: #111; /* タイトルは黒に */
    font-weight: 600;
    font-size: 1rem;
    display: flex;
    align-items: center;
    gap: .5rem;
}
/* ▼ pledgeマーカー色分け */
.pledge-marker {
    display: inline-block;
    width: 6px;
    height: 18px;
    border-radius: 1px;
    background-color: #0ea5e9; /* デフォルト（商品知識） */
}
.marker-env {
    background-color: #10b981; /* 施工環境（緑） */
}
.marker-tech {
    background-color: #f59e0b; /* 施工技術（山吹色） */
}
/* ============================= */
/* #menu-hassui 専用スタイル     */
/* ============================= */
#menu-hassui {
    background: #f8f9fa;
}
.menu-hassui-wrapper {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 2rem;
}
.menu-card {
    background: #fff;
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.menu-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}
.menu-card-visual img {
    width: 100%;
    height: auto;
    display: block;
}
.menu-card-body {
    padding: 1.25rem;
}
.menu-card-title {
    font-size: 1.4rem;
    font-weight: 700;
}
.menu-card-catch {
    font-size: 1rem;
    color: #555;
    margin-bottom: 0.75rem;
}
.menu-card-points {
    padding-left: 1.2rem;
    margin-bottom: 1rem;
}
.menu-card-points li {
    margin-bottom: 0.25rem;
    font-size: 0.95rem;
}
.menu-card-recommend {
    font-weight: 600;
    color: #0d6efd;
}
.menu-card-links {
    display: flex;
    gap: 0.5rem;
    margin-top: 1rem;
}
/* =========================================================
   Cinematic Menu (Hassui) — SAFE REWRITE (scoped)
   目的：
   - 上位シーンは白字＆動画/画像の上に表示（装飾は最小限）
   - 価格パネル（.cinemenu-detail--price）は “元の白背景/黒文字” を保ち、
     横スクロールOK・開閉OK・カラー上書きしない
   - :target / has の“強制開”は使わない（揺れ/点滅対策はしない）
   - 影響範囲は #menu-hassui 配下に限定
========================================================= */
/* ベース：シーン */
#menu-hassui .cinemenu-scene {
    position: relative;
    isolation: isolate;
    min-height: 78vh;
    padding-block: clamp(40px, 8vw, 88px);
}
/* 背景メディア（積層：画像0 < 動画1 < マスク2 < 減光3 < テキスト4） */
#menu-hassui .cinemenu-media {
    position: absolute;
    inset: 0;
    overflow: hidden;
    background: #000;
}
#menu-hassui .cinemenu-media .cinemenu-fallback {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}
#menu-hassui .cinemenu-media .cinemenu-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    z-index: 1;
}
@media (prefers-reduced-motion: reduce) {
    #menu-hassui .cinemenu-media .cinemenu-video {
        display: none;
    }
}
/* ドット＋薄いベール（控えめ） */
#menu-hassui .cinemenu-media::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 2;
    --dot-color: rgba(146, 146, 146, .08);
    --dot-size: 1px;
    --dot-gap: 5px;
    --veil: rgba(0, 0, 0, .45);
    background:
        radial-gradient(circle, var(--dot-color) 0 var(--dot-size), transparent calc(var(--dot-size) + 1px)) 0 0 / var(--dot-gap) var(--dot-gap), var(--veil);
}
/* 詳細オープン時に少し暗くしたい場合だけ使う。初期は見えない */
#menu-hassui .cinemenu-media::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 3;
    background: rgba(0, 0, 0, 0);
    opacity: 0;
    transition: opacity .35s ease;
}
/* “どこかの詳細が開いたら”暗くする（強制ではなく視覚補助） */
#menu-hassui .cinemenu-scene:has(.detail-toggle:checked) .cinemenu-media::before {
    background: rgba(0, 0, 0, .82);
    opacity: 1;
}
#menu-hassui .cinemenu-scene:has(.detail-toggle:checked) .cinemenu-media::after {
    opacity: .4;
}
/* テキストコンテンツ（最前面） */
#menu-hassui .cinemenu-content {
    position: relative;
    z-index: 4;
    padding: clamp(2rem, 5vw, 4rem) 0;
}
/* 文字色を“必要な要素だけ”白にする（* で全子孫は塗らない） */
#menu-hassui .cinemenu-title, #menu-hassui .cinemenu-lead, #menu-hassui .cinemenu-badge, #menu-hassui .cinemenu-meters, #menu-hassui .cinemenu-cta .btn-detail, #menu-hassui .cinemenu-link {
    color: #fff !important;
}
/* タイトルの装飾オフ（左線/下線など） */
#menu-hassui .cinemenu-title {
    margin: .25rem 0 1rem;
    font-size: clamp(1.6rem, 2.6vw, 2.4rem);
    letter-spacing: .02em;
    font-weight: 800;
    border: 0 !important;
    box-shadow: none !important;
    background-image: none !important;
    text-decoration: none !important;
}
#menu-hassui .cinemenu-title.tri-line_left {
    border-left: 0 !important;
    padding-left: 0 !important;
}
#menu-hassui .cinemenu-title::before, #menu-hassui .cinemenu-title::after {
    content: none !important;
}
/* リード／バッジ */
#menu-hassui .cinemenu-lead {
    font-size: clamp(1rem, 1.6vw, 1.1rem);
    opacity: 1;
}
#menu-hassui .cinemenu-badge {
    display: inline-block;
    margin-bottom: .75rem;
    padding: .25rem .6rem;
    font-size: .9rem;
    background: transparent;
    border: 1px solid rgba(255, 255, 255, .65);
    border-radius: 999px;
}
/* メーター */
#menu-hassui .cinemenu-meters {
    display: flex;
    gap: 1.25rem;
    list-style: none;
    padding: 1rem 0 0;
    margin: 0 0 1.25rem;
}
#menu-hassui .cinemenu-meters .meter-label {
    min-width: 3.5em;
    opacity: 1;
}
#menu-hassui .cinemenu-meters .dot {
    display: inline-block;
    width: .6rem;
    height: .6rem;
    margin: 0 .12rem;
    border-radius: 50%;
    background: rgba(255, 255, 255, .35);
}
#menu-hassui .cinemenu-meters .dot.is-on {
    background: #ffc107 !important;
}
/* CTA */
#menu-hassui .cinemenu-cta {
    margin-top: 1rem;
    display: flex;
    flex-wrap: wrap;
    gap: .5rem .75rem;
}
/* 詳しくボタンのみ白地/黒文字。その他ボタンは触らない（非表示もしない） */
#menu-hassui .cinemenu-cta .btn-detail {
    background: #fff !important;
    color: #000 !important;
    border: 1px solid #fff !important;
}
/* 詳細パネル（共通：説明用のみ白字。価格パネルは除外） */
#menu-hassui .cinemenu-detail {
    margin-top: clamp(10px, 1.8vw, 16px);
}
#menu-hassui .cinemenu-detail .detail-toggle {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
#menu-hassui .cinemenu-detail .detail-panel {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transform: translateY(-4px);
    transition: max-height .55s ease, opacity .35s ease, transform .35s ease;
    border-top: 1px solid rgba(255, 255, 255, .25);
    padding-top: 0;
    margin-top: .5rem;
}
#menu-hassui .cinemenu-detail:not(.cinemenu-detail--price) .detail-panel {
    color: #fff;
}
#menu-hassui .cinemenu-detail .detail-toggle:checked ~ .detail-panel {
    max-height: 1800px;
    opacity: 1;
    transform: none;
    padding-top: .75rem;
}
/* 説明パネル：開いている時だけ2カラム（価格パネルは対象外） */
#menu-hassui .cinemenu-detail:not(.cinemenu-detail--price) .detail-toggle:checked ~ .detail-panel {
    display: grid;
    grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr);
    gap: clamp(12px, 2.2vw, 28px);
    align-items: start;
}
#menu-hassui .detail-main {
    min-width: 0;
}
#menu-hassui .detail-side .bottle {
    margin: 0;
}
#menu-hassui .detail-side img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
    max-height: clamp(220px, 32vh, 420px);
}
@media (max-width: 767.98px) {
    #menu-hassui .cinemenu-detail:not(.cinemenu-detail--price) .detail-toggle:checked ~ .detail-panel {
        grid-template-columns: 1fr;
    }
    #menu-hassui .detail-side {
        margin-top: .5rem;
    }
}
/* 見出し・本文組み（説明パネル） */
#menu-hassui .detail-heading {
    margin-bottom: .4rem;
    font-weight: 700;
}
#menu-hassui .detail-lead {
    margin-bottom: .75rem;
    line-height: 1.9;
}
#menu-hassui .detail-points {
    margin: 0 0 .75rem;
    padding-left: 1.1rem;
}
#menu-hassui .detail-points li {
    margin: .15rem 0;
}
#menu-hassui .detail-specs dl {
    display: grid;
    grid-template-columns: max(120px, 26%) 1fr;
    gap: .35rem .75rem;
    margin: .5rem 0 0;
}
#menu-hassui .detail-specs dd {
    margin: 0;
}
/* ---------------------------------------------------------
   価格パネル（.cinemenu-detail--price）
   - 白背景/黒文字を維持
   - 横スクロールを強制ON
   - display/grid を強制しない（既存のテーブル幅を尊重）
--------------------------------------------------------- */
#menu-hassui .cinemenu-detail--price .detail-panel {
    /* アニメ/開閉は共通ロジックのまま。ここでは配色だけ戻す */
    color: initial;
    border-color: initial;
    text-shadow: none;
    /* 背面の暗い映像の影響を受けないよう白背景で保護（テーブル自体が白でもOK） */
}
#menu-hassui .cinemenu-detail--price .coating-price-scroll {
    background: #fff;
    color: #212529;
    overflow-x: auto !important; /* 横スクロールを明示許可 */
    -webkit-overflow-scrolling: touch;
}
#menu-hassui .cinemenu-detail--price .coating-price-table {
    background: #fff;
    color: #212529;
}
/* タブ（nav-pills）は“標準トーン”でOK。必要最小限だけ微調整 */
#menu-hassui .cinemenu-detail--price .nav-pills {
    flex-wrap: wrap;
    gap: .5rem .6rem;
}
#menu-hassui .cinemenu-detail--price .nav-pills .nav-link {
    background: #fff;
    color: #212529;
    border: 1px solid #ced4da;
}
#menu-hassui .cinemenu-detail--price .nav-pills .nav-link:hover {
    background: #f8f9fa;
}
#menu-hassui .cinemenu-detail--price .nav-pills .nav-link.active {
    background: #0d6efd;
    border-color: #0d6efd;
    color: #fff;
}
/* テーブルの見出しだけは濃色＋白字で可視性UP（内部罫線は壊さない） */
#menu-hassui .cinemenu-detail--price .coating-price-table thead th:first-child {
    background-color: var(--bs-primary, #0d6efd) !important;
    color: #fff !important;
}
/* 最後：シーン間の間隔（保険） */
#menu-hassui .cinemenu-scene + .cinemenu-scene {
    margin-top: clamp(48px, 9vw, 96px);
}
#menu-hassui .cinemenu-scene:last-of-type {
    margin-bottom: clamp(56px, 10vw, 120px);
}
/* 料金差し替え中はアニメ無効（点滅／揺れ防止） */
#price-root-hexa[aria-busy="true"], #price-root-hexa[aria-busy="true"] * {
    transition: none !important;
}
/* === Hexa料金アコーディオン：視認性修正 ================== */
/* 料金アコーディオン上端のラインを白に */
.cinemenu-detail--price .detail-panel {
    border-top: 1px solid rgba(255, 255, 255, .65) !important;
}
/* アコーディオン内の見出し・冒頭テキストは黒文字に固定（白背景上で可読性確保） */
.cinemenu-detail--price .detail-panel h2, .cinemenu-detail--price .detail-panel h3, .cinemenu-detail--price .detail-panel p, .cinemenu-detail--price .detail-panel li, .cinemenu-detail--price .detail-panel .fw-bold {
    color: #212529 !important;
}
#maintenance-note .maintenance-note__card {
    background: #fff;
    border: 1px solid #e7e7e7;
    border-radius: 12px;
    padding: 18px 16px;
    margin-bottom: 16px;
}
#maintenance-note .maintenance-note__cta .btn {
    min-width: 180px;
}
@media (min-width: 768px) {
    #maintenance-note .maintenance-note__card {
        padding: 22px 20px;
        margin-bottom: 20px;
    }
}
/* === HERO video overlay (minimal additions, scoped) === */
.hero-hassuiN .hero-media {
    position: absolute;
    inset: 0;
    overflow: hidden;
    z-index: 0;
}
.hero-hassuiN .hero-video, .hero-hassuiN .hero-fallback {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.hero-hassuiN .hero-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .28);
}
.hero-hassuiN .hero-inner {
    position: relative;
    z-index: 1;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 clamp(12px, 3vw, 24px);
}
@media (prefers-reduced-motion: reduce) {
    .hero-hassuiN .hero-video {
        display: none;
    }
}
/* =========================================================
   Recruit LP styling (Bootstrap-only / fully scoped)
   ※ 既存CSS衝突回避のため #recruit-main 以下に限定
   ========================================================= */

/* ① ページ背景：薄い斜線パターン（PC/SP共通） */
#recruit-main {
  background:
    repeating-linear-gradient(
      -45deg,
      rgba(0,0,0,.025) 0 6px,
      rgba(0,0,0,0) 6px 12px
    );
}

/* ② H1「地元で実戦」にイエローマーカー（テキスト幅に追随） */
#recruit-main #recruit-hero .h2 {
  display: inline; /* 背景マーカーを文字幅で止める */
  background: linear-gradient(transparent 65%, #fff4a3 0);
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

/* コンテナ幅と縦リズムの統一 */
#recruit-main .container-narrow { max-width: 860px; }

/* 共通：セクションの上下余白 */
#recruit-main section { scroll-margin-top: 80px; }

/* ③ 募集内容のUL：カード風の読みやすい箇条書き */
#recruit-main #recruit-summary ul {
  list-style: none;
  padding: 0;
  margin: 0 0 .5rem;
  display: grid;
  gap: 10px;
}
#recruit-main #recruit-summary ul > li {
  position: relative;
  padding: .7rem .9rem .7rem 2.2rem;
  border: 1px solid #e6eef6;
  border-radius: 12px;
  background: #fff;
  line-height: 1.7;
}
#recruit-main #recruit-summary ul > li::before {
  content: "";
  position: absolute;
  left: .9rem; top: 1rem;
  width: 10px; height: 10px;
  border-radius: 50%;
  background: #0d6efd;            /* ブルーのピン */
  box-shadow: 0 0 0 4px #e7f1ff;  /* 薄い外輪で視認性UP */
}

/* ④ 「将来の独立…」：読みやすいパネル＋リード */
#recruit-main #recruit-stepup {
  border: 1px solid #e6eef6;
  border-radius: 14px;
  background: #fff;
  padding: 1.2rem 1.2rem;
}
#recruit-main #recruit-stepup .h3 { margin-bottom: .6rem; }
#recruit-main #recruit-stepup p {
  margin: 0 0 .5rem;
  line-height: 1.9;
  color: #334155;
}

/* 文化と働き方：カードの土台だけ整える（画像差替え前提） */
#recruit-main #recruit-culture figure {
  border: 1px solid #e6eef6;
  border-radius: 12px;
  background: #fff;
  padding: 8px;
}
#recruit-main #recruit-culture figcaption {
  color: #475569; line-height: 1.8; margin-top: .4rem;
}

/* ⑤ 勤務条件（DL）を横グリッド化して視線誘導を強化 */
#recruit-main #recruit-conditions dl {
  border: 1px solid #e6eef6;
  border-radius: 12px;
  background: #fff;
  padding: 12px 14px;
}
#recruit-main #recruit-conditions dt {
  font-weight: 800; color: #0b1b32;
}
#recruit-main #recruit-conditions dd {
  margin-bottom: .4rem;
  padding-left: .25rem;
  border-bottom: 1px dashed #e5e7eb;
}
#recruit-main #recruit-conditions dd:last-of-type { border-bottom: 0; }

/* ⑥ FAQ：Q/Aを頭出しし、Aに点線を敷いて塊感を出す */
#recruit-main #recruit-faq .h6 {
  position: relative;
  padding-left: 2rem;
  margin: 0 0 .25rem;
}
#recruit-main #recruit-faq .h6::before {
  content: "Q";
  position: absolute; left: 0; top: 0;
  width: 1.5rem; height: 1.5rem;
  display: grid; place-items: center;
  border-radius: 50%;
  background: #0d6efd; color: #fff;
  font-weight: 800; font-size: .9rem;
}
#recruit-main #recruit-faq p {
  position: relative;
  padding-left: 2rem;
  margin: 0 0 .75rem;
  line-height: 1.9;
}
#recruit-main #recruit-faq p::before {
  content: "A";
  position: absolute; left: 0; top: .05rem;
  width: 1.5rem; height: 1.5rem;
  display: grid; place-items: center;
  border-radius: 50%;
  background: #f1f5f9; color: #0b1b32; font-weight: 800;
}
#recruit-main #recruit-faq .mb-3,
#recruit-main #recruit-faq .mb-0 { padding-bottom: .75rem; border-bottom: 1px dashed #e5e7eb; }
#recruit-main #recruit-faq .mb-0 { border-bottom: 0; }

/* 固定CVバナー（PC）をLPでは非表示にする
   ※ 既存CSSで #kotei-bnr が固定されているためLPでは明示的にOFF */
#recruit-main #kotei-bnr,
#recruit-main .kotei-bnr01,
#recruit-main .kotei-bnr02,
#recruit-main .kotei-bnr03 { display: none !important; }