/* 本命ノートのPR導線。広告だけで記事のレイアウトを変えない。 */
.kn-promo-section{max-width:1160px;margin:24px auto 40px;padding:0 22px;box-sizing:border-box}
.kn-promo-section--narrow{max-width:860px}
.post_content .kn-promo-section{padding:0;margin:36px 0}
.kn-promo-inline,.kn-promo-float{font-family:"Zen Kaku Gothic New",sans-serif;color:#22302a;box-sizing:border-box}
.kn-promo-inline *,.kn-promo-float *{box-sizing:border-box}
.kn-promo-inline{display:grid;grid-template-columns:140px 1fr auto;align-items:center;gap:28px;background:#fffdf7;border:1px solid #dbe3d2;border-radius:20px;padding:28px 32px;box-shadow:0 4px 16px rgba(31,91,58,.035);line-height:1.6}
.kn-promo-art{color:#2f8454;background:repeating-linear-gradient(105deg,#e3efd9 0 32px,#edf4e4 32px 64px);border-radius:16px;display:flex;flex-direction:column;align-items:center;padding:10px 10px 14px}
.kn-promo-art svg{width:120px;height:100px;display:block}
.kn-promo-art span{font-family:"Oswald",sans-serif;font-size:10px;letter-spacing:1.5px;font-weight:500}
.kn-promo-kicker,.kn-promo-float-top{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:#5f6f66}
.kn-promo-pr{display:inline-block;border:1px solid #bcc9b2;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:700;line-height:1.5;color:#5a6c5e;background:#f6f8f1;letter-spacing:.05em}
.kn-promo-inline .kn-promo-heading{font-family:"Zen Maru Gothic",sans-serif;font-size:24px;font-weight:900;color:#1f5b3a;line-height:1.5;margin:8px 0}
.kn-promo-inline .kn-promo-description{font-size:14px;color:#5f6f66;line-height:1.75;margin:0}
.kn-promo-inline .kn-promo-conditions{font-size:11px;color:#5f6f66;line-height:1.6;margin:10px 0 0}
.kn-promo-mobile-break{display:none}
.kn-promo-inline .kn-promo-note{font-size:11px;color:#69766b;line-height:1.6;margin:12px 0 0}
.kn-promo-inline .kn-promo-cta{display:flex;align-items:center;justify-content:center;gap:18px;padding:15px 24px;border-radius:999px;background:#c94420;color:#fff;font-size:15px;font-weight:900;text-decoration:none;white-space:nowrap;min-height:48px;box-shadow:0 5px 0 #a73316,0 8px 18px rgba(169,51,22,.16);transition:background .15s,transform .15s}
.kn-promo-inline .kn-promo-cta:hover{background:#b53b1b;color:#fff;transform:translateY(-1px)}
.kn-promo-cta>span[aria-hidden]{font-size:20px;line-height:1}
.kn-promo-float{position:fixed;z-index:35;left:auto;right:24px;bottom:24px;width:340px;max-width:calc(100vw - 48px);background:#1f5b3a;border:1px solid #17472d;border-radius:18px;box-shadow:0 10px 32px rgba(21,55,34,.26);line-height:1.4;animation:kn-promo-arrive .18s ease-out}
.kn-promo-float.kn-promo-float--with-menu{bottom:78px}
.kn-promo-float[hidden]{display:none!important}
.kn-promo-float .kn-promo-float-link{display:block;min-width:0;padding:14px 16px 12px;text-decoration:none;color:#fff;background:transparent;border-radius:17px}
.kn-promo-float-top{font-size:12px;gap:7px;padding-right:32px;color:#fff;line-height:18px}
.kn-promo-float .kn-promo-pr{background:transparent;color:#fff;border-color:#a6c4b2;font-size:9px;padding:0 4px}
.kn-promo-float-main{display:block;margin-top:7px;font-size:13px;font-weight:700;line-height:1.45;letter-spacing:0}
.kn-promo-float-main strong{color:#ffe2a0;font-size:22px;font-weight:900;white-space:nowrap}
.kn-promo-float-free{display:block;margin-top:5px;font-size:11px;color:#fff}
.kn-promo-float-free b{font-size:14px}
.kn-promo-float-cta{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:46px;margin-top:9px;padding:10px 15px;background:#c94420;color:#fff;border:1px solid #ed8861;border-radius:10px;font-size:15px;font-weight:900;box-shadow:0 3px 0 #842b16;transition:background .15s,transform .15s}
.kn-promo-float-cta>span{font-size:22px;line-height:1}
.kn-promo-float-link:hover .kn-promo-float-cta{background:#b53b1b;transform:translateY(-1px)}
.kn-promo-float-conditions{display:block;margin-top:8px;color:#e6eee8;font-size:10px;line-height:1.5}
.kn-promo-float .kn-promo-close{position:absolute;top:0;right:0;display:flex;align-items:center;justify-content:center;width:44px;height:44px;min-height:44px;padding:0;margin:0;border:0;border-radius:0 17px 0 12px;background:transparent;color:#fff;font-size:23px;cursor:pointer;box-shadow:none}
.kn-promo-float .kn-promo-close:hover{background:#17472d}
.kn-promo-cta:focus-visible,.kn-promo-float-link:focus-visible,.kn-promo-close:focus-visible{outline:3px solid #df9639;outline-offset:3px}
.kn-promo-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes kn-promo-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){.kn-promo-float{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));width:auto;max-width:none}.kn-promo-float.kn-promo-float--with-menu{bottom:calc(78px + env(safe-area-inset-bottom))}}
@media(max-width:900px){.kn-promo-inline{grid-template-columns:100px 1fr;gap:20px;padding:24px}.kn-promo-art{grid-row:1 / 3}.kn-promo-art svg{width:80px;height:80px}.kn-promo-art span{font-size:8px;letter-spacing:1px}.kn-promo-inline .kn-promo-cta{grid-column:2;justify-self:start}.kn-promo-inline .kn-promo-heading{font-size:22px}}
@media(max-width:540px){.kn-promo-section{padding:0 18px;margin:20px auto 32px}.kn-promo-inline{grid-template-columns:1fr;gap:16px;padding:22px;border-radius:16px}.kn-promo-art{display:none}.kn-promo-inline .kn-promo-heading{font-size:21px;margin:8px 0}.kn-promo-mobile-break{display:inline}.kn-promo-inline .kn-promo-description{font-size:13px}.kn-promo-inline .kn-promo-conditions,.kn-promo-inline .kn-promo-note{font-size:10px}.kn-promo-inline .kn-promo-cta{grid-column:1;justify-self:stretch;padding:13px 18px;min-height:48px;font-size:14px}.kn-promo-float{left:calc(12px + env(safe-area-inset-left));bottom:calc(12px + env(safe-area-inset-bottom));border-radius:15px}.kn-promo-float .kn-promo-float-link{padding:11px 12px 10px;border-radius:14px}.kn-promo-float-main{margin-top:5px;font-size:12px}.kn-promo-float-main strong{font-size:18px}.kn-promo-float-free{margin-top:4px;font-size:10px}.kn-promo-float-free b{font-size:13px}.kn-promo-float-cta{font-size:14px;padding:9px 11px;margin-top:7px;min-height:44px}.kn-promo-float .kn-promo-close{border-radius:0 14px 0 10px}}
@media(max-width:360px){.kn-promo-inline .kn-promo-heading{font-size:18px}}
@media(prefers-reduced-motion:reduce){.kn-promo-float{animation:none}.kn-promo-inline .kn-promo-cta,.kn-promo-float-cta{transition:none}}
