/* special/index.html 専用のスタイル。
   このページからしか読み込まないので、セレクタを限定する必要はない。
   全ページ共通の指定は assets/common.css にある。 */

.sp-hero{background:var(--bg-sub);position:relative;overflow:hidden;padding:28px 16px 0;border-bottom:1px solid var(--border);}
.sp-hero::before{content:"";position:absolute;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(239,68,48,0.10),rgba(239,68,48,0) 70%);right:-80px;top:-80px;}
.sp-hero .inner{position:relative;max-width:760px;margin:0 auto;}
.sp-hero .eyebrow{font-family:var(--font-en);font-weight:700;font-size:var(--text-xs);letter-spacing:0.22em;color:var(--primary);text-transform:uppercase;display:inline-flex;align-items:center;gap:10px;margin-bottom:12px;}
.sp-hero .eyebrow::before{content:"";width:24px;height:2px;background:var(--primary);}
.sp-hero h1{font-size:var(--text-xl);font-weight:900;margin:0 0 10px;line-height:1.35;letter-spacing:-0.01em;}
.sp-hero h1 .em{color:var(--primary);}
.sp-hero .lead{font-size:var(--text-sm);color:var(--text-sub);margin:0 0 20px;line-height:1.9;}
.sp-hero .visual{border-radius:18px 18px 0 0;overflow:hidden;border:1px solid var(--border);border-bottom:0;background:#fff;}
.sp-wrap{max-width:760px;margin:0 auto;padding:26px 16px 56px;}
.sp-card{background:#fff;border:1px solid var(--border);border-radius:22px;padding:26px 22px;margin-bottom:16px;}
.sp-card:last-of-type{margin-bottom:0;}
.sp-card h2{display:flex;align-items:center;gap:10px; font-size:var(--text-base);font-weight:800;margin:0 0 14px;line-height:1.5;}
.sp-card h2::before{content:"";width:4px;height:18px;border-radius:2px;background:var(--primary);flex-shrink:0;}
.sp-card p{font-size:var(--text-sm);line-height:2;color:var(--text-sub);margin:0 0 12px;}
.sp-card p:last-child{margin-bottom:0;}
.sp-card .sign{text-align:right;font-size:var(--text-xs);color:var(--text-mute);margin-top:4px;}
.sp-offer{background:var(--primary-soft);border:1px solid #F6D6CE;border-radius:16px;padding:20px;text-align:center;margin:4px 0 16px;}
.sp-offer .for{display:inline-block;background:var(--primary);color:#fff;font-size:var(--text-xs);font-weight:800;padding:4px 12px;border-radius:var(--radius-pill);margin-bottom:12px;}
.sp-offer .amount{font-family:var(--font-en);font-weight:800;font-size:var(--text-2xl);color:var(--primary);line-height:1.1;}
.sp-offer .amount .unit{font-family:var(--font-jp);font-size:var(--text-lg);}
.sp-offer .note{font-size:var(--text-sm);font-weight:700;color:#9A4030;margin-top:6px;}
.sp-points{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:8px;}
.sp-points li{display:flex;align-items:center;gap:9px; background:var(--bg-sub);border:1px solid var(--border);border-radius:12px; padding:11px 14px;font-size:var(--text-sm);font-weight:700;}
.sp-points li svg{width:16px;height:16px;color:var(--primary);flex-shrink:0;}
.sp-photo{border-radius:14px;overflow:hidden;border:1px solid var(--border);margin:0 0 14px;}
.sp-shop{background:var(--bg-sub);border:1px solid var(--border);border-radius:14px;padding:18px 20px;}
.sp-shop .name{font-size:var(--text-base);font-weight:800;margin:0 0 12px;}
.sp-shop dl{margin:0;display:grid;gap:10px;}
.sp-shop .row{display:flex;flex-wrap:wrap;gap:2px 14px;font-size:var(--text-sm);line-height:1.7;}
.sp-shop dt{flex-shrink:0;width:78px;font-weight:700;color:var(--text-sub);font-size:var(--text-xs);}
.sp-shop dd{margin:0;flex:1;min-width:0;color:var(--text);font-weight:600;}
.sp-shop dd a{color:var(--primary);text-decoration:none;font-weight:700;}
.sp-shop .access{font-size:var(--text-xs);color:var(--text-sub);margin:10px 0 0;}
.sp-actions{display:flex;flex-direction:column;gap:10px;margin-top:16px;}
.sp-back{display:inline-flex;align-items:center;gap:8px;margin-top:24px;color:var(--text-sub);text-decoration:none;font-size:var(--text-sm);font-weight:700;}
.sp-back svg{width:15px;height:15px;}
@media (hover:hover) and (pointer:fine){
.sp-back{transition:color .18s;}
.sp-back svg{transition:transform .18s;}
.sp-back:hover{color:var(--primary);}
.sp-back:hover svg{transform:translateX(-3px);}
}
@media (min-width:760px){
.sp-hero{padding:44px 24px 0;}
.sp-hero h1{font-size:var(--text-2xl);}
.sp-hero .lead{font-size:var(--text-base);}
.sp-wrap{padding:34px 24px 72px;}
.sp-card{padding:34px 36px;}
.sp-card h2{font-size:var(--text-lg);}
.sp-card p{font-size:var(--text-base);}
.sp-offer .amount{font-size:var(--text-3xl);}
.sp-actions{flex-direction:row;}
.sp-actions .btn--full{width:auto;display:inline-flex;flex:1;}
}
