/* おせち診断・比較LP v2.0 — ナイトブラLPと同じ「Deep Slate × パステル リキッドガラス」デザイン層
 * lp.css / extras.css の上に重ねて読み込みます。ロジック・リンク・設定項目は変更していません。 */
:root {
	--os-bg: #ffffff;
	--os-bg-soft: rgba(255, 255, 255, .5);
	--os-ink: #3a1f1d;
	--os-sub: #8a6e66;
	--os-line: rgba(90, 40, 35, .14);
	--os-accent: #c8312b;
	--os-accent-dk: #9e1f1c;
	--os-accent-lt: rgba(255, 190, 150, .25);
	--os-gold: #c8312b;
	--os-radius: 28px;
	--os-shadow: 0 18px 40px rgba(150, 70, 50, .16);
	--os-serif: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Helvetica Neue", "Noto Sans JP", "Hiragino Sans", sans-serif;
	--glass: linear-gradient(160deg, rgba(255, 255, 255, .72) 0%, rgba(255, 255, 255, .45) 100%);
	--glass-bd: 1px solid rgba(255, 255, 255, .9);
	--glass-sh: 0 18px 40px rgba(150, 70, 50, .16), inset 0 1px 0 rgba(255, 255, 255, .95), inset 0 -6px 14px rgba(230, 190, 170, .2);
	--hp: 0;
}
html { background: #2b1416; scroll-padding-top: 76px; }
body.oslp { overflow-x: clip; background: transparent; color: #5a4540; letter-spacing: .01em; line-height: 1.8; }
/* 固定背景：Deep Slate にパステルの光（セクションの間から見える） */
body.oslp::before { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
	background: radial-gradient(60% 50% at 12% 8%, rgba(214, 164, 70, .5), rgba(214, 164, 70, 0) 70%), radial-gradient(55% 55% at 92% 28%, rgba(200, 50, 50, .42), rgba(110, 200, 205, 0) 70%), radial-gradient(60% 60% at 68% 100%, rgba(240, 180, 110, .3), rgba(240, 150, 175, 0) 70%), #2b1416; }
.oslp h1, .oslp h2, .oslp h3, .oslp h4 { font-family: var(--os-serif); color: #3a1f1d; font-weight: 600; letter-spacing: -.005em; }
.oslp .os-eyebrow { color: #c8312b; font-size: 12px; font-weight: 600; letter-spacing: .2em; }

/* ---------- 上部バー／ヘッダー ---------- */
.oslp .os-topbar { background: rgba(32, 47, 59, .55); color: rgba(255, 255, 255, .8); font-size: 11px; position: relative; z-index: 3; }
.oslp .os-back { color: #fff !important; font-weight: 500; }
.oslp .os-header { background: rgba(255, 255, 255, .6); backdrop-filter: saturate(180%) blur(22px); -webkit-backdrop-filter: saturate(180%) blur(22px); border-bottom: 1px solid rgba(255, 255, 255, .8); z-index: 50; }
.oslp .os-header__in { height: 58px; }
.oslp .os-logo { color: #c8312b; }
.oslp .os-logo__txt { font-family: var(--os-serif); font-weight: 600; font-size: 15px; letter-spacing: .04em; color: #3a1f1d; }
.oslp .os-nav { gap: 26px; font-size: 12px; letter-spacing: .06em; }
.oslp .os-nav a { color: #5a4540; }
.oslp .os-nav a:hover { color: #3a1f1d; }
.oslp .os-nav .os-nav__home { color: #c8312b; font-weight: 600; }

/* ---------- ボタン（リキッドガラス） ---------- */
.oslp .os-btn:not(.os-btn--disabled) { position: relative; overflow: hidden; border: 1px solid rgba(255, 255, 255, .55); border-radius: 999px;
	background: linear-gradient(160deg, rgba(232, 96, 84, .94), rgba(188, 40, 40, .9)); color: #fff !important; font-weight: 500; letter-spacing: .1em;
	box-shadow: 0 14px 28px rgba(190, 50, 40, .35), inset 0 2px 0 rgba(255, 255, 255, .7), inset 0 -8px 16px rgba(110, 10, 15, .28);
	-webkit-backdrop-filter: blur(14px) saturate(160%); backdrop-filter: blur(14px) saturate(160%); transition: transform .25s, box-shadow .25s; padding: 15px 30px; }
.oslp .os-btn:not(.os-btn--disabled)::before { content: ""; position: absolute; left: 6%; right: 6%; top: 2px; height: 46%; border-radius: 999px; background: linear-gradient(180deg, rgba(255, 255, 255, .55), rgba(255, 255, 255, 0)); pointer-events: none; }
.oslp .os-btn:not(.os-btn--disabled):hover { background: linear-gradient(160deg, rgba(232, 96, 84, .94), rgba(188, 40, 40, .9)); transform: translateY(-2px); box-shadow: 0 20px 34px rgba(190, 50, 40, .45), inset 0 2px 0 rgba(255, 255, 255, .8), inset 0 -8px 16px rgba(110, 10, 15, .3); }
.oslp .os-btn--sm { padding: 9px 20px; font-size: 12px; }
.oslp .os-btn--xs { padding: 7px 16px; font-size: 12px; }
.oslp .os-btn--lg { padding: 18px 44px; font-size: 15px; }
.oslp .os-btn--white:not(.os-btn--disabled) { background: linear-gradient(160deg, rgba(255, 255, 255, .95), rgba(255, 255, 255, .7)); color: #9e1f1c !important; border-color: #fff; box-shadow: 0 14px 28px rgba(0, 0, 0, .2), inset 0 2px 0 #fff; }
.oslp .os-btn--white:not(.os-btn--disabled):hover { background: linear-gradient(160deg, #fff, rgba(255, 255, 255, .8)); }
.oslp .os-btn--disabled, .oslp .os-btn--disabled:hover { background: rgba(255, 255, 255, .5); color: #a08a80 !important; border: 1px solid rgba(255, 255, 255, .8); transform: none; }
.oslp .os-link { color: #9e1f1c; }

/* ---------- ヒーロー（固定背景の上。スクロールで文字が薄れる） ---------- */
.oslp .os-hero { background: transparent; min-height: 100vh; min-height: 100svh; padding: 56px 0 0; text-align: center; display: flex; flex-direction: column; justify-content: center; overflow: visible; position: relative; z-index: 1; }
.oslp .os-hero::after { display: none; }
.oslp .os-hero__in { padding-top: 8px; padding-bottom: 36px; opacity: calc(1 - var(--hp) * 1.15); transform: translate3d(0, calc(var(--hp) * -36px), 0) scale(calc(1 - var(--hp) * .05)); will-change: transform, opacity; }
.oslp .os-hero .os-eyebrow { color: #f0d28a; }
.oslp .os-hero__title { color: #fff; font-weight: 600; font-size: clamp(34px, 7.6vw, 76px); line-height: 1.16; letter-spacing: -.02em; text-shadow: 0 2px 30px rgba(20, 30, 60, .35); }
.oslp .os-hero__lead { margin-top: 22px; font-size: clamp(15px, 2.2vw, 19px); color: rgba(255, 255, 255, .86); line-height: 1.8; }
.oslp .os-hero__cta { margin-top: 30px; flex-direction: row; justify-content: center; align-items: center; flex-wrap: wrap; gap: 14px 26px; display: flex; }
.oslp .os-hero__more { color: #fff; text-decoration: none; font-size: 15px; letter-spacing: .08em; border-bottom: 1px solid rgba(255, 255, 255, .7); padding-bottom: 4px; }
.oslp .os-hero__badges { margin-top: 30px; gap: 8px 10px; }
.oslp .os-hero__badges li { background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .35); color: rgba(255, 255, 255, .9); font-size: 12px; padding: 6px 16px; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.oslp .os-hero__badges strong { color: #fff; font-family: var(--os-serif); font-size: 15px; }
.os-marquee__pr { color: rgba(255, 255, 255, .7) !important; padding-bottom: 40px !important; }
.oslp .xt-pr { background: rgba(255, 255, 255, .25); border-radius: 999px; padding: 1px 9px; font-weight: 500; color: #fff; }
.oslp .os-section .xt-pr, .oslp .xt-deals__note .xt-pr { background: #a08a80; }


/* ---------- セクション：ガラスのパネルが重なり上がる ---------- */
.oslp main > section:not(.os-hero) { position: relative; z-index: 2; width: calc(100% - 48px); max-width: 1440px; margin: 0 auto 48px; border-radius: 40px; overflow: hidden;
	background: linear-gradient(160deg, rgba(255, 255, 255, .9) 0%, rgba(255, 255, 255, .76) 100%) !important; border: 1px solid rgba(255, 255, 255, .9); box-shadow: 0 30px 70px rgba(10, 18, 40, .28);
	-webkit-backdrop-filter: blur(24px) saturate(160%); backdrop-filter: blur(24px) saturate(160%); }
.oslp main > section:empty, .oslp .os-article:empty { display: none; }
.oslp .os-section { padding: 88px 0; }
.oslp .os-section.os-diag, .oslp .os-section.xt-deals, .oslp .os-section.xt-guide {
	background: radial-gradient(60% 50% at 10% 0%, rgba(255, 214, 150, .62) 0%, rgba(190, 175, 255, 0) 70%), radial-gradient(55% 55% at 95% 25%, rgba(255, 190, 180, .6) 0%, rgba(150, 225, 225, 0) 70%), radial-gradient(60% 60% at 70% 100%, rgba(255, 225, 170, .65) 0%, rgba(255, 190, 200, 0) 70%), rgba(255, 255, 255, .82) !important; }
@media (max-width: 860px) { .oslp main > section:not(.os-hero) { width: calc(100% - 24px); margin-bottom: 24px; border-radius: 28px; } .oslp .os-section { padding: 60px 0; } }
.oslp .os-sechead { margin-bottom: 44px; }
.oslp .os-sechead h2 { font-size: clamp(26px, 4.6vw, 44px); line-height: 1.25; }
.oslp .os-sechead > p:not(.os-eyebrow) { font-size: clamp(14px, 2vw, 17px); color: #8a6e66; margin-top: 14px; }
.oslp .os-card, .oslp .os-timeline li, .oslp .xt-point, .oslp .xt-flow__item, .oslp .xt-box, .oslp .xt-box--warn, .oslp .xt-deal, .oslp .os-checklist__list li, .oslp .os-faq__item, .oslp .os-footer__policy {
	background: var(--glass) !important; border: var(--glass-bd); border-radius: var(--os-radius); box-shadow: var(--glass-sh);
	-webkit-backdrop-filter: blur(22px) saturate(160%); backdrop-filter: blur(22px) saturate(160%); }
.oslp .os-check li::before { border-color: #c8312b; }

/* 4ステップ */
.oslp .os-steps { padding: 72px 0; }
.oslp .os-steps__head { text-align: center; margin-bottom: 40px; }
.oslp .os-steps__head h2 { font-size: clamp(26px, 4.4vw, 42px); line-height: 1.25; }
.oslp .os-steps__head p:last-child { margin-top: 12px; color: #8a6e66; font-size: clamp(14px, 2vw, 17px); }
.oslp .os-steps__head .os-eyebrow::before, .oslp .os-steps__head .os-eyebrow::after { content: ""; display: inline-block; width: 28px; height: 1px; background: #d9a441; vertical-align: middle; margin: 0 12px; }
.oslp .os-steps__list { display: grid; gap: 16px; list-style: none; margin: 0; padding: 0; }
@media (max-width: 860px) { .oslp .os-steps { padding: 52px 0; } .oslp .os-steps__svg { display: none; } }
@media (min-width: 861px) { .oslp .os-steps__list { display: none; } .oslp .os-steps__svg { display: block; width: 100%; max-width: 1000px; height: auto; margin: 0 auto; } }
.oslp .os-steps__list { grid-template-columns: 1fr; gap: 14px; }
.oslp .os-flow__link { cursor: pointer; outline: none; transition: filter .25s; }
.oslp .os-flow__link:hover, .oslp .os-flow__link:focus-visible { filter: brightness(1.05) drop-shadow(0 6px 10px rgba(170, 70, 40, .25)); }
.oslp .os-step { padding: 0; background: none; border: 0; box-shadow: none; display: block; }
.oslp .os-step::before { display: none !important; }
.oslp .os-step a { --c1: #e2584c; --c2: #b3241f; --ink: #9e1f1c; position: relative; overflow: hidden; display: flex; align-items: center; gap: 20px; padding: 18px 22px 18px 18px; min-height: 112px; border-radius: 999px; text-decoration: none; text-align: left;
	background: linear-gradient(160deg, rgba(255, 255, 255, .8), rgba(255, 255, 255, .45)); border: 1px solid rgba(255, 255, 255, .95);
	box-shadow: 0 14px 28px rgba(150, 70, 50, .18), inset 0 2px 0 rgba(255, 255, 255, .9), inset 0 -8px 16px rgba(230, 190, 170, .25);
	-webkit-backdrop-filter: blur(18px) saturate(160%); backdrop-filter: blur(18px) saturate(160%); transition: transform .25s, box-shadow .25s; }
.oslp .os-step--2 a { --c1: #ecc26e; --c2: #b8862a; --ink: #8a6112; }
.oslp .os-step--3 a { --c1: #6fae8a; --c2: #2f6b4f; --ink: #24573f; }
.oslp .os-step--4 a { --c1: #e0627a; --c2: #a01c3c; --ink: #8a1832; }
.oslp .os-step a:hover { transform: translateY(-3px); box-shadow: 0 20px 36px rgba(150, 70, 50, .26), inset 0 2px 0 rgba(255, 255, 255, .9), inset 0 -8px 16px rgba(230, 190, 170, .25); }
.oslp .os-step__no { flex: none; position: relative; width: 54px; height: 100px; margin: -10px 8px -10px 4px; background: url(kadomatsu.png) center bottom / contain no-repeat; filter: drop-shadow(0 8px 10px rgba(120, 60, 30, .28)); }
.oslp .os-step__no i { position: absolute; left: 50%; bottom: 4px; transform: translateX(-50%); width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; border-radius: 50%; font-style: normal; font-family: var(--os-serif); font-size: 16px; font-weight: 700; line-height: 1; color: #fff; letter-spacing: 0;
	background: linear-gradient(160deg, var(--c1), var(--c2)); border: 2px solid #fff; box-shadow: 0 4px 8px rgba(90, 30, 20, .35), inset 0 1px 0 rgba(255, 255, 255, .5); }
.oslp .os-step__txt { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.oslp .os-step__txt small { font-size: 11px; letter-spacing: .22em; font-weight: 600; color: var(--c2); }
.oslp .os-step__txt b { font-size: 21px; font-weight: 600; color: #3a1f1d; line-height: 1.3; }
.oslp .os-step__txt em { font-style: normal; font-size: 13px; color: #8a6e66; line-height: 1.5; }
.oslp .os-step__arrow { flex: none; width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; border-radius: 50%; color: #fff; font-size: 22px; padding-bottom: 3px; background: linear-gradient(160deg, var(--c1), var(--c2)); }

/* 診断 */
.oslp .os-quiz { background: var(--glass); border: var(--glass-bd); border-radius: 32px; box-shadow: var(--glass-sh); padding: 32px 22px; -webkit-backdrop-filter: blur(22px) saturate(160%); backdrop-filter: blur(22px) saturate(160%); }
@media (min-width: 768px) { .oslp .os-quiz { padding: 48px 52px; } }
.oslp .os-quiz__bar { height: 3px; background: rgba(90, 40, 35, .14); }
.oslp .os-quiz__bar span { background: #c8312b; }
.oslp .os-quiz__count { color: #c8312b; }
.oslp .os-quiz__q { font-size: clamp(21px, 3.2vw, 28px); }
.oslp .os-quiz .os-opt, .oslp .os-quiz .os-opt:hover, .oslp .os-quiz .os-opt:focus-visible { background: linear-gradient(180deg, rgba(255, 255, 255, .9), rgba(255, 240, 232, .7)); border: 1px solid rgba(255, 255, 255, .95); border-radius: 999px; padding: 16px 56px 16px 26px; color: #3a1f1d; box-shadow: 0 8px 20px rgba(150, 70, 50, .14), inset 0 1px 0 #fff; transition: transform .2s, box-shadow .2s; }
.oslp .os-quiz .os-opt:hover { transform: translateY(-1px); }
.oslp .os-quiz .os-opt::after { color: #c8312b; }
.oslp .os-quiz .os-opt.is-selected { background: linear-gradient(180deg, rgba(232, 96, 84, .96), rgba(176, 30, 36, .98)); color: #fff; text-shadow: 0 1px 2px rgba(30, 20, 90, .35); border-color: rgba(255, 255, 255, .65); transform: translateY(-2px); box-shadow: 0 14px 28px rgba(190, 40, 36, .4), inset 0 2px 0 rgba(255, 255, 255, .55); }
.oslp .os-quiz .os-opt.is-selected::after { color: #fff; }
.oslp .os-quiz__back, .oslp .os-quiz__retry { color: #9e1f1c; font-size: 13px; }
.oslp .os-result__title { font-size: 26px; }
.oslp .os-rcard.is-top { border: 2px solid #d9a441; box-shadow: 0 18px 44px rgba(190, 50, 40, .3); }
.oslp .os-rank { background: #fff; color: #9e1f1c; }
.oslp .is-top .os-rank { background: linear-gradient(160deg, #e2584c, #c8312b); color: #fff; }
.oslp .os-match { color: #9e1f1c; }
.oslp .os-rcard__why { color: #c8312b; }
.oslp .os-rcard__caution { background: rgba(255, 255, 255, .6); }

/* ショップ紹介：カード横スクロール */
.oslp .os-products .os-wrap { max-width: none; padding: 0; }
.oslp .os-products .os-sechead { max-width: 1120px; margin-left: auto; margin-right: auto; padding: 0 20px; }
.oslp .os-products .os-grid, .oslp .xt-deals__grid { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding: 8px max(20px, calc(50vw - 560px - 24px)) 36px; scroll-padding-inline: max(20px, calc(50vw - 560px - 24px)); }
.oslp .os-products .os-grid::-webkit-scrollbar, .oslp .xt-deals__grid::-webkit-scrollbar { display: none; }
.oslp .os-products .os-product { flex: 0 0 min(84vw, 400px); scroll-snap-align: start; padding: 0 0 28px; overflow: hidden; }
.oslp .os-product > *:not(.os-banner) { margin-left: 28px; margin-right: 28px; }
.oslp .os-product .os-banner { margin: 0 0 22px; }
.oslp .os-product .os-banner a { border-radius: 0; background: #fff; }
.oslp .os-product:not(:has(.os-banner)) { padding-top: 28px; }
.oslp .os-product__type { color: #c8312b; font-weight: 600; }
.oslp .os-product h3 { font-size: 22px; line-height: 1.3; }
.oslp .os-product__meta div { background: rgba(255, 255, 255, .65); border-radius: 16px; }
.oslp .os-product .os-btn { margin-top: auto; }
.oslp .os-product .os-btn--aff, .oslp .os-product .os-btn--disabled { width: auto; align-self: stretch; }
.oslp .xt-deals .os-wrap { max-width: none; padding: 0; }
.oslp .xt-deals .os-sechead, .oslp .xt-deals__note { max-width: 1120px; margin-left: auto; margin-right: auto; padding: 0 20px; }
.oslp .xt-deals .os-sechead { margin-bottom: 20px; }
.oslp .xt-deals__note { margin-bottom: 28px; max-width: 760px; color: #8a6e66; }
.oslp .xt-deal { flex: 0 0 min(84vw, 360px); scroll-snap-align: start; padding: 28px 28px 24px; display: flex; flex-direction: column; }
.oslp .xt-deal__list { flex: 1; }
.oslp .xt-deal__list li { border-bottom: 1px solid rgba(90, 40, 35, .12); color: #5a4540; }
.oslp .xt-deal__list li::before { color: #c8312b; }
.oslp .xt-deal__btn { width: 100%; }
.oslp .xt-deal h3 { font-size: 19px; }

/* 比較表・締切 */
.oslp .os-table-scroll { border: var(--glass-bd); border-radius: var(--os-radius); background: rgba(255, 255, 255, .6); box-shadow: var(--glass-sh); }
.oslp .os-table thead th { background: rgba(255, 255, 255, .7); color: #8a6e66; font-weight: 600; }
.oslp .os-table tbody th { background: rgba(255, 255, 255, .85); box-shadow: 1px 0 0 rgba(90, 40, 35, .1); }
.oslp .os-table th, .oslp .os-table td { border-bottom-color: rgba(90, 40, 35, .08); }
.oslp .os-dots i { background: rgba(90, 40, 35, .14); }
.oslp .os-dots i.on { background: linear-gradient(160deg, #e2584c, #c8312b); }
.oslp .os-thumb { border-radius: 14px; box-shadow: none; }
.oslp .os-timeline li { border-left: var(--glass-bd); padding: 22px; }
.oslp .os-timeline b { font-family: var(--os-serif); font-size: 21px; color: #3a1f1d; display: block; }
.oslp .os-timeline p { color: #8a6e66; }
.oslp .os-note { color: #8a6e66; }

/* 選び方ガイド */
.oslp .xt-sub { border-left: 0; padding-left: 0; font-size: clamp(21px, 3.4vw, 28px); margin: 52px 0 22px; color: #3a1f1d; }
.oslp .xt-sub:first-of-type { margin-top: 0; }
.oslp .xt-point { padding: 22px 26px; }
.oslp .xt-point__no { border-radius: 50%; width: 40px; height: 40px; flex: 0 0 40px; background: linear-gradient(160deg, #e2584c, #c8312b); box-shadow: 0 8px 16px rgba(170, 40, 30, .3), inset 0 2px 0 rgba(255, 255, 255, .55); }
.oslp .xt-flow__no { color: #c8312b; letter-spacing: .2em; }
.oslp .xt-flow__item { padding: 22px; }
.oslp .xt-box { padding: 28px 30px; }
.oslp .xt-point h4, .oslp .xt-flow__item h4, .oslp .xt-box h3, .oslp .xt-box dt { color: #3a1f1d; }
.oslp .xt-point p, .oslp .xt-flow__item p, .oslp .xt-box dd, .oslp .xt-box li { color: #5a4540; }

/* チェックリスト／口コミ／FAQ */
.oslp .os-checklist__list li { padding: 22px 22px 22px 70px; }
.oslp .os-checklist__list li::before { background: linear-gradient(160deg, #e2584c, #c8312b); box-shadow: 0 8px 16px rgba(170, 40, 30, .3), inset 0 2px 0 rgba(255, 255, 255, .55); font-family: var(--os-serif); top: 22px; left: 22px; width: 34px; height: 34px; }
.oslp .os-checklist__list b { color: #3a1f1d; font-size: 16px; }
.oslp .os-review-filter button { background: rgba(255, 255, 255, .7); border: 1px solid rgba(255, 255, 255, .95); color: #8a6e66; }
.oslp .os-review-filter button.is-active { background: linear-gradient(160deg, #e2584c, #c8312b); color: #fff; border-color: transparent; }
.oslp .os-stars { color: #d9a441; }
.oslp .os-faq__item { padding: 0 26px; border-radius: 24px; }
.oslp .os-faq__item summary { font-weight: 600; color: #3a1f1d; padding: 22px 30px 22px 0; }
.oslp .os-faq__item summary::before, .oslp .os-faq__item summary::after { color: #c8312b; font-family: var(--os-serif); }
.oslp .os-prose h2, .oslp .os-prose h3 { font-family: var(--os-serif); }

/* 最後のCTA：背景が見えるガラスカード */
.oslp main > section.os-lastcta { background: transparent !important; border: 0; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; color: #fff; padding: 0; text-align: center; overflow: visible; }
.oslp .os-lastcta .os-wrap { max-width: 880px; padding: 64px 28px; background: linear-gradient(160deg, rgba(255, 255, 255, .22), rgba(255, 255, 255, .08)); border: 1px solid rgba(255, 255, 255, .5); border-radius: 36px; box-shadow: 0 30px 60px rgba(10, 18, 40, .3), inset 0 1px 0 rgba(255, 255, 255, .6); backdrop-filter: blur(22px) saturate(160%); -webkit-backdrop-filter: blur(22px) saturate(160%); }
.oslp .os-lastcta h2 { color: #fff; font-size: clamp(26px, 5.4vw, 44px); line-height: 1.25; }
.oslp .os-lastcta p { color: rgba(255, 255, 255, .85); font-size: clamp(14px, 2.2vw, 18px); margin: 14px 0 30px; opacity: 1; }

/* フッター */
.oslp .os-footer { position: relative; z-index: 2; background: transparent; color: rgba(255, 255, 255, .75); padding: 40px 0 36px; }
.oslp .os-footer__top { border-bottom-color: rgba(255, 255, 255, .2); }
.oslp .os-logo--footer .os-logo__txt { color: #fff; }
.oslp .os-footer__nav a { color: rgba(255, 255, 255, .85); }
.oslp .os-footer__nav a:hover { color: #fff; text-decoration: underline; }
.oslp .os-footer__policy { margin-top: 28px; padding: 24px 28px; background: linear-gradient(160deg, rgba(255, 255, 255, .16), rgba(255, 255, 255, .06)) !important; border: 1px solid rgba(255, 255, 255, .3); box-shadow: none; }
.oslp .os-footer__policy h2 { font-size: 15px; color: #fff; }
.oslp .os-footer__policy ul { margin: 10px 0 0; padding-left: 1.2em; }
.oslp .os-footer__policy li { font-size: 12px; line-height: 1.8; margin: 4px 0; color: rgba(255, 255, 255, .85); }
.oslp .os-footer__disc { color: rgba(255, 255, 255, .65); }
.oslp .os-footer__copy { color: rgba(255, 255, 255, .5); }

/* 追従ボタン類 */
.oslp .os-sticky { background: linear-gradient(160deg, rgba(232, 96, 84, .95), rgba(188, 40, 40, .92)); border: 1px solid rgba(255, 255, 255, .55); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); font-weight: 500; box-shadow: 0 14px 28px rgba(190, 50, 40, .4), inset 0 2px 0 rgba(255, 255, 255, .6); }
.oslp .xt-home { background: rgba(255, 255, 255, .8); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border: 1px solid rgba(255, 255, 255, .9); font-weight: 500; color: #3a1f1d !important; }
.oslp .xt-up { background: linear-gradient(160deg, #e2584c, #c8312b); }

/* ヒーロー横スライド帯 */
.os-marquee { position: relative; overflow-x: auto; padding: 8px 0 28px; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%); mask-image: linear-gradient(90deg, transparent 0, #000 6%, #000 94%, transparent 100%); transform: translate3d(0, calc(var(--hp) * -14px), 0); }
.os-marquee::-webkit-scrollbar { display: none; }
.os-marquee__track { display: flex; width: max-content; padding-left: 20px; }
.os-marquee__item { flex: 0 0 auto; margin: 0 14px 0 0; border-radius: 26px; overflow: hidden; background: #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, .05), 0 18px 44px rgba(0, 0, 0, .12); position: relative; height: 190px; }
.os-marquee__item .os-banner, .os-marquee__item .xt-banner { margin: 0; height: 100%; }
.os-marquee__item .os-banner a, .os-marquee__item .xt-banner a { height: 100%; border-radius: 0; background: #fff; }
.os-marquee__item img { height: 100%; width: auto; max-width: none; display: block; }
.os-marquee__item img[width="1"], .os-marquee__item img[height="1"] { position: absolute; width: 1px !important; height: 1px !important; opacity: 0; }
.os-marquee__item figcaption { position: absolute; left: 10px; bottom: 10px; max-width: calc(100% - 20px); font-size: 11px; font-weight: 500; color: var(--os-ink); background: rgba(255, 255, 255, .82); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); padding: 3px 11px; border-radius: 980px; pointer-events: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (min-width: 768px) { .os-marquee__item { height: 280px; margin-right: 20px; border-radius: 32px; } .os-marquee__track { padding-left: 32px; } }
.os-marquee__pr { text-align: center; font-size: 11px; color: var(--os-sub); padding: 0 20px 36px; }

/* JSが有効なときだけ自動で左へ流れる（無効時・動きを減らす設定時は手動スクロール） */
.os-marquee.is-run { overflow: hidden; }
.os-marquee.is-run .os-marquee__track { animation: os-marquee var(--mdur, 60s) linear infinite; }
.os-marquee.is-run:hover .os-marquee__track { animation-play-state: paused; }
@keyframes os-marquee { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(calc(var(--mw, 1000px) * -1), 0, 0); } }
@media (prefers-reduced-motion: reduce) {
	.os-marquee.is-run { overflow-x: auto; }
	.os-marquee.is-run .os-marquee__track { animation: none; }
	.oslp .os-hero__in, .os-marquee { transform: none; opacity: 1; }
}

.os-hs-nav { display: flex; justify-content: flex-end; gap: 10px; max-width: 1120px; margin: 0 auto; padding: 0 20px; }
.os-hs-nav button { width: 44px; height: 44px; border-radius: 50%; border: 0; background: #e8e8ed; color: var(--os-ink); font-size: 18px; cursor: pointer; font-family: inherit; transition: background .2s, opacity .2s; }
.os-hs-nav button:hover { background: #dcdce1; }
.os-hs-nav button[disabled] { opacity: .35; cursor: default; }
/* 横長バナーは幅を揃えて中央に配置 */
.os-marquee__item.is-wide { display: flex; align-items: center; width: 340px; background: #fff; }
.os-marquee__item.is-wide .os-banner, .os-marquee__item.is-wide .xt-banner { height: auto; width: 100%; }
.os-marquee__item.is-wide .os-banner a, .os-marquee__item.is-wide .xt-banner a { height: auto; }
.os-marquee__item.is-wide img { width: 100%; height: auto; }
@media (min-width: 768px) { .os-marquee__item.is-wide { width: 460px; } }
/* ---------- スクロールで静かに現れる ---------- */
html.os-js .os-reveal { opacity: 0; transform: translate3d(0, 34px, 0); transition: opacity .9s cubic-bezier(.2, .7, .2, 1), transform .9s cubic-bezier(.2, .7, .2, 1); }
html.os-js .os-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { html.os-js .os-reveal { opacity: 1; transform: none; transition: none; } }
.oslp .os-product .os-btn--aff { width: auto; align-self: stretch; }
.oslp .os-product .os-btn--disabled { width: auto; align-self: stretch; }


/* お正月カラー：朱・金・白・墨。金の細い罫で和の品を添える */
.oslp .os-hero__title { text-shadow: 0 2px 30px rgba(40, 10, 10, .45); }
.oslp .os-sechead .os-eyebrow { color: #b8914a; }
.oslp .os-sechead .os-eyebrow::before, .oslp .os-sechead .os-eyebrow::after { content: ""; display: inline-block; width: 28px; height: 1px; background: #d9a441; vertical-align: middle; margin: 0 12px; }
.oslp .os-hero .os-eyebrow::before, .oslp .os-hero .os-eyebrow::after { content: ""; display: inline-block; width: 28px; height: 1px; background: #f0d28a; vertical-align: middle; margin: 0 12px; }
.oslp .os-rcard.is-top { border-color: #d9a441; }
.oslp .os-quiz__bar span { background: linear-gradient(90deg, #d9a441, #c8312b); }
.oslp main > section:not(.os-hero) { border-color: rgba(255, 236, 200, .9); }
.oslp .os-lastcta .os-wrap { border-color: rgba(240, 210, 138, .6); }
.oslp .os-footer__policy, .oslp .os-footer__top { border-color: rgba(240, 210, 138, .3); }

/* 診断：ナイトブラ同様の2カラム＋リキッドガラスの選択肢（選ぶと朱に変わり、自動で次へ） */
.oslp .os-diag .os-wrap { max-width: 1200px; }
.oslp .os-diag__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 64px; align-items: start; }
.oslp .os-diag__head { text-align: left; margin: 0; }
.oslp .os-diag__head h2 { font-size: clamp(28px, 3.2vw, 44px); line-height: 1.25; }
.oslp .os-diag__head .os-eyebrow::before, .oslp .os-diag__head .os-eyebrow::after { display: none; }
@media (max-width: 860px) { .oslp .os-diag__grid { grid-template-columns: 1fr; gap: 28px; } .oslp .os-diag__head { text-align: center; } }
.oslp .os-quiz__top { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.oslp .os-quiz__count { margin: 0; letter-spacing: .14em; font-size: 12px; }
.oslp .os-quiz__seg { display: flex; gap: 4px; flex: 0 0 150px; }
.oslp .os-quiz__seg span { flex: 1; height: 3px; border-radius: 2px; background: rgba(90, 40, 35, .16); }
.oslp .os-quiz__seg span.on { background: linear-gradient(90deg, #d9a441, #c8312b); }
.oslp .os-quiz__q { margin: 24px 0 20px; }
.oslp .os-quiz__opts { gap: 14px; }
.oslp .os-quiz .os-opt, .oslp .os-quiz .os-opt:hover, .oslp .os-quiz .os-opt:focus-visible { --ga: rgba(255, 255, 255, .92); --gb: rgba(255, 255, 255, .55); --gg: rgba(150, 70, 50, .22); --gs: rgba(230, 190, 170, .32);
	position: relative; overflow: hidden; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 66px; padding: 10px 12px 10px 30px; border-radius: 999px; font-size: 16px; font-weight: 500; letter-spacing: .03em; text-align: left; color: #3a1f1d; text-shadow: none;
	border: 1px solid rgba(255, 255, 255, .95); background: linear-gradient(180deg, var(--ga) 0%, var(--gb) 100%); box-shadow: 0 18px 34px var(--gg), 0 3px 0 rgba(255, 255, 255, .6) inset, 0 -12px 20px var(--gs) inset;
	-webkit-backdrop-filter: blur(18px) saturate(170%); backdrop-filter: blur(18px) saturate(170%); transition: transform .3s cubic-bezier(.3, 1.5, .5, 1), box-shadow .3s ease; }
.oslp .os-quiz .os-opt::before { content: ""; position: absolute; left: 5%; right: 5%; top: 5px; height: 46%; border-radius: 999px; background: linear-gradient(180deg, rgba(255, 255, 255, .7) 0%, rgba(255, 255, 255, 0) 100%); pointer-events: none; }
.oslp .os-quiz .os-opt::after { content: "›"; position: relative; top: auto; right: auto; transform: none; z-index: 1; flex: none; width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; padding-bottom: 3px; border-radius: 50%; background: linear-gradient(160deg, #e2584c 0%, #b3241f 100%); color: #fff; font-size: 22px; line-height: 1; box-shadow: 0 8px 16px rgba(170, 40, 30, .38), 0 2px 0 rgba(255, 255, 255, .55) inset, 0 -4px 8px rgba(110, 10, 15, .35) inset; }
.oslp .os-quiz .os-opt:hover, .oslp .os-quiz .os-opt:focus-visible { transform: translateY(-3px) scale(1.015); --gb: rgba(255, 226, 214, .75); --gg: rgba(190, 40, 36, .3); outline: none; }
.oslp .os-quiz .os-opt.is-selected { color: #fff; text-shadow: 0 1px 2px rgba(90, 10, 10, .35); --ga: rgba(240, 120, 104, .96); --gb: rgba(176, 30, 36, .98); --gg: rgba(190, 40, 36, .45); --gs: rgba(110, 10, 15, .4); border-color: rgba(255, 255, 255, .6); transform: translateY(-2px); background: linear-gradient(180deg, var(--ga) 0%, var(--gb) 100%); }
.oslp .os-quiz .os-opt.is-selected::after { background: linear-gradient(160deg, #ffffff 0%, rgba(255, 255, 255, .8) 100%); color: #b3241f; }
.oslp .os-quiz__foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 22px; }
.oslp .os-quiz__meta { font-size: 12px; color: #8a6e66; display: inline-flex; align-items: center; gap: 12px; }
.oslp .os-quiz__meta .os-quiz__back { margin: 0; padding: 0; font-size: 12px; color: #8a6e66; text-decoration: underline; background: none; border: 0; cursor: pointer; }
@media (max-width: 860px) { .oslp .os-quiz { padding: 26px 18px; } .oslp .os-quiz .os-opt { padding: 10px 10px 10px 24px; min-height: 62px; } }
@media (prefers-reduced-motion: reduce) { .oslp .os-quiz .os-opt, .oslp .os-quiz .os-opt:hover { transition: none; transform: none; } }


/* 診断の配置をナイトブラに合わせる：セクションは白、診断カード自体にパステルのグラデーション。スマホも見出しは左寄せ */
.oslp .os-section.os-diag { background: linear-gradient(160deg, rgba(255, 255, 255, .92) 0%, rgba(255, 255, 255, .8) 100%) !important; }
.oslp .os-diag .os-quiz { background: radial-gradient(60% 50% at 10% 0%, rgba(255, 214, 150, .75) 0%, rgba(255, 214, 150, 0) 70%), radial-gradient(55% 55% at 98% 22%, rgba(255, 190, 180, .7) 0%, rgba(255, 190, 180, 0) 70%), radial-gradient(60% 60% at 70% 100%, rgba(255, 225, 170, .75) 0%, rgba(255, 225, 170, 0) 70%), rgba(255, 255, 255, .55); border: 1px solid rgba(255, 255, 255, .9); box-shadow: 0 24px 60px rgba(150, 70, 50, .16); }
.oslp .os-diag__grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.oslp .os-diag__grid > * { min-width: 0; }
@media (max-width: 860px) { .oslp .os-diag__grid { grid-template-columns: minmax(0, 1fr); } .oslp .os-diag__head { text-align: left; } .oslp .os-diag .os-wrap { padding-left: 16px; padding-right: 16px; } }

/* steps: left text / right 4 stacked buttons */
.oslp .os-steps__grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:56px;align-items:center}
.oslp .os-steps__grid>*{min-width:0}
.oslp .os-steps__head{text-align:left;margin-bottom:0}
.oslp .os-steps__head .os-eyebrow::before{display:none}
.oslp .os-steps__head .os-eyebrow::after{display:none}
.oslp .os-steps__svg{display:none!important}
.oslp .os-steps__list{display:grid!important;grid-template-columns:minmax(0,1fr);gap:14px}
@media (max-width:860px){.oslp .os-steps__grid{grid-template-columns:minmax(0,1fr);gap:28px}}

/* hero photo: fixed background (osechi flat-lay) + dark veil for text legibility */
body.oslp::before { background:
	linear-gradient(180deg, rgba(30, 10, 12, .58) 0%, rgba(30, 10, 12, .42) 45%, rgba(30, 10, 12, .62) 100%),
	radial-gradient(70% 60% at 50% 45%, rgba(20, 8, 10, .45), rgba(20, 8, 10, 0) 75%),
	url(hero.jpg) center / cover no-repeat, #1c1d33; }
@media (max-width: 860px) { body.oslp::before { background-position: 50% 40%; } }
body.oslp::before { background:
	linear-gradient(180deg, rgba(30, 10, 12, .62) 0%, rgba(30, 10, 12, .5) 45%, rgba(30, 10, 12, .7) 100%),
	radial-gradient(60% 50% at 50% 38%, rgba(16, 6, 8, .6), rgba(16, 6, 8, 0) 80%),
	url(hero.jpg) center / cover no-repeat, #1c1d33; }
.oslp .os-hero__title, .oslp .os-hero__lead { text-shadow: 0 2px 18px rgba(10, 4, 6, .8), 0 0 2px rgba(10, 4, 6, .5); }
.oslp .os-hero__lead { color: #fff; }

/* hero photo: clearer (lighter veil, soft dark only behind the text) */
body.oslp::before { background:
	linear-gradient(180deg, rgba(30, 10, 12, .22) 0%, rgba(30, 10, 12, .08) 40%, rgba(30, 10, 12, .35) 100%),
	radial-gradient(48% 34% at 50% 36%, rgba(16, 6, 8, .5), rgba(16, 6, 8, 0) 100%),
	url(hero.jpg) center / cover no-repeat, #1c1d33; }
.oslp .os-hero__title, .oslp .os-hero__lead { text-shadow: 0 2px 22px rgba(10, 4, 6, .9), 0 0 3px rgba(10, 4, 6, .6); }

/* panels: more see-through so the fixed photo shows between and behind sections */
.oslp main > section:not(.os-hero) { background: linear-gradient(160deg, rgba(255, 255, 255, .64) 0%, rgba(255, 255, 255, .5) 100%) !important; -webkit-backdrop-filter: blur(10px) saturate(150%); backdrop-filter: blur(10px) saturate(150%); }
.oslp .os-section.os-diag, .oslp .os-section.xt-deals, .oslp .os-section.xt-guide { background: radial-gradient(60% 50% at 10% 0%, rgba(255, 214, 150, .4) 0%, rgba(255, 214, 150, 0) 70%), radial-gradient(55% 55% at 95% 25%, rgba(255, 190, 180, .38) 0%, rgba(255, 190, 180, 0) 70%), rgba(255, 255, 255, .5) !important; }
.oslp main > section.os-lastcta { background: transparent !important; backdrop-filter: none; -webkit-backdrop-filter: none; }
.oslp main > section:not(.os-hero) { background: linear-gradient(160deg, rgba(255, 255, 255, .7) 0%, rgba(255, 255, 255, .58) 100%) !important; }
.oslp .os-section.os-diag, .oslp .os-section.xt-deals, .oslp .os-section.xt-guide { background: radial-gradient(60% 50% at 10% 0%, rgba(255, 214, 150, .4) 0%, rgba(255, 214, 150, 0) 70%), radial-gradient(55% 55% at 95% 25%, rgba(255, 190, 180, .38) 0%, rgba(255, 190, 180, 0) 70%), rgba(255, 255, 255, .58) !important; }
.oslp main > section.os-lastcta { background: transparent !important; }

/* hero photo: keep the top plates visible (anchor to top) */
body.oslp::before { background-position: 50% 0, 50% 0, 50% 0%, 0 0; }
@media (max-width: 860px) { body.oslp::before { background-position: 0 0, 0 0, 50% 0%, 0 0; } }

/* panels: even more see-through */
.oslp main > section:not(.os-hero) { background: linear-gradient(160deg, rgba(255, 255, 255, .5) 0%, rgba(255, 255, 255, .38) 100%) !important; -webkit-backdrop-filter: blur(6px) saturate(140%); backdrop-filter: blur(6px) saturate(140%); }
.oslp .os-section.os-diag, .oslp .os-section.xt-deals, .oslp .os-section.xt-guide { background: radial-gradient(60% 50% at 10% 0%, rgba(255, 214, 150, .32) 0%, rgba(255, 214, 150, 0) 70%), radial-gradient(55% 55% at 95% 25%, rgba(255, 190, 180, .3) 0%, rgba(255, 190, 180, 0) 70%), rgba(255, 255, 255, .4) !important; }
.oslp .os-section h2, .oslp .os-steps__head h2 { text-shadow: 0 1px 12px rgba(255, 255, 255, .7); }
.oslp .os-sechead p, .oslp .os-steps__head p { color: #5f4640; }
.oslp main > section.os-lastcta { background: transparent !important; backdrop-filter: none; -webkit-backdrop-filter: none; }
.oslp .os-sechead p, .oslp .os-steps__head p, .oslp .os-diag__head p { color: #3a1f1d; font-weight: 500; text-shadow: 0 1px 10px rgba(255, 255, 255, .85); }
.oslp .os-section .os-eyebrow { color: #a8231d; text-shadow: 0 1px 8px rgba(255, 255, 255, .85); }
.oslp .os-table-scroll { background: rgba(255, 255, 255, .78); }

/* section headings: crisp & high contrast over the translucent panels */
.oslp .os-section .os-sechead > p:not(.os-eyebrow), .oslp .os-steps__head p:not(.os-eyebrow), .oslp .os-diag__head p:not(.os-eyebrow), .oslp main > section:not(.os-hero):not(.os-lastcta) header p:not(.os-eyebrow) { color: #2a1513 !important; font-weight: 500; text-shadow: 0 0 6px rgba(255, 255, 255, .95), 0 0 16px rgba(255, 255, 255, .9), 0 0 28px rgba(255, 255, 255, .8); }
.oslp main > section:not(.os-hero):not(.os-lastcta) header h2, .oslp .os-sechead h2, .oslp .os-steps__head h2 { color: #2a1513 !important; text-shadow: 0 0 8px rgba(255, 255, 255, .95), 0 0 22px rgba(255, 255, 255, .9), 0 0 40px rgba(255, 255, 255, .8); }
.oslp main > section:not(.os-hero):not(.os-lastcta) header .os-eyebrow, .oslp .os-sechead .os-eyebrow, .oslp .os-steps__head .os-eyebrow { color: #9e1f1c !important; font-weight: 700; text-shadow: 0 0 6px rgba(255, 255, 255, .95), 0 0 16px rgba(255, 255, 255, .9); }

/* panels: slightly denser (between the two previous levels) */
.oslp main > section:not(.os-hero) { background: linear-gradient(160deg, rgba(255, 255, 255, .62) 0%, rgba(255, 255, 255, .5) 100%) !important; }
.oslp .os-section.os-diag, .oslp .os-section.xt-deals, .oslp .os-section.xt-guide { background: radial-gradient(60% 50% at 10% 0%, rgba(255, 214, 150, .36) 0%, rgba(255, 214, 150, 0) 70%), radial-gradient(55% 55% at 95% 25%, rgba(255, 190, 180, .34) 0%, rgba(255, 190, 180, 0) 70%), rgba(255, 255, 255, .52) !important; }
.oslp main > section.os-lastcta { background: transparent !important; }

/* headings: pure black */
.oslp main > section:not(.os-hero):not(.os-lastcta) header h2, .oslp .os-sechead h2, .oslp .os-steps__head h2, .oslp .os-section h2 { color: #000 !important; }
.oslp .os-section .os-sechead > p:not(.os-eyebrow), .oslp .os-steps__head p:not(.os-eyebrow), .oslp .os-diag__head p:not(.os-eyebrow), .oslp main > section:not(.os-hero):not(.os-lastcta) header p:not(.os-eyebrow) { color: #000 !important; }

/* section headings: larger */
.oslp .os-section h2, .oslp .os-sechead h2, .oslp .os-steps__head h2 { font-size: clamp(30px, 5.4vw, 54px) !important; line-height: 1.25; }
.oslp .os-section .os-sechead > p:not(.os-eyebrow), .oslp .os-steps__head p:not(.os-eyebrow), .oslp .os-diag__head p:not(.os-eyebrow) { font-size: clamp(16px, 2.3vw, 20px) !important; line-height: 1.8; }
.oslp .os-section .os-eyebrow, .oslp .os-steps__head .os-eyebrow { font-size: clamp(13px, 1.8vw, 15px) !important; }

/* ---------- スマホ：比較表をカード表示に ---------- */
@media (max-width: 700px) {
	.oslp .os-pc-only { display: none; }
	.oslp .os-table-scroll { overflow: visible; background: transparent !important; border: 0; box-shadow: none; }
	.oslp .os-table, .oslp .os-table--sm { min-width: 0 !important; width: 100%; display: block; font-size: 15px; }
	.oslp .os-table thead { display: none; }
	.oslp .os-table tbody { display: grid; gap: 16px; }
	.oslp .os-table tbody tr { display: block; padding: 16px; background: rgba(255, 255, 255, .86); border: 1px solid rgba(255, 255, 255, .95); border-radius: 22px; box-shadow: 0 10px 28px rgba(60, 20, 20, .16); }
	.oslp .os-table tbody th { position: static; display: block; min-width: 0 !important; background: none; box-shadow: none; padding: 0 0 12px; border: 0; }
	.oslp .os-table .os-shop { display: flex; align-items: center; gap: 14px; }
	.oslp .os-table .os-shop > span:last-child { font-size: 17px; font-weight: 700; color: #000; line-height: 1.4; }
	.oslp .os-table .os-thumb { flex: none; width: 96px; }
	.oslp .os-table td { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 10px 0; border: 0; border-top: 1px solid rgba(90, 40, 35, .12); text-align: right; line-height: 1.6; color: #2a1513; }
	.oslp .os-table td::before { flex: none; text-align: left; font-size: 13px; font-weight: 600; color: #8a6e66; white-space: nowrap; }
	.oslp .os-table:not(.os-table--sm) td:nth-child(2)::before { content: "タイプ"; }
	.oslp .os-table:not(.os-table--sm) td:nth-child(3)::before { content: "和・洋"; }
	.oslp .os-table:not(.os-table--sm) td:nth-child(4)::before { content: "届き方"; }
	.oslp .os-table:not(.os-table--sm) td:nth-child(5)::before { content: "料亭感"; }
	.oslp .os-table:not(.os-table--sm) td:nth-child(6)::before { content: "品数・豪華さ"; }
	.oslp .os-table:not(.os-table--sm) td:nth-child(7)::before { content: "素材・無添加"; }
	.oslp .os-table:not(.os-table--sm) td:nth-child(8)::before { content: "向いている人"; }
	.oslp .os-table--sm td:nth-child(2)::before { content: "締切"; }
	.oslp .os-table td:last-child { display: block; padding: 14px 0 0; text-align: center; }
	.oslp .os-table td:last-child::before { display: none; }
	.oslp .os-table td:last-child .os-btn { width: 100%; justify-content: center; min-height: 48px; font-size: 15px; }
}

/* カルーセル：スライドのヒント・ドット・大きめの矢印 */
.oslp .os-hs-hint { display: flex; align-items: center; justify-content: center; gap: 10px; width: fit-content; margin: 0 auto 14px; padding: 9px 20px; border-radius: 999px; background: rgba(255, 255, 255, .85); border: 1px solid #fff; box-shadow: 0 8px 20px rgba(60, 20, 20, .16); color: #000; font-size: 14px; font-weight: 600; letter-spacing: .04em; transition: opacity .4s, transform .4s; }
.oslp .os-hs-hint span { color: #c8312b; font-size: 18px; animation: osHint 1.4s ease-in-out infinite; }
.oslp .os-hs-hint span:last-child { animation-delay: .7s; }
.oslp .os-hs-hint.is-done { opacity: 0; transform: translateY(-6px); height: 0; margin: 0 auto; padding: 0; overflow: hidden; border: 0; }
@keyframes osHint { 0%, 100% { transform: translateX(0); opacity: .5; } 50% { transform: translateX(4px); opacity: 1; } }
.oslp .os-hs-nav { align-items: center; justify-content: center; gap: 18px; margin-top: 18px; }
.oslp .os-hs-nav button { width: 52px; height: 52px; font-size: 26px; line-height: 1; padding-bottom: 3px; background: linear-gradient(160deg, #e8584c, #b3241f); color: #fff; box-shadow: 0 10px 22px rgba(150, 40, 30, .3), inset 0 2px 0 rgba(255, 255, 255, .5); }
.oslp .os-hs-nav button:hover { background: linear-gradient(160deg, #ee6a5e, #c42c26); }
.oslp .os-hs-nav button[disabled] { background: rgba(255, 255, 255, .8); color: #a08a80; box-shadow: none; opacity: .7; }
.oslp .os-hs-dots { display: flex; align-items: center; gap: 8px; }
.oslp .os-hs-dots i { width: 9px; height: 9px; border-radius: 50%; background: rgba(0, 0, 0, .25); transition: width .25s, background .25s; }
.oslp .os-hs-dots i.on { width: 26px; border-radius: 999px; background: #c8312b; }
@media (prefers-reduced-motion: reduce) { .oslp .os-hs-hint span { animation: none; } }
.oslp .os-section h2 { text-wrap: balance; word-break: keep-all; overflow-wrap: anywhere; }
@media (max-width: 480px) { .oslp .os-section h2, .oslp .os-sechead h2, .oslp .os-steps__head h2 { font-size: clamp(26px, 7.4vw, 34px) !important; } }

/* ============ セクションの面は白（ページ背景は写真のまま） ============ */
.oslp main > section:not(.os-hero):not(.os-lastcta) { background: #fff !important; border: 1px solid rgba(255, 255, 255, .9); box-shadow: 0 24px 60px rgba(10, 4, 6, .35); -webkit-backdrop-filter: none; backdrop-filter: none; }
.oslp .os-section.os-diag, .oslp .os-section.xt-deals, .oslp .os-section.xt-guide { background: radial-gradient(60% 50% at 10% 0%, rgba(255, 214, 150, .3) 0%, rgba(255, 214, 150, 0) 70%), radial-gradient(55% 55% at 95% 25%, rgba(255, 190, 180, .26) 0%, rgba(255, 190, 180, 0) 70%), #fff !important; }
.oslp .os-table-scroll { background: #fff; }
.oslp .os-section h2, .oslp .os-steps__head h2, .oslp .os-section .os-sechead > p:not(.os-eyebrow), .oslp .os-steps__head p:not(.os-eyebrow), .oslp .os-section .os-eyebrow, .oslp .os-steps__head .os-eyebrow { text-shadow: none !important; }
