:root{
  --ink:#1c1a17;
  --ink-sub:#5b564d;
  --red:#c0262d;
  --red-deep:#8f1a21;
  --vermilion:#a41f27;
  --gold:#b8994a;
  --gold-soft:#dcc878;
  --gold-lt:#ecdfae;
  --cream:#f8f4e4;
  --line:#d9cfb0;
  --serif:"游明朝","Yu Mincho","YuMincho","ヒラギノ明朝 ProN","Hiragino Mincho ProN","Noto Serif JP",serif;
  --head:"Shippori Mincho","游明朝","Yu Mincho","ヒラギノ明朝 ProN","Hiragino Mincho ProN","Noto Serif JP",serif;
  --img-fv:url("https://image1.shopserve.jp/kunizakari-onlineshop.jp/pic-labo/llimg/2026_gantan_12_05.jpg");
  --sea-lt:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40' fill='none' stroke='%23e9dfb4' stroke-width='1'%3E%3Cg%3E%3Ccircle cx='0' cy='40' r='36'/%3E%3Ccircle cx='0' cy='40' r='27'/%3E%3Ccircle cx='0' cy='40' r='18'/%3E%3Ccircle cx='40' cy='40' r='36'/%3E%3Ccircle cx='40' cy='40' r='27'/%3E%3Ccircle cx='40' cy='40' r='18'/%3E%3Ccircle cx='80' cy='40' r='36'/%3E%3Ccircle cx='80' cy='40' r='27'/%3E%3Ccircle cx='80' cy='40' r='18'/%3E%3Ccircle cx='20' cy='20' r='36'/%3E%3Ccircle cx='20' cy='20' r='27'/%3E%3Ccircle cx='20' cy='20' r='18'/%3E%3Ccircle cx='60' cy='20' r='36'/%3E%3Ccircle cx='60' cy='20' r='27'/%3E%3Ccircle cx='60' cy='20' r='18'/%3E%3C/g%3E%3C/svg%3E");
  --sea-gold:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40' fill='none' stroke='%23dcc878' stroke-width='1.1'%3E%3Cg%3E%3Ccircle cx='0' cy='40' r='36'/%3E%3Ccircle cx='0' cy='40' r='27'/%3E%3Ccircle cx='0' cy='40' r='18'/%3E%3Ccircle cx='40' cy='40' r='36'/%3E%3Ccircle cx='40' cy='40' r='27'/%3E%3Ccircle cx='40' cy='40' r='18'/%3E%3Ccircle cx='80' cy='40' r='36'/%3E%3Ccircle cx='80' cy='40' r='27'/%3E%3Ccircle cx='80' cy='40' r='18'/%3E%3Ccircle cx='20' cy='20' r='36'/%3E%3Ccircle cx='20' cy='20' r='27'/%3E%3Ccircle cx='20' cy='20' r='18'/%3E%3Ccircle cx='60' cy='20' r='36'/%3E%3Ccircle cx='60' cy='20' r='27'/%3E%3Ccircle cx='60' cy='20' r='18'/%3E%3C/g%3E%3C/svg%3E");
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--ink);font-family:var(--serif);font-size:16px;line-height:1.9;letter-spacing:.04em;-webkit-text-size-adjust:100%}
img{max-width:100%;display:block}
a{color:inherit}
main a:link,
.mobile-cta a:link {
  color: #fff;
}
main a:visited,
.mobile-cta a:link {
  color: #fff;
}
.wrap{width:min(1040px,100% - 40px);margin:0 auto}
.narrow{width:min(760px,100% - 40px);margin:0 auto}
section{padding:92px 0;position:relative}
.sea{background:var(--cream) var(--sea-lt);background-size:80px 40px}

/* 写真枠：--src に画像URLを指定して .has を付けると写真が入ります。未指定時は点線のガイド表示 */
.slot{position:relative;background-color:#efe6cf;background-size:cover;background-position:center;background-repeat:no-repeat;overflow:hidden}
.slot.has{background-image:var(--src)}
.slot:not(.has){display:grid;place-items:center;text-align:center;border:1px dashed var(--gold);color:var(--ink-sub);font-size:12px;line-height:1.7;letter-spacing:.1em;padding:14px;
  background-image:repeating-linear-gradient(135deg,rgba(184,153,74,.10) 0 8px,transparent 8px 16px)}
.slot:not(.has):before{content:attr(data-id);display:block;font-family:var(--head);font-weight:700;font-size:15px;color:var(--red);letter-spacing:.2em}
.slot:not(.has):after{content:attr(data-label);display:block}
.slot.has:after{content:"";position:absolute;inset:8px;border:1px solid rgba(255,255,255,.55);pointer-events:none}

/* reveal */
.js .rv{opacity:0;transform:translateY(22px);transition:opacity .9s ease,transform .9s ease}
.js .rv.in{opacity:1;transform:none}
.js .rv.d1{transition-delay:.12s}.js .rv.d2{transition-delay:.24s}
@media (prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none;transition:none}}

.eyebrow{display:inline-block;font-size:13px;letter-spacing:.3em;color:var(--red);border-top:1px solid var(--red);border-bottom:1px solid var(--red);padding:2px 14px;margin:0 0 20px}
h2.title{font-family:var(--head);font-weight:500;font-size:clamp(25px,3.8vw,36px);line-height:1.6;letter-spacing:.14em;text-align:center;margin:0 0 14px}
h2.title small{display:block;font-family:var(--serif);font-size:12px;letter-spacing:.38em;color:var(--gold);margin-bottom:12px;font-weight:400}
.lead{text-align:center;color:var(--ink-sub);margin:0 auto 52px;max-width:640px}
.rule{display:flex;align-items:center;justify-content:center;gap:10px;margin:22px auto 30px}
.rule:before,.rule:after{content:"";width:46px;height:1px;background:var(--gold)}
.rule i{width:9px;height:9px;border-radius:50%;background:var(--red)}

/* bar / header */
.bar{background:#111;color:#f0e6c0;text-align:center;font-size:12px;letter-spacing:.12em;padding:7px 12px}
header.site{background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:5}
header.site .in{display:flex;align-items:center;justify-content:space-between;height:60px}
header.site .brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.mark{width:34px;height:24px;background:var(--red);border-radius:12px 12px 2px 2px;position:relative;overflow:hidden}
.mark:after{content:"";position:absolute;left:-4px;right:-4px;bottom:-9px;height:16px;background:#fff;border-radius:50%}
.brand b{font-weight:700;font-size:17px;letter-spacing:.14em}
.brand span{font-size:11px;color:var(--ink-sub);letter-spacing:.2em;border-left:1px solid var(--line);padding-left:12px}
.shopbtn{background:var(--red);color:#fff;text-decoration:none;font-size:12px;padding:0 18px;height:60px;display:flex;align-items:center;letter-spacing:.1em}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:var(--red);color:#fff;text-decoration:none;font-weight:700;letter-spacing:.14em;padding:18px 40px;border:1px solid var(--red);transition:.25s;font-family:var(--serif);font-size:16px;cursor:pointer}
.btn:hover{background:var(--red-deep);border-color:var(--red-deep)}
.btn:after{content:"";width:8px;height:8px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg)}
.btn.gold{background:#fff;color:var(--red-deep);border-color:#fff}
.btn.gold:hover{background:var(--gold-lt);border-color:var(--gold-lt)}
.btn.out{background:transparent;color:#fff;border-color:rgba(255,255,255,.75)}
.btn.out:hover{background:rgba(255,255,255,.12)}

/* ============ FV ============ */
.fv{position:relative;overflow:hidden;color:#fff;padding:0;min-height:min(92vh,820px);background:radial-gradient(120% 90% at 78% 40%,#b3232b 0%,#8f1a21 55%,#6f1219 100%);isolation:isolate}
.fv .photo{position:absolute;top:0;right:0;bottom:0;width:62%;background:var(--img-fv) center/cover no-repeat;z-index:1;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 42%);mask-image:linear-gradient(to right,transparent 0,#000 42%)}
.fv .photo:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(111,18,25,.55),transparent 38%)}
.fv .sun{position:absolute;right:12%;top:50%;width:min(640px,60vw);aspect-ratio:1;border-radius:50%;transform:translateY(-52%);z-index:0;
  background:radial-gradient(circle,rgba(255,236,170,.55) 0,rgba(255,214,120,.22) 38%,transparent 68%);animation:rise 2.4s ease-out both}
.fv .sun:after{content:"";position:absolute;inset:26%;border-radius:50%;border:1px solid rgba(236,223,174,.45)}
@keyframes rise{from{opacity:0;transform:translateY(-30%)}to{opacity:1;transform:translateY(-52%)}}
.fv .wave{position:absolute;left:0;right:0;bottom:0;height:150px;background:var(--sea-gold);background-size:80px 40px;opacity:.28;z-index:2;
  -webkit-mask-image:linear-gradient(to top,#000,transparent);mask-image:linear-gradient(to top,#000,transparent)}
.fv .frame{position:absolute;inset:16px;border:1px solid rgba(236,223,174,.55);z-index:3;pointer-events:none}
.fv .frame:before{content:"";position:absolute;inset:5px;border:1px solid rgba(236,223,174,.22)}
.fv .inner{position:relative;z-index:4;min-height:inherit;display:flex;align-items:center;padding:78px 0 90px}
.fv .row{display:flex;align-items:flex-start;gap:clamp(22px,4vw,52px);width:min(1100px,100% - 64px);margin:0 auto}
.fv .tate{display:flex;align-items:flex-start;gap:clamp(10px,1.4vw,20px);font-family:var(--head);flex:none}
.fv .tate b{display:block;font-weight:inherit}
.fv .tate .t1{display:flex;flex-direction:column;font-size:clamp(64px,9.2vw,124px);font-weight:700;line-height:1.08;color:#fff;text-shadow:0 4px 30px rgba(60,6,10,.35)}
.fv .tate .t2{display:flex;flex-direction:column;font-size:clamp(15px,1.7vw,20px);line-height:1.55;color:var(--gold-lt);margin-top:.9em;font-weight:500;border-right:1px solid rgba(236,223,174,.5);padding-right:clamp(10px,1.4vw,18px)}
.fv .copy{padding-top:6px;max-width:420px}
.fv .eyebrow{color:var(--gold-lt);border-color:var(--gold-lt)}
.fv .name{font-family:var(--head);font-size:clamp(15px,1.7vw,18px);letter-spacing:.14em;margin:0 0 4px;color:var(--gold-lt)}
.fv h1{font-family:var(--head);font-weight:500;margin:0 0 20px;font-size:clamp(22px,2.9vw,32px);line-height:1.7;letter-spacing:.16em}
.fv .lede{margin:0 0 24px;color:rgba(255,255,255,.86);font-size:15px;line-height:2}
.fv .badges{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 28px;padding:0;list-style:none}
.fv .badges li{border:1px solid rgba(236,223,174,.8);padding:3px 13px;font-size:12.5px;letter-spacing:.12em;background:rgba(80,10,15,.35);backdrop-filter:blur(2px)}
.fv .cta{display:flex;flex-wrap:wrap;gap:12px}
.fv .deadline{margin:18px 0 0;font-size:13px;color:rgba(255,255,255,.82)}
.fv .deadline b{color:var(--gold-lt);font-size:22px;padding:0 3px;font-family:var(--head)}
.fv .seal{position:absolute;z-index:4;right:clamp(24px,5vw,72px);bottom:64px;width:92px;height:92px;background:#fff;color:var(--red);display:grid;place-items:center;text-align:center;border:1px solid var(--gold);outline:5px solid rgba(255,255,255,.18);font-family:var(--head);font-weight:700;font-size:15px;line-height:1.5;letter-spacing:.14em;transform:rotate(-4deg)}
.fv .seal small{display:block;font-size:10px;font-weight:500;letter-spacing:.2em;color:var(--ink-sub)}
.fv .scroll{position:absolute;z-index:4;left:50%;bottom:26px;transform:translateX(-50%);font-size:10px;letter-spacing:.4em;color:var(--gold-lt);writing-mode:vertical-rl;display:none}

/* coupon */
.coupon{background:#fff;padding:0;position:relative;z-index:6}
.coupon .box{border:1px solid var(--ink);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;padding:26px 34px;background:#fff;transform:translateY(-38px);box-shadow:0 14px 0 -8px var(--cream);position:relative}
.coupon .box:before{content:"";position:absolute;inset:5px;border:1px solid var(--gold-soft);pointer-events:none}
.coupon .tag{background:var(--red);color:#fff;width:120px;height:120px;border-radius:50%;display:grid;place-items:center;text-align:center;line-height:1.3;font-size:13px;letter-spacing:.06em;font-family:var(--head)}
.coupon .tag b{display:block;font-size:22px}
.coupon h3{margin:0;font-family:var(--head);font-weight:500;font-size:20px;letter-spacing:.12em}
.coupon h3 span{color:var(--red);font-weight:700;font-size:26px}
.coupon p{margin:4px 0 0;font-size:13px;color:var(--ink-sub);line-height:1.8}
.code{display:flex;border:1px solid var(--red);align-items:stretch}
.code span{padding:10px 18px;font-weight:700;font-size:18px;letter-spacing:.14em;background:#fff;font-family:"Helvetica Neue",Arial,sans-serif;display:flex;align-items:center}
.code button{background:var(--red);color:#fff;border:0;padding:0 16px;cursor:pointer;font-family:var(--serif);font-size:13px;letter-spacing:.1em}

/* ============ STORY ============ */
.story{padding-top:56px}
.story .grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;align-items:stretch;border:1px solid var(--ink);background:#fff}
.story .pic{position:relative;}
.story .pic img {width: 100%;}
.story .pic:after{content:"";position:absolute;inset:10px;border:1px solid rgba(255,255,255,.7)}
.story .txt{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;background:#fff var(--sea-lt);background-size:80px 40px;position:relative}
.story .tategaki{writing-mode:vertical-rl;font-family:var(--head);font-size:clamp(18px,2.1vw,23px);line-height:2.3;letter-spacing:.24em;max-height:100%}
.story .tategaki em{font-style:normal;color:var(--red);font-weight:700}
.story .small{font-size:13px;color:var(--ink-sub);line-height:1.9;text-align:left;border-top:1px solid var(--line);padding-top:12px}

/* points */
.points{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.point{background:#fff;border:1px solid var(--line);padding:0 28px 32px;position:relative;text-align:center}
.point .slot{margin:0 -28px 24px}
.point .slot img{width:100%;}
.point .ic{margin-top:-6px}
.point:before{content:"";position:absolute;inset:5px;border:1px solid var(--gold-lt);pointer-events:none}
.point .no{position:absolute;bottom:12px;z-index:2;left:50%;transform:translateX(-50%);width:34px;height:34px;border-radius:50%;background:var(--red);color:#fff;font-size:13px;display:grid;place-items:center;font-family:var(--head);letter-spacing:0}
.point h3{font-family:var(--head);font-weight:700;font-size:19px;line-height:1.7;margin:10px 0 12px;letter-spacing:.1em}
.point p{margin:0;font-size:14.5px;color:var(--ink-sub);text-align:left;line-height:1.95;position:relative}
.point .ic{height:54px;margin:0 auto;color:var(--red)}

.process{display:flex;justify-content:center;align-items:stretch;gap:0;flex-wrap:wrap;margin:56px 0 0}
.process .st{background:#fff;border:1px solid var(--line);padding:16px 22px;text-align:center;font-size:14px;min-width:150px}
.process .st b{display:block;font-size:11px;color:var(--gold);letter-spacing:.3em;font-weight:400}
.process .st.off{background:repeating-linear-gradient(135deg,#fff,#fff 6px,#f3eede 6px,#f3eede 7px);color:var(--ink-sub);text-decoration:line-through;text-decoration-color:var(--red)}
.process .ar{align-self:center;color:var(--gold);padding:0 8px}
.processnote{text-align:center;font-size:13px;color:var(--ink-sub);margin-top:12px}

/* ============ BAND (full photo) ============ */
.band{padding:0;background:var(--vermilion);color:#fff;position:relative;overflow:hidden;isolation:isolate}
.band .bg{position:absolute;inset:0;background:var(--img-fv) center 70%/cover no-repeat;opacity:.9;z-index:-2}
.band:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(111,18,25,.92) 0,rgba(111,18,25,.55) 55%,rgba(111,18,25,.15) 100%);z-index:-1}
.band .in{width:min(1040px,100% - 40px);margin:0 auto;padding:110px 0}
.band h2{font-family:var(--head);font-weight:500;margin:0 0 16px;font-size:clamp(24px,3.6vw,38px);letter-spacing:.16em;line-height:1.7}
.band p{margin:0;max-width:420px;color:rgba(255,255,255,.88);font-size:15px;line-height:2.1}
.band small{display:block;font-size:12px;letter-spacing:.38em;color:var(--gold-lt);margin-bottom:12px}

/* ============ MOVIE ============ */
.movie{background:#fff}
.movie .stage{position:relative;aspect-ratio:16/9;max-width:900px;margin:0 auto;background:#2a0b0e;border:1px solid var(--ink);box-shadow:14px 14px 0 -1px var(--cream),14px 14px 0 0 var(--line);overflow:hidden}
.movie .stage video,.movie .stage iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000;object-fit:cover}
.movie .stage .poster{position:absolute;inset:0;background-size:cover;background-position:center;display:grid;place-items:center;text-align:center;color:#fff;
  background-image:radial-gradient(60% 80% at 50% 40%,rgba(255,226,150,.28),transparent 70%),linear-gradient(135deg,#a41f27,#6f1219)}
.movie .stage .poster:before{content:"";position:absolute;inset:0;background:var(--sea-gold);background-size:80px 40px;opacity:.14}
.movie .stage .poster>*{position:relative}
.movie .stage[data-has="1"] .poster{background-image:var(--poster)}
.movie .stage[data-has="1"] .poster:before{display:none}
.movie .play{width:84px;height:84px;border-radius:50%;border:1px solid rgba(255,255,255,.85);background:rgba(255,255,255,.14);display:grid;place-items:center;margin:0 auto 14px;transition:.25s;cursor:pointer;padding:0;color:#fff}
.movie .play:hover{background:rgba(255,255,255,.28);transform:scale(1.05)}
.movie .play i{display:block;width:0;height:0;border-left:20px solid #fff;border-top:12px solid transparent;border-bottom:12px solid transparent;margin-left:6px}
.movie .vid{font-family:var(--head);font-weight:700;letter-spacing:.3em;font-size:15px;color:var(--gold-lt)}
.movie .vlabel{font-size:12.5px;letter-spacing:.12em;opacity:.85;margin-top:4px;line-height:1.8}
.movie .stage[data-has="1"] .vid,.movie .stage[data-has="1"] .vlabel{display:none}
.movie .cap{text-align:center;font-size:13px;color:var(--ink-sub);margin-top:30px}

/* ============ SPEC ============ */
.spec .cols{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
table.s{width:100%;border-collapse:collapse;font-size:15px}
table.s th,table.s td{padding:13px 6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
table.s th{width:36%;font-weight:400;color:var(--ink-sub);letter-spacing:.14em}
table.s tr:first-child th,table.s tr:first-child td{border-top:1px solid var(--ink)}
.map{background:var(--cream);padding:24px;border:1px solid var(--line);margin:0}
.map svg{width:100%;height:auto;display:block}
.map figcaption{text-align:center;font-size:13px;color:var(--ink-sub);margin-top:10px}
.pk{margin-top:20px;font-size:13px;color:var(--ink-sub)}

/* scenes */
.scenes{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.scene{border:1px solid var(--ink);background:#fff}
.scene .slot{aspect-ratio:4/3;border-bottom:1px solid var(--ink)}
.scene .slot img {height:100%;}
.scene .hd{background:var(--cream);text-align:center;padding:10px;font-size:15px;letter-spacing:.2em;border-bottom:1px solid var(--ink);font-family:var(--head)}
.scene .bd{padding:24px 22px 28px;font-size:14.5px;color:var(--ink-sub);line-height:1.95;text-align:center}
.scene .bd b{color:var(--ink);font-weight:700;display:block;margin:8px 0 8px;font-size:16px;letter-spacing:.1em;font-family:var(--head)}
.scene svg{height:48px;color:var(--red);margin:0 auto}

/* gift */
.gift .cols{display:grid;grid-template-columns:200px 1fr;gap:0;border:1px solid var(--ink);background:#fff}
.gift .noshi{background:var(--cream) var(--sea-lt);background-size:80px 40px;display:grid;place-items:center;padding:30px;border-right:1px solid var(--ink)}
.gift .noshi svg{width:120px;height:auto;filter:drop-shadow(0 8px 14px rgba(120,90,20,.18))}
.gift .list{display:grid;grid-template-columns:repeat(3,1fr);border:solid 1px var(--line)}
.gift .c{padding:30px 26px;border-right:1px solid var(--line)}
.gift .c:last-child{border-right:0}
.gift h3{margin:0 0 8px;font-size:16px;font-weight:700;letter-spacing:.12em;color:var(--red);font-family:var(--head)}
.gift .c p{margin:0;font-size:14px;color:var(--ink-sub);line-height:1.9}

/* ============ TIMELINE ============ */
.tl{display:grid;grid-template-columns:repeat(4,1fr);position:relative;margin:0 0 54px;padding:0;list-style:none}
.tl:before{content:"";position:absolute;left:12.5%;right:12.5%;top:21px;height:1px;background:repeating-linear-gradient(90deg,var(--gold) 0 6px,transparent 6px 11px)}
.tl li{text-align:center;position:relative;padding:0 10px}
.tl .dot{width:42px;height:42px;border-radius:50%;margin:0 auto 14px;background:#fff;border:1px solid var(--gold);display:grid;place-items:center;position:relative;z-index:1}
.tl .dot i{width:18px;height:18px;border-radius:50%;background:var(--red)}
.tl li.hot .dot{background:var(--red);border-color:var(--red)}
.tl li.hot .dot i{background:#fff}
.tl .d{font-family:var(--head);font-weight:700;font-size:20px;letter-spacing:.08em;line-height:1.4}
.tl .d small{font-size:12px;font-weight:400;color:var(--ink-sub);letter-spacing:.1em}
.tl .t{font-size:13px;color:var(--ink-sub);margin-top:4px;line-height:1.7}
.flow{display:grid;grid-template-columns:repeat(3,1fr);gap:0;counter-reset:f;padding:0;margin:0}
.flow li{list-style:none;padding:30px 26px;border:1px solid var(--line);background:#fff;margin-left:-1px;position:relative}
.flow li:before{counter-increment:f;content:"STEP " counter(f);display:block;font-size:11px;letter-spacing:.3em;color:var(--gold);margin-bottom:6px}
.flow h3{margin:0 0 8px;font-size:17px;font-weight:700;letter-spacing:.1em;font-family:var(--head)}
.flow p{margin:0;font-size:14px;color:var(--ink-sub);line-height:1.9}
.dates{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.dates span{border:1px solid var(--red);color:var(--red);padding:2px 10px;font-size:13px;font-weight:700}

/* ============ ORDER ============ */
.order{background:#fff}
.plans{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:900px;margin:0 auto}
.plan{background:#fff;border:1px solid var(--ink);text-align:center;padding:0 0 34px;position:relative}
.plan .hd{background:var(--ink);color:#fff;padding:10px;letter-spacing:.3em;font-size:14px;font-family:var(--head)}
.plan.rec .hd{background:var(--red)}
.plan .ph{height:250px;background:#f3ead3;position:relative;overflow:hidden;display:flex;justify-content:center;align-items:stretch;border-bottom:1px solid var(--line)}
.plan .ph img{height:100%;width:auto;max-width:none;object-fit:cover;flex:none}
.plan .ph p{position:absolute;bottom:0;right:16px;font-size:24px;color:var(--red-deep)}
.plan .rib{position:absolute;top:-14px;right:14px;background:var(--gold);color:#fff;font-size:12px;padding:2px 12px;letter-spacing:.1em;z-index:2}
.plan h3{margin:24px 0 4px;font-size:18px;font-weight:700;letter-spacing:.1em;font-family:var(--head)}
.plan .price{font-size:40px;font-weight:700;letter-spacing:.04em;line-height:1.3;font-family:var(--head)}
.plan .price small{font-size:14px;font-weight:400;margin-left:4px}
.plan .per{font-size:13px;color:var(--ink-sub);margin:0 0 8px}
.plan .cp{margin:12px 28px 24px;background:var(--cream);border:1px dashed var(--gold);padding:8px;font-size:13px}
.plan .cp b{color:var(--red);font-size:20px;padding:0 4px}
.order .note{text-align:center;font-size:13px;color:var(--ink-sub);margin-top:24px}

/* faq */
details{border-bottom:1px solid var(--line)}
details:first-of-type{border-top:1px solid var(--ink)}
summary{list-style:none;cursor:pointer;padding:20px 40px 20px 0;position:relative;font-weight:700;letter-spacing:.08em}
summary::-webkit-details-marker{display:none}
summary:before{content:"Q";color:var(--red);margin-right:14px;font-weight:700}
summary:after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);color:var(--gold);font-size:22px}
details[open] summary:after{content:"−"}
details p{margin:0 0 22px;padding-left:28px;color:var(--ink-sub);font-size:15px}

/* notice */
.notice{background:#fff;border:1px solid var(--ink);padding:34px 34px 14px;position:relative}
.notice:before{content:"";position:absolute;inset:5px;border:1px solid var(--gold-lt);pointer-events:none}
.notice h3{margin:0 0 18px;text-align:center;font-weight:700;letter-spacing:.2em;color:var(--red);font-size:18px;font-family:var(--head)}
.notice dl{margin:0;position:relative}
.notice dt{background:var(--cream);padding:3px 14px;font-weight:700;font-size:14px;letter-spacing:.1em;margin-bottom:8px;text-align:center}
.notice dd{margin:0 0 22px;font-size:14px;color:var(--ink-sub);line-height:1.9}
.notice dd em{font-style:normal;color:var(--red);font-weight:700}

.notice-wrapper {display: flex;flex-direction: column;align-items: center;justify-content: flex-start;gap: 24px}
.notice-image-container {max-width: 100%;height: auto}
.notice-image-container img {width:100%;height:100%;}

/* about */
.about .txt{text-align:center}
.about .motto{font-family:var(--head);font-size:clamp(20px,3vw,28px);letter-spacing:.2em;line-height:2;margin:10px 0}
.about .links{margin-top:28px;display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.about .links a{border:1px solid var(--ink);padding:10px 26px;text-decoration:none;font-size:14px;letter-spacing:.12em;background:#fff; color:#333;}
.about .links a:hover{background:var(--ink);color:#fff}

/* final */
.final{background:radial-gradient(90% 120% at 50% 120%,#b3232b,#8f1a21 55%,#6f1219);color:#fff;text-align:center;padding:90px 0 84px;position:relative;overflow:hidden}
.final:before{content:"";position:absolute;left:50%;bottom:-260px;width:520px;aspect-ratio:1;border-radius:50%;transform:translateX(-50%);background:radial-gradient(circle,rgba(255,236,170,.4),transparent 66%)}
.final .wave{position:absolute;left:0;right:0;bottom:0;height:120px;background:var(--sea-gold);background-size:80px 40px;opacity:.25;-webkit-mask-image:linear-gradient(to top,#000,transparent);mask-image:linear-gradient(to top,#000,transparent)}
.final .wrap{position:relative}
.final h2{font-family:var(--head);font-weight:500;font-size:clamp(23px,3.6vw,34px);letter-spacing:.16em;margin:0 0 10px;line-height:1.8}
.final p{margin:0 0 30px;opacity:.9}
.final .btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* sticky */
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:50;background:rgba(255,255,255,.97);border-top:1px solid var(--ink);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;transform:translateY(110%);transition:transform .35s}
.sticky.on{transform:none}
.sticky .p{font-size:12px;line-height:1.5;letter-spacing:.06em}
.sticky .p b{font-size:18px;color:var(--red)}
.sticky .btn{padding:12px 24px;font-size:14px;white-space:nowrap}

/* age */
#age{position:fixed;inset:0;z-index:100;background:#111;color:#fff;display:grid;place-items:center;text-align:center;padding:24px}
#age .b{max-width:420px}
#age .m{width:54px;height:38px;margin:0 auto 20px;background:var(--red);border-radius:19px 19px 3px 3px;position:relative;overflow:hidden}
#age .m:after{content:"";position:absolute;left:-6px;right:-6px;bottom:-14px;height:26px;background:#111;border-radius:50%}
#age p{margin:0 0 6px;letter-spacing:.14em}
#age .q{font-size:20px;margin:18px 0 26px}
#age .row{display:flex;gap:14px;justify-content:center}
#age button,#age a{min-width:120px;padding:12px 0;border:1px solid #fff;background:#fff;color:#111;font-family:var(--serif);font-size:15px;letter-spacing:.2em;cursor:pointer;text-decoration:none}
#age a{background:transparent;color:#fff}
#age small{display:block;margin-top:26px;font-size:11px;opacity:.7;line-height:1.8}
.hide{display:none!important}

@media (max-width:900px){
  .gift .cols{grid-template-columns:1fr}
  .gift .noshi{border-right:0;border-bottom:1px solid var(--ink);padding:24px}
  .gift .list{grid-template-columns:1fr}
  .gift .c{border-right:0;border-bottom:1px solid var(--line)}
  .gift .c:last-child{border-bottom:0}
}
@media (max-width:820px){
  section{padding:64px 0}
  .brand span{display:none}

  /* FV (mobile): 画像を上半分に敷き、下に文字 */
  .fv{min-height:0}
  .fv .photo{width:100%;height:min(92vw,420px);bottom:auto;
    -webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent 100%);mask-image:linear-gradient(to bottom,#000 55%,transparent 100%)}
  .fv .sun{right:50%;top:min(40vw,190px);transform:translate(50%,-50%);width:92vw;animation:none}
  .fv .inner{padding:0;align-items:flex-end}
  .fv .row{width:calc(100% - 44px);padding:min(80vw,350px) 0 52px;gap:18px;align-items:flex-start}
  .fv .tate .t1{font-size:clamp(54px,15vw,76px)}
  .fv .tate .t2{font-size:12.5px}
  .fv .eyebrow{letter-spacing:.1em;font-size:12px;padding:2px 8px;white-space:nowrap}
  .fv .cta .btn{white-space:nowrap;padding:16px 14px;font-size:14.5px;letter-spacing:.08em;gap:8px}
  .fv .badges li{font-size:11.5px;letter-spacing:.06em}
  .fv .copy{padding-top:0}
  .fv h1{display:none}
  .fv .lede{font-size:13.5px;margin-bottom:16px;line-height:1.9}
  .fv .seal{display:none}
  .fv .cta .btn{width:100%}
  .fv .frame{inset:10px}

  .coupon .box{grid-template-columns:1fr;text-align:center;justify-items:center;padding:24px 18px;gap:14px;transform:translateY(-26px)}
  .coupon .tag{width:92px;height:92px;font-size:12px}
  .coupon .tag b{font-size:18px}
  .story .grid{grid-template-columns:1fr}
  .story .pic{min-height:300px}
  .points,.scenes,.flow,.plans,.spec .cols{grid-template-columns:1fr}
  .flow li{margin-left:0;margin-top:-1px}
  .spec .cols{gap:34px}
  .notice{padding:26px 18px 6px}
  .btn{padding:17px 28px;width:100%;max-width:360px}
  .sticky .btn{width:auto;max-width:none}
  .process .ar{display:none}
  .process .st{flex:1 1 40%;margin:-1px 0 0 -1px}
  .band .in{padding:84px 0}
  .band:before{background:linear-gradient(180deg,rgba(111,18,25,.8),rgba(111,18,25,.7))}

  /* timeline (mobile): 縦並び */
  .tl{grid-template-columns:1fr;gap:22px;margin-bottom:40px}
  .tl:before{left:21px;right:auto;top:20px;bottom:20px;width:1px;height:auto;background:repeating-linear-gradient(180deg,var(--gold) 0 6px,transparent 6px 11px)}
  .tl li{display:grid;grid-template-columns:42px 1fr;gap:16px;text-align:left;padding:0}
  .tl .dot{margin:0}
}
@media (min-width:821px){.sticky{display:none}.fv .scroll{display:block}}

p.footerNotice-text {
  margin-top: 0;
}

/* カスタマイズ用 */
.header-nav a:hover,
.footer-guide a:hover {
  text-decoration: none;
}
.header-cart svg {
  color: #fff;
}
.c-cart,
.c-search-button .c-loupe {
  box-sizing: content-box;
}
p.footerNotice-text {
  margin-top: 0;
}
.footer-guide a:link {
  color: #333;
}
.footerNotice-title span {
  width: max-content;
}
.sticky a:link,
.sticky a:visited {
  color: #fff;
}