.pf-contents { max-width:600px; margin:0 auto; padding:20px 0 42px; border-bottom:1px solid var(--line); }
.pf-contents ol { margin:18px 0 0; padding:0; list-style:none; counter-reset:chapters; }
.pf-contents li { counter-increment:chapters; padding:9px 0; }
.pf-contents a { text-decoration:none; display:flex; gap:16px; font-size:14px; }
.pf-contents a::before { content:counter(chapters,decimal-leading-zero); color:var(--muted); font-size:12px; }
.pf-story { max-width:600px; margin:auto; }
.pf-chapter { padding:55px 0; border-bottom:1px solid var(--line); }
.pf-chapter h2 { font-size:25px; line-height:1.8; font-weight:500; margin:12px 0 35px; letter-spacing:.06em; }
.pf-chapter > p + p { margin-top:28px; }
.pf-image { margin:0 0 34px; }
.pf-image img { width:100%; height:auto; display:block; }
.pf-invitation { max-width:600px; padding:40px 30px; margin:55px auto; background:#eef3f1; border:1px solid var(--line); }
.pf-invitation h2 { font-size:25px; font-weight:500; line-height:1.8; margin:18px 0 24px; }
.pf-invitation > p { font-size:14px; }
.pf-invitation .rd-btn { margin:28px 0 20px; font-size:16px; }
.pf-note { display:block; text-align:center; font-size:12px; }
@media(max-width:600px) { .pf-chapter { padding:40px 4px; } .pf-chapter h2 { font-size:22px; } .pf-invitation { padding:28px 20px; } .pf-invitation h2 { font-size:22px; } .pf-contents { padding-left:4px; padding-right:4px; } }

.pf-cover { margin:32px 0 0; }
.pf-cover img { width:100%; height:auto; display:block; }

.pf-contact { max-width:600px; margin:48px auto; padding:34px 30px 26px; text-align:center; background:linear-gradient(150deg,#f3f7f2,#e6efeb); border:1px solid #b3c9bc; border-top:3px solid #527d65; border-radius:8px; box-shadow:0 10px 30px #192d2809; }
.pf-contact__eyebrow { color:#496952; font-size:12px; letter-spacing:.16em; }
.pf-contact h2 { font-size:24px; font-weight:500; line-height:1.8; margin:12px 0 16px; }
.pf-contact__description { font-size:14px; color:var(--muted); }
.pf-contact .pf-contact__button { margin:26px 0 12px; min-height:70px; font-size:19px; font-weight:600; box-shadow:0 5px 12px #192d281a; gap:13px; }
.pf-contact__button svg { flex-shrink:0; }
.pf-contact__button::after { margin-left:auto; }
.pf-contact__note { color:var(--muted); font-size:12px; }
@media(max-width:600px) { .pf-contact { margin:36px auto; padding:28px 18px 22px; } .pf-contact h2 { font-size:21px; } .pf-contact .pf-contact__button { font-size:16px; padding:14px; gap:10px; } .pf-contact__button::after { margin-left:0; } }

@media(max-width:360px) { .pf-contact h2 { font-size:19px; } .pf-contact .pf-contact__button { font-size:15px; gap:8px; padding:14px 10px; letter-spacing:0; } .pf-contact__button svg { width:22px; height:22px; } }

/* 公式LINEのご案内：金の帯と枠で本文から明確に分ける */
.pf-gold-card { padding:32px 28px 24px; text-align:center; background:#fffdf7; border:2px solid #b18b41; border-radius:8px; box-shadow:0 8px 28px #88661f12; }
.pf-gold-card > .pf-gold-band { margin:-32px -28px 24px; padding:13px 14px; background:linear-gradient(110deg,#dfc488,#f2e0b1 50%,#d9bd79); border-bottom:1px solid #b18b41; border-radius:6px 6px 0 0; color:#4c3918; font-size:13px; font-weight:600; line-height:1.8; letter-spacing:.1em; }
.pf-gold-card h2 { color:#30413c; }
.pf-gold-card .rd-btn { min-height:72px; font-size:18px; border:1px solid #192d28; box-shadow:0 0 0 3px #fffdf7,0 0 0 4px #b18b41; }
.pf-gold-card .rd-btn::after { margin-left:12px; }
.pf-gold-card .pf-contact__button { gap:10px; }
@media(max-width:600px) {
 .pf-gold-card { padding:26px 18px 22px; }
 .pf-gold-card > .pf-gold-band { margin:-26px -18px 24px; font-size:12px; letter-spacing:.04em; }
 .pf-gold-card .rd-btn { font-size:16px; padding:15px 10px; letter-spacing:0; }
 .pf-gold-card .rd-btn::after { margin-left:0; }
 .pf-gold-card .pf-contact__button svg { width:22px; height:22px; }
}
@media(max-width:360px) {
 .pf-gold-card .rd-btn { font-size:14px; gap:6px; }
 .pf-gold-card .pf-contact__button svg { width:19px; height:19px; }
}

.pf-reviews { max-width:600px; margin:0 auto 42px; background:#fff; border:1px solid #cbd7d3; border-radius:6px; }
.pf-reviews > a { display:flex; align-items:center; gap:24px; padding:24px; text-decoration:none; border-radius:6px; transition:background .2s; }
.pf-reviews > a:hover { background:#f0f5f2; }
.pf-reviews__copy { flex:1; min-width:0; }
.pf-reviews h2 { font-size:23px; font-weight:500; margin:5px 0 10px; }
.pf-reviews__copy > p:not(.rd-eyebrow) { font-size:13px; color:var(--muted); line-height:1.9; }
.pf-reviews__link { display:inline-block; margin-top:16px; font-size:13px; border-bottom:1px solid #a5b7b0; }
.pf-reviews img { width:140px; height:100px; object-fit:cover; border-radius:3px; flex-shrink:0; }
@media(max-width:600px) { .pf-reviews > a { padding:20px 16px; gap:14px; } .pf-reviews h2 { font-size:21px; } .pf-reviews img { width:90px; height:85px; } .pf-reviews__link { font-size:12px; } }
@media(max-width:360px) { .pf-reviews img { width:68px; height:75px; } .pf-reviews > a { gap:10px; } }

/* 読み進めた時だけ表示する、小さなLINE登録の入口 */
body.rd { padding-bottom:150px; }
.pf-follow[hidden] { display:none; }
.pf-follow { position:fixed; z-index:20; right:24px; bottom:calc(64px + env(safe-area-inset-bottom,0px)); display:flex; align-items:center; gap:8px; padding:8px 10px 8px 16px; border:1px solid #b18b41; border-radius:8px; background:#fffdf7; box-shadow:0 4px 20px #192d281a; }
.pf-follow > a { display:flex; align-items:center; gap:18px; text-decoration:none; }
.pf-follow__label { font-size:12px; color:#4c3918; }
.pf-follow__action { display:flex; align-items:center; gap:14px; min-height:44px; padding:8px 16px; background:var(--green); border-radius:4px; color:white; font-size:14px; line-height:1.7; }
.pf-follow > a:hover .pf-follow__action { background:#2d4840; }
.pf-follow button { display:grid; place-items:center; width:32px; height:44px; padding:0; background:transparent; border:0; color:var(--muted); font-size:23px; cursor:pointer; }
.pf-follow button:focus-visible { outline:3px solid #658a80; outline-offset:2px; }
@media(max-width:600px) {
 .pf-follow { left:10px; right:10px; bottom:calc(64px + env(safe-area-inset-bottom,0px)); padding:7px 6px 7px 12px; }
 .pf-follow > a { flex:1; justify-content:space-between; gap:8px; }
 .pf-follow__label { font-size:11px; letter-spacing:0; }
 .pf-follow__action { font-size:13px; padding:8px 12px; gap:8px; }
 .pf-follow button { width:28px; flex-shrink:0; }
}

@media(max-width:600px) { .pf-follow__label { display:none; } .pf-follow > a { justify-content:center; } .pf-follow__action { flex:1; justify-content:center; } }

/* 明るい案内パネルを写真の内側に収めたメインビジュアル */
.pf-mainvisual { position:relative; isolation:isolate; overflow:hidden; min-height:470px; margin-top:32px; display:flex; align-items:center; padding:32px; background:#b89a62; color:var(--ink); }
.pf-mainvisual__image { position:absolute; inset:0; z-index:-1; width:100%; height:100%; object-fit:cover; }
.pf-mainvisual__content { width:100%; max-width:390px; padding:28px; background:rgba(255,253,246,.97); border:1px solid #d6bf85; border-radius:6px; box-shadow:0 8px 30px #38281126; }
.pf-mainvisual__eyebrow { color:#78602d; font-size:13px; letter-spacing:.18em; }
.pf-mainvisual h2 { font-size:36px; font-weight:500; line-height:1.6; letter-spacing:.09em; margin:10px 0 16px; }
.pf-mainvisual__description { font-size:14px; line-height:2; color:#56645d; }
.pf-mainvisual .rd-btn { width:100%; margin-top:24px; min-height:58px; padding:12px 14px; font-size:16px; font-weight:600; border:1px solid #192d28; box-shadow:0 3px 10px #192d281a; }
.pf-mainvisual .rd-btn::after { margin-left:14px; }
.pf-mainvisual__note { margin-top:9px; text-align:center; font-size:11px; color:#647168; }
@media(max-width:600px) {
 .pf-mainvisual { min-height:420px; margin-top:24px; padding:22px 16px; }
 .pf-mainvisual__image { object-position:62% center; }
 .pf-mainvisual__content { padding:24px 20px; }
 .pf-mainvisual h2 { font-size:30px; margin:8px 0 14px; }
 .pf-mainvisual__eyebrow { font-size:12px; }
 .pf-mainvisual__description { font-size:13px; }
 .pf-mainvisual .rd-btn { margin-top:20px; min-height:54px; font-size:15px; letter-spacing:.02em; padding:12px 8px; }
 .pf-mainvisual .rd-btn::after { margin-left:10px; }
}
@media(max-width:360px) { .pf-mainvisual { padding:20px 12px; min-height:400px; } .pf-mainvisual__content { padding:22px 16px; } .pf-mainvisual h2 { font-size:28px; } .pf-mainvisual .rd-btn { font-size:13px; } }
