{{ toastMessage }}
家具と家電のレンタル ・サブスク CLAS (クラス)
メニュー

家具と家電の

レンタル・サブスク

カート {{ cartQuantity }}
{{ categoriesBarTitle }}

新生活をお得にスタート Astageセット

2026/03/19

#app { width: 100%; } #nw-progress { display: none; } body.content2 .TitleComponent[data-size=h1], body.content2 .datetime, .BreadCrumbSection { display: none; } body.content2 .SectionComponent:first-child { margin-top: 0; } body .article_detail { margin: 0 auto; overflow: hidden; width: 100%; max-width: 1280px; } body.content2 .pageTopbutton { display: none; } *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { font-size: 10px; } body { background: linear-gradient(180deg, #F2DDE5 0%, #F8ECF0 30%, #FDF5F7 50%, #F8ECF0 70%, #F2DDE5 100%); background-attachment: fixed; color: #4b5049; font-family: futura-pt, arial, 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', sans-serif; -webkit-font-smoothing: antialiased; } /* ============================================ Design Tokens ============================================ */ :root { --pink: #B8245E; --pink-dark: #9A1D4E; --pink-light: #FFF0F3; --pink-bg: #FDF2F5; --pink-vivid: #E0396E; --pink-neon: #FF2D78; --gold: #C9A84C; --gold-dark: #A8893A; --gold-light: #FBF6E8; --secondary: #3A8E7B; --secondary-dark: #2E7565; --secondary-light: #E8F4F0; --navy: #2D312F; --text: #323630; --text-mid: #646B61; --text-light: #979E94; --warm-bg: #F5F3F0; --card-bg: #F2F3F2; --border-light: #E5E7E4; --radius: 8px; --radius-md: 12px; --radius-pill: 100px; --shadow-pink: rgba(184, 36, 94, 0.35); --shadow-gold: rgba(201, 168, 76, 0.4); --yellow: #FFE033; --red: #E82525; } .Notification { align-items: center; background: var(--pink); } /* ============================================ アニメーション(全部盛り) ============================================ */ @keyframes pulse { 0%,100%{transform:scale(1)} 50%{transform:scale(1.06)} } @keyframes bounce { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} } @keyframes shimmer { 0%{left:-100%} 100%{left:100%} } @keyframes glow { 0%,100%{box-shadow:0 0 8px var(--shadow-pink),0 4px 14px var(--shadow-pink)} 50%{box-shadow:0 0 24px var(--shadow-pink),0 4px 30px rgba(184,36,94,0.55)} } @keyframes neonGlow { 0%,100%{text-shadow:0 0 4px var(--pink-neon),0 0 8px var(--pink-neon),0 0 16px var(--pink-neon),0 0 32px var(--pink-neon)} 50%{text-shadow:0 0 2px var(--pink-neon),0 0 4px var(--pink-neon),0 0 8px var(--pink-neon),0 0 16px var(--pink-neon)} } @keyframes fadeInUp { from{opacity:0;transform:translateY(40px)} to{opacity:1;transform:translateY(0)} } @keyframes sparkle { 0%,100%{opacity:0;transform:scale(0) rotate(0)} 50%{opacity:1;transform:scale(1) rotate(180deg)} } @keyframes goldShine { 0%{background-position:-200% center} 100%{background-position:200% center} } @keyframes wiggle { 0%,100%{transform:rotate(0)} 25%{transform:rotate(-3deg)} 75%{transform:rotate(3deg)} } @keyframes flash { 0%,50%,100%{opacity:1} 25%,75%{opacity:0.6} } @keyframes spin { 0%{transform:rotate(0)} 100%{transform:rotate(360deg)} } @keyframes arrowBounce { 0%,100%{transform:translateY(0)} 50%{transform:translateY(8px)} } @keyframes borderGlow { 0%,100%{border-color:var(--pink);box-shadow:0 0 10px var(--shadow-pink)} 50%{border-color:var(--pink-neon);box-shadow:0 0 25px rgba(255,45,120,0.4)} } @keyframes rainbowBorder { 0%{border-color:var(--pink)} 33%{border-color:var(--gold)} 66%{border-color:var(--pink-vivid)} 100%{border-color:var(--pink)} } @keyframes slideIn { from{opacity:0;transform:translateX(-30px)} to{opacity:1;transform:translateX(0)} } @keyframes popIn { 0%{opacity:0;transform:scale(0.5)} 70%{transform:scale(1.1)} 100%{opacity:1;transform:scale(1)} } @keyframes confettiA { 0%{transform:translate(0,0) rotate(0);opacity:1} 100%{transform:translate(80px,200px) rotate(720deg);opacity:0} } @keyframes confettiB { 0%{transform:translate(0,0) rotate(0);opacity:1} 100%{transform:translate(-60px,180px) rotate(-540deg);opacity:0} } @keyframes confettiC { 0%{transform:translate(0,0) rotate(0);opacity:1} 100%{transform:translate(40px,220px) rotate(450deg);opacity:0} } /* スクロールフェードイン */ .fade-in { opacity:0; transform:translateY(40px); transition:opacity 0.7s ease-out, transform 0.7s ease-out; } .fade-in.is-visible { opacity:1; transform:translateY(0); } .fade-in.is-visible .stagger-1 { animation: popIn 0.5s 0.1s both; } .fade-in.is-visible .stagger-2 { animation: popIn 0.5s 0.2s both; } .fade-in.is-visible .stagger-3 { animation: popIn 0.5s 0.3s both; } /* ============================================ ページラッパー ============================================ */ .page-wrapper { background: #fff; margin: 0 auto; max-width: 768px; min-height: 100vh; overflow: hidden; } /* ============================================ 斜めストライプ背景(日本LP定番) ============================================ */ .bg-stripe { background: repeating-linear-gradient( -45deg, transparent, transparent 8px, rgba(184,36,94,0.04) 8px, rgba(184,36,94,0.04) 16px ); } .bg-stripe-gold { background: repeating-linear-gradient( -45deg, transparent, transparent 8px, rgba(201,168,76,0.06) 8px, rgba(201,168,76,0.06) 16px ); } /* ============================================ 集中線(スターバースト) ============================================ */ .sunburst { position: relative; overflow: hidden; } .sunburst::before { content: ''; position: absolute; top: 50%; left: 50%; width: 200%; height: 200%; transform: translate(-50%,-50%); background: repeating-conic-gradient( rgba(255,255,255,0.08) 0deg 5deg, transparent 5deg 10deg ); z-index: 0; pointer-events: none; } .sunburst > * { position: relative; z-index: 1; } /* ============================================ 紙吹雪(CSS confetti) ============================================ */ .confetti-wrap { position: relative; overflow: hidden; } .confetti { position: absolute; width: 8px; height: 8px; border-radius: 2px; opacity: 0; pointer-events: none; } .confetti:nth-child(1) { background:var(--pink); top:10%; left:10%; animation:confettiA 3s 0s infinite; } .confetti:nth-child(2) { background:var(--gold); top:5%; left:30%; animation:confettiB 3.5s 0.3s infinite; } .confetti:nth-child(3) { background:var(--pink-vivid); top:8%; left:55%; animation:confettiC 2.8s 0.6s infinite; } .confetti:nth-child(4) { background:var(--yellow); top:3%; left:75%; animation:confettiA 3.2s 0.9s infinite; } .confetti:nth-child(5) { background:var(--pink); top:12%; left:90%; animation:confettiB 3.8s 0.2s infinite; } .confetti:nth-child(6) { background:var(--gold); top:6%; left:45%; animation:confettiC 3.3s 1.2s infinite; } /* ============================================ ヒーロー ============================================ */ .hero { position: relative; text-align: center; } .hero-banner { width: 100%; height: auto; display: block; } .hero-cta-wrap { background: linear-gradient(180deg, var(--pink-bg) 0%, #fff 100%); padding: 20px 16px 32px; text-align: center; position: relative; } .hero-sub { font-size: 13px; color: var(--text-mid); line-height: 1.8; margin-bottom: 18px; } /* 矢印アニメ(CTAの上に) */ .arrow-down { display: block; font-size: 24px; color: var(--pink); animation: arrowBounce 1s ease-in-out infinite; margin-bottom: 8px; } @media(min-width:768px) { .hero-cta-wrap { padding: 28px 40px 40px; } .hero-sub { font-size: 14px; } } /* ============================================ CTA ボタン(超グロー+シマー+パルス) ============================================ */ .cta-btn { display: inline-block; background: linear-gradient(135deg, var(--pink) 0%, var(--pink-vivid) 50%, var(--pink) 100%); background-size: 200% 200%; color: #fff !important; text-decoration: none !important; font-size: 17px; font-weight: 900; letter-spacing: 0.06em; padding: 18px 48px; border-radius: var(--radius-pill); position: relative; overflow: hidden; animation: glow 2s ease-in-out infinite, goldShine 3s ease-in-out infinite; transition: transform 0.15s; z-index: 1; border: 2px solid rgba(255,255,255,0.3); } .cta-btn::before { content: ''; position: absolute; top: -2px; left: -2px; right: -2px; bottom: -2px; background: linear-gradient(45deg, var(--pink), var(--gold), var(--pink-vivid), var(--gold)); background-size: 400% 400%; border-radius: var(--radius-pill); z-index: -1; animation: goldShine 4s ease-in-out infinite; opacity: 0.6; filter: blur(8px); } .cta-btn::after { content: ''; position: absolute; top: 0; left: -100%; width: 50%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.45), transparent); animation: shimmer 2s ease-in-out infinite; z-index: 2; } .cta-btn:hover { transform: scale(1.05); } .cta-btn:active { transform: scale(0.97); } .cta-btn--secondary { background: transparent !important; color: var(--pink) !important; border: 3px solid var(--pink); animation: borderGlow 2s ease-in-out infinite; } .cta-btn--secondary::before, .cta-btn--secondary::after { display: none; } .cta-btn--secondary:hover { background: var(--pink-light) !important; } @media(min-width:768px) { .cta-btn { font-size: 20px; padding: 22px 56px; } } /* ============================================ セクション見出し(ド派手・縁取り) ============================================ */ .section-heading { font-size: 26px; font-weight: 900; line-height: 1.5; color: #fff; margin-bottom: 18px; position: relative; padding-bottom: 20px; -webkit-text-stroke: 3px var(--pink); paint-order: stroke fill; text-shadow: 4px 4px 0 var(--pink-dark), -1px -1px 0 var(--pink-dark), 1px -1px 0 var(--pink-dark), -1px 1px 0 var(--pink-dark), 0 4px 12px var(--shadow-pink); } /* ゴールドキラキラアンダーライン */ .section-heading::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100px; height: 4px; background: linear-gradient(90deg, var(--pink), var(--gold), var(--pink-vivid), var(--gold)); background-size: 300% 100%; border-radius: 2px; animation: goldShine 2s ease-in-out infinite; } .section-heading--center { text-align: center; } .section-heading--center::after { left: 50%; transform: translateX(-50%); } /* ハイライトアクセント(10%OFFなど) */ .heading-accent { display: inline-block; color: #fff; font-size: 1.4em; padding: 2px 8px; background: var(--pink-vivid); border-radius: 6px; text-shadow: 0 0 4px var(--pink-vivid), 0 0 4px var(--pink-vivid), 0 0 4px var(--pink-vivid), 0 0 4px var(--pink-vivid), 0 0 4px var(--pink-vivid), 0 0 4px var(--pink-vivid), 0 0 4px var(--pink-vivid), 0 0 4px var(--pink-vivid), 0 0 4px var(--pink-vivid), 0 0 4px var(--pink-vivid), 0 0 4px var(--pink-vivid), 0 0 4px var(--pink-vivid); animation: pulse 1.5s ease-in-out infinite; box-shadow: 0 2px 10px var(--shadow-pink); } @media(min-width:768px) { .section-heading { font-size: 34px; -webkit-text-stroke: 4px var(--pink); } } .section-lead { font-size: 14px; color: var(--text-mid); line-height: 2.0; margin-top: 16px; margin-bottom: 24px; } @media(min-width:768px) { .section-lead { font-size: 15px; } } /* ============================================ リボンバッジ(CSS ribbon) ============================================ */ .ribbon { position: absolute; top: 12px; left: -8px; background: var(--pink); color: #fff; font-size: 12px; font-weight: 900; padding: 4px 16px 4px 12px; z-index: 10; box-shadow: 2px 2px 6px var(--shadow-pink); } .ribbon::before { content: ''; position: absolute; left: 0; bottom: -6px; border-left: 8px solid transparent; border-top: 6px solid var(--pink-dark); } .ribbon::after { content: ''; position: absolute; right: -10px; top: 0; border-top: 14px solid var(--pink); border-bottom: 14px solid var(--pink); border-right: 10px solid transparent; } /* ============================================ スタンプバッジ(回転+枠つき円形) ============================================ */ .stamp { position: absolute; width: 72px; height: 72px; border: 3px dashed var(--red); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 900; color: var(--red); transform: rotate(-15deg); z-index: 10; background: rgba(255,255,255,0.9); box-shadow: 0 2px 8px rgba(0,0,0,0.1); line-height: 1.2; text-align: center; } /* ============================================ Section 1: 購入比較 ============================================ */ .compare-section { padding: 44px 16px; background: var(--warm-bg); } @media(min-width:768px) { .compare-section { padding: 56px 40px; } } .compare-table { width: 100%; border-collapse: collapse; background: #fff; border-radius: var(--radius-md); overflow: hidden; box-shadow: 0 4px 20px rgba(0,0,0,0.1); margin-bottom: 8px; } .compare-table th, .compare-table td { padding: 12px 8px; font-size: 12px; text-align: left; border-bottom: 1px solid var(--border-light); } .compare-table th { background: linear-gradient(135deg, var(--pink) 0%, var(--pink-dark) 100%); color: #fff; font-weight: 900; font-size: 11px; letter-spacing: 0.05em; } .compare-table td:first-child { font-weight: 700; color: var(--text); } .compare-table .price-before { color: var(--text-light); text-decoration: line-through; font-size: 12px; } .compare-table .price-clas { color: var(--pink); font-weight: 900; font-size: 16px; } .compare-table tfoot td { font-weight: 900; font-size: 15px; border-top: 3px solid var(--pink); background: linear-gradient(135deg, var(--pink-light) 0%, var(--gold-light) 100%); } .compare-table tfoot .price-clas { font-size: 22px; } .compare-table tfoot .price-before { font-size: 14px; } .compare-highlight { background: linear-gradient(135deg, var(--pink-light), var(--gold-light), var(--pink-light)); background-size: 200% 100%; animation: goldShine 3s ease-in-out infinite; color: var(--pink); font-size: 17px; font-weight: 900; line-height: 1.8; text-align: center; padding: 18px 20px; border-radius: var(--radius-md); margin-bottom: 24px; border: 2px solid var(--gold); position: relative; overflow: hidden; } .compare-highlight::after { content: ''; position: absolute; top: 0; left: -100%; width: 50%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.35), transparent); animation: shimmer 3s ease-in-out infinite; } @media(min-width:768px) { .compare-highlight { font-size: 20px; padding: 22px 24px; } .compare-table td, .compare-table th { padding: 14px 12px; font-size: 13px; } } .table-note { font-size: 11px; color: var(--text-light); margin-bottom: 20px; } /* ============================================ 商品カード ============================================ */ .life-section { padding: 44px 16px; } @media(min-width:768px) { .life-section { padding: 56px 40px; } } .life-cards { display: flex; flex-direction: column; gap: 16px; margin-top: 24px; } .life-card { background: #fff; border-radius: var(--radius-md); overflow: hidden; box-shadow: 0 2px 10px rgba(0,0,0,0.08); transition: box-shadow 0.3s, transform 0.3s; position: relative; } .life-card:hover { box-shadow: 0 6px 24px rgba(0,0,0,0.15); transform: translateY(-4px); } .life-card-img { width: 100%; background: var(--card-bg); display: flex; align-items: center; justify-content: center; } .life-card-img img { width: 100%; height: 100%; object-fit: cover; } .life-card-body { padding: 16px; } .life-card-name { font-size: 14px; font-weight: 900; color: var(--text); margin-bottom: 6px; } .life-card-price { font-size: 24px; font-weight: 900; color: var(--pink); text-shadow: 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff; } .life-card-price small { font-size: 12px; font-weight: 500; color: var(--text-mid); } @media(min-width:768px) { .life-cards { flex-direction: row; gap: 16px; } .life-card { flex: 1; } .life-card-img { height: 200px; } } /* ============================================ セット誘導CTA Box(ド派手・メイン導線) ============================================ */ .set-cta-box { margin-top: 32px; background: linear-gradient(160deg, var(--pink-light) 0%, #fff 30%, var(--gold-light) 70%, var(--pink-light) 100%); border: 4px solid var(--pink); border-radius: var(--radius-md); padding: 32px 20px; text-align: center; position: relative; overflow: hidden; box-shadow: 0 6px 30px var(--shadow-pink); animation: borderGlow 2s ease-in-out infinite; } /* 左上リボン */ .set-cta-box .ribbon-left { position: absolute; top: 0; left: 0; background: var(--pink); color: #fff; font-size: 11px; font-weight: 900; padding: 6px 20px; letter-spacing: 0.1em; border-radius: 0 0 12px 0; box-shadow: 2px 2px 6px var(--shadow-pink); } /* 右上ゴールドバッジ */ .set-cta-box .badge-right { position: absolute; top: -4px; right: -4px; width: 64px; height: 64px; background: linear-gradient(135deg, #D4B55A, #F0D98C, #C9A84C); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 14px; font-weight: 900; text-shadow: 0 1px 2px rgba(0,0,0,0.2); box-shadow: 0 3px 10px var(--shadow-gold); animation: spin 8s linear infinite; } .set-cta-text { font-size: 16px; font-weight: 900; color: var(--text); margin-bottom: 10px; margin-top: 12px; } .set-cta-price { font-size: 16px; font-weight: 700; color: var(--text); margin-bottom: 8px; } .set-cta-before { color: var(--text-light); text-decoration: line-through; font-size: 22px; } .set-cta-after { color: var(--pink); font-size: 52px; font-weight: 900; display: inline-block; text-shadow: 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 3px 0 7px #fff, -3px 0 7px #fff, 0 3px 7px #fff, 0 -3px 7px #fff, 0 3px 10px var(--shadow-pink); animation: bounce 2s ease-in-out infinite; } .set-cta-price small { font-size: 16px; font-weight: 500; color: var(--text-mid); } .set-cta-saving { display: inline-block; background: var(--yellow); color: var(--red); font-size: 14px; font-weight: 900; padding: 6px 20px; border-radius: var(--radius-pill); margin-bottom: 16px; animation: flash 1.5s ease-in-out infinite; box-shadow: 0 2px 8px rgba(0,0,0,0.1); } @media(min-width:768px) { .set-cta-after { font-size: 64px; } } /* ============================================ 配送プラン ============================================ */ .shipping-section { padding: 36px 16px; background: var(--secondary-light); } @media(min-width:768px) { .shipping-section { padding: 44px 40px; } } .shipping-section-title { font-size: 17px; font-weight: 900; color: var(--text); text-align: center; margin-bottom: 16px; line-height: 1.6; } .shipping-plans { display: flex; flex-direction: column; gap: 12px; } @media(min-width:768px) { .shipping-plans { flex-direction: row; gap: 16px; } } .shipping-plan { background: #fff; border-radius: var(--radius-md); padding: 20px 16px; box-shadow: 0 2px 8px rgba(0,0,0,0.06); flex: 1; transition: transform 0.3s, box-shadow 0.3s; } .shipping-plan:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(0,0,0,0.12); } .shipping-plan-label { display: inline-block; font-size: 11px; font-weight: 900; letter-spacing: 0.04em; padding: 3px 12px; border-radius: var(--radius-pill); margin-bottom: 10px; } .shipping-plan-label--zero { background: var(--secondary); color: #fff; } .shipping-plan-name { font-size: 15px; font-weight: 900; color: var(--text); margin-bottom: 6px; } .shipping-plan-highlight { font-size: 22px; font-weight: 900; color: var(--pink); margin-bottom: 8px; } .shipping-plan-highlight small { font-size: 12px; font-weight: 500; color: var(--text-mid); } .shipping-plan-benefits { list-style: none; } .shipping-plan-benefits li { font-size: 13px; color: var(--text-mid); line-height: 1.9; padding-left: 20px; position: relative; } .shipping-plan-benefits li::before { content: '✓'; position: absolute; left: 0; color: var(--secondary); font-weight: 900; } .shipping-plan-note { font-size: 11px; color: var(--text-light); line-height: 1.5; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--border-light); } .shipping-campaign-badge { display: inline-block; background: var(--pink); color: #fff; font-size: 12px; font-weight: 900; padding: 4px 12px; border-radius: var(--radius-pill); margin-bottom: 6px; animation: pulse 1.5s ease-in-out infinite; box-shadow: 0 2px 6px var(--shadow-pink); } /* ============================================ 合計ハイライト(集中線+紙吹雪) ============================================ */ .total-section { padding: 44px 16px; background: var(--warm-bg); } @media(min-width:768px) { .total-section { padding: 56px 40px; } } .total-highlight { background: linear-gradient(160deg, #fff, var(--pink-light) 30%, var(--gold-light) 70%, #fff); border-radius: var(--radius-md); padding: 36px 20px; text-align: center; margin-top: 24px; margin-bottom: 24px; border: 4px solid var(--pink); position: relative; overflow: hidden; box-shadow: 0 6px 30px var(--shadow-pink); animation: borderGlow 2.5s ease-in-out infinite; } .total-clas-label { font-size: 15px; color: var(--pink); margin-bottom: 6px; font-weight: 900; letter-spacing: 0.1em; } .total-clas-price { font-size: 56px; font-weight: 900; color: var(--pink); line-height: 1.2; text-shadow: 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 3px 0 7px #fff, -3px 0 7px #fff, 0 3px 7px #fff, 0 -3px 7px #fff, 0 3px 12px var(--shadow-pink); animation: bounce 2.5s ease-in-out infinite; } .total-clas-price small { font-size: 22px; font-weight: 700; } .total-daily { font-size: 16px; font-weight: 900; color: var(--text); margin-top: 12px; background: var(--yellow); display: inline-block; padding: 6px 24px; border-radius: var(--radius-pill); box-shadow: 0 2px 8px rgba(0,0,0,0.08); } .total-matome-badge { display: inline-block; background: var(--pink); color: #fff; font-size: 15px; font-weight: 900; padding: 10px 28px; border-radius: var(--radius-pill); margin-top: 16px; position: relative; overflow: hidden; animation: glow 2s ease-in-out infinite; } .total-matome-badge::after { content: ''; position: absolute; top: 0; left: -100%; width: 50%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent); animation: shimmer 2s ease-in-out infinite; } @media(min-width:768px) { .total-clas-price { font-size: 72px; } } /* ============================================ 3つのメリット ============================================ */ .reasons-section { padding: 44px 16px; } @media(min-width:768px) { .reasons-section { padding: 56px 40px; } } .reasons-list { list-style: none; margin-top: 24px; display: flex; flex-direction: column; gap: 20px; } .reason-item { display: flex; gap: 14px; align-items: flex-start; transition: transform 0.3s; } .reason-item:hover { transform: translateX(6px); } .reason-num { flex-shrink: 0; width: 44px; height: 44px; background: linear-gradient(135deg, var(--pink), var(--pink-vivid)); color: #fff; font-size: 20px; font-weight: 900; border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: 0 3px 12px var(--shadow-pink); animation: pulse 3s ease-in-out infinite; } .reason-title { font-size: 17px; font-weight: 900; color: var(--pink); margin-bottom: 4px; } .reason-desc { font-size: 13px; color: var(--text-mid); line-height: 1.8; } /* ============================================ まとめ割(派手ボックス+集中線) ============================================ */ .matome-section { padding: 44px 16px; background: var(--pink-bg); } @media(min-width:768px) { .matome-section { padding: 56px 40px; } } .matome-box { background: #fff; border-radius: var(--radius-md); padding: 32px 20px; text-align: center; margin-top: 24px; border: 4px solid var(--pink); position: relative; overflow: hidden; box-shadow: 0 6px 30px var(--shadow-pink); animation: wiggle 5s ease-in-out infinite; } .matome-box .ribbon-gold { position: absolute; top: -1px; right: -1px; background: linear-gradient(135deg, #D4B55A, #F0D98C, #C9A84C); color: #fff; font-size: 14px; font-weight: 900; padding: 10px 24px; border-radius: 0 10px 0 16px; box-shadow: 0 3px 10px var(--shadow-gold); text-shadow: 0 1px 2px rgba(0,0,0,0.2); } .matome-box-title { font-size: 26px; font-weight: 900; color: var(--pink); margin-bottom: 16px; text-shadow: 0 0 2px var(--pink-light), 0 0 2px var(--pink-light), 0 0 2px var(--pink-light), 0 0 2px var(--pink-light); } .matome-examples { display: flex; flex-direction: column; gap: 10px; } .matome-example { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; background: linear-gradient(135deg, var(--pink-light), var(--gold-light)); border-radius: var(--radius); border: 1px solid rgba(184,36,94,0.15); } .matome-example-label { font-size: 14px; color: var(--text); font-weight: 900; } .matome-example-before { font-size: 15px; color: var(--text-light); text-decoration: line-through; } .matome-example-after { font-size: 24px; font-weight: 900; color: var(--pink); text-shadow: 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff, 0 0 2px #fff; } /* ============================================ ティーザー ============================================ */ .teaser-section { padding: 44px 16px; background: var(--warm-bg); } @media(min-width:768px) { .teaser-section { padding: 56px 40px; } } .teaser-cards { display: flex; gap: 12px; margin-top: 24px; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 8px; } .teaser-cards::-webkit-scrollbar { display: none; } .teaser-card { flex: 0 0 220px; background: #fff; border-radius: var(--radius-md); overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,0.06); text-decoration: none; color: inherit; transition: box-shadow 0.3s, transform 0.3s; } .teaser-card:hover { box-shadow: 0 6px 20px rgba(0,0,0,0.14); transform: translateY(-4px); } .teaser-card-img { width: 100%; height: 140px; background: var(--card-bg); display: flex; align-items: center; justify-content: center; } .teaser-card-img img { width: 100%; height: 100%; object-fit: cover; } .teaser-card-body { padding: 12px 14px; } .teaser-card-title { font-size: 14px; font-weight: 900; color: var(--text); margin-bottom: 4px; } .teaser-card-desc { font-size: 12px; color: var(--text-mid); line-height: 1.6; } .teaser-card-price { font-size: 16px; font-weight: 900; color: var(--pink); margin-bottom: 4px; } @media(min-width:768px) { .teaser-cards { flex-wrap: wrap; overflow-x: visible; } .teaser-card { flex: 1; min-width: 200px; } } /* ============================================ 最終CTA(集中線+紙吹雪+ネオン) ============================================ */ .final-cta-section { padding: 56px 16px; text-align: center; background: linear-gradient(180deg, #fff 0%, var(--pink-light) 20%, var(--pink-bg) 50%, var(--pink-light) 80%, #fff 100%); position: relative; overflow: hidden; } @media(min-width:768px) { .final-cta-section { padding: 72px 40px; } } .final-cta-heading { font-size: 28px; font-weight: 900; color: var(--pink); line-height: 1.5; margin-bottom: 16px; text-shadow: 0 0 6px #fff, 0 0 6px #fff, 0 0 6px #fff, 0 0 6px #fff, 0 0 6px #fff, 0 0 6px #fff, 0 0 6px #fff, 0 0 6px #fff, 0 0 6px #fff, 0 0 6px #fff, 0 0 6px #fff, 0 0 6px #fff, 0 0 6px #fff, 0 0 6px #fff, 0 0 6px #fff, 0 0 6px #fff, 2px 0 6px #fff, -2px 0 6px #fff, 0 2px 6px #fff, 0 -2px 6px #fff; } .final-cta-price { font-size: 52px; font-weight: 900; color: var(--pink); margin-bottom: 12px; text-shadow: 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 0 0 7px #fff, 3px 0 7px #fff, -3px 0 7px #fff, 0 3px 7px #fff, 0 -3px 7px #fff, 0 3px 12px var(--shadow-pink); animation: bounce 2.5s ease-in-out infinite; } .final-cta-price small { font-size: 20px; font-weight: 700; } .final-cta-sub { font-size: 14px; color: var(--text-mid); line-height: 2.0; margin-bottom: 28px; } .final-cta-arrow { display: block; font-size: 28px; color: var(--pink); animation: arrowBounce 1s ease-in-out infinite; margin-bottom: 8px; } @media(min-width:768px) { .final-cta-price { font-size: 64px; } } /* ============================================ API商品リスト(横スクロール) ============================================ */ .api-products-section { padding: 44px 16px 20px; } @media(min-width:768px) { .api-products-section { padding: 56px 40px 24px; } } .api-cat-block { margin-bottom: 32px; } .api-cat-block:last-child { margin-bottom: 0; } .api-products-more { text-align: right; margin-top: 8px; } .api-more-btn { display: inline-block; font-size: 13px; font-weight: 900; color: var(--pink) !important; text-decoration: none !important; padding: 8px 20px; border: 2px solid var(--pink); border-radius: var(--radius-pill); transition: background 0.2s, color 0.2s; } .api-more-btn:visited { color: var(--pink) !important; } .api-more-btn:hover { background: var(--pink); color: #fff !important; } .api-products-label { font-size: 14px; font-weight: 900; color: var(--pink); margin-bottom: 4px; display: flex; align-items: center; gap: 6px; } .api-products-label::before { content: ''; display: inline-block; width: 4px; height: 18px; background: var(--pink); border-radius: 2px; } .api-products-row { display: flex; gap: 10px; padding: 12px 0; overflow-x: auto; -webkit-overflow-scrolling: touch; } .api-products-row::-webkit-scrollbar { display: none; } .api-product-card { flex: 0 0 140px; background: #fff; border-radius: var(--radius-md); overflow: hidden; text-decoration: none; color: inherit; box-shadow: 0 2px 8px rgba(0,0,0,0.06); transition: box-shadow 0.3s, transform 0.3s; } .api-product-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.12); transform: translateY(-3px); } .api-product-card img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; background: var(--card-bg); display: block; } .api-product-card-body { padding: 8px 10px; } .api-product-card-name { font-size: 11px; font-weight: 700; color: var(--text); line-height: 1.4; margin-bottom: 4px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .api-product-card-price { font-size: 14px; font-weight: 900; color: var(--pink); } .api-product-card-price small { font-size: 10px; font-weight: 500; color: var(--text-mid); } @media(min-width:768px) { .api-product-card { flex: 0 0 160px; } .api-product-card img { aspect-ratio: 1 / 1; } } /* === ユーティリティ === */ .text-center { text-align: center; } .mt-16 { margin-top: 16px; } .mt-24 { margin-top: 24px; } .mb-8 { margin-bottom: 8px; } #id { visibility: visible !important; }

この記事をシェアする