.sale-center{margin:clamp(1.7rem,3.6vw,3.2rem) auto;padding:clamp(1.05rem,2.2vw,1.75rem);max-width:1120px;border-radius:28px;background:linear-gradient(135deg,#171331,#302466 55%,#7658ff);color:#fff;overflow:hidden;box-shadow:0 28px 80px rgba(39,27,92,.22)}
.settings-field-note{margin:9px 0 0;color:#6d6b80;font-size:11px;line-height:1.6}
.settings-grid label:has(input:disabled){opacity:.48}.settings-grid input:disabled{cursor:not-allowed}
.settings-email-link{display:grid;gap:.6rem;margin-top:1rem;padding:1rem;border:1px solid #e5e0f0;border-radius:14px;background:#faf9ff}.settings-email-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem}.settings-email-row input{min-width:0;border:1px solid #dcd6ea;border-radius:11px;padding:.75rem;background:#fff}.settings-email-row button{border:0;border-radius:11px;padding:.7rem .9rem;background:#eeeaff;color:#4d37bb;font-weight:900}.settings-email-link small{min-height:1.4em;color:#5a3fff}
.sale-center-heading{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(230px,.75fr);gap:1.25rem;align-items:start;min-width:0}
.sale-center-heading>*{min-width:0;max-width:100%}
.sale-center h2{font-size:clamp(1.65rem,3.25vw,3.1rem);line-height:1.1;margin:.3rem 0 .45rem;letter-spacing:-.04em;text-wrap:balance;white-space:normal}
.sale-center-lead{max-width:680px;font-size:clamp(.9rem,1.4vw,1.05rem);line-height:1.65;color:#eeeaff;white-space:normal;overflow-wrap:anywhere}
.sale-notice-card{min-width:0;max-width:100%;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22);border-radius:20px;padding:1rem;backdrop-filter:blur(12px)}
.sale-notice-card strong{display:block;font-size:1.1rem;margin-bottom:.15rem;overflow-wrap:anywhere}.sale-notice-card p{margin:.25rem 0;color:#eeeaff;line-height:1.6;white-space:normal;overflow-wrap:anywhere}
.sale-preference{display:flex;align-items:flex-start;gap:.65rem;min-width:0;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.2)}
.sale-preference span{min-width:0;overflow-wrap:anywhere}
.sale-preference input{width:1.2rem;height:1.2rem}.sale-preference-status{display:block;min-height:1.5em;margin-top:.5rem;color:#dcd4ff}
.sale-settings-button{width:100%;max-width:100%;margin-top:.8rem;border:1px solid rgba(255,255,255,.45);background:#fff;color:#302466;border-radius:12px;padding:.75rem 1rem;font-weight:900;white-space:normal;overflow-wrap:anywhere}
.sale-rail{display:flex;flex-direction:column;gap:0;height:calc(44px * 3.5);max-height:calc(44px * 3.5);overflow-y:auto;overflow-x:hidden;scroll-snap-type:y mandatory;margin-top:1.2rem;border-radius:16px;background:rgba(255,255,255,.06);scrollbar-color:#a99cff transparent}
.sale-empty{padding:1.3rem;border:1px dashed rgba(255,255,255,.35);border-radius:18px;color:#eeeaff}

/* Vertical ticker viewport: fixed height (~3.5 rows), natively scrollable
   with scroll-snap so both the automatic rotation (vertical-ticker.mjs,
   which just calls scrollTo() on this element) and manual wheel/touch
   scrolling settle cleanly on a row boundary. */
.info-row-list{display:flex;flex-direction:column;gap:0;height:calc(44px * 3.5);max-height:calc(44px * 3.5);overflow-y:auto;overflow-x:hidden;scroll-snap-type:y mandatory;border-radius:16px;background:rgba(255,255,255,.06);scrollbar-color:#a99cff transparent}

.info-row{display:grid;align-items:center;gap:.7rem;padding:.75rem 1rem;border-bottom:1px solid rgba(255,255,255,.1);color:#fff;text-decoration:none;min-height:44px;scroll-snap-align:start}
.info-row:not(.notification-row){grid-template-columns:auto auto auto minmax(0,1fr)}
.info-row:hover,.info-row:focus-visible{background:rgba(255,255,255,.08);outline:none}
.info-row:last-child{border-bottom:0}
.info-row-label{flex:0 0 auto;padding:.2rem .55rem;border-radius:999px;font-size:.68rem;font-weight:900;letter-spacing:.04em;white-space:nowrap;color:#211b3b;background:#eeeaff}
.info-row-label-sale{background:#ff4f9a;color:#fff}
.info-row-label-coupon{background:#23b8ff;color:#0b2436}
.info-row-label-new,.info-row-label-new_arrival{background:#18864b;color:#fff}
.info-row-label-info,.info-row-label-editorial{background:#eeeaff;color:#4d37bb}
.info-row-label-limited{background:#f5b301;color:#3a2900}
.info-row-label-restock{background:#7357ff;color:#fff}
.info-row-date{flex:0 0 auto;font-size:.75rem;font-weight:700;color:#cfc7ff;white-space:nowrap}
.info-row-mall{flex:0 0 auto;font-size:.75rem;font-weight:900;color:#fff;white-space:nowrap}
.info-row-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;color:#fff}
.info-row.official-update .info-row-date{color:#7de3ac}
.info-row-more-button{width:100%;margin-top:.75rem;padding:.7rem 1rem;border:1px solid rgba(255,255,255,.32);border-radius:12px;background:transparent;color:#fff;font-weight:800;cursor:pointer}
.info-row-more-button:hover{background:rgba(255,255,255,.1)}
.lp-benefits{max-width:1180px;margin:0 auto clamp(4rem,8vw,7rem);padding:0 1rem}.lp-benefits h2{font-size:clamp(2rem,4vw,3.6rem);line-height:1.08;letter-spacing:-.035em}
.benefit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2rem}.benefit-grid article{padding:1.5rem;border-radius:22px;background:#fff;box-shadow:0 18px 50px rgba(42,31,83,.1)}.benefit-grid strong{font-size:1.15rem}.benefit-grid p{line-height:1.7;color:#5f5872}
.notification-settings-dialog{width:min(760px,calc(100vw - 1.5rem));max-width:calc(100vw - 1.5rem);max-height:92dvh;overflow:hidden;overscroll-behavior:contain;border:0;border-radius:26px;padding:0;background:transparent}.notification-settings-dialog::backdrop{background:rgba(20,14,45,.66);backdrop-filter:blur(5px)}
.notification-settings-card{width:100%;max-width:100%;background:#fff;color:#211b3b;padding:clamp(1.1rem,4vw,2rem);overflow-y:auto;overflow-x:hidden;overscroll-behavior-x:none;touch-action:pan-y;max-height:92dvh}.settings-header{position:sticky;top:calc(-1 * clamp(1.1rem,4vw,2rem));z-index:5;display:flex;justify-content:space-between;gap:1rem;align-items:start;padding:clamp(1.1rem,4vw,2rem) 0 .7rem;background:#fff;border-bottom:1px solid #eeeaf8}.settings-header h2{font-size:clamp(1.8rem,4vw,2.8rem);margin:.2rem 0}.settings-close{flex:0 0 2.7rem;border:0;background:#f0edff;color:#342665;border-radius:999px;width:2.7rem;height:2.7rem;font-size:1.7rem}.settings-lead{color:#655d79;line-height:1.7}
.notification-settings-card fieldset{border:0;border-top:1px solid #e7e2f3;margin:1.2rem 0 0;padding:1.2rem 0 0}.notification-settings-card legend{font-weight:900;padding:0 .7rem 0 0}.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem}.settings-grid label,.settings-switch{display:flex;align-items:center;gap:.6rem;border:1px solid #e5e0f0;border-radius:13px;padding:.8rem;background:#faf9ff}.settings-grid input,.settings-switch input{width:1.2rem;height:1.2rem}.settings-grid small{display:block;color:#706a7c;margin-top:.2rem}.settings-malls{grid-template-columns:repeat(4,1fr)}
.settings-row{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-top:1rem}.settings-row label{display:grid;gap:.35rem;font-weight:800}.settings-row select,.settings-row input{width:100%;border:1px solid #dcd6ea;border-radius:11px;padding:.75rem;background:#fff;color:#211b3b}.quiet-hours{margin-top:.8rem}.settings-privacy{font-size:.9rem;color:#6b6479}.settings-status{min-height:1.5em;color:#5a3fff;font-weight:800}.settings-actions{display:flex;justify-content:flex-end;gap:.7rem;position:sticky;bottom:-2rem;background:#fff;padding:1rem 0 0}.settings-actions button{padding:.8rem 1rem;border-radius:12px}
@media(max-width:760px){.sale-center{width:auto;min-width:0;max-width:100%;margin:1rem .75rem 1.7rem;padding:.9rem;border-radius:22px}.sale-center-heading,.benefit-grid{grid-template-columns:minmax(0,1fr);gap:.8rem}.sale-center h2{max-width:100%;font-size:clamp(1.28rem,6.2vw,1.72rem);line-height:1.12;white-space:normal;overflow-wrap:anywhere}.sale-center-lead{max-width:100%;font-size:.9rem}.sale-notice-card{width:100%;padding:.8rem}.sale-preference{margin-top:.65rem;padding-top:.65rem}.sale-rail,.info-row-list{height:198px;max-height:198px}.info-row:not(.notification-row){grid-template-columns:auto auto minmax(0,1fr);row-gap:.2rem;padding:.6rem .75rem;scroll-snap-align:start;flex-shrink:0}.info-row>.info-row-mall{grid-column:1/-1;order:3}.info-row>.info-row-title{grid-column:1/-1;order:4}}
.sale-rail.sale-rail-expanded{height:auto;max-height:none;overflow-y:visible;scroll-snap-type:none}
@media(max-width:620px){.settings-grid,.settings-malls,.settings-row{grid-template-columns:1fr 1fr}.settings-email-row{grid-template-columns:1fr}.notification-settings-dialog{width:calc(100% - .6rem)}.settings-actions{display:grid;grid-template-columns:1fr 1fr}}

/* 2026-09-05 大隆さん指示: 通知カードを撤去し、モールのロゴタイル(プライムデー/メガ割など)から設定画面へ */
.sale-mall-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;align-content:start}
.sale-mall-tile{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.7rem .5rem;border:1px solid rgba(255,255,255,.22);border-radius:16px;background:rgba(255,255,255,.1);color:#fff;cursor:pointer;text-align:center;min-height:44px}
.sale-mall-tile:hover,.sale-mall-tile:focus-visible{background:rgba(255,255,255,.18)}
.sale-mall-logo{display:inline-block;width:100%;padding:.45rem .3rem;border-radius:10px;font-weight:900;font-size:.95rem;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sale-mall-logo-amazon{background:#ff9900;color:#111}
.sale-mall-logo-rakuten{background:#bf0000;color:#fff}
.sale-mall-logo-qoo10{background:#e60012;color:#fff}
.sale-mall-events{font-size:.68rem;line-height:1.3;color:#e6e0ff;font-weight:700}
.sale-mall-strip .sale-settings-button{grid-column:1 / -1;margin-top:.1rem}
@media(max-width:760px){.sale-mall-strip{gap:.45rem}.sale-mall-logo{font-size:.85rem}.sale-mall-events{font-size:.62rem}}

/* 2026-09-05 大隆さん指示: 見出し「好みの割引セールだけ受け取ろう」(13字)は文字サイズを調整して一行に */
.sale-center h2#saleCenterTitle{white-space:nowrap;text-wrap:nowrap;overflow-wrap:normal;letter-spacing:-.045em;font-size:clamp(1.25rem,2.6vw,2.4rem)}
@media(max-width:760px){.sale-center h2#saleCenterTitle{font-size:clamp(1rem,5.1vw,1.45rem);letter-spacing:-.05em}}
@media(max-width:360px){.sale-center h2#saleCenterTitle{font-size:clamp(.95rem,5.2vw,1.2rem)}}

/* 2026-09-05 夜 大隆さん指摘: 通知をすべて解除するボタン */
.settings-actions .settings-disable-all{margin-right:auto;background:#fff0f3;color:#b3226d;border:1px solid #ffc2dd}
@media(max-width:620px){.settings-actions{grid-template-columns:1fr 1fr}.settings-actions .settings-disable-all{grid-column:1/-1}}
.sale-preference-status{min-height:0;margin:6px 0 0;color:#5a3fff;font-size:12px;font-weight:800;line-height:1.5}.sale-preference-status:empty{display:none}
