:root{
  --page:#fffdfb;
  --ink:#2d2729;
  --muted:#74686d;
  --pink:#c93b72;
  --pink-dark:#913452;
  --line:#eadfe4;
  --soft:#fff8fa;
  --max:760px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:#f4efec;
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  line-height:1.8;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
.page{width:min(100%,900px);margin:0 auto;background:var(--page);min-height:100vh;box-shadow:0 0 28px rgba(60,40,48,.05)}
.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 18px;background:rgba(255,253,251,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}
.brand{text-decoration:none;font-size:22px;color:#111}
.header-right{display:flex;align-items:center;gap:16px;margin-left:auto}
.header-pr{display:inline-block;color:var(--muted);font-size:12px;line-height:1;white-space:nowrap}
.site-nav{display:none;gap:16px}
.site-nav a{font-size:14px;text-decoration:none}
.section{padding:44px 18px}
.section.soft{background:var(--soft)}
.inner{width:min(100%,var(--max));margin:0 auto}.narrow{max-width:630px}
h1,h2,p{margin-top:0}
h1{margin-bottom:18px;text-align:center;font-size:clamp(34px,8vw,52px);line-height:1.18;letter-spacing:.035em}
h2{margin-bottom:18px;text-align:center;font-size:clamp(25px,5.5vw,34px);line-height:1.45}
.eyebrow{width:max-content;max-width:100%;margin:0 auto 14px;padding:6px 13px;border-radius:999px;background:#fff;border:1px solid #edc4d3;color:#704654;font-size:12px;font-weight:700;text-align:center}
.hero-copy,.closing-copy{max-width:650px;margin:0 auto;text-align:left}
.media-wrap{overflow:hidden;border-radius:22px;background:#fff;box-shadow:0 10px 26px rgba(73,49,58,.08);border:1px solid #eee3e6}
.media-wrap img{width:100%;aspect-ratio:4/3;object-fit:cover}
.hero-media{margin-top:26px}
.recommend-heading{
  margin:30px auto 0;
  padding:16px 20px;
  border-radius:16px;
  background:#fff1f6;
  color:var(--pink-dark);
  border:1px solid #f0d5df;
}
.option-section{border-top:1px solid #f1e8eb}
.text-block{max-width:660px;margin:24px auto 0}
.text-block p{margin-bottom:12px}
.image-note,.fineprint{color:var(--muted);font-size:12px;line-height:1.65}
.affiliate-box,.portrait-cta-wrap{max-width:560px;margin:24px auto 0;padding:18px;border-radius:20px;background:#fff;border:1px solid var(--line);box-shadow:0 7px 18px rgba(50,35,42,.05);text-align:center}
.official-banner{display:block;width:min(100%,300px);margin:0 auto;border-radius:10px;overflow:hidden}
.official-banner img{width:100%;height:auto}
.fineprint{margin:10px 0 0}
.cta{display:flex;align-items:center;justify-content:center;min-height:56px;padding:12px 20px;border-radius:999px;text-decoration:none;font-size:16px;font-weight:800;text-align:center}
.cta.primary{background:var(--pink);color:#fff;box-shadow:0 8px 18px rgba(201,59,114,.18)}
.cta.secondary{margin-top:26px;background:#fff;color:var(--pink-dark);border:1px solid #dfb9c7}
.cta:focus-visible{outline:3px solid #247f9f;outline-offset:4px}
.one-line{display:flex;gap:12px;align-items:flex-start;max-width:620px;margin:24px auto 0;padding:14px 16px;border-radius:18px;background:#fff;border:1px solid var(--line)}
.one-line span{flex:0 0 34px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:#fff;font-weight:800}
.one-line p{margin:3px 0 0;font-size:15px}
.hana-line span{background:#e88eaa}.nin-line span{background:#55635b}
.related-section{padding-bottom:52px;background:linear-gradient(180deg,#fffdfb,#fff7fa)}
.last-message{max-width:620px;margin:30px auto 0;text-align:center;font-size:19px;font-weight:800;color:var(--pink-dark)}
.site-footer{padding:30px 18px 36px;border-top:1px solid var(--line);background:#fff;text-align:center}
.footer-brand{display:inline-block;margin-bottom:14px}
.affiliate-disclosure{margin:0 auto 16px;color:var(--muted);font-size:12px;line-height:1.6}
.site-footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 16px;margin-bottom:18px}
.site-footer nav a{font-size:13px}
.copyright{margin:8px 0 0;color:var(--muted);font-size:12px}
.site-footer .footer-brand{font-family:inherit;color:#111}
.mobile-break{display:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:760px){.site-nav{display:flex}.section{padding:56px 34px}}
@media(max-width:520px){.section{padding-left:15px;padding-right:15px}.media-wrap{border-radius:16px}.one-line{padding:13px}.one-line p{font-size:14px}.mobile-break{display:block}}

/* Footer unified with top LP */
.site-footer{padding:44px 28px;text-align:center;background:#fff;border-top:1px solid var(--line)}
.footer-brand{display:inline-block;margin-bottom:22px}
.site-footer nav{display:flex;justify-content:center;flex-wrap:wrap;gap:12px 24px;margin-bottom:0;font-size:13px}
.site-footer nav a{font-size:13px}
.copyright{margin:20px 0 0;color:var(--muted);font-size:12px}
