:root{
  --cream:#FBF6EC; --ivory:#FFFDF8; --paper:#F6EEDF;
  --green:#3E6A4C; --sage:#8DAE86; --sage-l:#E4EEDD;
  --brown:#5E4636; --text:#4A3B30;
  --coral:#E37F72; --coral-d:#D0645A; --peach:#F7D9C8;
  --gold1:#B98A3E; --gold2:#E7C77E; --gold3:#A3782F;
  --mark:#FCE6A6; --line:#06C755;
}
*{margin:0;padding:0;box-sizing:border-box}
body{width:1080px;background:#fff;font-family:'Zen Maru Gothic','Hiragino Maru Gothic ProN',sans-serif;color:var(--text);-webkit-font-smoothing:antialiased}
.sec{position:relative;width:1080px;overflow:hidden;background:var(--cream)}
.sec + .sec{margin-top:0}
.paperbg{background:var(--cream) url(../assets/paper.jpg) center/cover no-repeat}
.min{font-family:'Shippori Mincho B1',serif;font-weight:800;letter-spacing:.02em}
.script{font-family:'Great Vibes',cursive;color:var(--gold1);font-weight:400}
.script2{font-family:'Parisienne',cursive;color:var(--gold1)}
.gold{background:linear-gradient(180deg,var(--gold2) 0%,var(--gold1) 55%,var(--gold3) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.green{color:var(--green)} .coral{color:var(--coral-d)} .brown{color:var(--brown)}
.mark{background:linear-gradient(transparent 62%,var(--mark) 62%)}
.inner{position:relative;padding:90px 70px;z-index:2}
.center{text-align:center}
p.body{font-size:37px;line-height:1.95;font-weight:500}
p.body + p.body{margin-top:34px}
.h2{font-size:80px;line-height:1.38;color:var(--brown);white-space:nowrap}
.h2 small{font-size:.62em}
.eyebrow{font-size:66px;line-height:1;display:block;transform:rotate(-6deg);margin-bottom:18px}
.divider{display:flex;align-items:center;justify-content:center;gap:22px;margin:40px auto}
.divider:before,.divider:after{content:"";height:2px;width:260px;background:linear-gradient(90deg,transparent,var(--gold1),transparent)}
.divider span{width:16px;height:16px;transform:rotate(45deg);background:var(--gold2);border:2px solid var(--gold1)}
/* card */
.card{background:rgba(255,253,248,.93);border:2px solid #EAD9B6;border-radius:34px;box-shadow:0 14px 36px rgba(120,90,50,.13);padding:60px 58px;position:relative}
.card.gold-frame{border:3px solid transparent;background:linear-gradient(var(--ivory),var(--ivory)) padding-box,linear-gradient(135deg,var(--gold2),var(--gold1),var(--gold2)) border-box}
/* checklist */
.checks{list-style:none}
.checks li{position:relative;padding:26px 0 26px 86px;font-size:38px;line-height:1.6;font-weight:700;border-bottom:2px dashed #E6D6B8}
.checks li:last-child{border-bottom:none}
.checks li:before{content:"";position:absolute;left:0;top:28px;width:58px;height:58px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#F4DE9E,var(--gold1));box-shadow:0 3px 6px rgba(160,120,50,.35)}
.checks li:after{content:"";position:absolute;left:19px;top:40px;width:18px;height:28px;border:solid #fff;border-width:0 6px 6px 0;transform:rotate(42deg)}
/* photo */
.polaroid{background:#fff;padding:20px 20px 26px;box-shadow:0 16px 34px rgba(80,60,40,.22);border-radius:6px;position:relative}
.polaroid img{display:block;width:100%;border-radius:3px}
.tape{position:absolute;top:-22px;left:50%;width:170px;height:48px;margin-left:-85px;background:rgba(247,217,200,.85);transform:rotate(-4deg);box-shadow:0 2px 4px rgba(0,0,0,.08)}
.imgtag{position:absolute;right:18px;bottom:18px;background:rgba(94,70,54,.78);color:#fff;font-size:22px;padding:8px 18px;border-radius:30px;font-weight:700;letter-spacing:.03em;z-index:5}
.imgtag.tl{right:auto;left:18px;bottom:auto;top:18px}
.full{display:block;width:100%}
/* badges */
.badges{display:flex;justify-content:center;gap:30px}
.badge{width:290px;height:290px;border-radius:50%;background:radial-gradient(circle at 50% 40%,#fff 0%,#FFF8EC 70%);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:5px solid transparent;background-clip:padding-box;position:relative;box-shadow:0 10px 26px rgba(150,110,50,.2)}
.badge:before{content:"";position:absolute;inset:-5px;border-radius:50%;padding:5px;background:linear-gradient(135deg,var(--gold2),var(--gold1),var(--gold2));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.badge img{width:130px;height:130px;object-fit:contain;border-radius:50%;margin-bottom:8px}
.badge b{font-size:33px;line-height:1.35;color:var(--green)}
/* CTA */
.cta{display:flex;align-items:center;justify-content:center;gap:0;margin:0 auto;width:960px;height:150px;border-radius:80px;background:linear-gradient(180deg,#2ED573 0%,var(--line) 55%,#04A847 100%);box-shadow:0 10px 0 #038A3A,0 22px 30px rgba(0,0,0,.18);color:#fff;position:relative;font-weight:700}
.cta .free{position:absolute;left:-10px;top:50%;transform:translateY(-50%) rotate(-8deg);width:150px;height:150px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#FFF6DA,#F3D58A);border:5px solid #fff;color:var(--coral-d);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:'Shippori Mincho B1',serif;font-weight:800;box-shadow:0 6px 14px rgba(0,0,0,.18);line-height:1.1}
.cta .free small{font-size:24px;color:var(--brown)} .cta .free span{font-size:44px}
.cta .txt{font-size:39px;letter-spacing:.02em;padding-left:110px;line-height:1.3;text-align:center;text-shadow:0 2px 3px rgba(0,0,0,.18)}
.cta .arr{position:absolute;right:34px;top:50%;margin-top:-30px;width:60px;height:60px;border-radius:50%;border:4px solid #fff}
.cta .arr:after{content:"";position:absolute;left:14px;top:17px;width:16px;height:16px;border:solid #fff;border-width:5px 5px 0 0;transform:rotate(45deg)}
.cta-note{text-align:center;font-size:29px;margin-top:34px;color:var(--brown);font-weight:700}
.cta-wrap{padding:60px 0 70px;position:relative;z-index:3}
/* ribbon */
.ribbon{display:inline-block;white-space:nowrap;background:linear-gradient(90deg,var(--green),#517E5D,var(--green));color:#fff;font-size:34px;padding:19px 40px;position:relative;font-weight:700;letter-spacing:.04em}
.ribbon:before,.ribbon:after{content:"";position:absolute;top:0;border:solid transparent;border-width:35px 22px}
.ribbon:before{left:-44px;border-right-color:var(--green)}
.ribbon:after{right:-44px;border-left-color:var(--green)}
.pill{display:inline-block;background:linear-gradient(90deg,var(--coral),#EE9A86);color:#fff;border-radius:60px;padding:14px 54px;font-size:38px;font-weight:700;box-shadow:0 6px 14px rgba(208,100,90,.25)}
/* placeholder */
.ph{border:4px dashed #C9B48E;border-radius:28px;background:repeating-linear-gradient(45deg,rgba(255,255,255,.7) 0 18px,rgba(246,238,223,.7) 18px 36px);padding:40px;text-align:center;color:#8A7358;font-weight:700}
.ph .t{font-size:34px;line-height:1.6}
.ph .s{font-size:26px;margin-top:10px;font-weight:500}
.soon{display:inline-block;background:#8A7358;color:#fff;font-size:24px;padding:6px 20px;border-radius:30px;margin-bottom:14px;letter-spacing:.05em}
/* number cards */
.num{font-family:'Parisienne',cursive;font-size:84px;color:var(--gold1);line-height:1}
.leafline{height:8px;margin:0 auto;width:420px;background:radial-gradient(circle,var(--gold2) 3px,transparent 4px) 0 0/28px 8px repeat-x}
.deco-plane{position:absolute}
.float-script{position:absolute;font-family:'Great Vibes',cursive;color:rgba(185,138,62,.8);font-size:54px;transform:rotate(-10deg);z-index:3;line-height:1}
/* sun rays for closing */
/* character (white bg jpg) */
.chara{position:absolute;z-index:4;pointer-events:none;filter:drop-shadow(0 6px 10px rgba(94,70,54,.12))}
.cap{font-size:26px;color:#8A7358;font-weight:700;text-align:center;margin-top:14px}
.media{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:26px}
.media img{width:100%;height:230px;object-fit:cover;border-radius:10px;box-shadow:0 6px 14px rgba(0,0,0,.14);background:#fff}
.foot{background:var(--green);color:#fff;text-align:center;padding:50px 0 56px;font-size:28px;line-height:1.8}

/* ---- 公開用：1080px の組版を画面幅に合わせて縮小 ---- */
html{background:#EFE7D8}
body{width:auto;background:#EFE7D8}
.page{width:1080px;margin:0 auto;background:var(--cream);box-shadow:0 0 48px rgba(0,0,0,.12);overflow:hidden;zoom:.5}
@media (max-width:539px){.page{zoom:calc(375/1080)}}
.cta{text-decoration:none;cursor:pointer;transition:transform .15s,box-shadow .15s}
.cta:hover{transform:translateY(3px);box-shadow:0 7px 0 #038A3A,0 16px 24px rgba(0,0,0,.18)}
.cta:focus-visible{outline:6px solid #F3D58A;outline-offset:8px}
.foot a{color:#fff}
.foot-links{display:flex;justify-content:center;gap:56px;margin-top:18px;font-size:26px}
