/* protectionfilm.php の #ppf 統一デザインから、LPで使う部品を継承。 */
#ppf * { transition: none !important; animation: none !important; }
#ppf .ppf-white { background: #fff; }
#ppf .ppf-gray { background: #F7F5F2; }
#ppf .ppf-sh { text-align: center; margin-bottom: 2.5rem; }
#ppf .ppf-sh h2 { font-size: clamp(1.35rem, 3vw, 1.7rem); font-weight: 700; color: #212529; margin-bottom: 0; line-height: 1.4; }
#ppf .ppf-card { border: 0; box-shadow: none; border-radius: 8px; background: #F7F5F2; padding: 2rem; }
#ppf .ppf-gray .ppf-card { background: #fff; }
#ppf .ppf-h3 { font-size: 1.1rem; font-weight: 700; color: #212529; margin-bottom: .75rem; }
#ppf .ppf-hero { background: #fff; }
#ppf .ppf-hero h1 { font-size: clamp(1.15rem, 2.6vw, 1.55rem); font-weight: 700; color: #212529; line-height: 1.45; margin-bottom: 1rem; }
#ppf .ppf-hero .ppf-hero-lead { color: #555; line-height: 1.75; margin-bottom: 1.25rem; }
#ppf .ppf-trust-strip { display: flex; flex-wrap: wrap; gap: .5rem; }
#ppf .ppf-trust-strip .ppf-trust-chip { display: inline-flex; align-items: center; gap: .35rem; font-size: .78rem; font-weight: 600; color: #495057; background: #f0f4ff; border: 1px solid #d0daf0; border-radius: 2rem; padding: .3rem .75rem; white-space: nowrap; }
#ppf .ppf-trust-strip .ppf-trust-chip i { color: #0d6efd; font-size: .8rem; }
#ppf .ppf-hero-img { position: relative; border-radius: .75rem; overflow: hidden; }
#ppf .ppf-hero-img img { width: 100%; height: auto; display: block; }
#ppf .ppf-pricing-v0 { --ppf-navy: #2B3A4A; --ppf-navy-light: #3A4B5E; --ppf-navy-lighter: #4A5C70; }
#ppf .ppf-gallery-card, #ppf .ppf-set-card { box-shadow: none !important; border: 0 !important; border-radius: 8px !important; }

/* 以下はLP専用。共通部品のファイルや他ページには変更を加えない。 */
body.lp-ppf { --lp-navy: #04384C; --lp-gold: #B8973E; }
#wrapper.du #ppf.lp-ppf {
    --ppf-fs: 17px;
    --ppf-p: 32px;
    --ppf-hb: 16px;
    --ppf-ha: 64px;
    --ppf-cp: 32px;
    --ppf-cg: 24px;
    --ppf-sec: 112px;
    color: #444;
    font-size: var(--ppf-fs);
    line-height: 1.85;
}
#wrapper.du #ppf.lp-ppf :is(h1, h2, h3, p, li, dt, dd) { word-break: auto-phrase; text-wrap: pretty; letter-spacing: .02em; }
#wrapper.du #ppf.lp-ppf :is(p, li, dd) { font-size: var(--ppf-fs); line-height: 1.85 !important; }
#wrapper.du #ppf.lp-ppf p { margin: 0 0 var(--ppf-p); }
#wrapper.du #ppf.lp-ppf p:last-child { margin-bottom: 0; }
#wrapper.du #ppf.lp-ppf > section { padding: calc(var(--ppf-sec) / 2) 0; margin: 0; }
#wrapper.du #ppf.lp-ppf .container { width: 100%; max-width: 1260px; padding-left: 12px; padding-right: 12px; margin-inline: auto; }
#wrapper.du #ppf.lp-ppf .ppf-sh { margin-bottom: var(--ppf-hb); }
#wrapper.du #ppf.lp-ppf :is(h2, .ppf-h3) { margin-top: 0; margin-bottom: var(--ppf-hb); border-left: 0; }
#wrapper.du #ppf.lp-ppf .ppf-sh h2 { margin-bottom: 0; }
#wrapper.du #ppf.lp-ppf .ppf-h3 { font-size: 20px; line-height: 1.5; }
#wrapper.du #ppf.lp-ppf .ppf-card { padding: var(--ppf-cp); }
#wrapper.du #ppf.lp-ppf .lp-eyebrow { color: var(--lp-navy); font-size: 14px; font-weight: 700; margin-bottom: var(--ppf-hb); }
#wrapper.du #ppf.lp-ppf .lp-note { margin-top: var(--ppf-hb); margin-bottom: 0; font-size: 14px; color: #595959; }

/* 最初の画面は本丸と同じ実写真と信頼のチップ。 */
#wrapper.du #ppf.lp-ppf .lp-hero-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 32px; align-items: start; }
#wrapper.du #ppf.lp-ppf .lp-hero-copy { min-width: 0; }
#wrapper.du #ppf.lp-ppf .ppf-hero-img img { aspect-ratio: 4 / 3; object-fit: cover; }
#wrapper.du #ppf.lp-ppf .ppf-hero h1 { font-size: clamp(28px, 2.5vw, 34px); line-height: 1.5; margin-bottom: var(--ppf-hb); color: var(--lp-navy); }
#wrapper.du #ppf.lp-ppf .ppf-hero-lead { margin-bottom: var(--ppf-p); }
#wrapper.du #ppf.lp-ppf .ppf-trust-strip { margin-top: var(--ppf-p); gap: 8px; }
#wrapper.du #ppf.lp-ppf .ppf-trust-chip { font-size: 14px; color: var(--lp-navy); background: #F7F5F2; border: 1px solid #e4e1da; padding: 8px 12px; }
#wrapper.du #ppf.lp-ppf .ppf-trust-chip i { color: var(--lp-navy); }

/* 新設の相談ボタン。共通のbtn色上書きに依存しない。 */
.lp-ppf .lp-actions { display: flex; flex-wrap: wrap; gap: 16px; }
.lp-ppf .lp-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 24px; border: 1px solid var(--lp-navy); border-radius: 6px; background: var(--lp-navy); color: #fff; font-size: 16px; font-weight: 700; line-height: 1.5; text-align: center; text-decoration: none; }
.lp-ppf .lp-button--outline { background: #fff; color: var(--lp-navy); }
.lp-ppf .lp-button:hover { background: #07536c; border-color: #07536c; color: #fff; }
.lp-ppf .lp-button:focus-visible { outline: 3px solid var(--lp-gold); outline-offset: 4px; }
#wrapper.du #ppf.lp-ppf .lp-consultation { background: var(--lp-navy); border-top: 1px solid var(--lp-gold); }
#wrapper.du #ppf.lp-ppf .lp-consultation h2 { color: #fff; text-align: center; margin-bottom: var(--ppf-p); }
#wrapper.du #ppf.lp-ppf .lp-consultation .lp-actions { justify-content: center; }
#wrapper.du #ppf.lp-ppf .lp-consultation .lp-button { background: #fff; border-color: #fff; color: var(--lp-navy); min-width: 240px; }
#wrapper.du #ppf.lp-ppf .lp-consultation .lp-button--outline { background: transparent; color: #fff; }
#wrapper.du #ppf.lp-ppf .lp-consultation .lp-button:hover { background: #edf2f3; color: var(--lp-navy); }

#wrapper.du #ppf.lp-ppf .lp-concerns { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ppf-cg); }
#wrapper.du #ppf.lp-ppf .lp-concerns .ppf-h3 { font-size: 20px; }
#wrapper.du #ppf.lp-ppf .lp-points { display: grid; gap: var(--ppf-ha); }
#wrapper.du #ppf.lp-ppf .lp-point { display: grid; grid-template-columns: 510fr 694fr; gap: 32px; align-items: start; }
#wrapper.du #ppf.lp-ppf .lp-photo-placeholder { display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 16 / 9; padding: 20px; border: 1px solid #ddd; border-radius: 8px; background: #eee; color: #595959; font-size: 16px; text-align: center; }
#wrapper.du #ppf.lp-ppf .lp-story { display: grid; grid-template-columns: 510fr 694fr; gap: 32px; align-items: start; }
#wrapper.du #ppf.lp-ppf .lp-flow { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--ppf-cg); list-style: none; margin: 0; padding: 0; }
#wrapper.du #ppf.lp-ppf .lp-flow li { display: flex; flex-direction: column; align-items: center; gap: 12px; background: #fff; padding: 24px 16px; border-radius: 8px; text-align: center; }
/* こだわりの実写真（当店の写真・枠の縦横をそろえて切り抜く） */
#wrapper.du #ppf.lp-ppf .lp-point-photo { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 8px; }
#wrapper.du #ppf.lp-ppf .lp-flow p { margin: 0; }
#wrapper.du #ppf.lp-ppf .lp-step { color: var(--lp-navy); font-size: 20px; font-weight: 700; border-bottom: 1px solid var(--lp-gold); flex: 0 0 32px; text-align: center; }
#wrapper.du #ppf.lp-ppf .lp-faq-list { display: grid; gap: var(--ppf-cg); margin: 0; }
#wrapper.du #ppf.lp-ppf .lp-faq-list > div { display: grid; grid-template-columns: 510fr 694fr; gap: 32px; align-items: start; }
#wrapper.du #ppf.lp-ppf .lp-faq-list dt { color: var(--lp-navy); font-weight: 700; }
#wrapper.du #ppf.lp-ppf .lp-faq-list dd { margin: 0; }

/* 既存料金・施工例・口コミを同じ器にそろえる。部品の動作・文言はそのまま。 */
#wrapper.du #ppf.lp-ppf .ppf-pricing-v0 { --ppf-navy: #04384C; --ppf-navy-light: #164859; --ppf-navy-lighter: #295867; --ppf-amber: #B8973E; --ppf-amber-light: #e4d6b0; }
#wrapper.du #ppf.lp-ppf .ppf-pricing-title { color: #fff; }
#wrapper.du #ppf.lp-ppf .ppf-pricing-subtitle { color: #fff; }
#wrapper.du #ppf.lp-ppf :is(.ppf-body-selector-inner, .ppf-body-selector-note, .ppf-set-section-inner, .ppf-pricing-cta-inner) { max-width: 1236px; margin-inline: auto; }
#wrapper.du #ppf.lp-ppf :is(.ppf-pricing-header, .ppf-body-selector, .ppf-set-section, .ppf-pricing-cta) { padding-left: max(24px, calc((100% - 1236px) / 2)); padding-right: max(24px, calc((100% - 1236px) / 2)); }
#wrapper.du #ppf.lp-ppf .ppf-set-cards-grid { gap: var(--ppf-cg); }
#wrapper.du #ppf.lp-ppf :is(.ppf-body-btn, .ppf-set-detail-link, .ppf-cta-btn, .ppf-gallery-more-btn, .gr-cta) { min-height: 48px; }
#wrapper.du #ppf.lp-ppf #ppf-works-gallery > .container > .row > .col-lg-11 { width: 100%; }
#wrapper.du #ppf.lp-ppf .ppf-gallery-grid { --bs-gutter-x: var(--ppf-cg); --bs-gutter-y: var(--ppf-cg); }
#wrapper.du #ppf.lp-ppf .ppf-gallery-more-btn { color: var(--lp-navy) !important; border-color: var(--lp-navy) !important; }
#wrapper.du #ppf.lp-ppf .ppf-gallery-more-btn:hover { background: var(--lp-navy) !important; color: #fff !important; }
#wrapper.du #ppf.lp-ppf .gr-review-card { padding: var(--ppf-cp); border: 0; border-radius: 8px; gap: var(--ppf-cg); }
#wrapper.du #ppf.lp-ppf .gr-reviews { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ppf-cg); }
#wrapper.du #ppf.lp-ppf .gr-review { padding: var(--ppf-cp); }
#wrapper.du #ppf.lp-ppf .gr-review__txt { display: block; overflow: visible; }
#wrapper.du #ppf.lp-ppf .gr-cta { background: var(--lp-navy); }

/* 共通フッターの固定CTAと二重表示しない。静的CSSで初回から場所を確保。 */
.lp-ppf #wrapper > .fixed-bottom, .lp-ppf #kotei-bnr { display: none !important; }
.lp-ppf .lp-sticky { display: none; }
@media (max-width: 1283.98px) {
    #wrapper.du #ppf.lp-ppf .container { padding-left: 24px; padding-right: 24px; }
}
@media (min-width: 768px) and (max-width: 991.98px) {
    #wrapper.du #ppf.lp-ppf .lp-concerns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
    #wrapper.du #ppf.lp-ppf { --ppf-fs: 16px; --ppf-p: 24px; --ppf-hb: 12px; --ppf-ha: 40px; --ppf-cp: 20px; --ppf-cg: 16px; --ppf-sec: 72px; }
    /* naviを置かないLPでも、共通ヘッダーの店舗ロゴを残す。 */
    .lp-ppf #wrapper #header { display: block !important; }
    #wrapper.du #ppf.lp-ppf .container { padding-left: 20px; padding-right: 20px; }
    #wrapper.du #ppf.lp-ppf :is(.lp-hero-grid, .lp-point, .lp-story, .lp-faq-list > div) { grid-template-columns: 1fr; gap: 20px; }
    #wrapper.du #ppf.lp-ppf .lp-flow { grid-template-columns: 1fr; }
    #wrapper.du #ppf.lp-ppf .lp-flow li { flex-direction: row; justify-content: flex-start; text-align: left; padding: 16px 20px; }
    #wrapper.du #ppf.lp-ppf .ppf-hero h1 { font-size: 28px; }
    #wrapper.du #ppf.lp-ppf .lp-concerns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    #wrapper.du #ppf.lp-ppf .lp-concerns .ppf-h3 { font-size: 18px; }
    #wrapper.du #ppf.lp-ppf .ppf-trust-chip { white-space: normal; font-size: 14px; }
    #wrapper.du #ppf.lp-ppf .lp-consultation .lp-button { width: 100%; min-width: 0; }
    #wrapper.du #ppf.lp-ppf .gr-reviews { grid-template-columns: 1fr; }
    #wrapper.du #ppf.lp-ppf :is(.ppf-pricing-header, .ppf-body-selector, .ppf-set-section, .ppf-pricing-cta) { padding-left: 20px; padding-right: 20px; }
}
@media (max-width: 599px) {
    body.lp-ppf { padding-bottom: calc(56px + env(safe-area-inset-bottom, 0px)); }
    .lp-ppf .lp-sticky { position: fixed; inset: auto 0 0; z-index: 1040; display: grid; grid-template-columns: 1fr 1fr; padding-bottom: env(safe-area-inset-bottom, 0px); background: #fff; box-shadow: 0 -1px 0 var(--lp-navy); }
    .lp-ppf .lp-sticky .lp-button { height: 56px; min-height: 56px; padding: 8px 12px; border: 0; border-radius: 0; }
    .lp-ppf .lp-hero-copy .lp-actions { display: grid; grid-template-columns: 1fr; }
}

/* 流れの各段の説明（1行） */
#wrapper.du #ppf.lp-ppf .lp-flow p { font-weight: 700; }
#wrapper.du #ppf.lp-ppf .lp-flow small { display: block; margin-top: 8px; font-size: 15px; font-weight: 400; line-height: 1.7; color: #4B5563; }
/* スマホは写真を最初に */
@media (max-width: 599px) {
    #wrapper.du #ppf.lp-ppf .lp-hero-grid .ppf-hero-img { order: -1; }
}
