@charset "UTF-8";
:root {
  --pc-px: 1px;
  --pc-body-size: clamp(16px,1.25vw,18px);
  --pc-title-size: clamp(40px,calc(var(--pc-px) * 76),76px);
  --section-padding-top: calc(var(--pc-px) * 70);
  --section-padding-bottom: calc(var(--pc-px) * 70);
  --red: #E61E1E;
  --red-dark: #bd151b;
  --orange: #FF9300;
  --ink: #000;
  --pale: #EEF1F3;
  --content: calc(var(--pc-px) * 1200);
}
*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: auto; }
/* Desktop dimensions follow the 1440px design and the 150% reference video. */
body { margin: 0; overflow-x: hidden; color: var(--ink); font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; font-size: var(--pc-body-size); font-weight: 500; line-height: 1.7; }
h1, h2, h3, p, ol, ul, dl, dd { margin: 0; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible { outline: calc(var(--pc-px) * 3) solid #2568c9; outline-offset: calc(var(--pc-px) * 6); }
.wrap { width: min(var(--content), calc(100% - calc(var(--pc-px) * 80))); margin-inline: auto; }
.sp-only { display: none; }
.site-header { position: absolute; top: calc(var(--pc-px) * 40); z-index: 5; display: block; }
.site-header .brand__image--light { position: absolute; inset: 0; filter: brightness(0) invert(1) drop-shadow(0 calc(var(--pc-px) * 1) calc(var(--pc-px) * 2) rgba(0,0,0,.6)); clip-path: inset(0 0 0 46%); pointer-events: none; }
.brand { position: relative; display: inline-flex; align-items: center; }
.brand__image { display: block; width: calc(var(--pc-px) * 130); height: auto; }
.hero { position: relative; width: 100%; min-height: 0; aspect-ratio: 2880/1420; isolation: isolate; overflow: hidden; color: white; background: white; }
.hero__photo { position: absolute; inset: 0; z-index: -2; }
.hero__photo img { width: 100%; height: 100%; object-fit: cover; }
.hero__content { position: relative; z-index: 2; }
.hero h1 { font-weight: 700; line-height: 1.15; letter-spacing: .015em; }
.hero__lead { font-weight: 500; line-height: 1.3; color: #000; }
.hero__lead span { display: table; margin-bottom: calc(var(--pc-px) * 6); padding: calc(var(--pc-px) * 3) calc(var(--pc-px) * 10); background: white; }
.hero__free { display: table; margin-bottom: calc(var(--pc-px) * 32); padding: calc(var(--pc-px) * 3) calc(var(--pc-px) * 10); background: white; color: var(--red); font-weight: 500; line-height: 1.3; }
.button { position: relative; display: inline-flex; width: calc(var(--pc-px) * 514); min-height: calc(var(--pc-px) * 104); align-items: center; justify-content: center; padding: calc(var(--pc-px) * 20) calc(var(--pc-px) * 70) calc(var(--pc-px) * 20) calc(var(--pc-px) * 35); border: calc(var(--pc-px) * 6) solid white; border-radius: calc(var(--pc-px) * 999); background: var(--red); box-shadow: 0 calc(var(--pc-px) * 6) 0 rgba(94,0,0,.45); color: white; font-size: clamp(13px,calc(var(--pc-px) * 24),24px); font-weight: 700; line-height: 1.4; transition: background .2s ease; }
.button:hover { background: var(--red-dark); }
.button > span { position: absolute; top: 50%; right: calc(var(--pc-px) * 28); display: grid; width: calc(var(--pc-px) * 32); height: calc(var(--pc-px) * 32); place-items: center; border-radius: 50%; background: white; color: var(--red); font-size: 0; transform: translateY(-50%); }
.button > span::after { position: absolute; top: 50%; left: 50%; width: 0; height: 0; transform: translate(-35%,-50%); border-top: calc(var(--pc-px) * 4) solid transparent; border-bottom: calc(var(--pc-px) * 4) solid transparent; border-left: calc(var(--pc-px) * 7) solid var(--red); content: ""; }
.hero__note { display: block; text-align: center; }
.hero__note-nowrap { white-space: nowrap; }
.merits { min-height: 0; padding-top: calc(var(--pc-px) * 24); padding-bottom: calc(var(--pc-px) * 60); }
.merits__title { display: flex; align-items: center; justify-content: center; gap: calc(var(--pc-px) * 24); margin-bottom: calc(var(--pc-px) * 44); font-size: clamp(20px,calc(var(--pc-px) * 26),26px); font-weight: bold; line-height: 1.4; text-align: center; }
.merits__title::before, .merits__title::after { flex: 1; height: calc(var(--pc-px) * 1); background: #111; content: ""; }
.merits__title-copy > span { color: var(--red); }
.merits__links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: calc(var(--pc-px) * 30); }
.merits__links a { position: relative; display: flex; min-height: calc(var(--pc-px) * 94); align-items: center; justify-content: center; gap: calc(var(--pc-px) * 18); padding: calc(var(--pc-px) * 16) calc(var(--pc-px) * 52) calc(var(--pc-px) * 16) calc(var(--pc-px) * 30); border-radius: calc(var(--pc-px) * 999); background: #000; box-shadow: 0 calc(var(--pc-px) * 5) 0 #ccc; color: white; font-size: clamp(13px,calc(var(--pc-px) * 18),18px); font-weight: 700; }
.merits__links a:hover { background: #282828; }
.mini-icon { display: block; flex: 0 0 auto; height: auto; object-fit: contain; }
.mini-icon--gift { width: calc(var(--pc-px) * 38.662); }
.mini-icon--article { width: calc(var(--pc-px) * 32.988); }
.mini-icon--plane { width: calc(var(--pc-px) * 41.9); }
.round-arrow { position: absolute; top: 50%; right: calc(var(--pc-px) * 40); display: grid; width: calc(var(--pc-px) * 30); height: calc(var(--pc-px) * 30); place-items: center; border-radius: 50%; background: var(--red); transform: translateY(-50%); }
.round-arrow::after { width: 0; height: 0; margin-top: calc(var(--pc-px) * 3); border-top: calc(var(--pc-px) * 8) solid white; border-right: calc(var(--pc-px) * 4) solid transparent; border-left: calc(var(--pc-px) * 4) solid transparent; content: ""; }
/* Keep the supplied wave in normal flow so it cannot cover the artwork or copy. */
.free-panel { position: relative; isolation: isolate; background: var(--pale); }
.free-panel::before { position: absolute; inset: 0; z-index: -1; background: #e61e1e; clip-path: polygon(calc(50% + min(14.2vw,calc(var(--pc-px) * 204.48))) 0,100% 0,100% 100%,calc(50% - min(12vw,calc(var(--pc-px) * 172.8))) 100%); content: ""; }
.free-panel::after { display: block; width: 100%; aspect-ratio: 1440/167; background: url("../images/about_bg.svg") center bottom/100% 100% no-repeat; content: ""; }
.free-panel__inner { display: grid; min-height: 0; grid-template-columns: 62% 38%; align-items: center; padding-block: calc(var(--pc-px) * 12) calc(var(--pc-px) * 12); }
.benefit-icons { position: relative; container-type: inline-size; width: min(100%,38.888889vw); max-width: calc(var(--pc-px) * 560); aspect-ratio: 610/555; }
.benefit-icons__item { position: absolute; display: grid; justify-items: center; gap: 2.295cqw; width: 29.508%; font-size: clamp(13px,2.623cqw,16px); font-weight: 700; line-height: 1.4; text-align: center; }
.benefit-icons__item:nth-child(1) { top: 7.568%; left: 2.459%; }
.benefit-icons__item:nth-child(2) { top: 7.568%; right: 2.459%; }
.benefit-icons__item:nth-child(3) { bottom: 7.928%; left: 0; }
.benefit-icons__item:nth-child(4) { right: 16.393%; bottom: 0; width: 34.426%; }
.line-icon { display: block; height: auto; }
.line-icon--gift { width: 20.82cqw; }
.line-icon--article { width: 19.016cqw; }
.line-icon--mail { width: 20.164cqw; }
.line-icon--free { width: 31.148cqw; }
.benefit-icons__phone { position: absolute; top: 18.919%; left: 29.836%; width: 42.377%; height: auto; }
.free-panel__copy { position: relative; min-width: 0; padding-top: calc(var(--pc-px) * 80); padding-left: calc(var(--pc-px) * 30); color: white; }
.free-panel__copy h2 { margin-bottom: calc(var(--pc-px) * 26); font-size: clamp(22px,calc(var(--pc-px) * 34),34px); font-weight: 700; line-height: 1.45; white-space: nowrap; }
.free-panel__copy p { margin-top: calc(var(--pc-px) * 18); font-size: var(--pc-body-size); font-weight: 500; line-height: 1.7; }
.feature { position: relative; background: white; scroll-margin-top: calc(var(--pc-px) * 24); }
.feature__inner { position: relative; display: grid; grid-template-columns: 54% 46%; align-items: center; }
.feature__copy { position: relative; z-index: 2; }
.feature__label { display: inline-grid; min-width: calc(var(--pc-px) * 122); height: calc(var(--pc-px) * 48); place-items: center; margin-bottom: calc(var(--pc-px) * 16); padding: calc(var(--pc-px) * 4) calc(var(--pc-px) * 16); border: calc(var(--pc-px) * 2) solid #111; border-radius: calc(var(--pc-px) * 5); background: white; font-size: clamp(13px,calc(var(--pc-px) * 20),20px); font-weight: 700; line-height: 1.4; }
.feature__copy h2 { margin-bottom: calc(var(--pc-px) * 30); font-size: var(--pc-title-size); font-weight: 900; line-height: 1.08; letter-spacing: -.04em; white-space: nowrap; }
.feature__copy h2 span { color: var(--red); }
.feature__copy h3 { margin-bottom: calc(var(--pc-px) * 24); font-size: clamp(22px,calc(var(--pc-px) * 34),34px); font-weight: 700; line-height: 1.35; letter-spacing: -.02em; }
.feature__copy p { max-width: calc(var(--pc-px) * 580); font-size: var(--pc-body-size); font-weight: 500; line-height: 1.7; }
.feature--gift { min-height: 0; padding: calc(var(--pc-px) * 20) 0 var(--section-padding-bottom); }
.feature--gift .feature__inner { align-items: end; }
.feature__caption { grid-column: 1; margin-top: calc(var(--pc-px) * 14); font-size: 15px; font-weight: 500; line-height: 1.7; }
.feature__visual { position: relative; z-index: 1; width: calc(100% - calc(var(--pc-px) * 40)); min-width: 0; margin-left: calc(var(--pc-px) * 40); padding-bottom: calc(var(--pc-px) * 40); }
.slick-carousel { margin: 0; }
.slick-carousel:not(.slick-initialized) { display: flex; overflow: hidden; gap: calc(var(--pc-px) * 20); }
.slick-slide { margin: 0 calc(var(--pc-px) * 10); }
.slick-list { margin: 0; clip-path: none; }
.slick-dotted.slick-slider { margin-bottom: 0; }
.slick-dots { bottom: calc(var(--pc-px) * -64); display: flex !important; justify-content: center; gap: calc(var(--pc-px) * 20); padding: 0; }
.slick-dots li { width: calc(var(--pc-px) * 15); height: calc(var(--pc-px) * 15); margin: 0; }
.slick-dots li button { width: calc(var(--pc-px) * 15); height: calc(var(--pc-px) * 15); padding: 0; }
.slick-dots li button:before { width: calc(var(--pc-px) * 15); height: calc(var(--pc-px) * 15); border-radius: 50%; background: var(--pale); color: transparent; font-size: 0; opacity: 1; content: ""; }
.slick-dots li.slick-active button:before { background: var(--orange); color: transparent; }
.product-card { width: 100%; flex: 0 0 100%; }
.product-card img { width: 100%; height: auto; }
.product-card p { margin-top: calc(var(--pc-px) * 12); font-size: var(--pc-body-size); font-weight: 700; line-height: 1.5; }
.feature--articles { min-height: 0; padding: var(--section-padding-top) 0 var(--section-padding-bottom); background: var(--pale); }
.feature--articles .feature__visual { align-self: end; margin-bottom: calc(var(--pc-px) * 36); margin-left: calc(var(--pc-px) * 40); }
.check-list { margin: calc(var(--pc-px) * 26) 0 0; padding: 0; list-style: none; }
.check-list li { position: relative; padding-left: calc(var(--pc-px) * 31); font-size: var(--pc-body-size); font-weight: 800; line-height: 1.45; }
.check-list li + li { margin-top: calc(var(--pc-px) * 10); }
.check-list li::before { position: absolute; top: calc(.725em - calc(var(--pc-px) * 11)); left: 0; width: calc(var(--pc-px) * 22); height: calc(var(--pc-px) * 22); border-radius: 50%; background: var(--orange); content: ""; }
.check-list li::after { position: absolute; top: calc(.725em - calc(var(--pc-px) * 5)); left: calc(var(--pc-px) * 6); width: calc(var(--pc-px) * 10); height: calc(var(--pc-px) * 6); border-bottom: calc(var(--pc-px) * 2) solid white; border-left: calc(var(--pc-px) * 2) solid white; transform: rotate(-45deg); content: ""; }
.article-card { position: relative; display: block; width: 100%; min-height: calc(var(--pc-px) * 370); flex: 0 0 100%; padding: calc(var(--pc-px) * 10) calc(var(--pc-px) * 10) calc(var(--pc-px) * 28); background: white; }
div.article-card { cursor: default; }
.article-card::before { position: absolute; top: calc(var(--pc-px) * 10); left: calc(var(--pc-px) * 10); z-index: 1; display: flex; width: calc(var(--pc-px) * 150); min-width: 104px; height: calc(var(--pc-px) * 55); min-height: 34px; align-items: center; justify-content: center; padding-left: max(28px,calc(var(--pc-px) * 30)); background: var(--red) url("../images/column_ico.svg") max(12px,calc(var(--pc-px) * 20)) center/auto calc(var(--pc-px) * 24) no-repeat; color: white; content: "会員限定"; font-size: clamp(13px,calc(var(--pc-px) * 16),16px); font-weight: 700; }
.article-card img { width: 100%; height: auto; }
.article-card p { margin: calc(var(--pc-px) * 18) calc(var(--pc-px) * 6) 0; font-size: var(--pc-body-size); font-weight: 700; line-height: 1.7; }
.article-card__category { display: block; margin-bottom: calc(var(--pc-px) * 4); font-size: clamp(13px,calc(var(--pc-px) * 14),14px); font-weight: 500; line-height: 1.6; }
.article-card__title { display: block; }
.feature--articles .slick-dots li button:before { background: white; }
.feature--articles .slick-dots li.slick-active button:before { background: var(--orange); }
.feature--newsletter { min-height: 0; padding: var(--section-padding-top) 0 calc(var(--pc-px) * 16); }
.feature--newsletter .feature__inner { grid-template-columns: minmax(0,45fr) minmax(0,55fr); gap: clamp(calc(var(--pc-px) * 16),2.222222vw,calc(var(--pc-px) * 32)); }
.feature--newsletter .feature__copy { min-width: 0; align-self: start; overflow-wrap: anywhere; }
.feature--newsletter .feature__copy h2 { white-space: normal; }
.newsletter-art { position: relative; z-index: 1; width: 100%; min-width: 0; max-width: calc(var(--pc-px) * 758.923); height: auto; margin: calc(var(--pc-px) * 100) 0 0; color: #111; }
.newsletter-art img { width: 100%; height: auto; }
.cta-banner { position: relative; display: flex; width: 100%; min-height: calc(var(--pc-px) * 580); aspect-ratio: 2880/1214; align-items: center; padding: calc(var(--pc-px) * 155) 0 calc(var(--pc-px) * 130); isolation: isolate; background: white url("../images/entry_bg.png") center/cover no-repeat; color: white; }
.cta-banner__inner { position: relative; z-index: 2; display: flex; align-items: center; justify-content: center; gap: calc(var(--pc-px) * 80); padding-top: calc(var(--pc-px) * 45); }
.cta-banner p { font-size: clamp(18px,calc(var(--pc-px) * 24),24px); font-weight: 800; line-height: 1.45; }
.faq { min-height: 0; padding-top: calc(var(--pc-px) * 48); padding-bottom: var(--section-padding-bottom); }
.section-title { font-size: var(--pc-title-size); font-weight: 900; line-height: 1.2; letter-spacing: -.035em; text-align: center; }
.section-title span { color: var(--red); }
.section-subtitle { margin-top: calc(var(--pc-px) * 12); font-size: var(--pc-body-size); font-weight: 700; line-height: 1.7; text-align: center; }
.faq__list { max-width: calc(var(--pc-px) * 1000); margin: calc(var(--pc-px) * 54) auto 0; border-top: calc(var(--pc-px) * 1) solid #111; }
.faq__item { padding: calc(var(--pc-px) * 26) calc(var(--pc-px) * 22); border-bottom: calc(var(--pc-px) * 1) solid #111; }
.faq__item dt, .faq__item dd { position: relative; padding-left: calc(var(--pc-px) * 30); }
.faq__item dt { margin-bottom: calc(var(--pc-px) * 8); font-size: clamp(18px,calc(var(--pc-px) * 20),20px); font-weight: bold; line-height: 1.5; }
.faq__item dd { font-size: var(--pc-body-size); font-weight: 500; line-height: 1.6; }
.faq__item dt::before { position: absolute; left: 0; font-family: "Montserrat",sans-serif; font-style: italic;font-weight: 600;  content: "Q"; }
.faq__item dd::before { position: absolute; left: 0; font-family: Arial,sans-serif; font-weight: 400; content: "A"; }
.registration { position: relative; min-height: 0; padding: var(--section-padding-top) 0 var(--section-padding-bottom); background: var(--pale); }
.steps { isolation: isolate; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: calc(var(--pc-px) * 27); margin: calc(var(--pc-px) * 52) 0 0; padding: 0; list-style: none; }
.step { position: relative; min-height: calc(var(--pc-px) * 336); padding: calc(var(--pc-px) * 36) calc(var(--pc-px) * 20) calc(var(--pc-px) * 32); border-radius: calc(var(--pc-px) * 22); background: white; text-align: center; }
/* Keep each outgoing arrow above the next card throughout its fade/transform. */
.step:nth-child(1) { z-index: 4; }
.step:nth-child(2) { z-index: 3; }
.step:nth-child(3) { z-index: 2; }
.step:nth-child(4) { z-index: 1; }
.step:not(:last-child)::after { position: absolute; top: calc(var(--pc-px) * 84); right: calc(var(--pc-px) * -43.5); z-index: 2; width: calc(var(--pc-px) * 60); height: calc(var(--pc-px) * 60); border-radius: 50%; background: var(--pale); content: ""; }
.step:not(:last-child)::before { position: absolute; top: calc(var(--pc-px) * 109); right: calc(var(--pc-px) * -20.5); z-index: 3; width: 0; height: 0; border-top: calc(var(--pc-px) * 5) solid transparent; border-bottom: calc(var(--pc-px) * 5) solid transparent; border-left: calc(var(--pc-px) * 10) solid #000; content: ""; }
.step__number { display: block; margin-bottom: calc(var(--pc-px) * 24); font-family: "Montserrat", sans-serif; font-size: clamp(13px,calc(var(--pc-px) * 18),18px); font-weight: 600; line-height: calc(var(--pc-px) * 27); }
.step__art { display: flex; height: calc(var(--pc-px) * 84); align-items: flex-start; justify-content: center; }
.step__art img { flex: 0 1 auto; max-width: 100%; height: auto; }
.step:nth-child(1) .step__art img { width: calc(var(--pc-px) * 224.537); }
.step:nth-child(2) .step__art img { width: calc(var(--pc-px) * 85.57); }
.step:nth-child(3) .step__art img { width: calc(var(--pc-px) * 205.537); }
.step:nth-child(4) .step__art img { width: calc(var(--pc-px) * 87.573); }
.step:nth-child(3) .step__art img { margin-top: calc(var(--pc-px) * 7); }
.step h3 { margin-bottom: calc(var(--pc-px) * 14); font-size: clamp(16px,calc(var(--pc-px) * 20),20px); font-weight: 700; line-height: 1.5; white-space: normal; }
.step p { font-size: var(--pc-body-size); font-weight: 400; line-height: 1.5; letter-spacing: .025em; text-align: left; }
.last-cta { position: relative; display: flex; width: 100%; min-height: calc(var(--pc-px) * 542); aspect-ratio: 2876/1262; align-items: center; padding: calc(var(--pc-px) * 180) 0 calc(var(--pc-px) * 30); isolation: isolate; background: var(--pale) url("../images/foot_entry_bg.png") center/cover no-repeat; color: white; text-align: center; }
.last-cta__inner { position: relative; z-index: 2; }
.last-cta h2 { position: relative; max-width: calc(var(--pc-px) * 696); margin: 0 auto calc(var(--pc-px) * 33); padding-bottom: calc(var(--pc-px) * 30); font-size: clamp(22px,calc(var(--pc-px) * 34),34px); font-weight: 800; line-height: 1.4; }
.last-cta h2::before { position: absolute; right: 0; bottom: 0; left: 0; height: 16px; background: url("../images/foot_entry_bdr.svg") center/auto 16px no-repeat; content: ""; }
.last-cta p { margin-bottom: calc(var(--pc-px) * 24); font-size: var(--pc-body-size); font-weight: 500; line-height: 1.7; }
.last-cta small { display: block; margin-top: calc(var(--pc-px) * 22); font-size: clamp(13px,calc(var(--pc-px) * 16),16px); font-weight: 500; }
.site-footer { display: grid; min-height: calc(var(--pc-px) * 220); grid-template-areas: "brand nav" "copy nav"; grid-template-columns: 1fr auto; align-content: center; align-items: center; gap: calc(var(--pc-px) * 20) calc(var(--pc-px) * 40); padding: calc(var(--pc-px) * 40) max(calc(var(--pc-px) * 40),calc((100% - calc(var(--pc-px) * 1260))/2)); background: white; }
.site-footer .brand { grid-area: brand; justify-self: start; }
.site-footer nav { grid-area: nav; display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; align-self: start; padding-top: calc(var(--pc-px) * 22); font-size: clamp(13px,calc(var(--pc-px) * 16),16px); }
.site-footer nav a { display: inline-flex; align-items: center; line-height: 1.7; }
.site-footer nav a + a { margin-left: calc(var(--pc-px) * 24); padding-left: calc(var(--pc-px) * 24); border-left: calc(var(--pc-px) * 1) solid #111; }
.site-footer small { grid-area: copy; font-size: 13px; font-weight: 400; line-height: 1.8; }
@media (max-width:767px) {
  body { font-size: 16px; }
  .wrap { width: calc(100% - 40px); }
  .sp-only { display: initial; }
  .pc-only { display: none; }
  .site-header { position: absolute; top: 22px; left: 24px; z-index: 5; display: block; }
  .hero { height: auto; min-height: max(630px,158.666667vw); aspect-ratio: auto; padding-bottom: 24px; overflow: visible; background: white; }
  .hero__photo { display: block; right: 0; bottom: auto; height: auto; aspect-ratio: 750/1190; }
  .hero__photo img { height: auto; object-fit: contain; }
  .hero__content { width: calc(100% - 44px); padding-top: 96px; }
  .hero h1 { margin-bottom: max(210px,calc(104vw - 180px)); font-size: 40px; line-height: 1.15; letter-spacing: -.025em; }
  .hero__lead { margin-left: -5px; font-size: 13px; line-height: 20px; }
  .hero__lead span { margin-bottom: 8px; padding: 3px 8px; white-space: nowrap; }
  .hero__free { margin: 0 -5px 20px; padding: 3px 8px; font-size: 13px; font-weight: 500; line-height: 20px; white-space: nowrap; }
  .button { width: 332px; max-width: 100%; min-height: 76px; padding: 14px 55px 14px 24px; border-width: 5px; font-size: 18px; }
  .button > span { right: 18px; width: 28px; height: 28px; }
  .button--hero { width: 332px; border-width: 3px; box-shadow: 0 5px 0 #999; }
  .hero__note { width: 332px; max-width: 100%; margin-top: 12px; color: #000; font-size: 13px; font-weight: 700; white-space: nowrap; }
  .merits { min-height: 402px; padding-top: 20px; padding-bottom: 46px; }
  .merits__title { position: relative; display: block; margin-bottom: 24px; font-size: 24px; line-height: 1.4; }
  .merits__title::before, .merits__title::after { position: absolute; bottom: 19px; width: 23%; }
  .merits__title::before { left: -4px; }
  .merits__title::after { right: -4px; }
  .merits__links { grid-template-columns: 1fr; gap: 16px; width: min(100%,325px); margin: 0 auto; }
  .merits__links a { min-height: 70px; gap: 16px; padding: 14px 48px 14px 28px; font-size: 18px; }
  .round-arrow { right: 29px; width: 26px; height: 26px; }
  .round-arrow::after { border-top-width: 7px; }
  .free-panel::before { top: 550px; bottom: 1px; clip-path: polygon(0 160px,100% 0,100% 100%,0 100%); }
  .free-panel::after { aspect-ratio: 375/95; margin-block: -1px; background-image: url("../images/about_bg_sp.svg"); }
  .free-panel__inner { display: block; width: 100%; min-height: 0; padding: 0; }
  .benefit-icons { width: calc(100% - 36px); max-width: 400px; height: 600px; aspect-ratio: auto; margin-inline: auto; }
  .benefit-icons__item { width: 145px; gap: 12px; font-size: 14px; line-height: 1.4; }
  .benefit-icons__item:nth-child(1) { top: 40px; left: -4px; }
  .benefit-icons__item:nth-child(2) { top: 40px; right: -4px; }
  .benefit-icons__item:nth-child(3) { right: -10px; bottom: 56px; left: auto; width: 160px; }
  .benefit-icons__item:nth-child(4) { bottom: 8px; left: -4px; right: auto; width: 160px; }
  .line-icon--gift { width: 116px; }
  .line-icon--article { width: 104px; }
  .line-icon--mail { width: 112px; }
  .line-icon--free { width: 156px; }
  .benefit-icons__phone { top: 214px; left: 50%; width: 190px; transform: translateX(-50%); }
  .free-panel__copy { padding: 138px 24px 10px; }
  .free-panel__copy h2 { margin-bottom: 26px; font-size: 28px; font-weight: 800; line-height: 1.6; letter-spacing: -.04em; }
  .free-panel__copy p { margin-top: 12px; font-size: 16px; line-height: 1.65; }
  .feature__inner { display: flex; flex-direction: column; align-items: stretch; }
  .feature__label { min-width: 80px; height: 32px; margin-bottom: 8px; padding: 2px 10px; border-width: 1px; font-size: 13px; }
  .feature__copy h2 { margin-bottom: 12px; font-size: 40px; line-height: 1.1; letter-spacing: -.04em; }
  .feature__copy h3 { margin-bottom: 14px; font-size: 24px; line-height: 1.3; letter-spacing: -.02em; }
  .feature__copy p { max-width: none; font-size: 16px; line-height: 1.65; }
  .feature--gift { min-height: 734px; padding: 24px 0 25px; }
  .feature__visual { width: calc(100% + 20px); margin: 28px -20px 0 0; padding-bottom: 58px; }
  .slick-list { clip-path: none; }
  .slick-slide { margin-inline: 12px; }
  .slick-list { margin-inline: 0; }
  .slick-dots { bottom: -38px; gap: 18px; }
  .slick-dots li, .slick-dots li button, .slick-dots li button:before { width: 15px; height: 15px; }
  .product-card p { margin-top: 10px; font-size: 16px; line-height: 1.4; }
  .feature__caption { order: 3; margin-top: 0; font-size: 13px; font-weight: 500; line-height: 1.7; }
  .feature--articles { min-height: 975px; padding: 52px 0 32px; }
  .feature--articles .feature__copy h2 { margin-bottom: 18px; }
  .feature--articles .feature__copy p { margin-top: 12px; }
  .feature--articles .feature__visual { align-self: stretch; margin-top: 24px; margin-bottom: 0; margin-left: 0; }
  .check-list { margin-top: 22px; border-top: 1px dotted #8d9295; }
  .check-list li { padding: 13px 0 13px 35px; border-bottom: 1px dotted #8d9295; font-size: 14px; font-weight: 800; line-height: 1.5; }
  .check-list li + li { margin-top: 0; }
  .check-list li::before { top: 16px; left: 12px; width: 17px; height: 17px; }
  .check-list li::after { top: 21px; left: 17px; width: 8px; height: 5px; }
  .article-card { min-height: 310px; padding: 8px 8px 24px; }
  .article-card::before { top: 8px; left: 8px; width: 128px; height: 46px; font-size: 14px; }
  .article-card p { margin: 16px 6px 0; font-size: 14px; line-height: 1.6; }
  .article-card__category { font-size: 12px; }
  .feature--newsletter { min-height: 551px; padding: 38px 0 20px; }
  .feature--newsletter .feature__inner { gap: 0; }
  .feature--newsletter .feature__copy h2 { margin-bottom: 16px; }
  .newsletter-art { width: 100%; height: auto; margin: 6px 0 0; }
  .cta-banner { min-height: 380px; aspect-ratio: 750/780; padding: 88px 0 78px; background-image: url("../images/entry_bg_sp.png"); background-size: cover; }
  .cta-banner__inner { flex-direction: column; gap: 28px; padding-top: 0; }
  .cta-banner p { width: 264px; font-size: 24px; line-height: 1.35; }
  .cta-banner .button { flex-shrink: 0; }
  .faq { width: 100%; min-height: 531px; padding: 44px 22px 78px; }
  .section-title { font-size: 40px; line-height: 1.2; }
  .section-subtitle { margin-top: 12px; font-size: 16px; line-height: 26px; }
  .faq__list { margin-top: 30px; }
  .faq__item { padding: 24px 10px; }
  .faq__item dt, .faq__item dd { padding-left: 28px; }
  .faq__item dt { margin-bottom: 10px; font-size: 18px; line-height: 27px; }
  .faq__item dd { font-size: 16px; line-height: 24px; }
  .registration { min-height: 1420px; padding: 60px 0 90px; }
  .registration .wrap { width: calc(100% - 38px); }
  .registration .section-subtitle { margin-top: 10px; line-height: 28px; }
  .steps { grid-template-columns: 1fr; gap: 24px; margin-top: 24px; }
  .step { min-height: 260px; padding: 28px 24px 29px; border-radius: 22px; }
  .step:not(:last-child)::after { top: auto; right: 50%; bottom: -42px; width: 60px; height: 60px; transform: translateX(50%); }
  .step:not(:last-child)::before { top: auto; right: 50%; bottom: -17px; border-top: 10px solid #000; border-right: 5px solid transparent; border-bottom: 0; border-left: 5px solid transparent; transform: translateX(50%); }
  .step__art { height: 84px; }
  .step__number { margin-bottom: 12px; font-size: 18px; line-height: 27px; }
  .step h3 { margin-bottom: 12px; font-size: 20px; line-height: 30px; white-space: nowrap; }
  .step p { font-size: 16px; line-height: 26px; }
  .last-cta {
    min-height: 432px;
    aspect-ratio: 750/894;
    padding: 128px 0 34px;
    background-color: white;
    background-image: url("../images/foot_entry_bg_sptop.svg"), url("../images/foot_entry_bg_spbtm.png");
    background-position: center top, center bottom;
    background-size: 100% auto, 100% auto;
    background-repeat: no-repeat;
  }
  .last-cta h2 { margin-bottom: 24px; padding-bottom: 22px; font-size: 24px; line-height: 1.4; }
  .last-cta p { margin-bottom: 18px; font-size: 16px; line-height: 26px; }
  .last-cta small { margin-top: 18px; font-size: 16px; }
  .site-footer { min-height: 0; grid-template-areas: "nav" "brand" "copy"; grid-template-columns: 1fr; align-content: start; justify-items: center; gap: 0; padding: 0 22px 36px; }
  .site-footer nav { display: block; width: 100%; padding: 0; font-size: 14px; font-weight: 500; }
  .site-footer nav a { display: flex; min-height: 64px; align-items: center; padding: 12px 13px; border-bottom: 1px solid #111; }
  .site-footer nav a + a { margin: 0; padding-left: 13px; border-left: 0; line-height: inherit; }
  .site-footer .brand { justify-self: center; margin: 28px auto 20px; }
  .site-footer small { font-size: 12px; line-height: 2; text-align: center; white-space: nowrap; }
}
/* Desktop KV: preserve the current layout from 768px upward. */
@media (min-width:768px) {
  :root {
    --pc-px: min(0.069444444vw,1px);
    --content: min(83.333333vw,1200px);
    --pc-frame: min(100vw,1440px);
  }
  .site-header { left: calc((100% - var(--pc-frame)) / 2 + calc(var(--pc-px) * 52)); }
  .site-header .brand__image { width: clamp(94px,13.118063vw,130px); }
  .hero { --hero-unit: calc(var(--pc-px) * 14.4); height: auto; min-height: 0; aspect-ratio: 2880/1420; padding: 0; overflow: hidden; }
  .hero__photo { display: block; inset: 0; height: 100%; aspect-ratio: auto; }
  .hero__photo img { height: 100%; object-fit: contain; object-position: center; }
  .hero__content { position: absolute; inset: 0; width: var(--content); padding-top: calc(var(--pc-px) * 140); }
  .hero h1 { margin-bottom: calc(var(--pc-px) * 28); font-size: calc(var(--pc-px) * 56); line-height: 1.15; letter-spacing: .015em; }
  .hero__lead, .hero__free { font-size: max(13px,calc(var(--pc-px) * 18)); line-height: 1.3; }
  .hero__lead { margin-left: 0; }
  .hero__lead span { margin-bottom: calc(var(--pc-px) * 6); padding: calc(var(--pc-px) * 3) calc(var(--pc-px) * 10); white-space: normal; }
  .hero__free { margin: 0 0 calc(var(--pc-px) * 32); padding: calc(var(--pc-px) * 3) calc(var(--pc-px) * 10); white-space: normal; }
  .hero .button--hero { width: calc(var(--pc-px) * 382); min-height: calc(var(--pc-px) * 82); padding: calc(var(--pc-px) * 16) calc(var(--pc-px) * 56) calc(var(--pc-px) * 16) calc(var(--pc-px) * 28); border-width: calc(var(--pc-px) * 3); box-shadow: 0 calc(var(--pc-px) * 6) 0 rgba(32,47,55,.6); font-size: max(13px,calc(var(--pc-px) * 18)); }
  .hero .button--hero > span { right: calc(var(--pc-px) * 22); width: calc(var(--pc-px) * 32); height: calc(var(--pc-px) * 32); }
  .hero__note { width: max(320px,calc(var(--pc-px) * 382)); margin-top: calc(var(--pc-px) * 16); margin-left: min(0px,calc((calc(var(--pc-px) * 382) - 320px) / 2)); color: white; font-size: max(13px,calc(var(--pc-px) * 14)); font-weight: 500; white-space: nowrap; }
}
/* Compact vertical KV between the phone and desktop layouts.
   The landscape photo keeps its complete aspect ratio; copy and CTA follow it. */
@media (min-width:576px) and (max-width:767px) {
  .site-header { top: 20px; left: 28px; }
  .site-header .brand__image { width: 94px; }
  .hero { min-height: 0; aspect-ratio: auto; padding-bottom: 24px; overflow: visible; }
  .hero__photo { height: auto; aspect-ratio: 2880/1420; }
  .hero__photo img { height: auto; object-fit: contain; }
  .hero__content { position: relative; inset: auto; width: calc(100% - 56px); padding-top: 0; }
  .hero h1 { min-height: calc(100vw * 1420 / 2880); margin-bottom: 16px; padding-top: 88px; font-size: 38px; line-height: 1.15; }
  .hero__lead, .hero__free { font-size: 15px; line-height: 1.5; }
  .hero__lead { margin-left: 0; }
  .hero__lead span { margin-bottom: 6px; padding: 0; white-space: normal; }
  .hero__free { margin: 0 0 18px; padding: 0; white-space: normal; }
  .hero .button--hero { display: flex; margin-inline: auto; }
  .hero__note { width: 100%; max-width: none; margin-inline: auto; white-space: normal; overflow-wrap: anywhere; }
}
@media (min-width:768px) and (max-width:991px) {
  .site-header { top: calc(var(--pc-px) * 24); }
  .hero__content { padding-top: calc(var(--pc-px) * 135); }
  .hero h1 { margin-bottom: 10px; font-size: calc(var(--pc-px) * 52); line-height: 1.1; }
  .hero__lead, .hero__free { line-height: 1.35; }
  .hero__free { margin-bottom: 12px; }
  .hero__note { margin-top: 8px; }
  .benefit-icons { aspect-ratio: 610/680; }
  .benefit-icons__item:nth-child(1) { left: -5%; }
  .benefit-icons__item:nth-child(2) { right: -5%; }
  .benefit-icons__phone { top: 25%; }
  .steps { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .step:nth-child(2)::before, .step:nth-child(2)::after { display: none; }
}
@media (max-width:359px) {
  .hero h1 { font-size: 36px; }
  .hero__lead, .hero__free { font-size: 11px; }
  .hero__note { font-size: 11px; }
  .hero h1 { margin-bottom: 219px; }
  .button { font-size: 16px; }
  .merits__links a { padding-left: 14px; font-size: 16px; }
  .round-arrow { right: 20px; }
  .free-panel__copy h2 { font-size: 24px; }
  .feature__copy h2 { font-size: 36px; }
  .step { padding-inline: 20px; }
  .step h3 { font-size: 18px; }
  .site-footer small { font-size: 10px; }
}
@media (max-width:575px) {
  .hero .button--hero { display: flex; margin-inline: auto; }
  .hero__note { width: 100%; max-width: none; margin-inline: auto; white-space: normal; overflow-wrap: anywhere; text-align: center; }
  .site-header .brand__image { width: 94px; }
  .feature .feature__visual { width: 100%; margin-right: 0; margin-left: 0; }
  .slick-carousel .slick-slide { margin-inline: 12px; }
  .product-card, .article-card { width: 100%; flex-basis: 100%; }
  .slick-carousel:not(.slick-initialized) { gap: 24px; }
}
.page-top { position: fixed; right: max(24px,env(safe-area-inset-right)); bottom: max(24px,calc(env(safe-area-inset-bottom) + 16px)); z-index: 20; display: grid; width: 56px; height: 56px; place-items: center; padding: 0; border: 2px solid white; border-radius: 50%; background: var(--red); box-shadow: 0 3px 8px rgba(0,0,0,.18); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(8px); cursor: pointer; -webkit-tap-highlight-color: transparent; transition: opacity .4s ease, transform .4s ease, background-color .2s ease, visibility 0s .4s; }
.page-top[hidden] { display: none; }
.page-top.is-visible { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); transition-delay: 0s; }
.page-top::before { width: 14px; height: 14px; margin-top: 7px; border-top: 3px solid white; border-left: 3px solid white; transform: rotate(45deg); content: ""; }
.page-top:hover { background: var(--red-dark); }
@media (max-width:575px) {
  .page-top { right: max(16px,env(safe-area-inset-right)); width: 48px; height: 48px; }
}
.reveal {
  opacity: 0;
  transition: none;
}
.reveal:not(.reveal--fade) { transform: translate3d(0,18px,0); }
.reveals-ready .reveal {
  transition: opacity .85s cubic-bezier(.22,1,.36,1);
  transition-delay: var(--reveal-delay,0ms);
}
.reveals-ready .reveal:not(.reveal--fade) {
  transition: opacity .85s cubic-bezier(.22,1,.36,1), transform 1s cubic-bezier(.22,1,.36,1), background-color .2s ease;
  transition-delay: var(--reveal-delay,0ms), var(--reveal-delay,0ms), 0ms;
}
.reveal.is-revealed, .reveal:focus-within { opacity: 1; }
.reveal.is-revealed:not(.reveal--fade), .reveal:focus-within:not(.reveal--fade) { transform: none; }
.reveals-ready .reveal:focus-within { transition: none; }
@media (max-width:767px) {
  .reveal:not(.reveal--fade):not(.is-revealed):not(:focus-within) { transform: translate3d(0,12px,0); }
}
@media print {
  .page-top { display: none; }
  .reveal, .reveals-ready .reveal { opacity: 1; transition: none; }
  .reveal:not(.reveal--fade) { transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .page-top { transition: none; }
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
  .reveal, .reveals-ready .reveal { opacity: 1; transition: none; }
  .reveal:not(.reveal--fade) { transform: none; }
}
